diff options
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() ); |