From 8c18186b3b8d943e79526a932e652d0d1f8abf7c Mon Sep 17 00:00:00 2001 From: strangezak Date: Tue, 31 Aug 2021 09:28:02 -0700 Subject: [PATCH] Removed Unnecessary Square Root from InverseQuaternion. Closes #136 --- HandmadeMath.h | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/HandmadeMath.h b/HandmadeMath.h index 746b001..cbe2ccb 100644 --- a/HandmadeMath.h +++ b/HandmadeMath.h @@ -3106,21 +3106,15 @@ COVERAGE(HMM_InverseQuaternion, 1) hmm_quaternion HMM_PREFIX(InverseQuaternion)(hmm_quaternion Left) { ASSERT_COVERED(HMM_InverseQuaternion); - - hmm_quaternion Conjugate; + hmm_quaternion Result; - float Norm = 0; - float NormSquared = 0; - Conjugate.X = -Left.X; - Conjugate.Y = -Left.Y; - Conjugate.Z = -Left.Z; - Conjugate.W = Left.W; + Result.X = -Left.X; + Result.Y = -Left.Y; + Result.Z = -Left.Z; + Result.W = Left.W; - Norm = HMM_PREFIX(SquareRootF)(HMM_PREFIX(DotQuaternion)(Left, Left)); - NormSquared = Norm * Norm; - - Result = HMM_PREFIX(DivideQuaternionF)(Conjugate, NormSquared); + Result = HMM_PREFIX(DivideQuaternionF)(Result, (HMM_PREFIX(DotQuaternion)(Left, Left))); return (Result); }