mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Update the PARDISO interface to match other sparse solvers.
- Add support for Upper or Lower inputs. - Add supports for sparse RHS - Remove transposed cases, remove ordering method interface - Add full access to PARDISO parameters
This commit is contained in:
@@ -7,11 +7,12 @@
|
||||
|
||||
template<typename T> void test_pardiso_T()
|
||||
{
|
||||
//PardisoLLT < SparseMatrix<T, RowMajor> > pardiso_llt;
|
||||
//PardisoLDLT< SparseMatrix<T, RowMajor> > pardiso_ldlt;
|
||||
PardisoLLT < SparseMatrix<T, RowMajor> > pardiso_llt;
|
||||
PardisoLDLT< SparseMatrix<T, RowMajor> > pardiso_ldlt;
|
||||
PardisoLU < SparseMatrix<T, RowMajor> > pardiso_lu;
|
||||
|
||||
//check_sparse_spd_solving(pardiso_llt);
|
||||
check_sparse_spd_solving(pardiso_llt);
|
||||
check_sparse_spd_solving(pardiso_ldlt);
|
||||
check_sparse_square_solving(pardiso_lu);
|
||||
}
|
||||
|
||||
|
||||
@@ -101,6 +101,7 @@ template<typename Solver> void check_sparse_spd_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;
|
||||
|
||||
@@ -112,7 +113,7 @@ template<typename Solver> void check_sparse_spd_solving(Solver& solver)
|
||||
// generate the right hand sides
|
||||
int rhsCols = internal::random<int>(1,16);
|
||||
double density = (std::max)(8./(size*rhsCols), 0.1);
|
||||
Mat B(size,rhsCols);
|
||||
SpMat B(size,rhsCols);
|
||||
DenseVector b = DenseVector::Random(size);
|
||||
DenseMatrix dB(size,rhsCols);
|
||||
initSparse<Scalar>(density, dB, B);
|
||||
|
||||
Reference in New Issue
Block a user