Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
EigenLinearEquationSolver.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace storm {
8namespace solver {
9
13template<typename ValueType>
15 public:
19
20 virtual void setMatrix(storm::storage::SparseMatrix<ValueType> const& A) override;
21 virtual void setMatrix(storm::storage::SparseMatrix<ValueType>&& A) override;
22
24
25 protected:
26 virtual bool internalSolveEquations(Environment const& env, std::vector<ValueType>& x, std::vector<ValueType> const& b) const override;
27
28 private:
29 EigenLinearEquationSolverMethod getMethod(Environment const& env, bool isExactMode) const;
30
31 virtual uint64_t getMatrixRowCount() const override;
32 virtual uint64_t getMatrixColumnCount() const override;
33
34 // The (eigen) matrix associated with this equation solver.
35 std::unique_ptr<Eigen::SparseMatrix<ValueType>> eigenA;
36};
37
38template<typename ValueType>
40 public:
42
43 virtual std::unique_ptr<storm::solver::LinearEquationSolver<ValueType>> create(Environment const& env) const override;
44
45 virtual std::unique_ptr<LinearEquationSolverFactory<ValueType>> clone() const override;
46};
47} // namespace solver
48} // namespace storm
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 Eigen library to implement the LinearEquationSolver interface.
virtual void setMatrix(storm::storage::SparseMatrix< ValueType > const &A) override
virtual bool internalSolveEquations(Environment const &env, std::vector< ValueType > &x, std::vector< ValueType > const &b) const 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.
LabParser.cpp.
Definition cli.cpp:18