CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::MultiCounter< CounterType > Class Template Reference

#include <MultiCounter.hh>

Detailed Description

template<typename CounterType>
class CASM::MultiCounter< CounterType >

Close relative of the Counter and IsoCounter class. MULTICOUNTER counts over multiple counter-type objects, enumerating all allowed states of all allowed counters It has a template parameter CounterType, which must be a counter class that has the same interface as Counter and IsoCounter

Definition at line 75 of file MultiCounter.hh.

Public Types

typedef CounterType::value_type value_type
 
typedef CounterType::size_type size_type
 
typedef CounterValueIterator< MultiCounterconst_value_iterator
 

Public Member Functions

 ~MultiCounter ()
 
void operator++ (int)
 
 operator const Array< CounterType > & () const
 
Index size () const
 
const_value_iterator value_begin () const
 
const_value_iterator value_end () const
 
void push_back (const CounterType &new_counter)
 
CounterType & back ()
 
const CounterType & back () const
 
CounterType & operator[] (Index i)
 
const CounterType & operator[] (Index i) const
 
const Array< CounterType > & current () const
 
const Array< CounterType > & operator() () const
 
 MultiCounter ()
 
 MultiCounter (const Array< CounterType > &_counter)
 
MultiCounteroperator++ ()
 
bool operator+= (Index steps)
 
bool valid () const
 
void reset ()
 

Protected Attributes

bool m_is_valid
 
Array< CounterType > m_counters
 

Member Typedef Documentation

◆ const_value_iterator

template<typename CounterType >
typedef CounterValueIterator<MultiCounter> CASM::MultiCounter< CounterType >::const_value_iterator

Definition at line 83 of file MultiCounter.hh.

◆ size_type

template<typename CounterType >
typedef CounterType::size_type CASM::MultiCounter< CounterType >::size_type

Definition at line 82 of file MultiCounter.hh.

◆ value_type

template<typename CounterType >
typedef CounterType::value_type CASM::MultiCounter< CounterType >::value_type

Definition at line 81 of file MultiCounter.hh.

Constructor & Destructor Documentation

◆ MultiCounter() [1/2]

template<typename CounterType >
CASM::MultiCounter< CounterType >::MultiCounter

Definition at line 133 of file MultiCounter.hh.

◆ MultiCounter() [2/2]

template<typename CounterType >
CASM::MultiCounter< CounterType >::MultiCounter ( const Array< CounterType > &  _counter)

Definition at line 138 of file MultiCounter.hh.

◆ ~MultiCounter()

template<typename CounterType >
CASM::MultiCounter< CounterType >::~MultiCounter ( )
inline

Definition at line 87 of file MultiCounter.hh.

Member Function Documentation

◆ back() [1/2]

template<typename CounterType >
CounterType& CASM::MultiCounter< CounterType >::back ( )
inline

Definition at line 119 of file MultiCounter.hh.

◆ back() [2/2]

template<typename CounterType >
const CounterType& CASM::MultiCounter< CounterType >::back ( ) const
inline

Definition at line 121 of file MultiCounter.hh.

◆ current()

template<typename CounterType >
const Array<CounterType>& CASM::MultiCounter< CounterType >::current ( ) const
inline

Definition at line 127 of file MultiCounter.hh.

◆ operator const Array< CounterType > &()

template<typename CounterType >
CASM::MultiCounter< CounterType >::operator const Array< CounterType > & ( ) const
inline

Definition at line 95 of file MultiCounter.hh.

◆ operator()()

template<typename CounterType >
const Array<CounterType>& CASM::MultiCounter< CounterType >::operator() ( ) const
inline

Definition at line 129 of file MultiCounter.hh.

◆ operator++() [1/2]

template<typename CounterType >
MultiCounter< CounterType > & CASM::MultiCounter< CounterType >::operator++

Definition at line 155 of file MultiCounter.hh.

◆ operator++() [2/2]

template<typename CounterType >
void CASM::MultiCounter< CounterType >::operator++ ( int  )
inline

Definition at line 89 of file MultiCounter.hh.

◆ operator+=()

template<typename CounterType >
bool CASM::MultiCounter< CounterType >::operator+= ( Index  steps)

Definition at line 176 of file MultiCounter.hh.

◆ operator[]() [1/2]

template<typename CounterType >
CounterType& CASM::MultiCounter< CounterType >::operator[] ( Index  i)
inline

Definition at line 123 of file MultiCounter.hh.

◆ operator[]() [2/2]

template<typename CounterType >
const CounterType& CASM::MultiCounter< CounterType >::operator[] ( Index  i) const
inline

Definition at line 125 of file MultiCounter.hh.

◆ push_back()

template<typename CounterType >
void CASM::MultiCounter< CounterType >::push_back ( const CounterType &  new_counter)
inline

Definition at line 114 of file MultiCounter.hh.

◆ reset()

template<typename CounterType >
void CASM::MultiCounter< CounterType >::reset

Definition at line 144 of file MultiCounter.hh.

◆ size()

template<typename CounterType >
Index CASM::MultiCounter< CounterType >::size ( ) const
inline

Definition at line 97 of file MultiCounter.hh.

◆ valid()

template<typename CounterType >
bool CASM::MultiCounter< CounterType >::valid

Definition at line 150 of file MultiCounter.hh.

◆ value_begin()

template<typename CounterType >
const_value_iterator CASM::MultiCounter< CounterType >::value_begin ( ) const
inline

Definition at line 99 of file MultiCounter.hh.

◆ value_end()

template<typename CounterType >
const_value_iterator CASM::MultiCounter< CounterType >::value_end ( ) const
inline

Definition at line 106 of file MultiCounter.hh.

Member Data Documentation

◆ m_counters

template<typename CounterType >
Array<CounterType> CASM::MultiCounter< CounterType >::m_counters
protected

Definition at line 78 of file MultiCounter.hh.

◆ m_is_valid

template<typename CounterType >
bool CASM::MultiCounter< CounterType >::m_is_valid
protected

Definition at line 77 of file MultiCounter.hh.


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