Developer documentation

texp_isexact.hpp
Go to the documentation of this file.
1 #ifndef realroot_ARITHM_TRAITS_ISEXACT_H
2 #define realroot_ARITHM_TRAITS_ISEXACT_H
3 
5 
6 namespace mmx {
7 
8 namespace texp {
9 
10  template<class X> struct isexact_ { typedef false_t T; };
11 
12  template<class K, class X> struct kernel_isexact { typedef true_t T; };
13  template<class X> struct kernel_isexact<null_t,X> { typedef typename isexact_<X>::T T; };
14 
15  template<class K> struct kernel_isexact< K, typename K::integer > { typedef true_t T; };
16  template<class K> struct kernel_isexact< K, typename K::rational > { typedef true_t T; };
17  template<class K> struct kernel_isexact< K, typename K::floating > { typedef false_t T; };
18  template<class K> struct kernel_isexact< K, typename K::ieee > { typedef false_t T; };
19 
28  template<typename X>
29  struct isexact
30  {
31  typedef typename ucstref<X>::T _X;
33  };
34 
36  template<typename X>
37  struct isapproximate { typedef typename tnot< typename isexact< X >::T >::T T; };
38 
39 }
40 
41 } //namespace mmx
42 
43 #endif
44 
45 
true_t T
Definition: texp_isexact.hpp:15
TMPL X
Definition: polynomial_operators.hpp:148
structure defining a the empty list
Definition: texp_bool.hpp:11
false_t T
Definition: texp_isexact.hpp:18
Traits class which specifies if the type X is not exact.
Definition: texp_isexact.hpp:37
Definition: texp_isexact.hpp:10
Definition: texp_isexact.hpp:29
tnot< typename isexact< X >::T >::T T
Definition: texp_isexact.hpp:37
ucstref< X >::T _X
Definition: texp_isexact.hpp:31
true_t T
Definition: texp_isexact.hpp:16
structure defining a positive answer
Definition: texp_bool.hpp:7
Definition: texp_tests.hpp:41
uref< typename ucst< X >::T >::T T
Definition: texp_strip_qualifiers.hpp:28
kernel_isexact< typename kernelof< X >::T, _X >::T T
Definition: texp_isexact.hpp:32
false_t T
Definition: texp_isexact.hpp:17
structure defining a negative answer
Definition: texp_bool.hpp:9
false_t T
Definition: texp_isexact.hpp:10
Definition: array.hpp:12
isexact_< X >::T T
Definition: texp_isexact.hpp:13
Definition: texp_isexact.hpp:12
true_t T
Definition: texp_isexact.hpp:12
Home