- introduce Part and Extract classes, splitting and extending the former

Triangular class
- full meta-unrolling in Part
- move inverseProduct() to MatrixBase
- compilation fix in ProductWIP: introduce a meta-selector to only do
  direct access on types that support it.
- phase out the old Product, remove the WIP_DIRTY stuff.
- misc renaming and fixes
This commit is contained in:
Benoit Jacob
2008-05-27 05:47:30 +00:00
parent 8f1fc80a77
commit 953efdbfe7
22 changed files with 530 additions and 434 deletions

View File

@@ -71,11 +71,11 @@ template<typename Derived>
typename ei_traits<Derived>::Scalar MatrixBase<Derived>::determinant() const
{
assert(rows() == cols());
if (Derived::Flags & (NullLowerBit | NullUpperBit))
if (Derived::Flags & (UpperTriangularBit | LowerTriangularBit))
{
if (Derived::Flags & UnitDiagBit)
return 1;
else if (Derived::Flags & NullDiagBit)
else if (Derived::Flags & ZeroDiagBit)
return 0;
else
return derived().diagonal().redux(ei_scalar_product_op<Scalar>());