pub fn reduce_sum_f32(values: &[f32]) -> f32 {
let mut acc = 0.0f32;
for &v in values {
acc += v;
}
acc
}
pub fn reduce_mean_f32(values: &[f32]) -> Option<f32> {
if values.is_empty() {
return None;
}
Some(reduce_sum_f32(values) / values.len() as f32)
}
pub fn reduce_sum_f64(values: &[f64]) -> f64 {
let mut acc = 0.0f64;
for &v in values {
acc += v;
}
acc
}
pub fn reduce_mean_f64(values: &[f64]) -> Option<f64> {
if values.is_empty() {
return None;
}
Some(reduce_sum_f64(values) / values.len() as f64)
}