diff options
author | Gael Guennebaud <g.gael@free.fr> | 2014-03-12 18:14:08 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2014-03-12 18:14:08 +0100 |
commit | f74ed345395b57f299d597c835177222120d9992 (patch) | |
tree | ce03865e524c8eca0714cf4267082061e021ef18 /Eigen | |
parent | 5e26b7cf9dc23bbcaaf28f1416a6e3d8da4bdac0 (diff) |
Fix regressions in redux_evaluator flags and evaluator<Block> flags
Diffstat (limited to 'Eigen')
-rw-r--r-- | Eigen/src/Core/Block.h | 2 | ||||
-rw-r--r-- | Eigen/src/Core/CoreEvaluators.h | 26 | ||||
-rw-r--r-- | Eigen/src/Core/Redux.h | 2 |
3 files changed, 15 insertions, 15 deletions
diff --git a/Eigen/src/Core/Block.h b/Eigen/src/Core/Block.h index d92797a98..e0b24e199 100644 --- a/Eigen/src/Core/Block.h +++ b/Eigen/src/Core/Block.h @@ -98,7 +98,7 @@ struct traits<Block<XprType, BlockRows, BlockCols, InnerPanel> > : traits<XprTyp MaskAlignedBit), Flags = Flags0 | FlagsLinearAccessBit | FlagsLvalueBit | FlagsRowMajorBit #else - // FIXME, this traits is rather specialized for dense object... + // FIXME, this traits is rather specialized for dense object and it needs to be cleaned further FlagsLvalueBit = is_lvalue<XprType>::value ? LvalueBit : 0, FlagsRowMajorBit = IsRowMajor ? RowMajorBit : 0, Flags = (traits<XprType>::Flags & DirectAccessBit) | FlagsLvalueBit | FlagsRowMajorBit // FIXME DirectAccessBit should not be handled by expressions diff --git a/Eigen/src/Core/CoreEvaluators.h b/Eigen/src/Core/CoreEvaluators.h index 5f2d742f8..47f50d548 100644 --- a/Eigen/src/Core/CoreEvaluators.h +++ b/Eigen/src/Core/CoreEvaluators.h @@ -756,23 +756,23 @@ struct evaluator<Block<ArgType, BlockRows, BlockCols, InnerPanel> > enum { CoeffReadCost = evaluator<ArgType>::CoeffReadCost, - RowsAtCompileTime = traits<ArgType>::RowsAtCompileTime, - ColsAtCompileTime = traits<ArgType>::ColsAtCompileTime, - MaxRowsAtCompileTime = traits<ArgType>::MaxRowsAtCompileTime, - MaxColsAtCompileTime = traits<ArgType>::MaxColsAtCompileTime, + RowsAtCompileTime = traits<XprType>::RowsAtCompileTime, + ColsAtCompileTime = traits<XprType>::ColsAtCompileTime, + MaxRowsAtCompileTime = traits<XprType>::MaxRowsAtCompileTime, + MaxColsAtCompileTime = traits<XprType>::MaxColsAtCompileTime, - XprTypeIsRowMajor = (int(traits<ArgType>::Flags)&RowMajorBit) != 0, + ArgTypeIsRowMajor = (int(evaluator<ArgType>::Flags)&RowMajorBit) != 0, IsRowMajor = (MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1) ? 1 : (MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1) ? 0 - : XprTypeIsRowMajor, - HasSameStorageOrderAsXprType = (IsRowMajor == XprTypeIsRowMajor), + : ArgTypeIsRowMajor, + HasSameStorageOrderAsArgType = (IsRowMajor == ArgTypeIsRowMajor), InnerSize = IsRowMajor ? int(ColsAtCompileTime) : int(RowsAtCompileTime), - InnerStrideAtCompileTime = HasSameStorageOrderAsXprType - ? int(inner_stride_at_compile_time<XprType>::ret) - : int(outer_stride_at_compile_time<XprType>::ret), - OuterStrideAtCompileTime = HasSameStorageOrderAsXprType - ? int(outer_stride_at_compile_time<XprType>::ret) - : int(inner_stride_at_compile_time<XprType>::ret), + InnerStrideAtCompileTime = HasSameStorageOrderAsArgType + ? int(inner_stride_at_compile_time<ArgType>::ret) + : int(outer_stride_at_compile_time<ArgType>::ret), + OuterStrideAtCompileTime = HasSameStorageOrderAsArgType + ? int(outer_stride_at_compile_time<ArgType>::ret) + : int(inner_stride_at_compile_time<ArgType>::ret), MaskPacketAccessBit = (InnerSize == Dynamic || (InnerSize % packet_traits<Scalar>::size) == 0) && (InnerStrideAtCompileTime == 1) ? PacketAccessBit : 0, diff --git a/Eigen/src/Core/Redux.h b/Eigen/src/Core/Redux.h index b9d59af47..1e2270d34 100644 --- a/Eigen/src/Core/Redux.h +++ b/Eigen/src/Core/Redux.h @@ -351,7 +351,7 @@ public: MaxRowsAtCompileTime = XprType::MaxRowsAtCompileTime, MaxColsAtCompileTime = XprType::MaxColsAtCompileTime, // TODO we should not remove DirectAccessBit and rather find an elegant way to query the alignment offset at runtime from the evaluator - Flags = XprType::Flags & ~DirectAccessBit, + Flags = evaluator<XprType>::Flags & ~DirectAccessBit, IsRowMajor = XprType::IsRowMajor, SizeAtCompileTime = XprType::SizeAtCompileTime, InnerSizeAtCompileTime = XprType::InnerSizeAtCompileTime, |