constant Diagonal ---> DiagonalBits

introduce ei_is_diagonal to check for it
DiagonalCoeffs ---> Diagonal and allow Index to by Dynamic
-> add MatrixBase::diagonal(int) with unittest and doc
This commit is contained in:
Benoit Jacob
2009-05-10 16:24:39 +00:00
parent eac79b6d2e
commit 9afd1324fd
20 changed files with 256 additions and 203 deletions

View File

@@ -29,7 +29,7 @@ template<typename Lhs, typename Rhs> struct ei_sparse_product_mode
{
enum {
value = ((Lhs::Flags&Diagonal)==Diagonal || (Rhs::Flags&Diagonal)==Diagonal)
value = ei_is_diagonal<Lhs>::ret || ei_is_diagonal<Rhs>::ret
? DiagonalProduct
: (Rhs::Flags&Lhs::Flags&SparseBit)==SparseBit
? SparseTimeSparseProduct