Eliminated additional step for division operations.
authorJarl Gullberg <jarl.gullberg@gmail.com>
Fri, 2 Jun 2017 17:32:22 +0000 (19:32 +0200)
committerJarl Gullberg <jarl.gullberg@gmail.com>
Fri, 2 Jun 2017 17:32:22 +0000 (19:32 +0200)
src/OpenTK/Math/Vector2.cs
src/OpenTK/Math/Vector2d.cs
src/OpenTK/Math/Vector3.cs
src/OpenTK/Math/Vector3d.cs
src/OpenTK/Math/Vector4.cs
src/OpenTK/Math/Vector4d.cs

index d7f8142..463296a 100644 (file)
@@ -623,7 +623,7 @@ namespace OpenTK
         /// <param name="result">Result of the operation.</param>
         public static void Divide(ref Vector2 vector, float scale, out Vector2 result)
         {
-            Multiply(ref vector, 1 / scale, out result);
+            result = vector / scale;
         }
 
         /// <summary>
@@ -1074,7 +1074,7 @@ namespace OpenTK
             vec.Y *= scale.Y;
             return vec;
         }
-               
+
         /// <summary>
         /// Divides the specified instance by a scalar.
         /// </summary>
@@ -1083,9 +1083,8 @@ namespace OpenTK
         /// <returns>Result of the division.</returns>
         public static Vector2 operator /(Vector2 vec, float scale)
         {
-            float mult = 1.0f / scale;
-            vec.X *= mult;
-            vec.Y *= mult;
+            vec.X /= scale;
+            vec.Y /= scale;
             return vec;
         }
 
index 3993aaf..8282265 100644 (file)
@@ -541,7 +541,7 @@ namespace OpenTK
         /// <param name="result">Result of the operation.</param>
         public static void Divide(ref Vector2d vector, double scale, out Vector2d result)
         {
-            Multiply(ref vector, 1 / scale, out result);
+            result = vector / scale;
         }
 
         /// <summary>
@@ -936,7 +936,7 @@ namespace OpenTK
             vec.Y *= scale.Y;
             return vec;
         }
-               
+
         /// <summary>
         /// Divides an instance by a scalar.
         /// </summary>
@@ -945,9 +945,8 @@ namespace OpenTK
         /// <returns>The result of the operation.</returns>
         public static Vector2d operator /(Vector2d vec, double f)
         {
-            double mult = 1.0 / f;
-            vec.X *= mult;
-            vec.Y *= mult;
+            vec.X /= f;
+            vec.Y /= f;
             return vec;
         }
 
index 000a369..d47bfdf 100644 (file)
@@ -629,7 +629,7 @@ namespace OpenTK
         /// <param name="result">Result of the operation.</param>
         public static void Divide(ref Vector3 vector, float scale, out Vector3 result)
         {
-            Multiply(ref vector, 1 / scale, out result);
+            result = vector / scale;
         }
 
         /// <summary>
@@ -1270,10 +1270,10 @@ namespace OpenTK
         {
             Vector4 result;
 
-            result.X = 
-                vector.X * worldViewProjection.M11 + 
-                vector.Y * worldViewProjection.M21 + 
-                vector.Z * worldViewProjection.M31 + 
+            result.X =
+                vector.X * worldViewProjection.M11 +
+                vector.Y * worldViewProjection.M21 +
+                vector.Z * worldViewProjection.M31 +
                 worldViewProjection.M41;
 
             result.Y =
@@ -1574,10 +1574,9 @@ namespace OpenTK
         /// <returns>The result of the calculation.</returns>
         public static Vector3 operator /(Vector3 vec, float scale)
         {
-            float mult = 1.0f / scale;
-            vec.X *= mult;
-            vec.Y *= mult;
-            vec.Z *= mult;
+            vec.X /= scale;
+            vec.Y /= scale;
+            vec.Z /= scale;
             return vec;
         }
 
index 556b9ab..d05a0c6 100644 (file)
@@ -627,7 +627,7 @@ namespace OpenTK
         /// <param name="result">Result of the operation.</param>
         public static void Divide(ref Vector3d vector, double scale, out Vector3d result)
         {
-            Multiply(ref vector, 1 / scale, out result);
+            result = vector / scale;
         }
 
         /// <summary>
@@ -1372,7 +1372,7 @@ namespace OpenTK
             vec.Z *= scale;
             return vec;
         }
