diff options
author | Gael Guennebaud <g.gael@free.fr> | 2010-01-05 12:46:07 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2010-01-05 12:46:07 +0100 |
commit | 90d2ae7fec1000c244472c94af24126c5f2ca2a2 (patch) | |
tree | 36ca8dca7e3a8fc1707f642b491609bbb85b3b06 /Eigen/src/Core/Transpose.h | |
parent | 37851cfe11693a84636b350f5c9fb0ccf993e838 (diff) |
fix aliasing detection
Diffstat (limited to 'Eigen/src/Core/Transpose.h')
-rw-r--r-- | Eigen/src/Core/Transpose.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Eigen/src/Core/Transpose.h b/Eigen/src/Core/Transpose.h index fcc07e916..80b056527 100644 --- a/Eigen/src/Core/Transpose.h +++ b/Eigen/src/Core/Transpose.h @@ -299,6 +299,15 @@ inline void MatrixBase<Derived>::adjointInPlace() // The following is to detect aliasing problems in most common cases. +template<typename BinOp,typename NestedXpr> +struct ei_blas_traits<SelfCwiseBinaryOp<BinOp,NestedXpr> > + : ei_blas_traits<NestedXpr> +{ + typedef SelfCwiseBinaryOp<BinOp,NestedXpr> XprType; + static inline const XprType extract(const XprType& x) { return x; } +}; + + template<typename T, int Access=ei_blas_traits<T>::ActualAccess> struct ei_extract_data_selector { static typename T::Scalar* run(const T& m) |