24 #ifndef PPL_Concrete_Expression_inlines_hh
25 #define PPL_Concrete_Expression_inlines_hh 1
32 : impl(implementation) {
97 template <
typename Target>
98 template <
template <
typename T>
class Derived>
102 Derived<Target>::KIND;
105 template <
typename Target>
106 template <
template <
typename T>
class Derived>
107 inline Derived<Target>*
109 PPL_ASSERT(is<Derived>());
110 return static_cast<Derived<Target>*
>(
this);
113 template <
typename Target>
114 template <
template <
typename T>
class Derived>
115 inline const Derived<Target>*
117 PPL_ASSERT(is<Derived>());
118 return static_cast<const Derived<Target>*
>(
this);
123 #endif // !defined(PPL_Concrete_Expression_inlines_hh)
unsigned int bounded_integer_type_overflow
bool is_bounded_integer() const
Returns true if and only if *this is a bounded integer type.
bool is() const
Tests if *this has the same kind as Derived.
Bounded_Integer_Type_Overflow bounded_integer_type_overflow() const
Returns the overflow behavior of the bounded integer type encoded by *this.
IEEE 754 half precision, 16 bits (5 exponent, 10 mantissa).
Concrete_Expression_Type(Implementation implementation)
Constructor from implementation.
The type of a concrete expression.
Implementation impl
The encoding of *this.
Bounded_Integer_Type_Width bounded_integer_type_width() const
Returns the width in bits of the bounded integer type encoded by *this.
Bounded_Integer_Type_Overflow
Bounded_Integer_Type_Representation bounded_integer_type_representation() const
Returns the representation of the bounded integer type encoded by *this.
Bounded_Integer_Type_Width
unsigned int bounded_integer_type_width
static Concrete_Expression_Type bounded_integer(Bounded_Integer_Type_Width width, Bounded_Integer_Type_Representation representation, Bounded_Integer_Type_Overflow overflow)
Returns the bounded integer type corresponding to width, representation and overflow.
bool is_floating_point() const
Returns true if and only if *this is a floating point type.
The base class of all concrete expressions.
static Concrete_Expression_Type floating_point(Floating_Point_Format format)
Returns the floating point type corresponding to format.
The entire library is confined to this namespace.
unsigned int bounded_integer_type_representation
Signed binary where negative values are represented by the two's complement of the absolute value...
Derived< Target > * as()
Returns a pointer to *this converted to type Derived*.
A 32-bit word encoding the type.
unsigned int floating_point_format
Floating_Point_Format floating_point_format() const
Returns the format of the floating point type encoded by *this.
Bounded_Integer_Type_Representation