From f795986c8d4594279c277b14a33d29e48b2a4def Mon Sep 17 00:00:00 2001 From: Giorgio Arena Date: Tue, 13 Jun 2017 15:19:51 +0100 Subject: COMPMID-378 NEMeanStdDev test completed. Change-Id: I46fb77c0cb507a4c0fe3264a89dd7b2ba63c44dc Reviewed-on: http://mpd-gerrit.cambridge.arm.com/77427 Tested-by: Kaizen Reviewed-by: Steven Niu --- tests/validation/TensorOperations.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tests/validation/TensorOperations.h') 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 &in, Tensor } } // namespace +// Mean Standard Deviation +template +void mean_and_standard_deviation(const Tensor &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 &in, Tensor &out) { -- cgit v1.2.1