Parma_Polyhedra_Library::Interval< Boundary, Info > Class Template Reference
[C++ Language Interface]

A generic, not necessarily closed, possibly restricted interval. More...

#include <ppl.hh>

Inherits Parma_Polyhedra_Library::Interval_Base.

List of all members.

Public Member Functions

void swap (Interval &y)
 Swaps *this with y.
void topological_closure_assign ()
 Assigns to *this its 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.
template<typename From>
Enable_If< Is_Singleton< From >
::value||Is_Interval< From >
::value, I_Result >::type 
difference_assign (const From &x)
 Assigns to *this the smallest interval containing the set-theoretic difference of *this and x.
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 *this the smallest interval containing the set-theoretic difference of x and y.
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 to according to the existential relation rel with x.
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 to so that it satisfies the universal relation rel with x.
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 (Parma_Polyhedra_Library::Interval< Boundary, Info > &x, Parma_Polyhedra_Library::Interval< Boundary, Info > &y)


Detailed Description

template<typename Boundary, typename Info>
class Parma_Polyhedra_Library::Interval< Boundary, Info >

A generic, not necessarily closed, possibly restricted interval.

FIXME: to be written.


Member Function Documentation

template<typename To_Boundary, typename To_Info>
template<typename From>
Enable_If< Is_Singleton< From >::value||Is_Interval< From >::value, I_Result >::type Parma_Polyhedra_Library::Interval< To_Boundary, To_Info >::refine_existential ( Relation_Symbol  rel,
const From &  x 
) [inline]

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 \,\}. \]

Returns:
???

template<typename To_Boundary, typename To_Info>
template<typename From>
Enable_If< Is_Singleton< From >::value||Is_Interval< From >::value, I_Result >::type Parma_Polyhedra_Library::Interval< To_Boundary, To_Info >::refine_universal ( Relation_Symbol  rel,
const From &  x 
) [inline]

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 \,\}. \]

Returns:
???

template<typename To_Boundary, typename To_Info>
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 Parma_Polyhedra_Library::Interval< To_Boundary, To_Info >::mul_assign ( const From1 &  x,
const From2 &  y 
) [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) | +---------+-----------+-----------+-----------------+

template<typename To_Boundary, typename To_Info>
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 Parma_Polyhedra_Library::Interval< To_Boundary, To_Info >::div_assign ( const From1 &  x,
const From2 &  y 
) [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| +-----------+-----------+-----------+


Friends And Related Function Documentation

template<typename Boundary, typename Info>
void swap ( Parma_Polyhedra_Library::Interval< Boundary, Info > &  x,
Parma_Polyhedra_Library::Interval< Boundary, Info > &  y 
) [related]


The documentation for this class was generated from the following file:

Generated on Sat Oct 11 10:34:38 2008 for PPL by  doxygen 1.5.6