Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SolverEnvironment.h
Go to the documentation of this file.
1#pragma once
2
3#include <boost/optional.hpp>
4#include <memory>
5
10
11namespace storm {
12
13// Forward declare subenvironments
27
29 public:
32
34 EigenSolverEnvironment const& eigen() const;
36 GmmxxSolverEnvironment const& gmmxx() const;
38 NativeSolverEnvironment const& native() const;
44 MinMaxSolverEnvironment const& minMax() const;
46 MultiplierEnvironment const& multiplier() const;
47 OviSolverEnvironment const& ovi() const;
50 GameSolverEnvironment const& game() const;
54 GurobiSolverEnvironment const& gurobi() const;
56 GlpkSolverEnvironment const& glpk() const;
59
60 bool isForceSoundness() const;
61 void setForceSoundness(bool value);
62 bool isForceExact() const;
63 void setForceExact(bool value);
64 bool isDebugSet() const;
65 void setDebug(bool value);
66
67 storm::solver::EquationSolverType const& getLinearEquationSolverType() const;
68 void setLinearEquationSolverType(storm::solver::EquationSolverType const& value, bool isSetFromDefault = false);
70
71 storm::solver::LpSolverType const& getLpSolverType() const;
72 void setLpSolverType(storm::solver::LpSolverType const& value, bool isSetFromDefault = false);
74
75 std::pair<boost::optional<storm::RationalNumber>, boost::optional<bool>> getPrecisionOfLinearEquationSolver(
76 storm::solver::EquationSolverType const& solverType) const;
77 void setLinearEquationSolverPrecision(boost::optional<storm::RationalNumber> const& newPrecision,
78 boost::optional<bool> const& relativePrecision = boost::none);
79
80 private:
81 SubEnvironment<EigenSolverEnvironment> eigenSolverEnvironment;
82 SubEnvironment<GmmxxSolverEnvironment> gmmxxSolverEnvironment;
83 SubEnvironment<NativeSolverEnvironment> nativeSolverEnvironment;
84 SubEnvironment<GameSolverEnvironment> gameSolverEnvironment;
85 SubEnvironment<TopologicalSolverEnvironment> topologicalSolverEnvironment;
86 SubEnvironment<LongRunAverageSolverEnvironment> longRunAverageSolverEnvironment;
87 SubEnvironment<TimeBoundedSolverEnvironment> timeBoundedSolverEnvironment;
88 SubEnvironment<MinMaxSolverEnvironment> minMaxSolverEnvironment;
89 SubEnvironment<MultiplierEnvironment> multiplierEnvironment;
90 SubEnvironment<OviSolverEnvironment> oviSolverEnvironment;
91 SubEnvironment<GurobiSolverEnvironment> gurobiSolverEnvironment;
92 SubEnvironment<GlpkSolverEnvironment> glpkSolverEnvironment;
93 SubEnvironment<EliminationSolverEnvironment> eliminationSolverEnvironment;
94
95 storm::solver::EquationSolverType linearEquationSolverType;
96 bool linearEquationSolverTypeSetFromDefault;
97 storm::solver::LpSolverType lpSolverType;
98 bool lpSolverTypeSetFromDefault;
99 bool forceSoundness;
100 bool forceExact;
101 bool debug;
102};
103} // namespace storm
TopologicalSolverEnvironment & topological()
void setLinearEquationSolverType(storm::solver::EquationSolverType const &value, bool isSetFromDefault=false)
OviSolverEnvironment const & ovi() const
EigenSolverEnvironment & eigen()
MinMaxSolverEnvironment & minMax()
MultiplierEnvironment & multiplier()
storm::solver::EquationSolverType const & getLinearEquationSolverType() const
void setLinearEquationSolverPrecision(boost::optional< storm::RationalNumber > const &newPrecision, boost::optional< bool > const &relativePrecision=boost::none)
EliminationSolverEnvironment & elimination()
bool isLinearEquationSolverTypeSetFromDefaultValue() const
GlpkSolverEnvironment & glpk()
bool isLpSolverTypeSetFromDefaultValue() const
GameSolverEnvironment & game()
void setLpSolverType(storm::solver::LpSolverType const &value, bool isSetFromDefault=false)
TimeBoundedSolverEnvironment & timeBounded()
storm::solver::LpSolverType const & getLpSolverType() const
NativeSolverEnvironment & native()
GurobiSolverEnvironment & gurobi()
GmmxxSolverEnvironment & gmmxx()
LongRunAverageSolverEnvironment & lra()
std::pair< boost::optional< storm::RationalNumber >, boost::optional< bool > > getPrecisionOfLinearEquationSolver(storm::solver::EquationSolverType const &solverType) const