lerp_simd

Function lerp_simd 

Source
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 values
  • b - End values
  • t - 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