Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
TerminationCondition.h
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4
7
8namespace storm {
9namespace solver {
10template<typename ValueType>
12 public:
13 virtual ~TerminationCondition() = default;
14
18 virtual bool terminateNow(std::vector<ValueType> const& currentValues, SolverGuarantee const& guarantee = SolverGuarantee::None) const;
19 virtual bool terminateNow(std::function<ValueType(uint64_t const&)> const& valueGetter, SolverGuarantee const& guarantee = SolverGuarantee::None) const = 0;
20
25 virtual bool requiresGuarantee(SolverGuarantee const& guarantee) const = 0;
26};
27
28template<typename ValueType>
30 public:
31 virtual bool terminateNow(std::function<ValueType(uint64_t const&)> const& valueGetter,
32 SolverGuarantee const& guarantee = SolverGuarantee::None) const override;
33 virtual bool requiresGuarantee(SolverGuarantee const& guarantee) const override;
34};
35
36template<typename ValueType>
38 public:
40
41 bool terminateNow(std::function<ValueType(uint64_t const&)> const& valueGetter, SolverGuarantee const& guarantee = SolverGuarantee::None) const override;
42 virtual bool requiresGuarantee(SolverGuarantee const& guarantee) const override;
43
44 protected:
45 ValueType threshold;
47 bool strict;
48};
49
50template<typename ValueType>
52 public:
54
55 bool terminateNow(std::function<ValueType(uint64_t const&)> const& valueGetter, SolverGuarantee const& guarantee = SolverGuarantee::None) const override;
56 virtual bool requiresGuarantee(SolverGuarantee const& guarantee) const override;
57
58 protected:
60 mutable uint64_t cachedExtremumIndex;
61};
62
63template<typename ValueType>
65 public:
67
68 bool terminateNow(std::function<ValueType(uint64_t const&)> const& valueGetter, SolverGuarantee const& guarantee = SolverGuarantee::None) const override;
69 virtual bool requiresGuarantee(SolverGuarantee const& guarantee) const override;
70
71 protected:
73 mutable uint64_t cachedExtremumIndex;
74};
75} // namespace solver
76} // namespace storm
virtual bool terminateNow(std::function< ValueType(uint64_t const &)> const &valueGetter, SolverGuarantee const &guarantee=SolverGuarantee::None) const override
virtual bool requiresGuarantee(SolverGuarantee const &guarantee) const override
Retrieves whether the termination criterion requires the given guarantee in order to decide terminati...
bool terminateNow(std::function< ValueType(uint64_t const &)> const &valueGetter, SolverGuarantee const &guarantee=SolverGuarantee::None) const override
virtual bool requiresGuarantee(SolverGuarantee const &guarantee) const override
Retrieves whether the termination criterion requires the given guarantee in order to decide terminati...
bool terminateNow(std::function< ValueType(uint64_t const &)> const &valueGetter, SolverGuarantee const &guarantee=SolverGuarantee::None) const override
virtual bool requiresGuarantee(SolverGuarantee const &guarantee) const override
Retrieves whether the termination criterion requires the given guarantee in order to decide terminati...
virtual bool requiresGuarantee(SolverGuarantee const &guarantee) const override
Retrieves whether the termination criterion requires the given guarantee in order to decide terminati...
bool terminateNow(std::function< ValueType(uint64_t const &)> const &valueGetter, SolverGuarantee const &guarantee=SolverGuarantee::None) const override
virtual bool terminateNow(std::vector< ValueType > const &currentValues, SolverGuarantee const &guarantee=SolverGuarantee::None) const
Retrieves whether the guarantee provided by the solver for the current result is sufficient to termin...
virtual bool requiresGuarantee(SolverGuarantee const &guarantee) const =0
Retrieves whether the termination criterion requires the given guarantee in order to decide terminati...
virtual bool terminateNow(std::function< ValueType(uint64_t const &)> const &valueGetter, SolverGuarantee const &guarantee=SolverGuarantee::None) const =0
virtual ~TerminationCondition()=default
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
LabParser.cpp.
Definition cli.cpp:18