#include <Interval_Info.defs.hh>

Public Member Functions | |
| const_bool_nodef (may_be_empty, Policy::may_be_empty) | |
| const_bool_nodef (may_contain_infinity, Policy::may_contain_infinity) | |
| const_bool_nodef (check_inexact, Policy::check_inexact) | |
| const_bool_nodef (store_special, Policy::store_special) | |
| const_bool_nodef (store_open, Policy::store_open) | |
| const_bool_nodef (cache_normalized, Policy::cache_normalized) | |
| const_bool_nodef (cache_empty, Policy::cache_empty) | |
| const_bool_nodef (cache_singleton, Policy::cache_singleton) | |
| const_int_nodef (lower_special_bit, Policy::next_bit) | |
| const_int_nodef (lower_open_bit, lower_special_bit+store_special) | |
| const_int_nodef (lower_normalized_bit, lower_open_bit+store_open) | |
| const_int_nodef (upper_special_bit, lower_normalized_bit+cache_normalized) | |
| const_int_nodef (upper_open_bit, upper_special_bit+store_special) | |
| const_int_nodef (upper_normalized_bit, upper_open_bit+store_open) | |
| const_int_nodef (cardinality_is_bit, upper_normalized_bit+cache_normalized) | |
| const_int_nodef (cardinality_0_bit, cardinality_is_bit+(cache_empty||cache_singleton)) | |
| const_int_nodef (cardinality_1_bit, cardinality_0_bit+cache_empty) | |
| const_int_nodef (next_bit, cardinality_1_bit+cache_singleton) | |
| Interval_Info_Bitset () | |
| void | clear () |
| void | clear_boundary_properties (Boundary_Type t) |
| void | set_boundary_property (Boundary_Type t, const Boundary_NS::Property &p, bool value=true) |
| bool | get_boundary_property (Boundary_Type t, const Boundary_NS::Property &p) const |
| void | set_interval_property (const Interval_NS::Property &p, bool value=true) |
| bool | get_interval_property (Interval_NS::Property p) const |
| void | swap (Interval_Info_Bitset &y) |
Swaps *this with y. | |
| void | ascii_dump (std::ostream &s) const |
| bool | ascii_load (std::istream &s) |
Protected Attributes | |
| T | bitset |
Related Functions | |
(Note that these are not member functions.) | |
| template<typename T , typename Policy > | |
| void | swap (Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy > &x, Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy > &y) |
Definition at line 164 of file Interval_Info.defs.hh.
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::Interval_Info_Bitset | ( | ) | [inline] |
Definition at line 184 of file Interval_Info.defs.hh.
References Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::clear().
00184 { 00185 // FIXME: would we have speed benefits with uninitialized info? 00186 // (Dirty_Temp) 00187 clear(); 00188 }
| void Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::ascii_dump | ( | std::ostream & | s | ) | const [inline] |
Definition at line 78 of file Interval_Info.inlines.hh.
References Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::bitset.
00078 { 00079 std::ios_base::fmtflags old = s.flags(); 00080 s << std::hex << bitset; 00081 s.flags(old); 00082 }
| bool Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::ascii_load | ( | std::istream & | s | ) | [inline] |
Definition at line 86 of file Interval_Info.inlines.hh.
References Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::bitset.
00086 { 00087 std::ios_base::fmtflags old = s.flags(); 00088 if (s >> std::hex >> bitset) { 00089 s.flags(old); 00090 return s; 00091 } 00092 else 00093 return false; 00094 }
| void Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::clear | ( | ) | [inline] |
Definition at line 190 of file Interval_Info.defs.hh.
References Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::bitset, and Parma_Polyhedra_Library::Interval_NS::reset_bits().
Referenced by Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::Interval_Info_Bitset().
00190 { 00191 reset_bits(bitset); 00192 }
| void Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::clear_boundary_properties | ( | Boundary_Type | t | ) | [inline] |
Definition at line 193 of file Interval_Info.defs.hh.
References Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::set_boundary_property().
00193 { 00194 set_boundary_property(t, SPECIAL, false); 00195 set_boundary_property(t, OPEN, false); 00196 }
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef | ( | cache_singleton | , | |
| Policy::cache_singleton | ||||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef | ( | cache_empty | , | |
| Policy::cache_empty | ||||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef | ( | cache_normalized | , | |
| Policy::cache_normalized | ||||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef | ( | store_open | , | |
| Policy::store_open | ||||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef | ( | store_special | , | |
| Policy::store_special | ||||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef | ( | check_inexact | , | |
| Policy::check_inexact | ||||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef | ( | may_contain_infinity | , | |
| Policy::may_contain_infinity | ||||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef | ( | may_be_empty | , | |
| Policy::may_be_empty | ||||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef | ( | next_bit | , | |
| cardinality_1_bit+ | cache_singleton | |||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef | ( | cardinality_1_bit | , | |
| cardinality_0_bit+ | cache_empty | |||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef | ( | cardinality_0_bit | , | |
| cardinality_is_bit+ | cache_empty||cache_singleton | |||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef | ( | cardinality_is_bit | , | |
| upper_normalized_bit+ | cache_normalized | |||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef | ( | upper_normalized_bit | , | |
| upper_open_bit+ | store_open | |||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef | ( | upper_open_bit | , | |
| upper_special_bit+ | store_special | |||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef | ( | upper_special_bit | , | |
| lower_normalized_bit+ | cache_normalized | |||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef | ( | lower_normalized_bit | , | |
| lower_open_bit+ | store_open | |||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef | ( | lower_open_bit | , | |
| lower_special_bit+ | store_special | |||
| ) |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef | ( | lower_special_bit | , | |
| Policy::next_bit | ||||
| ) |
| bool Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::get_boundary_property | ( | Boundary_Type | t, | |
| const Boundary_NS::Property & | p | |||
| ) | const [inline] |
Definition at line 227 of file Interval_Info.defs.hh.
References Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::bitset, and Parma_Polyhedra_Library::Interval_NS::get_bit().
00227 { 00228 switch (p.type) { 00229 case Boundary_NS::Property::SPECIAL_: 00230 if (!store_special) 00231 return false; 00232 if (t == LOWER) 00233 return get_bit(bitset, lower_special_bit); 00234 else 00235 return get_bit(bitset, upper_special_bit); 00236 case Boundary_NS::Property::OPEN_: 00237 if (!store_open) 00238 return false; 00239 else if (t == LOWER) 00240 return get_bit(bitset, lower_open_bit); 00241 else 00242 return get_bit(bitset, upper_open_bit); 00243 case Boundary_NS::Property::NORMALIZED_: 00244 if (!cache_normalized) 00245 return false; 00246 else if (t == LOWER) 00247 return get_bit(bitset, lower_normalized_bit); 00248 else 00249 return get_bit(bitset, upper_normalized_bit); 00250 default: 00251 return false; 00252 } 00253 }
| bool Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::get_interval_property | ( | Interval_NS::Property | p | ) | const [inline] |
Definition at line 272 of file Interval_Info.defs.hh.
References Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::bitset, Parma_Polyhedra_Library::Interval_NS::Property::CARDINALITY_0_, Parma_Polyhedra_Library::Interval_NS::Property::CARDINALITY_1_, Parma_Polyhedra_Library::Interval_NS::Property::CARDINALITY_IS_, Parma_Polyhedra_Library::Interval_NS::get_bit(), and Parma_Polyhedra_Library::Interval_NS::Property::type.
00272 { 00273 switch (p.type) { 00274 case Interval_NS::Property::CARDINALITY_0_: 00275 return cache_empty && get_bit(bitset, cardinality_0_bit); 00276 case Interval_NS::Property::CARDINALITY_1_: 00277 return cache_singleton && get_bit(bitset, cardinality_1_bit); 00278 case Interval_NS::Property::CARDINALITY_IS_: 00279 return (cache_empty || cache_singleton) 00280 && get_bit(bitset, cardinality_is_bit); 00281 default: 00282 return false; 00283 } 00284 }
| void Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::set_boundary_property | ( | Boundary_Type | t, | |
| const Boundary_NS::Property & | p, | |||
| bool | value = true | |||
| ) | [inline] |
Definition at line 197 of file Interval_Info.defs.hh.
References Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::bitset, and Parma_Polyhedra_Library::Interval_NS::set_bit().
Referenced by Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::clear_boundary_properties().
00197 { 00198 switch (p.type) { 00199 case Boundary_NS::Property::SPECIAL_: 00200 if (store_special) { 00201 if (t == LOWER) 00202 set_bit(bitset, lower_special_bit, value); 00203 else 00204 set_bit(bitset, upper_special_bit, value); 00205 } 00206 break; 00207 case Boundary_NS::Property::OPEN_: 00208 if (store_open) { 00209 if (t == LOWER) 00210 set_bit(bitset, lower_open_bit, value); 00211 else 00212 set_bit(bitset, upper_open_bit, value); 00213 } 00214 break; 00215 case Boundary_NS::Property::NORMALIZED_: 00216 if (cache_normalized) { 00217 if (t == LOWER) 00218 set_bit(bitset, lower_normalized_bit, value); 00219 else 00220 set_bit(bitset, upper_normalized_bit, value); 00221 } 00222 break; 00223 default: 00224 break; 00225 } 00226 }
| void Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::set_interval_property | ( | const Interval_NS::Property & | p, | |
| bool | value = true | |||
| ) | [inline] |
Definition at line 254 of file Interval_Info.defs.hh.
References Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::bitset, Parma_Polyhedra_Library::Interval_NS::Property::CARDINALITY_0_, Parma_Polyhedra_Library::Interval_NS::Property::CARDINALITY_1_, Parma_Polyhedra_Library::Interval_NS::Property::CARDINALITY_IS_, Parma_Polyhedra_Library::Interval_NS::set_bit(), and Parma_Polyhedra_Library::Interval_NS::Property::type.
00254 { 00255 switch (p.type) { 00256 case Interval_NS::Property::CARDINALITY_0_: 00257 if (cache_empty) 00258 set_bit(bitset, cardinality_0_bit, value); 00259 break; 00260 case Interval_NS::Property::CARDINALITY_1_: 00261 if (cache_singleton) 00262 set_bit(bitset, cardinality_1_bit, value); 00263 break; 00264 case Interval_NS::Property::CARDINALITY_IS_: 00265 if (cache_empty || cache_singleton) 00266 set_bit(bitset, cardinality_is_bit, value); 00267 break; 00268 default: 00269 break; 00270 } 00271 }
| void Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::swap | ( | Interval_Info_Bitset< T, Policy > & | y | ) | [inline] |
Swaps *this with y.
Definition at line 72 of file Interval_Info.inlines.hh.
References Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::bitset.
Referenced by Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::swap().
| void swap | ( | Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy > & | x, | |
| Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy > & | y | |||
| ) | [related] |
Definition at line 115 of file Interval_Info.inlines.hh.
References Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::swap().
00116 { 00117 x.swap(y); 00118 }
T Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::bitset [protected] |
Definition at line 293 of file Interval_Info.defs.hh.
Referenced by Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::ascii_dump(), Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::ascii_load(), Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::clear(), Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::get_boundary_property(), Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::get_interval_property(), Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::set_boundary_property(), Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::set_interval_property(), and Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::swap().
1.6.3