Parma_Polyhedra_Library::Interval_NS Namespace Reference


Classes

struct  Property
struct  Scalar_As_Interval_Policy

Typedefs

typedef
Interval_Restriction_None
< Interval_Info_Null
< Scalar_As_Interval_Policy > > 
Scalar_As_Interval_Info
typedef
Interval_Restriction_None
< Interval_Info_Null_Open
< Scalar_As_Interval_Policy > > 
Scalar_As_Interval_Info_Open

Functions

template<typename T>
void reset_bits (T &bits)
template<typename T>
void reset_bit (T &bits, unsigned int bit)
template<typename T>
void set_bit (T &bits, unsigned int bit, bool value)
template<typename T>
bool get_bit (const T &bits, unsigned int bit)
template<typename T>
void set_bits (T &bits, unsigned int start, unsigned int len, T value)
template<typename T>
get_bits (T &bits, unsigned int start, unsigned int len)
template<typename Boundary, typename Info>
const Boundary & f_lower (const Interval< Boundary, Info > &x)
template<typename Boundary, typename Info>
const Boundary & f_upper (const Interval< Boundary, Info > &x)
template<typename Boundary, typename Info>
const Info & f_info (const Interval< Boundary, Info > &x)
template<typename T>
Enable_If< Is_Singleton< T >
::value, const T & >::type 
f_lower (const T &x)
template<typename T>
Enable_If< Is_Singleton< T >
::value, const T & >::type 
f_upper (const T &x)
template<typename T>
Enable_If< Is_Singleton< T >
::value, const
Scalar_As_Interval_Info & >
::type 
f_info (const T &)
template<typename T>
Enable_If< Is_Singleton< T >
::value,
Scalar_As_Interval_Info_Open >
::type 
f_info (const T &, bool open)
template<typename T>
Enable_If< Is_Singleton< T >
::value, bool >::type 
f_is_empty (const T &x)
template<typename T>
Enable_If< Is_Singleton< T >
::value, bool >::type 
f_is_singleton (const T &x)
template<typename T>
Enable_If< Is_Singleton< T >
::value||Is_Interval< T >
::value, Ternary >::type 
f_is_empty_lazy (const T &x)

Variables

const Property CARDINALITY_0 (Property::CARDINALITY_0_)
const Property CARDINALITY_1 (Property::CARDINALITY_1_)
const Property CARDINALITY_IS (Property::CARDINALITY_IS_)
const Scalar_As_Interval_Info SCALAR_INFO


Typedef Documentation

Definition at line 90 of file Interval.inlines.hh.

Definition at line 94 of file Interval.inlines.hh.


Function Documentation

template<typename T>
Enable_If<Is_Singleton<T>::value, Scalar_As_Interval_Info_Open>::type Parma_Polyhedra_Library::Interval_NS::f_info ( const T &  ,
bool  open 
) [inline]

Definition at line 113 of file Interval.inlines.hh.

Referenced by Parma_Polyhedra_Library::Interval< Boundary, Info >::add_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::assign(), Parma_Polyhedra_Library::check_empty_arg(), Parma_Polyhedra_Library::Interval< Boundary, Info >::contains(), Parma_Polyhedra_Library::Interval< Boundary, Info >::difference_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::div_assign(), f_is_empty_lazy(), Parma_Polyhedra_Library::Interval< Boundary, Info >::intersect_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_disjoint_from(), Parma_Polyhedra_Library::Interval< Boundary, Info >::join_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::lower_narrow(), Parma_Polyhedra_Library::Interval< Boundary, Info >::lower_set(), Parma_Polyhedra_Library::Interval< Boundary, Info >::lower_set_uninit(), Parma_Polyhedra_Library::Interval< Boundary, Info >::lower_widen(), Parma_Polyhedra_Library::Interval< Boundary, Info >::mul_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::neg_assign(), Parma_Polyhedra_Library::operator==(), Parma_Polyhedra_Library::Interval< Boundary, Info >::refine_existential(), Parma_Polyhedra_Library::Interval< Boundary, Info >::refine_universal(), Parma_Polyhedra_Library::Interval< Boundary, Info >::strictly_contains(), Parma_Polyhedra_Library::Interval< Boundary, Info >::sub_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::upper_narrow(), Parma_Polyhedra_Library::Interval< Boundary, Info >::upper_set(), Parma_Polyhedra_Library::Interval< Boundary, Info >::upper_set_uninit(), and Parma_Polyhedra_Library::Interval< Boundary, Info >::upper_widen().

00113                             {
00114   return Scalar_As_Interval_Info_Open(open);
00115 }

template<typename T>
Enable_If<Is_Singleton<T>::value, const Scalar_As_Interval_Info&>::type Parma_Polyhedra_Library::Interval_NS::f_info ( const T &   )  [inline]

