summaryrefslogtreecommitdiff
path: root/utils/tuning/libtuning/average.py
diff options
context:
space:
mode:
authorPaul Elder <paul.elder@ideasonboard.com>2022-11-11 02:05:53 +0900
committerPaul Elder <paul.elder@ideasonboard.com>2022-11-25 15:37:26 +0900
commitdb99d966633c5d7a5b33d03d653f1839d9feaaea (patch)
tree392733c7b0bfc3fb06a865a1f990db65a0af8bf6 /utils/tuning/libtuning/average.py
parent19dc8c28f63c2dc8842b88c1fd45c999c7171398 (diff)
utils: tuning: libtuning: Implement math helpers
Implement math helpers for libtuning. This includes: - Average, a wrapper class for numpy averaging functions - Gradient, a class that represents gradients, for distributing and mapping - Smoothing, a wrapper class for cv2 smoothing functions Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'utils/tuning/libtuning/average.py')
-rw-r--r--utils/tuning/libtuning/average.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/utils/tuning/libtuning/average.py b/utils/tuning/libtuning/average.py
new file mode 100644
index 00000000..e28770d7
--- /dev/null
+++ b/utils/tuning/libtuning/average.py
@@ -0,0 +1,21 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2022, Paul Elder <paul.elder@ideasonboard.com>
+#
+# average.py - Wrapper for numpy averaging functions to enable duck-typing
+
+import numpy as np
+
+
+# @brief Wrapper for np averaging functions so that they can be duck-typed
+class Average(object):
+ def __init__(self):
+ pass
+
+ def average(self, np_array):
+ raise NotImplementedError
+
+
+class Mean(Average):
+ def average(self, np_array):
+ return np.mean(np_array)