Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Lerp()

static Vector128< float > System.Numerics.VectorMath.Lerp ( Vector128< float > a,
Vector128< float > b,
Vector128< float > t )
inlinestatic

Definition at line 50 of file VectorMath.cs.

51 {
53 {
54 }
55 if (Fma.IsSupported)
56 {
57 return Fma.MultiplyAdd(Sse.Subtract(b, a), t, a);
58 }
59 if (Sse.IsSupported)
60 {
61 return Sse.Add(Sse.Multiply(a, Sse.Subtract(Vector128.Create(1f), t)), Sse.Multiply(b, t));
62 }
63 throw new PlatformNotSupportedException();
64 }
static Vector128< byte > Create(byte value)
Definition Vector128.cs:138
static Vector128< float > MultiplyAdd(Vector128< float > a, Vector128< float > b, Vector128< float > c)
Definition Fma.cs:17
static new bool IsSupported
Definition Fma.cs:15
static new bool IsSupported
Definition Sse.cs:30
static Vector128< float > Multiply(Vector128< float > left, Vector128< float > right)
Definition Sse.cs:322
static Vector128< float > Add(Vector128< float > left, Vector128< float > right)
Definition Sse.cs:32
static Vector128< float > Subtract(Vector128< float > left, Vector128< float > right)
Definition Sse.cs:442

References System.Runtime.Intrinsics.X86.Sse.Add(), System.Runtime.Intrinsics.Vector128< T >.Create(), System.Runtime.Intrinsics.Arm.AdvSimd.IsSupported, System.Runtime.Intrinsics.X86.Fma.IsSupported, System.Runtime.Intrinsics.X86.Sse.IsSupported, System.Runtime.Intrinsics.X86.Sse.Multiply(), System.Runtime.Intrinsics.X86.Fma.MultiplyAdd(), and System.Runtime.Intrinsics.X86.Sse.Subtract().

Referenced by System.Numerics.Matrix4x4.Lerp().