big refactoring in Product.h:

- all specialized products now inherits ProductBase
- the default product evaluated by Assign is still here,
  but it is currently enabled for small fixed sizes only
- => this significantly speed up compilation for large matrices
- I left the OuterProduct specialization empty as an exercise...
This commit is contained in:
Gael Guennebaud
2009-08-05 15:23:35 +02:00
parent 014c581a5b
commit 88147e0a91
7 changed files with 479 additions and 540 deletions

View File

@@ -339,13 +339,6 @@ class Matrix
return Base::operator=(func);
}
template<typename ProductDerived, typename Lhs, typename Rhs>
EIGEN_STRONG_INLINE Matrix& operator=(const ProductBase<ProductDerived,Lhs,Rhs>& other)
{
resize(other.rows(), other.cols());
return Base::operator=(other);
}
using Base::operator +=;
using Base::operator -=;
using Base::operator *=;
@@ -452,14 +445,6 @@ class Matrix
other.evalTo(*this);
}
template<typename ProductDerived, typename Lhs, typename Rhs>
EIGEN_STRONG_INLINE Matrix(const ProductBase<ProductDerived,Lhs,Rhs>& other)
{
_check_template_params();
resize(other.rows(), other.cols());
other.evalTo(*this);
}
/** Destructor */
inline ~Matrix() {}