Browse Source

Added fma implementation based on std::fma #969

Christophe Riccio 6 years ago
parent
commit
95b1cdbbfe
2 changed files with 10 additions and 5 deletions
  1. 9 5
      glm/detail/func_common.inl
  2. 1 0
      readme.md

+ 9 - 5
glm/detail/func_common.inl

@@ -737,11 +737,15 @@ namespace detail
 		return reinterpret_cast<vec<L, float, Q>&>(const_cast<vec<L, uint, Q>&>(v));
 	}
 
-	template<typename genType>
-	GLM_FUNC_QUALIFIER genType fma(genType const& a, genType const& b, genType const& c)
-	{
-		return a * b + c;
-	}
+#	if GLM_HAS_CXX11_STL
+		using std::fma;
+#	else
+		template<typename genType>
+		GLM_FUNC_QUALIFIER genType fma(genType const& a, genType const& b, genType const& c)
+		{
+			return a * b + c;
+		}
+#	endif
 
 	template<typename genType>
 	GLM_FUNC_QUALIFIER genType frexp(genType x, int& exp)

+ 1 - 0
readme.md

@@ -57,6 +57,7 @@ glm::mat4 camera(float Translate, glm::vec2 const& Rotate)
 #### Improvements:
 - Improved Neon support with more functions optimized #950
 - Added CMake GLM interface #963
+- Added fma implementation based on std::fma #969
 
 #### Fixes:
 - Fixed equal ULP variation when using negative sign #965