diff options
Diffstat (limited to 'tests/validation/TensorOperations.h')
-rw-r--r-- | tests/validation/TensorOperations.h | 23 |
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) { |