#![allow(unsafe_op_in_unsafe_fn)]
use super::super::mean::MeanWindow;
use super::*;
pub fn rolling_mean<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>
+ NumCast
+ AddAssign
+ SubAssign
+ Div<Output = T>,
{
if weights.is_some() {
panic!("weights not yet supported on array with null values")
}
if center {
rolling_apply_agg_window::<MeanWindow<T>, _, _, _>(
arr.values().as_slice(),
arr.validity().as_ref().unwrap(),
window_size,
min_periods,
det_offsets_center,
None,
)
} else {
rolling_apply_agg_window::<MeanWindow<T>, _, _, _>(
arr.values().as_slice(),
arr.validity().as_ref().unwrap(),
window_size,
min_periods,
det_offsets,
None,
)
}
}