diff options
author | 2008-08-23 15:14:20 +0000 | |
---|---|---|
committer | 2008-08-23 15:14:20 +0000 | |
commit | 2120fed849e1d00724694a2c8a041ec5561c750b (patch) | |
tree | 984bb801927df2aa12cf866fc76465466bd40eb6 /test/array.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/array.cpp')
-rw-r--r-- | test/array.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/test/array.cpp b/test/array.cpp index eb78322c2..25387d0cd 100644 --- a/test/array.cpp +++ b/test/array.cpp @@ -32,17 +32,18 @@ template<typename MatrixType> void scalarAdd(const MatrixType& m) */ typedef typename MatrixType::Scalar Scalar; + typedef typename NumTraits<Scalar>::Real RealScalar; typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> VectorType; int rows = m.rows(); int cols = m.cols(); - MatrixType m1 = MatrixType::Random(rows, cols), - m2 = MatrixType::Random(rows, cols), + MatrixType m1 = test_random_matrix<MatrixType>(rows, cols), + m2 = test_random_matrix<MatrixType>(rows, cols), m3(rows, cols); - Scalar s1 = ei_random<Scalar>(), - s2 = ei_random<Scalar>(); + Scalar s1 = test_random<Scalar>(), + s2 = test_random<Scalar>(); VERIFY_IS_APPROX(m1.cwise() + s1, s1 + m1.cwise()); VERIFY_IS_APPROX(m1.cwise() + s1, MatrixType::Constant(rows,cols,s1) + m1); @@ -56,7 +57,8 @@ template<typename MatrixType> void scalarAdd(const MatrixType& m) VERIFY_IS_APPROX(m1.colwise().sum().sum(), m1.sum()); VERIFY_IS_APPROX(m1.rowwise().sum().sum(), m1.sum()); - VERIFY_IS_NOT_APPROX((m1.rowwise().sum()*2).sum(), m1.sum()); + if (!ei_isApprox(m1.sum(), (m1+m2).sum())) + VERIFY_IS_NOT_APPROX(((m1+m2).rowwise().sum()).sum(), m1.sum()); VERIFY_IS_APPROX(m1.colwise().sum(), m1.colwise().redux(ei_scalar_sum_op<Scalar>())); } |