diff options
author | Gael Guennebaud <g.gael@free.fr> | 2011-02-01 10:41:12 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2011-02-01 10:41:12 +0100 |
commit | f4a7679904db08047a6ec5827025972d06e1c649 (patch) | |
tree | c79ee5bf3e5e44e909724ccadd03103b65aaf154 /Eigen/src/Core/Product.h | |
parent | f46ace61d3986688e343324b5064a805c254e338 (diff) |
fix packing criterion
Diffstat (limited to 'Eigen/src/Core/Product.h')
-rw-r--r-- | Eigen/src/Core/Product.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h index d7ba73128..6816c183d 100644 --- a/Eigen/src/Core/Product.h +++ b/Eigen/src/Core/Product.h @@ -483,10 +483,9 @@ template<> struct gemv_selector<OnTheRight,RowMajor,true> * RhsBlasTraits::extractScalarFactor(prod.rhs()); enum { - // FIXME I think here we really have to check for packet_traits<Scalar>::size==1 - // because in this case it is fine to have an inner stride - DirectlyUseRhs = ((packet_traits<RhsScalar>::size==1) || (_ActualRhsType::Flags&ActualPacketAccessBit)) - && (!(_ActualRhsType::Flags & RowMajorBit)) + // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1 + // on, the other hand it is good for the cache to pack the vector anyways... + DirectlyUseRhs = _ActualRhsType::InnerStrideAtCompileTime==1 }; gemv_static_vector_if<RhsScalar,_ActualRhsType::SizeAtCompileTime,_ActualRhsType::MaxSizeAtCompileTime,!DirectlyUseRhs> static_rhs; |