| PPL
    1.2
    | 
A generic, not necessarily closed, possibly restricted interval. More...
#include <ppl.hh>
Inherits Parma_Polyhedra_Library::Interval_Base, and Info.
| Public Member Functions | |
| void | m_swap (Interval &y) | 
| Swaps *thiswithy. | |
| void | topological_closure_assign () | 
| Assigns to *thisits topological closure. | |
| memory_size_type | total_memory_in_bytes () const | 
| Returns the total size in bytes of the memory occupied by *this. | |
| memory_size_type | external_memory_in_bytes () const | 
| Returns the size in bytes of the memory managed by *this. | |
| Interval (const char *s) | |
| Builds the smallest interval containing the number whose textual representation is contained in s. | |
| template<typename From > | |
| Enable_If< Is_Singleton< From >::value||Is_Interval< From >::value, I_Result >::type | difference_assign (const From &x) | 
| Assigns to *thisthe smallest interval containing the set-theoretic difference of*thisandx. | |
| template<typename From1 , typename From2 > | |
| Enable_If<((Is_Singleton< From1 >::value||Is_Interval< From1 >::value)&&(Is_Singleton< From2 >::value||Is_Interval< From2 >::value)), I_Result >::type | difference_assign (const From1 &x, const From2 &y) | 
| Assigns to *thisthe smallest interval containing the set-theoretic difference ofxandy. | |
| template<typename From > | |
| Enable_If< Is_Singleton< From >::value||Is_Interval< From >::value, I_Result >::type | lower_approximation_difference_assign (const From &x) | 
| Assigns to *thisthe largest interval contained in the set-theoretic difference of*thisandx. | |
| template<typename From > | |
| Enable_If< Is_Interval< From >::value, bool >::type | simplify_using_context_assign (const From &y) | 
| Assigns to *thisa meet-preserving simplification of*thiswith respect toy.  More... | |
| template<typename From > | |
| Enable_If< Is_Interval< From >::value, void >::type | empty_intersection_assign (const From &y) | 
| Assigns to *thisan interval having empty intersection withy. The assigned interval should be as large as possible. | |
| template<typename From > | |
| Enable_If< Is_Singleton< From >::value||Is_Interval< From >::value, I_Result >::type | refine_existential (Relation_Symbol rel, const From &x) | 
| Refines toaccording to the existential relationrelwithx.  More... | |
| template<typename From > | |
| Enable_If< Is_Singleton< From >::value||Is_Interval< From >::value, I_Result >::type | refine_universal (Relation_Symbol rel, const From &x) | 
| Refines toso that it satisfies the universal relationrelwithx.  More... | |
| template<typename From1 , typename From2 > | |
| Enable_If<((Is_Singleton< From1 >::value||Is_Interval< From1 >::value)&&(Is_Singleton< From2 >::value||Is_Interval< From2 >::value)), I_Result >::type | mul_assign (const From1 &x, const From2 &y) | 
| template<typename From1 , typename From2 > | |
| Enable_If<((Is_Singleton< From1 >::value||Is_Interval< From1 >::value)&&(Is_Singleton< From2 >::value||Is_Interval< From2 >::value)), I_Result >::type | div_assign (const From1 &x, const From2 &y) | 
| Related Functions | |
| (Note that these are not member functions.) | |
| template<typename Boundary , typename Info > | |
| void | swap (Interval< Boundary, Info > &x, Interval< Boundary, Info > &y) | 
| Swaps xwithy.  More... | |
| template<typename Boundary , typename Info > | |
| void | swap (Interval< Boundary, Info > &x, Interval< Boundary, Info > &y) | 
A generic, not necessarily closed, possibly restricted interval.
The class template type parameter Boundary represents the type of the interval boundaries, and can be chosen, among other possibilities, within one of the following number families:
signed char to long long and from int8_t to int64_t);float, double or long double);mpz_class or mpq_class).The class template type parameter Info allows to control a number of features of the class, among which:
| Enable_If<Is_Interval<From>::value, bool>::type Parma_Polyhedra_Library::Interval< Boundary, Info >::simplify_using_context_assign | ( | const From & | y | ) | 
Assigns to *this a meet-preserving simplification of *this with respect to y. 
false if and only if the meet of *this and y is empty. | Enable_If<Is_Singleton<From>::value || Is_Interval<From>::value, I_Result>::type Parma_Polyhedra_Library::Interval< Boundary, Info >::refine_existential | ( | Relation_Symbol | rel, | 
| const From & | x | ||
| ) | 
Refines to according to the existential relation rel with x. 
The to interval is restricted to become, upon successful exit, the smallest interval of its type that contains the set 
![\[ \{\, a \in \mathtt{to} \mid \exists b \in \mathtt{x} \st a \mathrel{\mathtt{rel}} b \,\}. \]](form_675.png) 
| Enable_If<Is_Singleton<From>::value || Is_Interval<From>::value, I_Result>::type Parma_Polyhedra_Library::Interval< Boundary, Info >::refine_universal | ( | Relation_Symbol | rel, | 
| const From & | x | ||
| ) | 
Refines to so that it satisfies the universal relation rel with x. 
The to interval is restricted to become, upon successful exit, the smallest interval of its type that contains the set 
![\[ \{\, a \in \mathtt{to} \mid \forall b \in \mathtt{x} \itc a \mathrel{\mathtt{rel}} b \,\}. \]](form_676.png) 
| 
 | inline | 
+———+———–+———–+—————–+ | * | yl > 0 | yu < 0 | yl < 0, yu > 0 | +———+———–+———–+—————–+ | xl > 0 |xl*yl,xu*yu|xu*yl,xl*yu| xu*yl,xu*yu | +———+———–+———–+—————–+ | xu < 0 |xl*yu,xu*yl|xu*yu,xl*yl| xl*yu,xl*yl | +———+———–+———–+—————–+ |xl<0 xu>0|xl*yu,xu*yu|xu*yl,xl*yl|min(xl*yu,xu*yl),| | | | |max(xl*yl,xu*yu) | +———+———–+———–+—————–+
| 
 | inline | 
+———–+———–+———–+ | / | yu < 0 | yl > 0 | +———–+———–+———–+ | xu<=0 |xu/yl,xl/yu|xl/yl,xu/yu| +———–+———–+———–+ |xl<=0 xu>=0|xu/yu,xl/yu|xl/yl,xu/yl| +———–+———–+———–+ | xl>=0 |xu/yu,xl/yl|xl/yu,xu/yl| +———–+———–+———–+
| 
 | related | 
Swaps x with y. 
| 
 | related |