1#ifndef STORM_SOLVER_GMMXXLINEAREQUATIONSOLVER_H_
2#define STORM_SOLVER_GMMXXLINEAREQUATIONSOLVER_H_
17template<
typename ValueType>
35 GmmxxLinearEquationSolverMethod getMethod(
Environment const& env)
const;
37 virtual uint64_t getMatrixRowCount()
const override;
38 virtual uint64_t getMatrixColumnCount()
const override;
41 std::unique_ptr<gmm::csr_matrix<ValueType>> gmmxxA;
44 mutable std::unique_ptr<gmm::ilu_precond<gmm::csr_matrix<ValueType>>> iluPreconditioner;
45 mutable std::unique_ptr<gmm::diagonal_precond<gmm::csr_matrix<ValueType>>> diagonalPreconditioner;
48template<
typename ValueType>
53 virtual std::unique_ptr<storm::solver::LinearEquationSolver<ValueType>>
create(
Environment const& env)
const override;
55 virtual std::unique_ptr<LinearEquationSolverFactory<ValueType>>
clone()
const override;
virtual std::unique_ptr< LinearEquationSolverFactory< ValueType > > clone() const override
Creates a copy of this factory.
virtual std::unique_ptr< storm::solver::LinearEquationSolver< ValueType > > create(Environment const &env) const override
Creates an equation solver with the current settings, but without a matrix.
A class that uses the gmm++ library to implement the LinearEquationSolver interface.
virtual bool internalSolveEquations(Environment const &env, std::vector< ValueType > &x, std::vector< ValueType > const &b) const override
GmmxxLinearEquationSolver()
virtual void clearCache() const override
virtual void setMatrix(storm::storage::SparseMatrix< ValueType > const &A) override
virtual LinearEquationSolverProblemFormat getEquationProblemFormat(Environment const &env) const override
Retrieves the format in which this solver expects to solve equations.
An interface that represents an abstract linear equation solver.
A class that holds a possibly non-square matrix in the compressed row storage format.
LinearEquationSolverProblemFormat