Optimize Vector4.Lerp (#35525)
authorEgor Bogatov <egorbo@gmail.com>
Mon, 4 May 2020 21:06:17 +0000 (00:06 +0300)
committerGitHub <noreply@github.com>
Mon, 4 May 2020 21:06:17 +0000 (14:06 -0700)
* Optimize Vector4.Lerp

* Implement for Vector2 and Vector4

* Rollback Vector3

src/libraries/System.Private.CoreLib/src/System/Numerics/Vector2.cs
src/libraries/System.Private.CoreLib/src/System/Numerics/Vector4.cs

index dc74961..38b5722 100644 (file)
@@ -207,9 +207,7 @@ namespace System.Numerics
         [MethodImpl(MethodImplOptions.AggressiveInlining)]
         public static Vector2 Lerp(Vector2 value1, Vector2 value2, float amount)
         {
-            return new Vector2(
-                value1.X + (value2.X - value1.X) * amount,
-                value1.Y + (value2.Y - value1.Y) * amount);
+            return value1 + (value2 - value1) * amount;
         }
 
         /// <summary>
index 30dd343..45a9f42 100644 (file)
@@ -209,11 +209,7 @@ namespace System.Numerics
         [MethodImpl(MethodImplOptions.AggressiveInlining)]
         public static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
         {
-            return new Vector4(
-                value1.X + (value2.X - value1.X) * amount,
-                value1.Y + (value2.Y - value1.Y) * amount,
-                value1.Z + (value2.Z - value1.Z) * amount,
-                value1.W + (value2.W - value1.W) * amount);
+            return value1 + (value2 - value1) * amount;
         }
 
         /// <summary>