63 lines
2.5 KiB
63 lines
2.5 KiB
#pragma once
|
|
|
|
#include<memory>
|
|
#include <boost/optional.hpp>
|
|
|
|
#include "storm/environment/Environment.h"
|
|
#include "storm/environment/SubEnvironment.h"
|
|
#include "storm/solver/SolverSelectionOptions.h"
|
|
#include "storm/adapters/RationalNumberAdapter.h"
|
|
|
|
namespace storm {
|
|
|
|
// Forward declare subenvironments
|
|
class EigenSolverEnvironment;
|
|
class GmmxxSolverEnvironment;
|
|
class NativeSolverEnvironment;
|
|
class MinMaxSolverEnvironment;
|
|
class GameSolverEnvironment;
|
|
class TopologicalSolverEnvironment;
|
|
|
|
class SolverEnvironment {
|
|
public:
|
|
|
|
SolverEnvironment();
|
|
~SolverEnvironment();
|
|
|
|
EigenSolverEnvironment& eigen();
|
|
EigenSolverEnvironment const& eigen() const;
|
|
GmmxxSolverEnvironment& gmmxx();
|
|
GmmxxSolverEnvironment const& gmmxx() const;
|
|
NativeSolverEnvironment& native();
|
|
NativeSolverEnvironment const& native() const;
|
|
MinMaxSolverEnvironment& minMax();
|
|
MinMaxSolverEnvironment const& minMax() const;
|
|
GameSolverEnvironment& game();
|
|
GameSolverEnvironment const& game() const;
|
|
TopologicalSolverEnvironment& topological();
|
|
TopologicalSolverEnvironment const& topological() const;
|
|
|
|
bool isForceSoundness() const;
|
|
void setForceSoundness(bool value);
|
|
|
|
storm::solver::EquationSolverType const& getLinearEquationSolverType() const;
|
|
void setLinearEquationSolverType(storm::solver::EquationSolverType const& value, bool isSetFromDefault = false);
|
|
bool isLinearEquationSolverTypeSetFromDefaultValue() const;
|
|
|
|
std::pair<boost::optional<storm::RationalNumber>, boost::optional<bool>> getPrecisionOfLinearEquationSolver(storm::solver::EquationSolverType const& solverType) const;
|
|
void setLinearEquationSolverPrecision(boost::optional<storm::RationalNumber> const& newPrecision, boost::optional<bool> const& relativePrecision = boost::none);
|
|
|
|
private:
|
|
SubEnvironment<EigenSolverEnvironment> eigenSolverEnvironment;
|
|
SubEnvironment<GmmxxSolverEnvironment> gmmxxSolverEnvironment;
|
|
SubEnvironment<NativeSolverEnvironment> nativeSolverEnvironment;
|
|
SubEnvironment<GameSolverEnvironment> gameSolverEnvironment;
|
|
SubEnvironment<TopologicalSolverEnvironment> topologicalSolverEnvironment;
|
|
SubEnvironment<MinMaxSolverEnvironment> minMaxSolverEnvironment;
|
|
|
|
storm::solver::EquationSolverType linearEquationSolverType;
|
|
bool linearEquationSolverTypeSetFromDefault;
|
|
bool forceSoundness;
|
|
};
|
|
}
|
|
|