CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Types | Public Member Functions | Private Attributes | Friends
poly< T > Class Template Reference

#include <poly.h>

Inheritance diagram for poly< T >:

Classes

class  const_iterator
 

Public Types

typedef std::list< std::set< T >
>::iterator 
column_iterator
 
typedef std::list< std::set< T >
>::iterator 
column_iterator
 
typedef std::list< std::set< T >
>::const_iterator 
const_column_iterator
 
typedef std::list< std::set< T >
>::const_iterator 
const_column_iterator
 
typedef T value_type
 
typedef T value_type
 

Public Member Functions

const_iterator begin () const
 
const_iterator begin () const
 
column_iterator begin_columns ()
 
column_iterator begin_columns ()
 
const_column_iterator begin_columns () const
 
const_column_iterator begin_columns () const
 
const_iterator end () const
 
const_iterator end () const
 
column_iterator end_columns ()
 
column_iterator end_columns ()
 
const_column_iterator end_columns () const
 
const_column_iterator end_columns () const
 
poly operator*= (const T &r)
 
poly operator*= (const T &r)
 
poly operator*= (const poly &R)
 
poly operator*= (const poly &R)
 
poly operator++ ()
 
poly operator++ ()
 
poly operator+= (const poly &R)
 
poly operator+= (const poly &R)
 
poly operator+= (const T &r)
 
poly operator+= (const T &r)
 
bool operator< (const poly &R) const
 
bool operator< (const poly &R) const
 
 poly ()
 
 poly ()
 
 poly (const T &t)
 
 poly (const T &t)
 
size_t size () const
 
size_t size () const
 

Private Attributes

std::list< std::set< T > > columns
 

Friends

poly< Toperator+ (const poly< T > &, const char *)
 
poly< Toperator+ (const poly< T > &, const char *)
 
poly< Toperator+ (const char *, const poly< T > &)
 
poly< Toperator+ (const char *, const poly< T > &)
 

Detailed Description

template<class T>
class poly< T >

Definition at line 11 of file poly.h.

Member Typedef Documentation

template<class T>
typedef std::list<std::set<T> >::iterator poly< T >::column_iterator

Definition at line 29 of file poly.h.

template<class T>
typedef std::list<std::set<T> >::iterator poly< T >::column_iterator

Definition at line 29 of file poly.h.

template<class T>
typedef std::list<std::set<T> >::const_iterator poly< T >::const_column_iterator

Definition at line 30 of file poly.h.

template<class T>
typedef std::list<std::set<T> >::const_iterator poly< T >::const_column_iterator

Definition at line 30 of file poly.h.

template<class T>
typedef T poly< T >::value_type

Definition at line 27 of file poly.h.

template<class T>
typedef T poly< T >::value_type

Definition at line 27 of file poly.h.

Constructor & Destructor Documentation

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

Definition at line 31 of file poly.h.

31 {}
template<class T>
poly< T >::poly ( const T t)
inline

Definition at line 32 of file poly.h.

References poly< T >::operator+=().

32 {operator+=(t);}
poly operator+=(const poly &R)
Definition: poly.h:40
template<class T>
poly< T >::poly ( )
inline

Definition at line 31 of file poly.h.

31 {}
template<class T>
poly< T >::poly ( const T t)
inline

Definition at line 32 of file poly.h.

References poly< T >::operator+=().

32 {operator+=(t);}
poly operator+=(const poly &R)
Definition: poly.h:40

Member Function Documentation

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

Definition at line 47 of file poly.h.

Referenced by Book::fill(), and poly< T >::operator*=().

47 { return const_iterator(*this);}
template<class T>
const_iterator poly< T >::begin ( void  ) const
inline

Definition at line 47 of file poly.h.

47 { return const_iterator(*this);}
template<class T>
column_iterator poly< T >::begin_columns ( )
inline

Definition at line 50 of file poly.h.

References poly< T >::columns.

50 { return columns.begin();}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
column_iterator poly< T >::begin_columns ( )
inline

