Skip to main content

Module simd

Module simd 

Source
Expand description

Raw Pointer SIMD Operations for JIT

These functions operate directly on f64 data buffers with zero boxing overhead. Signature: simd_op(ptr_a: *const f64, ptr_b: *const f64, len: u64) -> *mut f64

The JIT compiler extracts Series data pointers and lengths, then calls these functions directly for maximum performance.

Functionsยง

jit_simd_add
SIMD-accelerated vector addition: result[i] = a[i] + b[i] Returns a newly allocated buffer that must be freed by the caller
jit_simd_add_scalar
SIMD-accelerated scalar addition: result[i] = a[i] + scalar
jit_simd_div
SIMD-accelerated vector division: result[i] = a[i] / b[i]
jit_simd_div_scalar
SIMD-accelerated scalar division: result[i] = a[i] / scalar
jit_simd_eq
SIMD-accelerated equality: result[i] = (a[i] == b[i]) ? 1.0 : 0.0
jit_simd_free
Free a SIMD result buffer allocated by jit_simd_* functions
jit_simd_gt
SIMD-accelerated greater-than: result[i] = (a[i] > b[i]) ? 1.0 : 0.0
jit_simd_gte
SIMD-accelerated greater-than-or-equal: result[i] = (a[i] >= b[i]) ? 1.0 : 0.0
jit_simd_lt
SIMD-accelerated less-than: result[i] = (a[i] < b[i]) ? 1.0 : 0.0
jit_simd_lte
SIMD-accelerated less-than-or-equal: result[i] = (a[i] <= b[i]) ? 1.0 : 0.0
jit_simd_max
SIMD-accelerated element-wise max: result[i] = max(a[i], b[i])
jit_simd_min
SIMD-accelerated element-wise min: result[i] = min(a[i], b[i])
jit_simd_mul
SIMD-accelerated vector multiplication: result[i] = a[i] * b[i]
jit_simd_mul_scalar
SIMD-accelerated scalar multiplication: result[i] = a[i] * scalar
jit_simd_neq
SIMD-accelerated inequality: result[i] = (a[i] != b[i]) ? 1.0 : 0.0
jit_simd_sub
SIMD-accelerated vector subtraction: result[i] = a[i] - b[i]
jit_simd_sub_scalar
SIMD-accelerated scalar subtraction: result[i] = a[i] - scalar