Бранимир Караџић před 5 roky
rodič
revize
0de0fa8ab8
2 změnil soubory, kde provedl 11 přidání a 13 odebrání
  1. 7 12
      include/bx/inline/math.inl
  2. 4 1
      include/bx/math.h

+ 7 - 12
include/bx/inline/math.inl

@@ -291,6 +291,11 @@ namespace bx
 		return _a * _b + _c;
 	}
 
+	inline BX_CONSTEXPR_FUNC float rcp(float _a)
+	{
+		return 1.0f / _a;
+	}
+
 	inline BX_CONST_FUNC float mod(float _a, float _b)
 	{
 		return _a - _b * floor(_a / _b);
@@ -494,22 +499,12 @@ namespace bx
 
 	inline BX_CONSTEXPR_FUNC Vec3 div(const Vec3 _a, const Vec3 _b)
 	{
-		return
-		{
-			_a.x / _b.x,
-			_a.y / _b.y,
-			_a.z / _b.z,
-		};
+		return mul(_a, rcp(_b) );
 	}
 
 	inline BX_CONSTEXPR_FUNC Vec3 div(const Vec3 _a, float _b)
 	{
-		return
-		{
-			_a.x / _b,
-			_a.y / _b,
-			_a.z / _b,
-		};
+		return mul(_a, rcp(_b) );
 	}
 
 	inline BX_CONSTEXPR_FUNC Vec3 mad(const Vec3 _a, const float _b, const Vec3 _c)

+ 4 - 1
include/bx/math.h

@@ -257,6 +257,9 @@ namespace bx
 	///
 	BX_CONSTEXPR_FUNC float mad(float _a, float _b, float _c);
 
+	/// Returns reciprocal of _a.
+	BX_CONSTEXPR_FUNC float rcp(float _a);
+
 	/// Returns the floating-point remainder of the division operation _a/_b.
 	///
 	BX_CONST_FUNC float mod(float _a, float _b);
@@ -369,7 +372,7 @@ namespace bx
 	///
 	BX_CONSTEXPR_FUNC Vec3 max(const Vec3 _a, const Vec3 _b);
 
-	///
+	/// Returns component wise reciprocal of _a.
 	BX_CONSTEXPR_FUNC Vec3 rcp(const Vec3 _a);
 
 	///