aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/inverse.cpp
diff options
context:
space:
mode:
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() );