aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/MatrixBase.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2009-08-15 22:19:29 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2009-08-15 22:19:29 +0200
commit239ada95b7680c75f793086eaa35fe7ec1047204 (patch)
tree88a7f107a3866e1c7f284feb818fbbc2cd22ffa3 /Eigen/src/Core/MatrixBase.h
parenta3e6047c25a4cbc2153974e04fe124c5776a23c0 (diff)
add overloads of lazyAssign to detect common aliasing issue with
transpose and adjoint
Diffstat (limited to 'Eigen/src/Core/MatrixBase.h')
-rw-r--r--Eigen/src/Core/MatrixBase.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/Eigen/src/Core/MatrixBase.h b/Eigen/src/Core/MatrixBase.h
index a554de8e3..6ed96e286 100644
--- a/Eigen/src/Core/MatrixBase.h
+++ b/Eigen/src/Core/MatrixBase.h
@@ -457,6 +457,21 @@ template<typename Derived> class MatrixBase
void transposeInPlace();
const AdjointReturnType adjoint() const;
void adjointInPlace();
+ #ifndef EIGEN_NO_DEBUG
+ template<typename OtherDerived>
+ Derived& lazyAssign(const Transpose<OtherDerived>& other);
+ template<typename DerivedA, typename DerivedB>
+ Derived& lazyAssign(const CwiseBinaryOp<ei_scalar_sum_op<Scalar>,Transpose<DerivedA>,DerivedB>& other);
+ template<typename DerivedA, typename DerivedB>
+ Derived& lazyAssign(const CwiseBinaryOp<ei_scalar_sum_op<Scalar>,DerivedA,Transpose<DerivedB> >& other);
+
+ template<typename OtherDerived>
+ Derived& lazyAssign(const CwiseUnaryOp<ei_scalar_conjugate_op<Scalar>, NestByValue<Eigen::Transpose<OtherDerived> > >& other);
+ template<typename DerivedA, typename DerivedB>
+ Derived& lazyAssign(const CwiseBinaryOp<ei_scalar_sum_op<Scalar>,CwiseUnaryOp<ei_scalar_conjugate_op<Scalar>, NestByValue<Eigen::Transpose<DerivedA> > >,DerivedB>& other);
+ template<typename DerivedA, typename DerivedB>
+ Derived& lazyAssign(const CwiseBinaryOp<ei_scalar_sum_op<Scalar>,DerivedA,CwiseUnaryOp<ei_scalar_conjugate_op<Scalar>, NestByValue<Eigen::Transpose<DerivedB> > > >& other);
+ #endif
RowXpr row(int i);
const RowXpr row(int i) const;