#![allow(unsafe_op_in_unsafe_fn)]
use super::super::sum::SumWindow;
use super::*;
pub fn rolling_sum<T>(
arr: &PrimitiveArray<T>,
window_size: usize,
min_periods: usize,
center: bool,
weights: Option<&[f64]>,
_params: Option<RollingFnParams>,
) -> ArrayRef
where
T: NativeType
+ IsFloat
+ PartialOrd
+ Add<Output = T>
+ Sub<Output = T>
+ SubAssign
+ AddAssign
+ NumCast,
{
if weights.is_some() {
panic!("weights not yet supported on array with null values")
}
if center {
rolling_apply_agg_window::<SumWindow<T, T>, _, _, _>(
arr.values().as_slice(),
arr.validity().as_ref().unwrap(),
window_size,
min_periods,
det_offsets_center,
None,
)
} else {
rolling_apply_agg_window::<SumWindow<T, T>, _, _, _>(
arr.values().as_slice(),
arr.validity().as_ref().unwrap(),
window_size,
min_periods,
det_offsets,
None,
)
}
}