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 datan- 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);