Browse Source

Optimized quaternion log function #554

Christophe Riccio 9 years ago
parent
commit
0675da467a
2 changed files with 5 additions and 2 deletions
  1. 2 2
      glm/gtx/quaternion.inl
  2. 3 0
      readme.md

+ 2 - 2
glm/gtx/quaternion.inl

@@ -71,9 +71,9 @@ namespace glm
 		}
 		else
 		{
-			T QuatLen = sqrt(Vec3Len * Vec3Len + q.w * q.w);
 			T t = atan(Vec3Len, T(q.w)) / Vec3Len;
-			return tquat<T, P>(log(QuatLen), t * q.x, t * q.y, t * q.z);
+			T QuatLen2 = Vec3Len * Vec3Len + q.w * q.w;
+			return tquat<T, P>(static_cast<T>(0.5) * log(QuatLen2), t * q.x, t * q.y, t * q.z);
 		}
 	}
 

+ 3 - 0
readme.md

@@ -52,6 +52,9 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
 ## Release notes
 
 #### [GLM 0.9.8.1](https://github.com/g-truc/glm/tree/0.9.8) - 2016-XX-XX
+##### Improvements:
+- Optimized quaternion log function #554
+
 ##### Fixes:
 - Fixed GCC warning filtering, replaced -pedantic by -Wpedantic
 - Fixed SIMD faceforward bug. #549