rolling_product_float

Function rolling_product_float 

Source
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 processing
  • subwindow - 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);