From 36c478cd6e3220661617001d3d86d5d7de54482a Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Mon, 19 Jan 2009 22:29:28 +0000 Subject: [PATCH] optimize A * v product for A sparse and row major --- Eigen/src/Sparse/SparseProduct.h | 6 +++++- Eigen/src/Sparse/SparseVector.h | 2 +- test/sparse_vector.cpp | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Eigen/src/Sparse/SparseProduct.h b/Eigen/src/Sparse/SparseProduct.h index 06ea703f8..ec4961d9b 100644 --- a/Eigen/src/Sparse/SparseProduct.h +++ b/Eigen/src/Sparse/SparseProduct.h @@ -313,6 +313,7 @@ template Derived& MatrixBase::lazyAssign(const SparseProduct& product) { typedef typename ei_cleantype::type _Lhs; + typedef typename ei_cleantype::type _Rhs; typedef typename _Lhs::InnerIterator LhsInnerIterator; enum { LhsIsRowMajor = (_Lhs::Flags&RowMajorBit)==RowMajorBit, @@ -332,6 +333,7 @@ Derived& MatrixBase::lazyAssign(const SparseProduct foo = derived().row(j); for (; (ProcessFirstHalf ? i && i.index() < j : i) ; ++i) { if (LhsIsSelfAdjoint) @@ -342,8 +344,10 @@ Derived& MatrixBase::lazyAssign(const SparseProduct void sparse_vector(int rows, int cols) for (unsigned int i=0; i