Skip to main content

Module rolling

Module rolling 

Source
Expand description

Rolling window intrinsics — partial migration to typed marshal layer.

Per the intrinsics-typed-CC migration’s partial-migration pattern (see docs/defections.md 2026-05-07 intrinsics-typed-CC entry’s partial- migration subsection), 3 of 6 rolling intrinsics migrate to register_typed_fn_N typed entries via create_rolling_intrinsics_module. 3 polymorphic-input intrinsics remain as legacy IntrinsicFn bodies pending the M1-split sub-decision extension (per-element-type intrinsics for polymorphic-input cases; cross-crate compiler change). rolling_sum’s i64 fast path additionally uses a validity-bitmap return (option_i64_vec_to_nb); migrating it joins array_transforms::diff in the validity-aware-return-variant sub-question.

Migrated entries take Arc<Vec<f64>> (boxed dense f64 storage)

  • i64 (window/period scalar) and return ConcreteReturn::ArrayF64(Vec<f64>) per the dispatcher’s TypedReturn → slot push projection.

These functions implement efficient O(n) algorithms for rolling window operations, critical for technical indicators like SMA, Bollinger Bands, etc. Uses SIMD acceleration via the simd_rolling module.

Functions§

create_rolling_intrinsics_module
Create the rolling intrinsics module with 3 typed-marshal entry points (__intrinsic_rolling_mean, __intrinsic_rolling_std, __intrinsic_ema). The 3 polymorphic-input intrinsics (rolling_sum, rolling_min, rolling_max) remain as legacy IntrinsicFn bodies in this module until the M1-split sub-decision extension lands.
intrinsic_rolling_max
Intrinsic: Rolling maximum. See intrinsic_rolling_sum for the Phase 1.B deferral rationale.
intrinsic_rolling_min
Intrinsic: Rolling minimum. See intrinsic_rolling_sum for the Phase 1.B deferral rationale.
intrinsic_rolling_sum
Intrinsic: Rolling sum over a window.