aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/inverse.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2008-08-23 15:14:20 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2008-08-23 15:14:20 +0000
commit2120fed849e1d00724694a2c8a041ec5561c750b (patch)
tree984bb801927df2aa12cf866fc76465466bd40eb6 /test/inverse.cpp
parent312013a08911816e287425d598e55e5d356e0ac5 (diff)
* bug fixes in: Dot, generalized eigen problem, singular matrix detetection in Cholesky
* fix all numerical instabilies in the unit tests, now all tests can be run 2000 times with almost zero failures.
Diffstat (limited to 'test/inverse.cpp')
-rw-r--r--test/inverse.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/test/inverse.cpp b/test/inverse.cpp
index de6b09621..eaa7bfd3f 100644
--- a/test/inverse.cpp
+++ b/test/inverse.cpp
@@ -35,13 +35,21 @@ template<typename MatrixType> void inverse(const MatrixType& m)
int cols = m.cols();
typedef typename MatrixType::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, 1> VectorType;
MatrixType m1 = test_random_matrix<MatrixType>(rows, cols),
- m2 = test_random_matrix<MatrixType>(rows, cols),
+ m2(rows, cols),
mzero = MatrixType::Zero(rows, cols),
identity = MatrixType::Identity(rows, rows);
+ if (ei_is_same_type<RealScalar,float>::ret)
+ {
+ // let's build a more stable to inverse matrix
+ MatrixType a = test_random_matrix<MatrixType>(rows,cols);
+ m1 += m1 * m1.adjoint() + a * a.adjoint();
+ }
+
m2 = m1.inverse();
VERIFY_IS_APPROX(m1, m2.inverse() );