Storm 1.10.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
RationalNumberForward.h
Go to the documentation of this file.
1#pragma once
2
3#include "storm-config.h"
4
5#if defined(STORM_HAVE_GMP)
6// The small gmp.h header is always included.
7#include <gmp.h>
8template<typename U, typename V>
9class __gmp_expr;
10#endif
11
12#if defined(STORM_HAVE_CLN)
13namespace cln {
14class cl_RA;
15class cl_I;
16} // namespace cln
17#endif
18
19namespace carl {
20template<typename Number>
22}
23
24namespace storm {
25#if defined(STORM_HAVE_CLN)
26typedef cln::cl_RA ClnRationalNumber;
27typedef cln::cl_I ClnIntegerNumber;
28#endif
29#if defined(STORM_HAVE_GMP)
30typedef __gmp_expr<mpq_t, mpq_t> GmpRationalNumber;
31typedef __gmp_expr<mpz_t, mpz_t> GmpIntegerNumber;
32#endif
33
38
39namespace detail {
40template<typename ValueType>
42 using BaseType = ValueType;
43 static const bool isInterval = false;
44};
45template<>
47 using BaseType = double;
48 static const bool isInterval = true;
49};
50} // namespace detail
51
55template<typename ValueType>
57
62template<typename ValueType>
64
65#if defined(STORM_HAVE_CLN) && defined(STORM_USE_CLN_EA)
66typedef ClnRationalNumber RationalNumber;
67#elif defined(STORM_HAVE_GMP) && !defined(STORM_USE_CLN_EA)
68typedef GmpRationalNumber RationalNumber;
69#elif defined(STORM_USE_CLN_EA)
70#error CLN is to be used, but is not available.
71#else
72#error GMP is to be used, but is not available.
73#endif
74} // namespace storm
LabParser.cpp.
carl::Interval< double > Interval
Interval type.
typename detail::IntervalMetaProgrammingHelper< ValueType >::BaseType IntervalBaseType
Helper to access the type in which interval boundaries are stored.
constexpr bool IsIntervalType
Helper to check if a type is an interval.