13#ifndef PARDISO_SOLVE_HH
14#define PARDISO_SOLVE_HH
30template <
class Scalar,
class SparseIndexInt=
int,
class DIL=
int>
44 std::vector<SparseIndexInt>
const & ridx,
45 std::vector<SparseIndexInt>
const & cidx,
46 std::vector<Scalar>
const & values,
59 virtual void solve(std::vector<Scalar>
const& b,
60 std::vector<Scalar>& x,
int n,
bool transposed=
false)
const;
62 virtual void solve(std::vector<Scalar>
const& b,
63 std::vector<Scalar>& x,
bool transpose=
false)
const {
solve(b,x,1,
false); }
65 void solve(std::vector<Scalar>& b)
const {
solve(b,1,
false); }
67 void solve(std::vector<Scalar>& b,
int n,
bool transposed=
false)
const
69 std::vector<Scalar> x(b.size());
70 solve(b,x,n,transposed);
75 std::vector<SparseIndexInt> ap, ai;
76 std::vector<Scalar> az;
81 mutable int phase = 11;
84 mutable int error = 0;
86 mutable Scalar ddum = 0.0;
87 mutable std::array<int, 64> iparm {};
88 mutable std::array<void *, 64> pt {};
Abstract base class for matrix factorizations.
Factorization with DirectType::PARDISO.
PardisoFactorization(SparseIndexInt n, std::vector< SparseIndexInt >const &ridx, std::vector< SparseIndexInt >const &cidx, std::vector< Scalar >const &values, MatrixProperties property=MatrixProperties::GENERAL)
virtual void solve(std::vector< Scalar > const &b, std::vector< Scalar > &x, int n, bool transposed=false) const
void swap(PardisoFactorization &other)
virtual void solve(std::vector< Scalar > const &b, std::vector< Scalar > &x, bool transpose=false) const
Solves the system for the given right hand side .
void solve(std::vector< Scalar > &b, int n, bool transposed=false) const
void solve(std::vector< Scalar > &b) const
Solves the system for the given right hand side .
PardisoFactorization & operator=(PardisoFactorization &&other)
MatrixProperties
Characterizations of sparse matrix properties.