pub fn lerp_simd<F>(
a: &ArrayView1<'_, F>,
b: &ArrayView1<'_, F>,
t: F,
) -> Array1<F>where
F: Float + SimdUnifiedOps,Expand description
SIMD-accelerated linear interpolation
Computes element-wise linear interpolation: lerp(a, b, t) = a + t * (b - a) When t=0, returns a; when t=1, returns b.
§Arguments
a- Start valuesb- End valuest- Interpolation parameter (typically in [0, 1])
§Returns
Array of interpolated values
§Examples
use scirs2_core::ndarray::{array, Array1};
use scirs2_core::ndarray_ext::elementwise::lerp_simd;
let a = array![0.0_f32, 0.0, 0.0];
let b = array![10.0_f32, 20.0, 30.0];
// t = 0: returns a
let result = lerp_simd::<f32>(&a.view(), &b.view(), 0.0);
assert!((result[0] - 0.0).abs() < 1e-6);
// t = 1: returns b
let result = lerp_simd::<f32>(&a.view(), &b.view(), 1.0);
assert!((result[0] - 10.0).abs() < 1e-6);
// t = 0.5: midpoint
let result = lerp_simd::<f32>(&a.view(), &b.view(), 0.5);
assert!((result[0] - 5.0).abs() < 1e-6);§Use Cases
- Animation blending
- Color interpolation
- Smooth parameter transitions
- Gradient computation in neural networks