diff options
author | Gael Guennebaud <g.gael@free.fr> | 2012-01-27 09:39:36 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2012-01-27 09:39:36 +0100 |
commit | 27d222d23ee3d8cdaf1471b93053431cd0742df3 (patch) | |
tree | 5fb24e8952a10a12e44beb5c499c94cca7ebbeb7 /Eigen/src/SparseCore/SparseDenseProduct.h | |
parent | ed244e9c1ad18ea77596e6ece2fec3b02529d369 (diff) |
honor nested types in dense * sparse
Diffstat (limited to 'Eigen/src/SparseCore/SparseDenseProduct.h')
-rw-r--r-- | Eigen/src/SparseCore/SparseDenseProduct.h | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/Eigen/src/SparseCore/SparseDenseProduct.h b/Eigen/src/SparseCore/SparseDenseProduct.h index fff97ccd1..b372853dc 100644 --- a/Eigen/src/SparseCore/SparseDenseProduct.h +++ b/Eigen/src/SparseCore/SparseDenseProduct.h @@ -163,12 +163,10 @@ class SparseTimeDenseProduct template<typename Dest> void scaleAndAddTo(Dest& dest, Scalar alpha) const { - typedef typename internal::remove_all<Lhs>::type _Lhs; - typedef typename internal::remove_all<Rhs>::type _Rhs; - typedef typename _Lhs::InnerIterator LhsInnerIterator; + typedef typename _LhsNested::InnerIterator LhsInnerIterator; enum { - LhsIsRowMajor = (_Lhs::Flags&RowMajorBit)==RowMajorBit, - RhsIsVector = Rhs::ColsAtCompileTime==1 + LhsIsRowMajor = (_LhsNested::Flags&RowMajorBit)==RowMajorBit, + RhsIsVector = _RhsNested::ColsAtCompileTime==1 }; Index j=0; for(j=0; j<m_lhs.outerSize(); ++j) @@ -215,9 +213,8 @@ class DenseTimeSparseProduct template<typename Dest> void scaleAndAddTo(Dest& dest, Scalar alpha) const { - typedef typename internal::remove_all<Rhs>::type _Rhs; - typedef typename _Rhs::InnerIterator RhsInnerIterator; - enum { RhsIsRowMajor = (_Rhs::Flags&RowMajorBit)==RowMajorBit }; + typedef typename _RhsNested::InnerIterator RhsInnerIterator; + enum { RhsIsRowMajor = (_RhsNested::Flags&RowMajorBit)==RowMajorBit }; for(Index j=0; j<m_rhs.outerSize(); ++j) for(RhsInnerIterator i(m_rhs,j); i; ++i) dest.col(RhsIsRowMajor ? i.index() : j) += (alpha*i.value()) * m_lhs.col(RhsIsRowMajor ? j : i.index()); |