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}