added optimized matrix times diagonal matrix product via Diagonal flag shortcut.

This commit is contained in:
Gael Guennebaud
2008-05-31 21:35:11 +00:00
parent 310f7aa096
commit fcf4457b78
8 changed files with 56 additions and 17 deletions

View File

@@ -66,6 +66,7 @@ const unsigned int SelfAdjoint = SelfAdjointBit;
// additional possible values for the Mode parameter of extract()
const unsigned int UnitUpper = UpperTriangularBit | UnitDiagBit;
const unsigned int UnitLower = LowerTriangularBit | UnitDiagBit;
const unsigned int Diagonal = Upper | Lower;

View File

@@ -67,6 +67,7 @@ template<typename Scalar> struct ei_scalar_log_op;
template<typename Scalar> struct ei_scalar_cos_op;
template<typename Scalar> struct ei_scalar_sin_op;
template<typename Scalar> struct ei_scalar_pow_op;
template<typename Scalar> struct ei_scalar_inverse_op;
template<typename Scalar, typename NewType> struct ei_scalar_cast_op;
template<typename Scalar, bool IsVectorizable> struct ei_scalar_multiple_op;
template<typename Scalar> struct ei_scalar_quotient1_op;

View File

@@ -212,8 +212,7 @@ template<typename T, int n=1> struct ei_nested
template<unsigned int Flags> struct ei_are_flags_consistent
{
enum { ret = !( (Flags&UnitDiagBit && Flags&ZeroDiagBit)
|| (Flags&UpperTriangularBit && Flags&LowerTriangularBit) )
enum { ret = !( (Flags&UnitDiagBit && Flags&ZeroDiagBit) )
};
};