Path: blob/main/crates/polars-plan/src/plans/aexpr/function_expr/cum.rs
7889 views
use super::*;12pub(super) mod dtypes {3use DataType::*;4use polars_core::utils::materialize_dyn_int;56use super::*;78pub fn cum_sum(dt: &DataType) -> DataType {9if dt.is_logical() {10dt.clone()11} else {12match dt {13Boolean => UInt32,14Int32 => Int32,15Int128 => Int128,16UInt32 => UInt32,17UInt64 => UInt64,18#[cfg(feature = "dtype-f16")]19Float16 => Float16,20Float32 => Float32,21Float64 => Float64,22Unknown(kind) => match kind {23UnknownKind::Int(v) => cum_sum(&materialize_dyn_int(*v).dtype()),24UnknownKind::Float => Float64,25_ => dt.clone(),26},27_ => Int64,28}29}30}3132pub fn cum_prod(dt: &DataType) -> DataType {33match dt {34Boolean => Int64,35UInt64 => UInt64,36Int128 => Int128,37#[cfg(feature = "dtype-f16")]38Float16 => Float16,39Float32 => Float32,40Float64 => Float64,41_ => Int64,42}43}44}454647