aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/SparseCore/SparseDenseProduct.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2012-01-27 09:39:36 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2012-01-27 09:39:36 +0100
commit27d222d23ee3d8cdaf1471b93053431cd0742df3 (patch)
tree5fb24e8952a10a12e44beb5c499c94cca7ebbeb7 /Eigen/src/SparseCore/SparseDenseProduct.h
parented244e9c1ad18ea77596e6ece2fec3b02529d369 (diff)
honor nested types in dense * sparse
Diffstat (limited to 'Eigen/src/SparseCore/SparseDenseProduct.h')
-rw-r--r--Eigen/src/SparseCore/SparseDenseProduct.h13
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());