PPL  0.12.1
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy > Class Template Reference

#include <Interval_Info.defs.hh>

Collaboration diagram for Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >:

List of all members.

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_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?1:0))
 const_int_nodef (upper_special_bit, lower_open_bit+(store_open?1:0))
 const_int_nodef (upper_open_bit, upper_special_bit+(store_special?1:0))
 const_int_nodef (cardinality_is_bit, upper_open_bit+(store_open?1:0))
 const_int_nodef (cardinality_0_bit, cardinality_is_bit+((cache_empty||cache_singleton)?1:0))
 const_int_nodef (cardinality_1_bit, cardinality_0_bit+(cache_empty?1:0))
 const_int_nodef (next_bit, cardinality_1_bit+(cache_singleton?1:0))
 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 m_swap (Interval_Info_Bitset &y)
 Swaps *this with y.
void ascii_dump (std::ostream &s) const
bool ascii_load (std::istream &s)

Protected Attributes

bitset

Related Functions

(Note that these are not member functions.)

template<typename T , typename Policy >
void swap (Interval_Info_Bitset< T, Policy > &x, Interval_Info_Bitset< T, Policy > &y)

Detailed Description

template<typename T, typename Policy>
class Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >

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


Constructor & Destructor Documentation

template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::Interval_Info_Bitset ( )
inline

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

                         {
    // FIXME: would we have speed benefits with uninitialized info?
    // (Dirty_Temp)
    clear();
  }

Member Function Documentation

template<typename T , typename Policy >
void Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::ascii_dump ( std::ostream &  s) const
inline

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

                                                               {
  const std::ios::fmtflags old_flags = s.setf(std::ios::hex,
                                              std::ios::basefield);
  s << bitset;
  s.flags(old_flags);
}
template<typename T , typename Policy >
bool Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::ascii_load ( std::istream &  s)
inline

Definition at line 88 of file Interval_Info.inlines.hh.

                                                         {
  const std::ios::fmtflags old_flags = s.setf(std::ios::hex,
                                              std::ios::basefield);
  s >> bitset;
  s.flags(old_flags);
  return !s.fail();
}
template<typename T, typename Policy>
void Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::clear ( )
inline
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef ( may_be_empty  ,
Policy::may_be_empty   
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef ( may_contain_infinity  ,
Policy::may_contain_infinity   
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef ( check_inexact  ,
Policy::check_inexact   
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef ( store_special  ,
Policy::store_special   
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef ( store_open  ,
Policy::store_open   
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef ( cache_empty  ,
Policy::cache_empty   
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_bool_nodef ( cache_singleton  ,
Policy::cache_singleton   
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef ( lower_special_bit  ,
Policy::next_bit   
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef ( lower_open_bit  ,
lower_special_bit+  store_special?1:0 
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef ( upper_special_bit  ,
lower_open_bit+  store_open?1:0 
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef ( upper_open_bit  ,
upper_special_bit+  store_special?1:0 
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef ( cardinality_is_bit  ,
upper_open_bit+  store_open?1:0 
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef ( cardinality_0_bit  ,
cardinality_is_bit+  (cache_empty||cache_singleton)?1:0 
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef ( cardinality_1_bit  ,
cardinality_0_bit+  cache_empty?1:0 
)
template<typename T, typename Policy>
Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::const_int_nodef ( next_bit  ,
cardinality_1_bit+  cache_singleton?1:0 
)
template<typename T, typename Policy>
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 219 of file Interval_Info.defs.hh.

References Parma_Polyhedra_Library::Interval_NS::get_bit(), Parma_Polyhedra_Library::Boundary_NS::LOWER, Parma_Polyhedra_Library::Boundary_NS::Property::OPEN_, Parma_Polyhedra_Library::Boundary_NS::Property::SPECIAL_, and Parma_Polyhedra_Library::Boundary_NS::Property::type.

                                                                                  {
    switch (p.type) {
    case Boundary_NS::Property::SPECIAL_:
      if (!store_special)
        return false;
      if (t == LOWER)
        return get_bit(bitset, lower_special_bit);
      else
        return get_bit(bitset, upper_special_bit);
    case Boundary_NS::Property::OPEN_:
      if (!store_open)
        return false;
      else if (t == LOWER)
        return get_bit(bitset, lower_open_bit);
      else
        return get_bit(bitset, upper_open_bit);
    default:
      return false;
    }
  }
template<typename T , typename Policy >
void Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::m_swap ( Interval_Info_Bitset< T, Policy > &  y)
inline
template<typename T, typename Policy>
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 195 of file Interval_Info.defs.hh.

References Parma_Polyhedra_Library::Boundary_NS::LOWER, Parma_Polyhedra_Library::Boundary_NS::Property::OPEN_, Parma_Polyhedra_Library::Interval_NS::set_bit(), Parma_Polyhedra_Library::Boundary_NS::Property::SPECIAL_, Parma_Polyhedra_Library::Boundary_NS::Property::type, and value.

                                                {
    switch (p.type) {
    case Boundary_NS::Property::SPECIAL_:
      if (store_special) {
        if (t == LOWER)
          set_bit(bitset, lower_special_bit, value);
        else
          set_bit(bitset, upper_special_bit, value);
      }
      break;
    case Boundary_NS::Property::OPEN_:
      if (store_open) {
        if (t == LOWER)
          set_bit(bitset, lower_open_bit, value);
        else
          set_bit(bitset, upper_open_bit, value);
      }
      break;
    default:
      break;
    }
  }
template<typename T, typename Policy>
void Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::set_interval_property ( const Interval_NS::Property p,
bool  value = true 
)
inline

Friends And Related Function Documentation

template<typename T , typename Policy >
void swap ( Interval_Info_Bitset< T, Policy > &  x,
Interval_Info_Bitset< T, Policy > &  y 
)
related

Member Data Documentation

template<typename T, typename Policy>
T Parma_Polyhedra_Library::Interval_Info_Bitset< T, Policy >::bitset
protected

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