aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/vectorwiseop.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2015-10-28 11:42:14 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2015-10-28 11:42:14 +0100
commit77ff3386b7d28c68c9e277e60f285ae1b3124b47 (patch)
treea9e5cefe36dd832d1d1d7e0dbdcedf1c8c1b5b56 /test/vectorwiseop.cpp
parent827d8a9bad6f6c8a8e0211358b51c60db18a2cfb (diff)
Refactoring of the cost model:
- Dynamic is now an invalid value - introduce a HugeCost constant to be used for runtime-cost values or arbitrarily huge cost - add sanity checks for cost values: must be >=0 and not too large This change provides several benefits: - it fixes shortcoming is some cost computation where the Dynamic case was not properly handled. - it simplifies cost computation logic, and should avoid future similar shortcomings. - it allows to distinguish between different level of dynamic/huge/infinite cost - it should enable further simplifications in the computation of costs (save compilation time)
Diffstat (limited to 'test/vectorwiseop.cpp')
-rw-r--r--test/vectorwiseop.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/test/vectorwiseop.cpp b/test/vectorwiseop.cpp
index ddd9f8389..529f4298b 100644
--- a/test/vectorwiseop.cpp
+++ b/test/vectorwiseop.cpp
@@ -217,6 +217,11 @@ template<typename MatrixType> void vectorwiseop_matrix(const MatrixType& m)
VERIFY_IS_APPROX( (m1 * m1.transpose()).colwise().sum(), m1m1.colwise().sum());
Matrix<Scalar,1,MatrixType::RowsAtCompileTime> tmp(rows);
VERIFY_EVALUATION_COUNT( tmp = (m1 * m1.transpose()).colwise().sum(), (MatrixType::RowsAtCompileTime==Dynamic ? 1 : 0));
+
+ m2 = m1.rowwise() - (m1.colwise().sum()/m1.rows()).eval();
+ m1 = m1.rowwise() - (m1.colwise().sum()/m1.rows());
+ VERIFY_IS_APPROX( m1, m2 );
+ VERIFY_EVALUATION_COUNT( m2 = (m1.rowwise() - m1.colwise().sum()/m1.rows()), (MatrixType::RowsAtCompileTime==Dynamic ? 1 : 0) );
}
void test_vectorwiseop()