Definition at line 108 of file Interval.inlines.hh.

References SCALAR_INFO.

00108                  {
00109   return SCALAR_INFO;
00110 }

template<typename Boundary, typename Info>
const Info& Parma_Polyhedra_Library::Interval_NS::f_info ( const Interval< Boundary, Info > &  x  )  [inline]

Definition at line 79 of file Interval.inlines.hh.

References Parma_Polyhedra_Library::Interval< Boundary, Info >::info().

00079                                           {
00080   return x.info();
00081 }

template<typename T>
Enable_If<Is_Singleton<T>::value, bool>::type Parma_Polyhedra_Library::Interval_NS::f_is_empty ( const T &  x  )  [inline]

Definition at line 119 of file Interval.inlines.hh.

References Parma_Polyhedra_Library::is_not_a_number().

00119                        {
00120   return is_not_a_number(x);
00121 }

template<typename T>
Enable_If<Is_Singleton<T>::value || Is_Interval<T>::value, Ternary>::type Parma_Polyhedra_Library::Interval_NS::f_is_empty_lazy ( const T &  x  )  [inline]

Definition at line 131 of file Interval.inlines.hh.

References CARDINALITY_0, CARDINALITY_IS, f_info(), Parma_Polyhedra_Library::T_MAYBE, Parma_Polyhedra_Library::T_NO, and Parma_Polyhedra_Library::T_YES.

00131                             {
00132   if (f_info(x).get_interval_property(CARDINALITY_0))
00133     return f_info(x).get_interval_property(CARDINALITY_IS) ? T_YES : T_NO;
00134   else
00135     return T_MAYBE;
00136 }

template<typename T>
Enable_If<Is_Singleton<T>::value, bool>::type Parma_Polyhedra_Library::Interval_NS::f_is_singleton ( const T &  x  )  [inline]

Definition at line 125 of file Interval.inlines.hh.

References Parma_Polyhedra_Library::f_is_empty().

00125                            {
00126   return !f_is_empty(x);
00127 }

template<typename T>
Enable_If<Is_Singleton<T>::value, const T&>::type Parma_Polyhedra_Library::Interval_NS::f_lower ( const T &  x  )  [inline]

template<typename Boundary, typename Info>
const Boundary& Parma_Polyhedra_Library::Interval_NS::f_lower ( const Interval< Boundary, Info > &  x  )  [inline]

Definition at line 69 of file Interval.inlines.hh.

References Parma_Polyhedra_Library::Interval< Boundary, Info >::lower().

00069                                            {
00070   return x.lower();
00071 }

template<typename T>
Enable_If<Is_Singleton<T>::value, const T&>::type Parma_Polyhedra_Library::Interval_NS::f_upper ( const T &  x  )  [inline]

template<typename Boundary, typename Info>
const Boundary& Parma_Polyhedra_Library::Interval_NS::f_upper ( const Interval< Boundary, Info > &  x  )  [inline]

Definition at line 74 of file Interval.inlines.hh.

References Parma_Polyhedra_Library::Interval< Boundary, Info >::upper().

00074                                            {
00075   return x.upper();
00076 }

template<typename T>
bool Parma_Polyhedra_Library::Interval_NS::get_bit ( const T &  bits,
unsigned int  bit 
) [inline]

template<typename T>
T Parma_Polyhedra_Library::Interval_NS::get_bits ( T &  bits,
unsigned int  start,
unsigned int  len 
) [inline]

Definition at line 90 of file Interval_Info.defs.hh.

00090                                                         {
00091   return (bits >> start) & ((static_cast<T>(1) << len) - 1);
00092 }

template<typename T>
void Parma_Polyhedra_Library::Interval_NS::reset_bit ( T &  bits,
unsigned int  bit 
) [inline]

Definition at line 62 of file Interval_Info.defs.hh.

Referenced by set_bit().

00062                                      {
00063   bits &= ~(static_cast<T>(1) << bit);
00064 }

template<typename T>
void Parma_Polyhedra_Library::Interval_NS::reset_bits ( T &  bits  )  [inline]

Definition at line 56 of file Interval_Info.defs.hh.

Referenced by Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::clear().

00056                     {
00057   bits = 0;
00058 }

template<typename T>
void Parma_Polyhedra_Library::Interval_NS::set_bit ( T &  bits,
unsigned int  bit,
bool  value 
) [inline]

template<typename T>
void Parma_Polyhedra_Library::Interval_NS::set_bits ( T &  bits,
unsigned int  start,
unsigned int  len,
value 
) [inline]

Definition at line 83 of file Interval_Info.defs.hh.

00083                                                                  {
00084   bits &= ~(((static_cast<T>(1) << len) - 1) << start);
00085   bits |= value << start;
00086 }


Variable Documentation


Generated on Sat Oct 11 10:41:19 2008 for PPL by  doxygen 1.5.6