aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/TensorOperations.h
diff options
context:
space:
mode:
authorGiorgio Arena <giorgio.arena@arm.com>2017-06-13 15:19:51 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-09-17 13:03:43 +0100
commitf795986c8d4594279c277b14a33d29e48b2a4def (patch)
tree83c6c888e69fa380acaf81988f6a05d8035f627d /tests/validation/TensorOperations.h
parent7b06cde62a19ae0fda7bbbf0ab0bf18a88470af8 (diff)
downloadComputeLibrary-f795986c8d4594279c277b14a33d29e48b2a4def.tar.gz
COMPMID-378 NEMeanStdDev test completed.
Change-Id: I46fb77c0cb507a4c0fe3264a89dd7b2ba63c44dc Reviewed-on: http://mpd-gerrit.cambridge.arm.com/77427 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Steven Niu <steven.niu@arm.com>
Diffstat (limited to 'tests/validation/TensorOperations.h')
-rw-r--r--tests/validation/TensorOperations.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/validation/TensorOperations.h b/tests/validation/TensorOperations.h
index 5e27e9d3a0..119be02423 100644
--- a/tests/validation/TensorOperations.h
+++ b/tests/validation/TensorOperations.h
@@ -221,6 +221,29 @@ void apply_2d_spatial_filter(Coordinates coord, const Tensor<T1> &in, Tensor<T3>
}
} // namespace
+// Mean Standard Deviation
+template <typename T1>
+void mean_and_standard_deviation(const Tensor<T1> &in, float &mean, float &std_dev)
+{
+ int num_elements = in.num_elements();
+
+ // Calculate mean
+ mean = 0.f;
+ for(int i = 0; i < num_elements; ++i)
+ {
+ mean += in[i];
+ }
+ mean /= num_elements;
+
+ // Calculate standard deviation
+ std_dev = 0.f;
+ for(int i = 0; i < num_elements; ++i)
+ {
+ std_dev += (mean - in[i]) * (mean - in[i]);
+ }
+ std_dev = sqrt(std_dev / num_elements);
+}
+
// Integral Image
void integral_image(const Tensor<uint8_t> &in, Tensor<uint32_t> &out)
{