* Draft of a eigenvalues solver

(does not support complex and does not re-use the QR decomposition)

* Rewrite the cache friendly product to have only one instance per scalar type !
  This significantly speeds up compilation time and reduces executable size.
  The current drawback is that some trivial expressions might be
  evaluated like conjugate or negate.

* Renamed "cache optimal" to "cache friendly"

* Added the ability to directly access matrix data of some expressions via:
  - the stride()/_stride() methods
  - DirectAccessBit flag (replace ReferencableBit)
This commit is contained in:
Gael Guennebaud
2008-05-12 10:23:09 +00:00
parent dca416cace
commit 45cda6704a
15 changed files with 1286 additions and 364 deletions

View File

@@ -100,6 +100,14 @@ class Matrix : public MatrixBase<Matrix<_Scalar, _Rows, _Cols, _Flags, _MaxRows,
int _rows() const { return m_storage.rows(); }
int _cols() const { return m_storage.cols(); }
int _stride(void) const
{
if(Flags & RowMajorBit)
return m_storage.cols();
else
return m_storage.rows();
}
const Scalar& _coeff(int row, int col) const
{
if(Flags & RowMajorBit)