From 98ce4455ddad01ef028b65f96e232d4b750647f0 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Wed, 6 Mar 2013 11:58:22 +0100 Subject: fix sparse vector assignment from a sparse matrix --- test/sparse.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'test/sparse.h') diff --git a/test/sparse.h b/test/sparse.h index 4db0004aa..b6f6e6fce 100644 --- a/test/sparse.h +++ b/test/sparse.h @@ -178,5 +178,30 @@ initSparse(double density, } } +template void +initSparse(double density, + Matrix& refVec, + SparseVector& sparseVec, + std::vector* zeroCoords = 0, + std::vector* nonzeroCoords = 0) +{ + sparseVec.reserve(int(refVec.size()*density)); + sparseVec.setZero(); + for(int i=0; i(0,1) < density) ? internal::random() : Scalar(0); + if (v!=Scalar(0)) + { + sparseVec.insertBack(i) = v; + if (nonzeroCoords) + nonzeroCoords->push_back(i); + } + else if (zeroCoords) + zeroCoords->push_back(i); + refVec[i] = v; + } +} + + #include #endif // EIGEN_TESTSPARSE_H -- cgit v1.2.3