diff options
author | Gael Guennebaud <g.gael@free.fr> | 2008-08-23 15:14:20 +0000 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2008-08-23 15:14:20 +0000 |
commit | 2120fed849e1d00724694a2c8a041ec5561c750b (patch) | |
tree | 984bb801927df2aa12cf866fc76465466bd40eb6 /test/inverse.cpp | |
parent | 312013a08911816e287425d598e55e5d356e0ac5 (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.cpp | 10 |
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() ); |