aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Transpose.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2010-01-05 12:46:07 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2010-01-05 12:46:07 +0100
commit90d2ae7fec1000c244472c94af24126c5f2ca2a2 (patch)
tree36ca8dca7e3a8fc1707f642b491609bbb85b3b06 /Eigen/src/Core/Transpose.h
parent37851cfe11693a84636b350f5c9fb0ccf993e838 (diff)
fix aliasing detection
Diffstat (limited to 'Eigen/src/Core/Transpose.h')
-rw-r--r--Eigen/src/Core/Transpose.h9
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)