From 81d4bfa8d9c9f17a58d827956f7d529085151afe Mon Sep 17 00:00:00 2001 From: Desire NUENTSA Date: Fri, 25 Jan 2013 18:17:17 +0100 Subject: add support for solving with sparse right hand side --- Eigen/src/PaStiXSupport/PaStiXSupport.h | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) (limited to 'Eigen/src/PaStiXSupport') diff --git a/Eigen/src/PaStiXSupport/PaStiXSupport.h b/Eigen/src/PaStiXSupport/PaStiXSupport.h index 82e137c64..a955287d1 100644 --- a/Eigen/src/PaStiXSupport/PaStiXSupport.h +++ b/Eigen/src/PaStiXSupport/PaStiXSupport.h @@ -157,27 +157,6 @@ class PastixBase : internal::noncopyable template bool _solve (const MatrixBase &b, MatrixBase &x) const; - /** \internal */ - template - void _solve_sparse(const Rhs& b, SparseMatrix &dest) const - { - eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()"); - eigen_assert(rows()==b.rows()); - - // we process the sparse rhs per block of NbColsAtOnce columns temporarily stored into a dense matrix. - static const int NbColsAtOnce = 1; - int rhsCols = b.cols(); - int size = b.rows(); - Eigen::Matrix tmp(size,rhsCols); - for(int k=0; k(rhsCols-k, NbColsAtOnce); - tmp.leftCols(actualCols) = b.middleCols(k,actualCols); - tmp.leftCols(actualCols) = derived().solve(tmp.leftCols(actualCols)); - dest.middleCols(k,actualCols) = tmp.leftCols(actualCols).sparseView(); - } - } - Derived& derived() { return *static_cast(this); @@ -731,7 +710,7 @@ struct sparse_solve_retval, Rhs> template void evalTo(Dest& dst) const { - dec()._solve_sparse(rhs(),dst); + this->defaultEvalTo(dst); } }; -- cgit v1.2.3