Storm
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
14class EigenSolverEnvironment;
15class GmmxxSolverEnvironment;
16class NativeSolverEnvironment;
17class LongRunAverageSolverEnvironment;
18class TimeBoundedSolverEnvironment;
19class MinMaxSolverEnvironment;
20class MultiplierEnvironment;
21class GameSolverEnvironment;
22class TopologicalSolverEnvironment;
23class OviSolverEnvironment;
24
26 public:
29
31 EigenSolverEnvironment const& eigen() const;
33 GmmxxSolverEnvironment const& gmmxx() const;
35 NativeSolverEnvironment const& native() const;
41 MinMaxSolverEnvironment const& minMax() const;
43 MultiplierEnvironment const& multiplier() const;
44 OviSolverEnvironment const& ovi() const;
47 GameSolverEnvironment const& game() const;
50
51 bool isForceSoundness() const;
52 void setForceSoundness(bool value);
53 bool isForceExact() const;
54 void setForceExact(bool value);
55
56 storm::solver::EquationSolverType const& getLinearEquationSolverType() const;
57 void setLinearEquationSolverType(storm::solver::EquationSolverType const& value, bool isSetFromDefault = false);
59
60 std::pair<boost::optional<storm::RationalNumber>, boost::optional<bool>> getPrecisionOfLinearEquationSolver(
61 storm::solver::EquationSolverType const& solverType) const;
62 void setLinearEquationSolverPrecision(boost::optional<storm::RationalNumber> const& newPrecision,
63 boost::optional<bool> const& relativePrecision = boost::none);
64
65 private:
66 SubEnvironment<EigenSolverEnvironment> eigenSolverEnvironment;
67 SubEnvironment<GmmxxSolverEnvironment> gmmxxSolverEnvironment;
68 SubEnvironment<NativeSolverEnvironment> nativeSolverEnvironment;
69 SubEnvironment<GameSolverEnvironment> gameSolverEnvironment;
70 SubEnvironment<TopologicalSolverEnvironment> topologicalSolverEnvironment;
71 SubEnvironment<LongRunAverageSolverEnvironment> longRunAverageSolverEnvironment;
72 SubEnvironment<TimeBoundedSolverEnvironment> timeBoundedSolverEnvironment;
73 SubEnvironment<MinMaxSolverEnvironment> minMaxSolverEnvironment;
74 SubEnvironment<MultiplierEnvironment> multiplierEnvironment;
75 SubEnvironment<OviSolverEnvironment> oviSolverEnvironment;
76
77 storm::solver::EquationSolverType linearEquationSolverType;
78 bool linearEquationSolverTypeSetFromDefault;
79 bool forceSoundness;
80 bool forceExact;
81};
82} // 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)
bool isLinearEquationSolverTypeSetFromDefaultValue() const
GameSolverEnvironment & game()
TimeBoundedSolverEnvironment & timeBounded()
NativeSolverEnvironment & native()
GmmxxSolverEnvironment & gmmxx()
LongRunAverageSolverEnvironment & lra()
std::pair< boost::optional< storm::RationalNumber >, boost::optional< bool > > getPrecisionOfLinearEquationSolver(storm::solver::EquationSolverType const &solverType) const
LabParser.cpp.
Definition cli.cpp:18