Luna::Simd::catmull_rom_f4

float4 catmull_rom_f4(float4 a, float4 b, float4 c, float4 d, f32 t)

Computes Catmull-Rom spline interpolation on packed single-precision (32-bit) floating-point elements in a, b, c and d using the single-precision (32-bit) floating-point value t, and stores the results in dst.

T0 := (-t^3 + 2 * t^2 - t) * 0.5
T1 := (3 * t^3 - 5 * t^2 + 2) * 0.5
T2 := (-3 * t^3 + 4 * t^2 + t) * 0.5
T3 := (t^3 - t^2) * 0.5
FOR j := 0 to 3
    i := j*32
       dst[i:i+31] := T0 * a[i:i+31] + T1 * b[i:i+31] + T2 * c[i:i+31] + T3 * d[i:i+31]
ENDFOR