diff options
Diffstat (limited to 'Eigen/src/Core/BandMatrix.h')
-rw-r--r-- | Eigen/src/Core/BandMatrix.h | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/Eigen/src/Core/BandMatrix.h b/Eigen/src/Core/BandMatrix.h index 67684eca3..7943e6280 100644 --- a/Eigen/src/Core/BandMatrix.h +++ b/Eigen/src/Core/BandMatrix.h @@ -171,21 +171,15 @@ class BandMatrix : public AnyMatrixBase<BandMatrix<_Scalar,Rows,Cols,Supers,Subs return Block<DataType,1,Dynamic>(m_data, supers()-i, std::max(0,i), 1, diagonalLength(i)); } - template<typename Dest> inline void evalTo(Dest& dst) const - { - dst.resize(rows(),cols()); - dst.setZero(); - dst.diagonal() = diagonal(); - for (int i=1; i<=supers();++i) - dst.diagonal(i) = diagonal(i); - for (int i=1; i<=subs();++i) - dst.diagonal(-i) = diagonal(-i); - } - DenseMatrixType toDenseMatrix() const { DenseMatrixType res(rows(),cols()); - evalTo(res); + res.setZero(); + res.diagonal() = diagonal(); + for (int i=1; i<=supers();++i) + res.diagonal(i) = diagonal(i); + for (int i=1; i<=subs();++i) + res.diagonal(-i) = diagonal(-i); return res; } |