Skip to main content

quantrs2_sim/automatic_parallelization/
autoparallelengine_calculate_variance_group.rs

1//! # AutoParallelEngine - calculate_variance_group Methods
2//!
3//! This module contains method implementations for `AutoParallelEngine`.
4//!
5//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
6
7use super::autoparallelengine_type::AutoParallelEngine;
8
9impl AutoParallelEngine {
10    /// Calculate variance of a vector of values
11    pub(super) fn calculate_variance(values: &[f64]) -> f64 {
12        if values.is_empty() {
13            return 0.0;
14        }
15        let mean: f64 = values.iter().sum::<f64>() / values.len() as f64;
16        let variance: f64 =
17            values.iter().map(|v| (v - mean).powi(2)).sum::<f64>() / values.len() as f64;
18        variance
19    }
20}