Definition at line 50 of file poly.h.

References poly< T >::columns.

50 { return columns.begin();}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
const_column_iterator poly< T >::begin_columns ( ) const
inline

Definition at line 53 of file poly.h.

References poly< T >::columns.

53 { return columns.begin();}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
const_column_iterator poly< T >::begin_columns ( ) const
inline

Definition at line 53 of file poly.h.

References poly< T >::columns.

53 { return columns.begin();}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
const_iterator poly< T >::end ( ) const
inline

Definition at line 48 of file poly.h.

References poly< T >::const_iterator::end_of().

Referenced by Types.LuminosityBlockRange::cppID(), Types.EventRange::cppID(), Book::fill(), and poly< T >::operator*=().

48 { return const_iterator::end_of(*this);}
static const_iterator end_of(const poly &p)
Definition: poly.h:98
template<class T>
const_iterator poly< T >::end ( void  ) const
inline

Definition at line 48 of file poly.h.

References poly< T >::const_iterator::end_of().

Referenced by Types.LuminosityBlockRange::cppID(), and Types.EventRange::cppID().

48 { return const_iterator::end_of(*this);}
static const_iterator end_of(const poly &p)
Definition: poly.h:98
template<class T>
column_iterator poly< T >::end_columns ( )
inline

Definition at line 51 of file poly.h.

References poly< T >::columns.

51 { return columns.end();}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
column_iterator poly< T >::end_columns ( )
inline

Definition at line 51 of file poly.h.

References poly< T >::columns.

Referenced by poly< T >::const_iterator::end_of().

51 { return columns.end();}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
const_column_iterator poly< T >::end_columns ( ) const
inline

Definition at line 54 of file poly.h.

References poly< T >::columns.

54 { return columns.end();}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
const_column_iterator poly< T >::end_columns ( ) const
inline

Definition at line 54 of file poly.h.

References poly< T >::columns.

54 { return columns.end();}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
poly poly< T >::operator*= ( const T r)
inline

Definition at line 42 of file poly.h.

References poly< T >::columns.

42 { columns.back().insert(r); return *this;}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
poly poly< T >::operator*= ( const T r)
inline

Definition at line 42 of file poly.h.

References poly< T >::columns.

Referenced by poly< T >::operator+=().

42 { columns.back().insert(r); return *this;}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
poly poly< T >::operator*= ( const poly< T > &  R)
inline

Definition at line 43 of file poly.h.

References poly< T >::begin(), poly< T >::columns, and poly< T >::end().

43 { columns.back().insert(R.begin(),R.end()); return *this;}
const_iterator end() const
Definition: poly.h:48
std::list< std::set< T > > columns
Definition: poly.h:23
const_iterator begin() const
Definition: poly.h:47
template<class T>
poly poly< T >::operator*= ( const poly< T > &  R)
inline

Definition at line 43 of file poly.h.

References poly< T >::begin(), poly< T >::columns, and poly< T >::end().

43 { columns.back().insert(R.begin(),R.end()); return *this;}
const_iterator end() const
Definition: poly.h:48
std::list< std::set< T > > columns
Definition: poly.h:23
const_iterator begin() const
Definition: poly.h:47
template<class T>
poly poly< T >::operator++ ( )
inline

Definition at line 39 of file poly.h.

References poly< T >::columns.

Referenced by poly< T >::operator+=().

39 {columns.push_back(std::set<T>()); return *this;}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
poly poly< T >::operator++ ( void  )
inline

Definition at line 39 of file poly.h.

References poly< T >::columns.

39 {columns.push_back(std::set<T>()); return *this;}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
poly poly< T >::operator+= ( const poly< T > &  R)
inline

Definition at line 40 of file poly.h.

References poly< T >::columns.

40 { columns.insert(columns.end(),R.columns.begin(),R.columns.end()); return *this;}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
poly poly< T >::operator+= ( const poly< T > &  R)
inline

