Path: blob/main/crates/polars-compute/src/rolling/nulls/mean.rs
8426 views
#![allow(unsafe_op_in_unsafe_fn)]1use super::super::mean::MeanWindow;2use super::*;34pub fn rolling_mean<T>(5arr: &PrimitiveArray<T>,6window_size: usize,7min_periods: usize,8center: bool,9weights: Option<&[f64]>,10_params: Option<RollingFnParams>,11) -> ArrayRef12where13T: NativeType14+ IsFloat15+ PartialOrd16+ Add<Output = T>17+ Sub<Output = T>18+ NumCast19+ AddAssign20+ SubAssign21+ Div<Output = T>,22{23if weights.is_some() {24panic!("weights not yet supported on array with null values")25}26if center {27rolling_apply_agg_window::<MeanWindow<T>, _, _, _>(28arr.values().as_slice(),29arr.validity().as_ref().unwrap(),30window_size,31min_periods,32det_offsets_center,33None,34)35} else {36rolling_apply_agg_window::<MeanWindow<T>, _, _, _>(37arr.values().as_slice(),38arr.validity().as_ref().unwrap(),39window_size,40min_periods,41det_offsets,42None,43)44}45}464748