14template<storm::OptimizationDirection Dir,
typename ValueType>
42 bool better(ValueType
const& value)
const;
101 static bool const SupportsInfinity = std::numeric_limits<ValueType>::is_iec559;
110 struct DataInfinity {
111 ValueType
constexpr baseValue()
const {
113 return std::numeric_limits<ValueType>::infinity();
116 return -std::numeric_limits<ValueType>::infinity();
123 std::conditional_t<SupportsInfinity, DataInfinity, DefaultData> data;
126template<
typename ValueType>
128template<
typename ValueType>
Stores and manages an extremal (maximal or minimal) value.
bool operator&=(Extremum const &other)
Updates the stored value, if the given extremal value is better.
bool operator&=(ValueType const &value)
Updates the stored value, if the given value is better.
bool operator&=(ValueType &&value)
Updates the stored value, if the given value is better.
ValueType const & operator*() const
std::optional< ValueType > getOptionalValue() const
bool better(ValueType const &value) const
bool operator&=(Extremum &&other)
Updates the stored value, if the given extremal value is better.
Extremum(Extremum &&)=default
Extremum(ValueType &&value)
Extremum & operator=(ValueType const &value)
Sets the extremum to the given value.
Extremum(Extremum const &)=default
Extremum & operator=(ValueType &&value)
Sets the extremum to the given value.
Extremum(ValueType const &value)
void reset()
Forgets the extremal value so that this represents the extremum over an empty set.
Extremum & operator=(Extremum &&)=default
Extremum & operator=(Extremum const &)=default
SFTBDDChecker::ValueType ValueType
bool constexpr maximize(OptimizationDirection d)
bool constexpr minimize(OptimizationDirection d)
Extremum< storm::OptimizationDirection::Maximize, ValueType > Maximum
Extremum< storm::OptimizationDirection::Minimize, ValueType > Minimum