diff options
author | Desire NUENTSA <desire.nuentsa_wakam@inria.fr> | 2013-01-25 19:05:33 +0100 |
---|---|---|
committer | Desire NUENTSA <desire.nuentsa_wakam@inria.fr> | 2013-01-25 19:05:33 +0100 |
commit | d58056bde4c1bd80497af4448a8ace0508e1bb76 (patch) | |
tree | e75ea811b75bbe2d15799e54886d0a8a4f0ac59b /test | |
parent | e4ec63aee7233f5b934abc0b1d9ceada79a844ee (diff) | |
parent | 81d4bfa8d9c9f17a58d827956f7d529085151afe (diff) |
Merged local branch with main trunk
Diffstat (limited to 'test')
-rw-r--r-- | test/sparse_solver.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/test/sparse_solver.h b/test/sparse_solver.h index 73d92874c..5a1be67e7 100644 --- a/test/sparse_solver.h +++ b/test/sparse_solver.h @@ -37,7 +37,6 @@ void check_sparse_solving(Solver& solver, const typename Solver::MatrixType& A, VERIFY(oldb.isApprox(b) && "sparse solver testing: the rhs should not be modified!"); VERIFY(x.isApprox(refX,test_precision<Scalar>())); - x.setZero(); // test the analyze/factorize API solver.analyzePattern(A); @@ -258,6 +257,7 @@ template<typename Solver> void check_sparse_square_solving(Solver& solver) { typedef typename Solver::MatrixType Mat; typedef typename Mat::Scalar Scalar; + typedef SparseMatrix<Scalar,ColMajor> SpMat; typedef Matrix<Scalar,Dynamic,Dynamic> DenseMatrix; typedef Matrix<Scalar,Dynamic,1> DenseVector; @@ -267,12 +267,17 @@ template<typename Solver> void check_sparse_square_solving(Solver& solver) DenseMatrix dA; int size = generate_sparse_square_problem(solver, A, dA); - DenseVector b = DenseVector::Random(size); - DenseMatrix dB = DenseMatrix::Random(size,rhsCols); A.makeCompressed(); + DenseVector b = DenseVector::Random(size); + DenseMatrix dB(size,rhsCols); + SpMat B(size,rhsCols); + double density = (std::max)(8./(size*rhsCols), 0.1); + initSparse<Scalar>(density, dB, B, ForceNonZeroDiag); + B.makeCompressed(); for (int i = 0; i < g_repeat; i++) { check_sparse_solving(solver, A, b, dA, b); check_sparse_solving(solver, A, dB, dA, dB); + check_sparse_solving(solver, A, B, dA, dB); } // First, get the folder |