-               
+
         /// <summary>
         /// Component-wise multiplication between the specified instance by a scale vector.
         /// </summary>
@@ -1386,7 +1386,7 @@ namespace OpenTK
             vec.Z *= scale.Z;
             return vec;
         }
-               
+
         /// <summary>
         /// Divides an instance by a scalar.
         /// </summary>
@@ -1395,10 +1395,9 @@ namespace OpenTK
         /// <returns>The result of the calculation.</returns>
         public static Vector3d operator /(Vector3d vec, double scale)
         {
-            double mult = 1 / scale;
-            vec.X *= mult;
-            vec.Y *= mult;
-            vec.Z *= mult;
+            vec.X /= scale;
+            vec.Y /= scale;
+            vec.Z /= scale;
             return vec;
         }
 
index a821031..6ccac39 100644 (file)
@@ -514,11 +514,10 @@ namespace OpenTK
         /// <returns>Result of the division</returns>
         public static Vector4 Div(Vector4 a, float f)
         {
-            float mult = 1.0f / f;
-            a.X *= mult;
-            a.Y *= mult;
-            a.Z *= mult;
-            a.W *= mult;
+            a.X /= f;
+            a.Y /= f;
+            a.Z /= f;
+            a.W /= f;
             return a;
         }
 
@@ -530,11 +529,10 @@ namespace OpenTK
         /// <param name="result">Result of the division</param>
         public static void Div(ref Vector4 a, float f, out Vector4 result)
         {
-            float mult = 1.0f / f;
-            result.X = a.X * mult;
-            result.Y = a.Y * mult;
-            result.Z = a.Z * mult;
-            result.W = a.W * mult;
+            result.X = a.X / f;
+            result.Y = a.Y / f;
+            result.Z = a.Z / f;
+            result.W = a.W / f;
         }
 
         #endregion
@@ -667,7 +665,7 @@ namespace OpenTK
         /// <param name="result">Result of the operation.</param>
         public static void Divide(ref Vector4 vector, float scale, out Vector4 result)
         {
-            Multiply(ref vector, 1 / scale, out result);
+            result = vector / scale;
         }
 
         /// <summary>
@@ -1514,7 +1512,7 @@ namespace OpenTK
             vec.W *= scale;
             return vec;
         }
-        
+
         /// <summary>
         /// Component-wise multiplication between the specified instance by a scale vector.
         /// </summary>
@@ -1577,11 +1575,10 @@ namespace OpenTK
         /// <returns>The result of the calculation.</returns>
         public static Vector4 operator /(Vector4 vec, float scale)
         {
-            float mult = 1.0f / scale;
-            vec.X *= mult;
-            vec.Y *= mult;
-            vec.Z *= mult;
-            vec.W *= mult;
+            vec.X /= scale;
+            vec.Y /= scale;
+            vec.Z /= scale;
+            vec.W /= scale;
             return vec;
         }
 
index facc329..427291c 100644 (file)
@@ -175,7 +175,7 @@ namespace OpenTK
         #endregion
 
         #region Public Members
-        
+
         /// <summary>
         /// Gets or sets the value at the index of the Vector.
         /// </summary>
@@ -669,7 +669,7 @@ namespace OpenTK
         /// <param name="result">Result of the operation.</param>
         public static void Divide(ref Vector4d vector, double scale, out Vector4d result)
         {
-            Multiply(ref vector, 1 / scale, out result);
+            result = vector / scale;
         }
 
         /// <summary>
@@ -1493,7 +1493,7 @@ namespace OpenTK
             vec.W *= scale;
             return vec;
         }
-               
+
         /// <summary>
         /// Component-wise multiplication between the specified instance by a scale vector.
         /// </summary>
@@ -1517,11 +1517,10 @@ namespace OpenTK
         /// <returns>The result of the calculation.</returns>
         public static Vector4d operator /(Vector4d vec, double scale)
         {
-            double mult = 1 / scale;
-            vec.X *= mult;
-            vec.Y *= mult;
-            vec.Z *= mult;
-            vec.W *= mult;
+            vec.X /= scale;
+            vec.Y /= scale;
+            vec.Z /= scale;
+            vec.W /= scale;
             return vec;
         }