Path: blob/main/crates/polars-compute/src/rolling/nulls/sum.rs
8424 views
#![allow(unsafe_op_in_unsafe_fn)]1use super::super::sum::SumWindow;2use super::*;34pub fn rolling_sum<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+ SubAssign19+ AddAssign20+ NumCast,21{22if weights.is_some() {23panic!("weights not yet supported on array with null values")24}25if center {26rolling_apply_agg_window::<SumWindow<T, T>, _, _, _>(27arr.values().as_slice(),28arr.validity().as_ref().unwrap(),29window_size,30min_periods,31det_offsets_center,32None,33)34} else {35rolling_apply_agg_window::<SumWindow<T, T>, _, _, _>(36arr.values().as_slice(),37arr.validity().as_ref().unwrap(),38window_size,39min_periods,40det_offsets,41None,42)43}44}454647