#include "fesa/solvers/linear/mkl_pardiso_solver.h" #include #include "solvers/linear/pardiso_session.h" namespace fesa { class MklPardisoSolver::Impl { public: pardiso_internal::PardisoSession session_{ pardiso_internal::PardisoMatrixPolicy::kSpdUpper}; }; MklPardisoSolver::MklPardisoSolver() : impl_{std::make_unique()} {} MklPardisoSolver::~MklPardisoSolver() = default; Status MklPardisoSolver::Factorize(const SparseMatrix& matrix) { return impl_->session_.Factorize(matrix); } Status MklPardisoSolver::Solve(const Vector& rhs, Vector& solution) const { return impl_->session_.Solve(rhs, solution); } } // namespace fesa