fix flag and cost computations for nested expressions

This commit is contained in:
Gael Guennebaud
2008-05-01 18:58:30 +00:00
parent 5588def0cf
commit ef5b20bc50
7 changed files with 43 additions and 19 deletions

View File

@@ -60,13 +60,15 @@ template<int Mode, typename MatrixType>
struct ei_traits<Triangular<Mode, MatrixType> >
{
typedef typename MatrixType::Scalar Scalar;
typedef typename ei_nested<MatrixType>::type MatrixTypeNested;
typedef typename ei_unref<MatrixTypeNested>::type _MatrixTypeNested;
enum {
RowsAtCompileTime = MatrixType::RowsAtCompileTime,
ColsAtCompileTime = MatrixType::ColsAtCompileTime,
MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
Flags = MatrixType::Flags & (~(VectorizableBit | Like1DArrayBit)) | Mode,
CoeffReadCost = MatrixType::CoeffReadCost
Flags = _MatrixTypeNested::Flags & (~(VectorizableBit | Like1DArrayBit)) | Mode,
CoeffReadCost = _MatrixTypeNested::CoeffReadCost
};
};