Definition at line 40 of file poly.h.

References poly< T >::columns.

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

40 { columns.insert(columns.end(),R.columns.begin(),R.columns.end()); return *this;}
std::list< std::set< T > > columns
Definition: poly.h:23
template<class T>
poly poly< T >::operator+= ( const T r)
inline

Definition at line 41 of file poly.h.

References poly< T >::operator*=(), and poly< T >::operator++().

41 { operator++(); return operator*=(r);}
poly operator*=(const T &r)
Definition: poly.h:42
poly operator++()
Definition: poly.h:39
template<class T>
poly poly< T >::operator+= ( const T r)
inline

Definition at line 41 of file poly.h.

References poly< T >::operator*=(), and poly< T >::operator++().

41 { operator++(); return operator*=(r);}
poly operator*=(const T &r)
Definition: poly.h:42
poly operator++()
Definition: poly.h:39
template<class T>
bool poly< T >::operator< ( const poly< T > &  R) const
inline

Definition at line 34 of file poly.h.

References poly< T >::columns.

34  {
35  const_column_iterator column(columns.begin()), Rcolumn(R.columns.begin());
36  while( column!=columns.end() && Rcolumn!=R.columns.end() && *column==*Rcolumn) { ++column; ++Rcolumn; }
37  return column!=columns.end() && Rcolumn!=R.columns.end() && *column < *Rcolumn;
38  }
std::list< std::set< T > > columns
Definition: poly.h:23
std::list< std::set< T > >::const_iterator const_column_iterator
Definition: poly.h:30
template<class T>
bool poly< T >::operator< ( const poly< T > &  R) const
inline

Definition at line 34 of file poly.h.

References poly< T >::columns.

34  {
35  const_column_iterator column(columns.begin()), Rcolumn(R.columns.begin());
36  while( column!=columns.end() && Rcolumn!=R.columns.end() && *column==*Rcolumn) { ++column; ++Rcolumn; }
37  return column!=columns.end() && Rcolumn!=R.columns.end() && *column < *Rcolumn;
38  }
std::list< std::set< T > > columns
Definition: poly.h:23
std::list< std::set< T > >::const_iterator const_column_iterator
Definition: poly.h:30
template<class T>
size_t poly< T >::size ( void  ) const
inline

Definition at line 56 of file poly.h.

References poly< T >::columns, and poly< T >::size().

56  {
57  if(columns.empty()) return 0;
58  size_t size=1;
59  for( const_column_iterator column = columns.begin(); column != columns.end(); ++column)
60  size *= column->size();
61  return size;
62  }
std::list< std::set< T > > columns
Definition: poly.h:23
std::list< std::set< T > >::const_iterator const_column_iterator
Definition: poly.h:30
size_t size() const
Definition: poly.h:56
template<class T>
size_t poly< T >::size ( void  ) const
inline

Definition at line 56 of file poly.h.

References poly< T >::columns.

Referenced by poly< T >::const_iterator::end_of(), and poly< T >::size().

56  {
57  if(columns.empty()) return 0;
58  size_t size=1;
59  for( const_column_iterator column = columns.begin(); column != columns.end(); ++column)
60  size *= column->size();
61  return size;
62  }
std::list< std::set< T > > columns
Definition: poly.h:23
std::list< std::set< T > >::const_iterator const_column_iterator
Definition: poly.h:30
size_t size() const
Definition: poly.h:56

Friends And Related Function Documentation

template<class T>
poly<T> operator+ ( const poly< T > &  lhs,
const char *  rhs 
)
friend
template<class T>
poly<T> operator+ ( const poly< T > &  lhs,
const char *  rhs 
)
friend
template<class T>
poly<T> operator+ ( const char *  lhs,
const poly< T > &  rhs 
)
friend
template<class T>
poly<T> operator+ ( const char *  lhs,
const poly< T > &  rhs 
)
friend

Member Data Documentation

template<class T>
std::list< std::set< T > > poly< T >::columns
private