aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Assign.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2013-11-07 16:38:14 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2013-11-07 16:38:14 +0100
commit76c230a84d4857722e4a72e9007302a504af0fb7 (patch)
tree0565d86ff27ff165bab2e8b0b6c11876a6394bc1 /Eigen/src/Core/Assign.h
parent57327cc2d5aab1cc51dd1308bd0d000f2ccb623c (diff)
Add an option to test evaluators globally
Diffstat (limited to 'Eigen/src/Core/Assign.h')
-rw-r--r--Eigen/src/Core/Assign.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/Eigen/src/Core/Assign.h b/Eigen/src/Core/Assign.h
index 906adcf82..c0b4bbfe0 100644
--- a/Eigen/src/Core/Assign.h
+++ b/Eigen/src/Core/Assign.h
@@ -504,12 +504,27 @@ EIGEN_STRONG_INLINE Derived& DenseBase<Derived>
EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Derived,OtherDerived)
EIGEN_STATIC_ASSERT(SameType,YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+#ifdef EIGEN_TEST_EVALUATORS
+
+#ifdef EIGEN_DEBUG_ASSIGN
+ internal::copy_using_evaluator_traits<Derived, OtherDerived>::debug();
+#endif
+ eigen_assert(rows() == other.rows() && cols() == other.cols());
+// internal::copy_using_evaluator_impl<Derived, OtherDerived, int(SameType) ? int(internal::copy_using_evaluator_traits<Derived, OtherDerived>::Traversal)
+// : int(InvalidTraversal)>::run(derived(),other.derived());
+ internal::call_dense_assignment_loop(derived(),other.derived());
+
+#else // EIGEN_TEST_EVALUATORS
+
#ifdef EIGEN_DEBUG_ASSIGN
internal::assign_traits<Derived, OtherDerived>::debug();
#endif
eigen_assert(rows() == other.rows() && cols() == other.cols());
- internal::assign_impl<Derived, OtherDerived, int(SameType) ? int(internal::assign_traits<Derived, OtherDerived>::Traversal)
- : int(InvalidTraversal)>::run(derived(),other.derived());
+ internal::assign_impl<Derived, OtherDerived, int(SameType) ? int(internal::copy_using_evaluator_traits<Derived, OtherDerived>::Traversal)
+ : int(InvalidTraversal)>::run(derived(),other.derived());
+
+#endif // EIGEN_TEST_EVALUATORS
+
#ifndef EIGEN_NO_DEBUG
checkTransposeAliasing(other.derived());
#endif