CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends
poly< T >::const_iterator Class Reference

#include <poly.h>

Inheritance diagram for poly< T >::const_iterator:

Public Member Functions

 const_iterator ()
 
 const_iterator ()
 
 const_iterator (const poly &p)
 
 const_iterator (const poly &p)
 

Static Public Member Functions

static const_iterator end_of (const poly &p)
 
static const_iterator end_of (const poly &p)
 

Private Types

typedef std::list< typename std::set< T >::const_iterator >::const_iterator const_state_iterator
 
typedef std::list< typename std::set< T >::const_iterator >::const_iterator const_state_iterator
 
typedef std::list< typename std::set< T >::const_iterator >::iterator state_iterator
 
typedef std::list< typename std::set< T >::const_iterator >::iterator state_iterator
 

Private Member Functions

void decrement ()
 
void decrement ()
 
T dereference () const
 
T dereference () const
 
bool equal (const_iterator const &rhs) const
 
bool equal (const_iterator const &rhs) const
 
void increment ()
 
void increment ()
 

Private Attributes

std::list< std::set< T > >::const_iterator begin
 
std::list< std::set< T > >::const_iterator end
 
std::list< typename std::set< T >::const_iteratorstate
 

Friends

class boost::iterator_core_access
 

Detailed Description

template<class T>
class poly< T >::const_iterator

Definition at line 64 of file poly.h.

Member Typedef Documentation

template<class T>
typedef std::list<typename std::set<T>::const_iterator>::const_iterator poly< T >::const_iterator::const_state_iterator
private

Definition at line 72 of file poly.h.

template<class T>
typedef std::list<typename std::set<T>::const_iterator>::const_iterator poly< T >::const_iterator::const_state_iterator
private

Definition at line 72 of file poly.h.

template<class T>
typedef std::list<typename std::set<T>::const_iterator>::iterator poly< T >::const_iterator::state_iterator
private

Definition at line 71 of file poly.h.

template<class T>
typedef std::list<typename std::set<T>::const_iterator>::iterator poly< T >::const_iterator::state_iterator
private

Definition at line 71 of file poly.h.

Constructor & Destructor Documentation

template<class T>
poly< T >::const_iterator::const_iterator ( )
inline

Definition at line 93 of file poly.h.

93 {}
template<class T>
poly< T >::const_iterator::const_iterator ( const poly p)
inline

Definition at line 94 of file poly.h.

References poly< T >::const_iterator::begin.

94  : begin(p.begin_columns()), end(p.end_columns()) {
95  const_column_iterator column = begin;
96  while(column!=end) state.push_back((column++)->begin());
97  }
std::list< std::set< T > >::const_iterator begin
Definition: poly.h:69
column_iterator end_columns()
Definition: poly.h:51
std::list< std::set< T > >::const_iterator end
Definition: poly.h:69
std::list< typename std::set< T >::const_iterator > state
Definition: poly.h:68
std::list< std::set< T > >::const_iterator const_column_iterator
Definition: poly.h:30
column_iterator begin_columns()
Definition: poly.h:50
template<class T>
poly< T >::const_iterator::const_iterator ( )
inline

Definition at line 93 of file poly.h.

93 {}
template<class T>
poly< T >::const_iterator::const_iterator ( const poly p)
inline

Definition at line 94 of file poly.h.

References poly< T >::const_iterator::begin.

94  : begin(p.begin_columns()), end(p.end_columns()) {
95  const_column_iterator column = begin;
96  while(column!=end) state.push_back((column++)->begin());
97  }
std::list< std::set< T > >::const_iterator begin
Definition: poly.h:69
column_iterator end_columns()
Definition: poly.h:51
std::list< std::set< T > >::const_iterator end
Definition: poly.h:69
std::list< typename std::set< T >::const_iterator > state
Definition: poly.h:68
std::list< std::set< T > >::const_iterator const_column_iterator
Definition: poly.h:30
column_iterator begin_columns()
Definition: poly.h:50

Member Function Documentation

template<class T>
void poly< T >::const_iterator::decrement ( )
inlineprivate

Definition at line 83 of file poly.h.

References poly< T >::const_iterator::begin, and poly< T >::const_iterator::end.

83  {
84  state_iterator istate = state.begin();
86  while( column != end && *istate == column->begin()) { ++istate; ++column;}
87  if( column != end) --*istate;
88  while( istate != state.begin() ) {--istate; *istate = --((--column)->end());}
89  }
std::list< std::set< T > >::const_iterator begin
Definition: poly.h:69
std::list< std::set< T > >::const_iterator end
Definition: poly.h:69
std::list< typename std::set< T >::const_iterator > state
Definition: poly.h:68
std::list< std::set< T > >::const_iterator const_column_iterator
Definition: poly.h:30
std::list< typename std::set< T >::const_iterator >::iterator state_iterator
Definition: poly.h:71
template<class T>
void poly< T >::const_iterator::decrement ( )
inlineprivate

Definition at line 83 of file poly.h.

References poly< T >::const_iterator::begin, and poly< T >::const_iterator::end.

83  {
84  state_iterator istate = state.begin();
86  while( column != end && *istate == column->begin()) { ++istate; ++column;}
87  if( column != end) --*istate;
88  while( istate != state.begin() ) {--istate; *istate = --((--column)->end());}
89  }
std::list< std::set< T > >::const_iterator begin
Definition: poly.h:69
std::list< std::set< T > >::const_iterator end
Definition: poly.h:69
std::list< typename std::set< T >::const_iterator > state
Definition: poly.h:68
std::list< std::set< T > >::const_iterator const_column_iterator
Definition: poly.h:30
std::list< typename std::set< T >::const_iterator >::iterator state_iterator
Definition: poly.h:71
template<class T>
T poly< T >::const_iterator::dereference ( ) const
inlineprivate

