aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/util/XprHelper.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2013-11-25 15:20:31 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2013-11-25 15:20:31 +0100
commit230f5c3aa91b843cf1864258386e3902ffb6370a (patch)
treea08684f118e1a38de8b910a32f2ee877eab1c445 /Eigen/src/Core/util/XprHelper.h
parentc550a0e6340e432c87351638561f5b96f32d5d89 (diff)
Evaluator: introduce the main Assignment class, add call_assignment to bypass NoAlias and AssumeAliasing, and some bits of cleaning
Diffstat (limited to 'Eigen/src/Core/util/XprHelper.h')
-rw-r--r--Eigen/src/Core/util/XprHelper.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/Eigen/src/Core/util/XprHelper.h b/Eigen/src/Core/util/XprHelper.h
index 195d9e2e1..189928c8f 100644
--- a/Eigen/src/Core/util/XprHelper.h
+++ b/Eigen/src/Core/util/XprHelper.h
@@ -293,6 +293,15 @@ struct transfer_constness
>::type type;
};
+#ifdef EIGEN_TEST_EVALUATORS
+
+// When using evaluators, we never evaluate when assembling the expression!!
+template<typename T, int n=1, typename PlainObject = typename eval<T>::type> struct nested
+{
+ typedef typename ref_selector<T>::type type;
+};
+
+#else
/** \internal Determines how a given expression should be nested into another one.
* For example, when you do a * (b+c), Eigen will determine how the expression b+c should be
* nested into the bigger product expression. The choice is between nesting the expression b+c as-is, or
@@ -339,6 +348,7 @@ template<typename T, int n=1, typename PlainObject = typename eval<T>::type> str
typename ref_selector<T>::type
>::type type;
};
+#endif // EIGEN_TEST_EVALUATORS
template<typename T>
EIGEN_DEVICE_FUNC