aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Desire NUENTSA <desire.nuentsa_wakam@inria.fr>2013-01-25 19:05:33 +0100
committerGravatar Desire NUENTSA <desire.nuentsa_wakam@inria.fr>2013-01-25 19:05:33 +0100
commitd58056bde4c1bd80497af4448a8ace0508e1bb76 (patch)
treee75ea811b75bbe2d15799e54886d0a8a4f0ac59b /test
parente4ec63aee7233f5b934abc0b1d9ceada79a844ee (diff)
parent81d4bfa8d9c9f17a58d827956f7d529085151afe (diff)
Merged local branch with main trunk
Diffstat (limited to 'test')
-rw-r--r--test/sparse_solver.h11
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