Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ConstantsComparator.h
Go to the documentation of this file.
1#pragma once
2
3#include <type_traits>
6
7namespace storm {
8namespace utility {
9
10// A class that can be used for comparing constants.
11template<typename ValueType, typename Enable>
13 public:
15 bool isOne(ValueType const& value) const;
16 bool isZero(ValueType const& value) const;
17 bool isEqual(ValueType const& value1, ValueType const& value2) const;
18 bool isConstant(ValueType const& value) const;
19 bool isLess(ValueType const& value1, ValueType const& value2) const;
20};
21
22// Specialization for numbers where there can be a precision
23template<typename ValueType>
25 typename std::enable_if_t<std::is_same<ValueType, double>::value || std::is_same<ValueType, storm::RationalNumber>::value>;
26
27template<typename ValueType>
29 public:
31 ConstantsComparator(ValueType const& precision, bool const& relative = false);
32 bool isOne(ValueType const& value) const;
33 bool isZero(ValueType const& value) const;
34 bool isEqual(ValueType const& value1, ValueType const& value2) const;
35 bool isConstant(ValueType const& value) const;
36 bool isInfinity(ValueType const& value) const;
37 bool isLess(ValueType const& value1, ValueType const& value2) const;
38
39 private:
40 ValueType precision;
41 bool relative;
42};
43} // namespace utility
44} // namespace storm
bool isOne(ValueType const &value) const
bool isZero(ValueType const &value) const
bool isEqual(ValueType const &value1, ValueType const &value2) const
bool isConstant(ValueType const &value) const
bool isLess(ValueType const &value1, ValueType const &value2) const
typename std::enable_if_t< std::is_same< ValueType, double >::value||std::is_same< ValueType, storm::RationalNumber >::value > ConstantsComparatorEnablePrecision
bool isInfinity(ValueType const &a)
Definition constants.cpp:71
LabParser.cpp.
Definition cli.cpp:18