From f04e559dc28b642ac7daa3a91e3bf782b7ed1852 Mon Sep 17 00:00:00 2001 From: frohlich Date: Fri, 27 Feb 2009 05:18:31 +0000 Subject: [PATCH] Initialize uninitialized variables. Adapt the precision bounds to what matches the expectations of IEEE math. Modified Files: SGMathTest.cxx --- simgear/math/SGMathTest.cxx | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/simgear/math/SGMathTest.cxx b/simgear/math/SGMathTest.cxx index acbdcb52..aeedc7a9 100644 --- a/simgear/math/SGMathTest.cxx +++ b/simgear/math/SGMathTest.cxx @@ -174,16 +174,22 @@ MatrixTest(void) // Create some test matrix SGVec3 v0(2, 7, 17); SGQuat q0 = SGQuat::fromAngleAxis(SGMisc::pi(), normalize(v0)); - SGMatrix m0; + SGMatrix m0 = SGMatrix::unit(); m0.postMultTranslate(v0); m0.postMultRotate(q0); - // Check the tqo forms of the inverse for that kind of special matrix - SGMatrix m1, m2; - invert(m1, m0); - m2 = transNeg(m0); + // Check the three forms of the inverse for that kind of special matrix + SGMatrix m1 = SGMatrix::unit(); + m1.preMultTranslate(-v0); + m1.preMultRotate(inverse(q0)); + + SGMatrix m2, m3; + invert(m2, m0); + m3 = transNeg(m0); if (!equivalent(m1, m2)) return false; + if (!equivalent(m2, m3)) + return false; // Check matrix multiplication and inversion if (!equivalent(m0*m1, SGMatrix::unit())) @@ -194,6 +200,10 @@ MatrixTest(void) return false; if (!equivalent(m2*m0, SGMatrix::unit())) return false; + if (!equivalent(m0*m3, SGMatrix::unit())) + return false; + if (!equivalent(m3*m0, SGMatrix::unit())) + return false; return true; } @@ -202,10 +212,10 @@ bool GeodesyTest(void) { // We know that the values are on the order of 1 - double epsDeg = 10*SGLimits::epsilon(); + double epsDeg = 10*360*SGLimits::epsilon(); // For the altitude values we need to tolerate relative errors in the order // of the radius - double epsM = 1e6*SGLimits::epsilon(); + double epsM = 10*6e6*SGLimits::epsilon(); SGVec3 cart0, cart1; SGGeod geod0, geod1; -- 2.39.5