aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-03-12 18:14:08 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-03-12 18:14:08 +0100
commitf74ed345395b57f299d597c835177222120d9992 (patch)
treece03865e524c8eca0714cf4267082061e021ef18 /Eigen
parent5e26b7cf9dc23bbcaaf28f1416a6e3d8da4bdac0 (diff)
Fix regressions in redux_evaluator flags and evaluator<Block> flags
Diffstat (limited to 'Eigen')
-rw-r--r--Eigen/src/Core/Block.h2
-rw-r--r--Eigen/src/Core/CoreEvaluators.h26
-rw-r--r--Eigen/src/Core/Redux.h2
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,