Definition at line 75 of file poly.h.

References alignCSCRings::s.

75 { T s; for(const_state_iterator istate=state.begin(); istate!=state.end(); ++istate) s+= **istate; return s; }
std::list< typename std::set< T >::const_iterator > state
Definition: poly.h:68
std::list< typename std::set< T >::const_iterator >::const_iterator const_state_iterator
Definition: poly.h:72
long double T
template<class T>
T poly< T >::const_iterator::dereference ( ) const
inlineprivate

Definition at line 75 of file poly.h.

References alignCSCRings::s.

75 { T s; for(const_state_iterator istate=state.begin(); istate!=state.end(); ++istate) s+= **istate; return s; }
std::list< typename std::set< T >::const_iterator > state
Definition: poly.h:68
std::list< typename std::set< T >::const_iterator >::const_iterator const_state_iterator
Definition: poly.h:72
long double T
template<class T>
static const_iterator poly< T >::const_iterator::end_of ( const poly p)
inlinestatic

Definition at line 98 of file poly.h.

References poly< T >::const_iterator::end, poly< T >::end_columns(), poly< T >::size(), and poly< T >::const_iterator::state.

98  {
99  const_iterator it(p);
100  if(p.size()!=0) *--(it.state.end()) = (--p.end_columns())->end();
101  return it;
102  }
column_iterator end_columns()
Definition: poly.h:51
std::list< std::set< T > >::const_iterator end
Definition: poly.h:69
size_t size() const
Definition: poly.h:56
template<class T>
static const_iterator poly< T >::const_iterator::end_of ( const poly p)
inlinestatic

Definition at line 98 of file poly.h.

References poly< T >::const_iterator::end, poly< T >::end_columns(), poly< T >::size(), and poly< T >::const_iterator::state.

Referenced by poly< T >::end().

98  {
99  const_iterator it(p);
100  if(p.size()!=0) *--(it.state.end()) = (--p.end_columns())->end();
101  return it;
102  }
column_iterator end_columns()
Definition: poly.h:51
std::list< std::set< T > >::const_iterator end
Definition: poly.h:69
size_t size() const
Definition: poly.h:56
template<class T>
bool poly< T >::const_iterator::equal ( const_iterator const &  rhs) const
inlineprivate

Definition at line 74 of file poly.h.

References cond::serialization::equal(), and poly< T >::const_iterator::state.

74 { return std::equal( state.begin(), state.end(), rhs.state.begin() ); }
bool equal(const T &first, const T &second)
Definition: Equal.h:34
std::list< typename std::set< T >::const_iterator > state
Definition: poly.h:68
template<class T>
bool poly< T >::const_iterator::equal ( const_iterator const &  rhs) const
inlineprivate

Definition at line 74 of file poly.h.

References cond::serialization::equal(), and poly< T >::const_iterator::state.

74 { return std::equal( state.begin(), state.end(), rhs.state.begin() ); }
bool equal(const T &first, const T &second)
Definition: Equal.h:34
std::list< typename std::set< T >::const_iterator > state
Definition: poly.h:68
template<class T>
void poly< T >::const_iterator::increment ( )
inlineprivate

Definition at line 76 of file poly.h.

References poly< T >::const_iterator::begin.

76  {
77  state_iterator istate = state.begin();
79  while( column != end && ++*istate == column->end() ) { ++istate; ++column;}
80  if( column == end ) {--column; --istate;}
81  while( istate != state.begin() ) {--istate; *istate = (--column)->begin();}
82  }
std::list< std::set< T > >::const_iterator begin
Definition: poly.h:69
std::list< std::set< T > >::const_iterator end
Definition: poly.h:69
std::list< typename std::set< T >::const_iterator > state
Definition: poly.h:68
std::list< std::set< T > >::const_iterator const_column_iterator
Definition: poly.h:30
std::list< typename std::set< T >::const_iterator >::iterator state_iterator
Definition: poly.h:71
template<class T>
void poly< T >::const_iterator::increment ( )
inlineprivate

Definition at line 76 of file poly.h.

References poly< T >::const_iterator::begin.

76  {
77  state_iterator istate = state.begin();
79  while( column != end && ++*istate == column->end() ) { ++istate; ++column;}
80  if( column == end ) {--column; --istate;}
81  while( istate != state.begin() ) {--istate; *istate = (--column)->begin();}
82  }
std::list< std::set< T > >::const_iterator begin
Definition: poly.h:69
std::list< std::set< T > >::const_iterator end
Definition: poly.h:69
std::list< typename std::set< T >::const_iterator > state
Definition: poly.h:68
std::list< std::set< T > >::const_iterator const_column_iterator
Definition: poly.h:30
std::list< typename std::set< T >::const_iterator >::iterator state_iterator
Definition: poly.h:71

Friends And Related Function Documentation

template<class T>
boost::iterator_core_access
friend

Definition at line 66 of file poly.h.

Member Data Documentation

template<class T>
std::list< std::set< T > >::const_iterator poly< T >::const_iterator::begin
private
template<class T>
std::list< std::set< T > >::const_iterator poly< T >::const_iterator::end
private
template<class T>
std::list< typename std::set< T >::const_iterator > poly< T >::const_iterator::state
private