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> | |
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 Interval_Restriction_None<Interval_Info_Null<Scalar_As_Interval_Policy> > Parma_Polyhedra_Library::Interval_NS::Scalar_As_Interval_Info |
Definition at line 90 of file Interval.inlines.hh.
typedef Interval_Restriction_None<Interval_Info_Null_Open<Scalar_As_Interval_Policy> > Parma_Polyhedra_Library::Interval_NS::Scalar_As_Interval_Info_Open |
Definition at line 94 of file Interval.inlines.hh.
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 }
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 }
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().
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 }
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 }
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 }
Enable_If<Is_Singleton<T>::value, const T&>::type Parma_Polyhedra_Library::Interval_NS::f_lower | ( | const T & | x | ) | [inline] |
Definition at line 98 of file Interval.inlines.hh.
Referenced by Parma_Polyhedra_Library::Interval< Boundary, Info >::add_assign(), Parma_Polyhedra_Library::add_restriction(), Parma_Polyhedra_Library::Interval< Boundary, Info >::contains(), Parma_Polyhedra_Library::Interval< Boundary, Info >::difference_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::div_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::intersect_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_disjoint_from(), Parma_Polyhedra_Library::is_singleton_integer(), Parma_Polyhedra_Library::Interval< Boundary, Info >::join_assign(), Parma_Polyhedra_Library::join_restriction(), Parma_Polyhedra_Library::Interval< Boundary, Info >::mul_assign(), Parma_Polyhedra_Library::mul_restriction(), 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(), and Parma_Polyhedra_Library::sub_restriction().
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().
Enable_If<Is_Singleton<T>::value, const T&>::type Parma_Polyhedra_Library::Interval_NS::f_upper | ( | const T & | x | ) | [inline] |
Definition at line 103 of file Interval.inlines.hh.
Referenced by Parma_Polyhedra_Library::Interval< Boundary, Info >::add_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::contains(), Parma_Polyhedra_Library::Interval< Boundary, Info >::difference_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::div_assign(), 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 >::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(), and Parma_Polyhedra_Library::Interval< Boundary, Info >::sub_assign().
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().
bool Parma_Polyhedra_Library::Interval_NS::get_bit | ( | const T & | bits, | |
unsigned int | bit | |||
) | [inline] |
Definition at line 77 of file Interval_Info.defs.hh.
Referenced by Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::get_boundary_property(), Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::get_integer(), and Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::get_interval_property().
T Parma_Polyhedra_Library::Interval_NS::get_bits | ( | T & | bits, | |
unsigned int | start, | |||
unsigned int | len | |||
) | [inline] |
void Parma_Polyhedra_Library::Interval_NS::reset_bit | ( | T & | bits, | |
unsigned int | bit | |||
) | [inline] |
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().
void Parma_Polyhedra_Library::Interval_NS::set_bit | ( | T & | bits, | |
unsigned int | bit, | |||
bool | value | |||
) | [inline] |
Definition at line 68 of file Interval_Info.defs.hh.
References reset_bit().
Referenced by Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::set_boundary_property(), Parma_Polyhedra_Library::Interval_Restriction_Integer< Base >::set_integer(), and Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::set_interval_property().
00068 { 00069 if (value) 00070 bits |= static_cast<T>(1) << bit; 00071 else 00072 reset_bit(bits, bit); 00073 }
void Parma_Polyhedra_Library::Interval_NS::set_bits | ( | T & | bits, | |
unsigned int | start, | |||
unsigned int | len, | |||
T | 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 }
const Property Parma_Polyhedra_Library::Interval_NS::CARDINALITY_0(Property::CARDINALITY_0_) |
Referenced by Parma_Polyhedra_Library::Interval< Boundary, Info >::assign(), f_is_empty_lazy(), Parma_Polyhedra_Library::Interval< Boundary, Info >::invalidate_cardinality_cache(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_empty(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_empty_cached(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_singleton(), Parma_Polyhedra_Library::Interval< Boundary, Info >::join_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::OK(), and Parma_Polyhedra_Library::Interval< Boundary, Info >::set_infinities().
const Property Parma_Polyhedra_Library::Interval_NS::CARDINALITY_1(Property::CARDINALITY_1_) |
Referenced by Parma_Polyhedra_Library::Interval< Boundary, Info >::assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::invalidate_cardinality_cache(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_empty(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_singleton(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_singleton_cached(), Parma_Polyhedra_Library::Interval< Boundary, Info >::join_assign(), Parma_Polyhedra_Library::Interval< Boundary, Info >::OK(), and Parma_Polyhedra_Library::Interval< Boundary, Info >::set_infinities().
const Property Parma_Polyhedra_Library::Interval_NS::CARDINALITY_IS(Property::CARDINALITY_IS_) |
Referenced by Parma_Polyhedra_Library::Interval< Boundary, Info >::assign(), f_is_empty_lazy(), Parma_Polyhedra_Library::Interval< Boundary, Info >::invalidate_cardinality_cache(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_empty(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_empty_cached(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_singleton(), Parma_Polyhedra_Library::Interval< Boundary, Info >::is_singleton_cached(), Parma_Polyhedra_Library::Interval< Boundary, Info >::join_assign(), and Parma_Polyhedra_Library::Interval< Boundary, Info >::OK().
Definition at line 92 of file Interval.inlines.hh.
Referenced by f_info(), and Parma_Polyhedra_Library::Interval< Boundary, Info >::refine_universal().