Bug fix in inverse_square_root

release/4.3a0
Richard Roberts 2011-11-07 17:31:35 +00:00
parent 26dd292872
commit d57feb54b4
2 changed files with 3 additions and 3 deletions

View File

@ -616,7 +616,7 @@ Matrix inverse_square_root(const Matrix& A) {
Matrix R = RtR(A);
Matrix inv = eye(A.rows());
R.triangularView<Eigen::Upper>().solveInPlace<Eigen::OnTheRight>(inv);
return inv;
return inv.transpose();
}
/* ************************************************************************* */

View File

@ -877,12 +877,12 @@ TEST( matrix, inverse_square_root )
-0.0171880,-0.0101952, 0.0054906, 0.0892453, -0.0059468,
0.0028726, 0.0175868, 0.0047064, -0.0059468, 0.0816517);
expected = trans(Matrix_(5, 5,
expected = Matrix_(5, 5,
3.567126953241796, 0.000000000000000, 0.000000000000000, 0.000000000000000, 0.000000000000000,
-0.590030436566913, 3.362022286742925, 0.000000000000000, 0.000000000000000, 0.000000000000000,
0.618207860252376, -0.168166020746503, 3.253086082942785, 0.000000000000000, 0.000000000000000,
0.683045380655496, 0.283773848115276, -0.099969232183396, 3.433537147891568, 0.000000000000000,
-0.006740136923185, -0.669325697387650, -0.169716689114923, 0.171493059476284, 3.583921085468937));
-0.006740136923185, -0.669325697387650, -0.169716689114923, 0.171493059476284, 3.583921085468937);
EQUALITY(expected, inverse_square_root(M));
}