diff options
author | 2013-11-25 15:20:31 +0100 | |
---|---|---|
committer | 2013-11-25 15:20:31 +0100 | |
commit | 230f5c3aa91b843cf1864258386e3902ffb6370a (patch) | |
tree | a08684f118e1a38de8b910a32f2ee877eab1c445 /Eigen/src/Core/util/XprHelper.h | |
parent | c550a0e6340e432c87351638561f5b96f32d5d89 (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.h | 10 |
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 |