lag_float

Function lag_float 

Source
pub fn lag_float<T: Copy + Zero>(
    window: FloatAVT<'_, T>,
    n: usize,
) -> FloatArray<T>
Expand description

Accesses values from previous positions in floating-point arrays with IEEE 754 compliance.

Implements SQL LAG() function for floating-point data, retrieving values from earlier positions while maintaining IEEE 754 semantics for special values (NaN, infinity). Critical for time series analysis and numerical sequence processing.

§Parameters

  • window - Float array view containing sequential floating-point data
  • n - Lag offset specifying backward position distance

§Returns

Returns a FloatArray<T> containing:

  • Floating-point values from n positions earlier
  • Zero values for positions with insufficient history
  • Null mask reflecting lag validity and special value handling

§Examples

use minarrow::FloatArray;
use simd_kernels::kernels::window::lag_float;

let arr = FloatArray::<f64>::from_slice(&[1.0, 2.5, 3.14, 4.7]);
let result = lag_float((&arr, 0, arr.len()), 1);