Fix CoeffReadCost issues

This commit is contained in:
Gael Guennebaud 2014-03-11 11:47:14 +01:00
parent 5806e73800
commit ae40583965
2 changed files with 10 additions and 7 deletions

View File

@ -60,7 +60,9 @@ class PermutationBase : public EigenBase<Derived>
typedef typename Traits::IndicesType IndicesType; typedef typename Traits::IndicesType IndicesType;
enum { enum {
Flags = Traits::Flags, Flags = Traits::Flags,
#ifndef EIGEN_TEST_EVALUATORS
CoeffReadCost = Traits::CoeffReadCost, CoeffReadCost = Traits::CoeffReadCost,
#endif
RowsAtCompileTime = Traits::RowsAtCompileTime, RowsAtCompileTime = Traits::RowsAtCompileTime,
ColsAtCompileTime = Traits::ColsAtCompileTime, ColsAtCompileTime = Traits::ColsAtCompileTime,
MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime, MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime,
@ -473,8 +475,11 @@ struct traits<PermutationWrapper<_IndicesType> >
ColsAtCompileTime = _IndicesType::SizeAtCompileTime, ColsAtCompileTime = _IndicesType::SizeAtCompileTime,
MaxRowsAtCompileTime = IndicesType::MaxRowsAtCompileTime, MaxRowsAtCompileTime = IndicesType::MaxRowsAtCompileTime,
MaxColsAtCompileTime = IndicesType::MaxColsAtCompileTime, MaxColsAtCompileTime = IndicesType::MaxColsAtCompileTime,
Flags = 0, Flags = 0
#ifndef EIGEN_TEST_EVALUATORS
,
CoeffReadCost = _IndicesType::CoeffReadCost CoeffReadCost = _IndicesType::CoeffReadCost
#endif
}; };
}; };
} }
@ -626,7 +631,9 @@ class Transpose<PermutationBase<Derived> >
typedef typename Derived::DenseMatrixType DenseMatrixType; typedef typename Derived::DenseMatrixType DenseMatrixType;
enum { enum {
Flags = Traits::Flags, Flags = Traits::Flags,
#ifndef EIGEN_TEST_EVALUATORS
CoeffReadCost = Traits::CoeffReadCost, CoeffReadCost = Traits::CoeffReadCost,
#endif
RowsAtCompileTime = Traits::RowsAtCompileTime, RowsAtCompileTime = Traits::RowsAtCompileTime,
ColsAtCompileTime = Traits::ColsAtCompileTime, ColsAtCompileTime = Traits::ColsAtCompileTime,
MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime, MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime,

View File

@ -16,11 +16,7 @@ namespace internal {
template<typename _MatrixType> struct traits<FullPivLU<_MatrixType> > template<typename _MatrixType> struct traits<FullPivLU<_MatrixType> >
: traits<_MatrixType> : traits<_MatrixType>
{ {
typedef traits<_MatrixType> BaseTraits; enum { Flags = 0 };
enum {
Flags = BaseTraits::Flags & RowMajorBit,
CoeffReadCost = Dynamic
};
}; };
} // end namespace internal } // end namespace internal
@ -755,7 +751,7 @@ void FullPivLU<_MatrixType>::_solve_impl(const RhsType &rhs, DstType &dst) const
namespace internal { namespace internal {
#ifdef EIGEN_TEST_EVALUATORS #ifndef EIGEN_TEST_EVALUATORS
template<typename _MatrixType, typename Rhs> template<typename _MatrixType, typename Rhs>
struct solve_retval<FullPivLU<_MatrixType>, Rhs> struct solve_retval<FullPivLU<_MatrixType>, Rhs>
: solve_retval_base<FullPivLU<_MatrixType>, Rhs> : solve_retval_base<FullPivLU<_MatrixType>, Rhs>