pub fn rolling_product_float<T: Float + Copy + One + Zero>(
window: FloatAVT<'_, T>,
subwindow: usize,
) -> FloatArray<T>Expand description
Computes rolling products over floating-point data with IEEE 754 mathematical semantics.
Performs multiplicative aggregation using incremental computation strategies that maintain numerical precision through careful handling of special values (infinity, NaN, zero) according to IEEE 754 standards.
§Parameters
window- Float array view containing multiplicands for window processingsubwindow- Window size determining number of values to multiply
§Returns
Returns a FloatArray<T> containing:
- Rolling products computed with floating-point precision
- Identity value (1.0) for incomplete window positions
- Comprehensive null mask for validity tracking
§Examples
ⓘ
use minarrow::FloatArray;
use simd_kernels::kernels::window::rolling_product_float;
let arr = FloatArray::<f64>::from_slice(&[1.5, 2.0, 3.0, 4.0]);
let result = rolling_product_float((&arr, 0, arr.len()), 2);