CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare > Class Template Reference

#include <IsoCounter.hh>

+ Inheritance diagram for CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >:

Detailed Description

template<typename _Container, typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
class CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >

A IsoCounter allows looping over many incrementing variables in one loop.

Template Parameters
ContainerThe type of container containing the variables begin looped over. Container should be fully specified, so 'std::vector<int>', not 'std::vector'.
value_typeThe type of variable contained by the Container. Must have valid operators '+=' and '+'.
size_typeThe type of the index into the Container.
AccessA Functor or function with signature 'value_type& Access::operator()(Container &, size_type);', which provides a reference to a element of the Container.
CompareA Functor or function with signature 'bool Compare::operator()(const value_type& A, const value_type& B);', which provides a less than comparison, like 'operator<'.

Default container access using the CASM_TMP::BracketAccess functor is identical to 'container[index]'. Parentheses access, like 'container(index)', can be obtained by setting the Access parameter using the CASM_TMP::ParenthesesAccess functor.

Default value_type comparison is as 'value_type < value_type'. Custom comparison can be provided using the Compare functor.

The first element of the container is the inner loop, and the last element of the container is the outer loop.

Example:

Output:

0 0 0
1 0 0
0 1 0
1 1 0
0 0 1
1 0 1
0 1 1
1 1 1

Definition at line 94 of file IsoCounter.hh.

Public Types

typedef _Container Container
 
typedef _value_type value_type
 
typedef _size_type size_type
 
typedef _Access Access
 
typedef _Compare Compare
 
typedef CounterValueIterator< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > > const_value_iterator
 

Public Member Functions

 IsoCounter ()
 Default construct a IsoCounter Container must be default constructible value_type must be constructible with zero. More...
 
 IsoCounter (const Container &_initial, const Container &_final, const value_type &_increment, const value_type &_sum, Access _access=Access(), Compare _compare=Compare())
 Construct a IsoCounter-type object. More...
 
const value_typeincrement () const
 
value_type current_sum () const
 
IsoCounteroperator++ ()
 
void operator++ (int)
 
void set_sum_constraint (const value_type &new_sum)
 
void set_current (const Container &new_current)
 
void reset ()
 Reset thse current value of the Counter to the initial value. More...
 
bool valid () const
 
 operator bool () const
 
 operator const Container & () const
 
const value_typeoperator[] (size_type index) const
 
size_type size () const
 
const_value_iterator value_begin () const
 
const_value_iterator value_end () const
 
bool compare (const value_type &A, const value_type &B)
 
const Containercurrent () const
 
const value_typecurrent (size_type index) const
 
const Containeroperator() () const
 
const Containerinitial () const
 
const Containerfinal () const
 

Protected Member Functions

bool & _valid ()
 non-const reference bool validity flag More...
 
const value_type_current (size_type index) const
 
value_type_current (size_type index)
 
Container_current ()
 
const value_type_initial (size_type index) const
 
value_type_initial (size_type index)
 
const value_type_final (size_type index) const
 
value_type_final (size_type index)
 
const value_type_increment (size_type index) const
 
value_type_increment (size_type index)
 
const value_type_upper (size_type index) const
 
value_type_upper (size_type index)
 
const value_type_lower (size_type index) const
 
value_type_lower (size_type index)
 

Private Types

typedef traits< IsoCounter >::Base Base
 

Private Member Functions

value_type_sum_constraint ()
 
const value_type_sum_constraint () const
 
bool _compute_validity ()
 
void _init ()
 Called from the constructor to set m_lower and m_upper appropriately. More...
 
value_type_increment ()
 
const value_type_increment () const
 

Private Attributes

value_type m_sum_constraint
 
Access m_access
 
Compare m_compare
 A functor that enables custom comparison, by default: operator<. More...
 
Container m_initial
 Initial container values. More...
 
Container m_final
 Final container values. More...
 
Container m_increment
 Amount to increment each container value. More...
 
Container m_lower
 The minimum of each value of m_initial and m_final. More...
 
Container m_upper
 The maximum of each value of m_initial and m_final. More...
 
Container m_current
 The current state of the container. More...
 
bool m_valid
 

Member Typedef Documentation

◆ Access

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
typedef _Access CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::Access

Definition at line 110 of file IsoCounter.hh.

◆ Base

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
typedef traits<IsoCounter>::Base CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::Base
private

Definition at line 97 of file IsoCounter.hh.

◆ Compare

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
typedef _Compare CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::Compare

Definition at line 111 of file IsoCounter.hh.

◆ const_value_iterator

typedef CounterValueIterator<IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > > CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::const_value_iterator
inherited

Definition at line 132 of file BaseCounter.hh.

◆ Container

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
typedef _Container CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::Container

Definition at line 107 of file IsoCounter.hh.

◆ size_type

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
typedef _size_type CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::size_type

Definition at line 109 of file IsoCounter.hh.

◆ value_type

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
typedef _value_type CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::value_type

Definition at line 108 of file IsoCounter.hh.

Constructor & Destructor Documentation

◆ IsoCounter() [1/2]

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::IsoCounter ( )
inline

Default construct a IsoCounter Container must be default constructible value_type must be constructible with zero.

Definition at line 126 of file IsoCounter.hh.

◆ IsoCounter() [2/2]

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::IsoCounter ( const Container _initial,
const Container _final,
const value_type _increment,
const value_type _sum,
Access  _access = Access(),
Compare  _compare = Compare() 
)
inline

Construct a IsoCounter-type object.

Parameters
_initialthe initial Container values
_finalthe final valid Container values
_incrementthe amount to increment each Container value by

Definition at line 133 of file IsoCounter.hh.

Member Function Documentation

◆ _compute_validity()

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
bool CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::_compute_validity ( )
inlineprivate

Definition at line 279 of file IsoCounter.hh.

◆ _current() [1/3]

Container& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_current ( )
inlineprotectedinherited

non-const Access the current value of the Container

Returns
a non-const reference to the current value of the Container

Definition at line 259 of file BaseCounter.hh.

◆ _current() [2/3]

value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_current ( size_type  index)
inlineprotectedinherited

non-const Access to element in the current value of the Container

Returns
a non-const reference to the element 'index' in the current value of the Container

Definition at line 253 of file BaseCounter.hh.

◆ _current() [3/3]

const value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_current ( size_type  index) const
inlineprotectedinherited

const Access to element in the current value of the Container

Returns
a const reference to the element 'index' in the current value of the Container

Definition at line 244 of file BaseCounter.hh.

◆ _final() [1/2]

value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_final ( size_type  index)
inlineprotectedinherited

non-const Access to element in the final value of the Container

Returns
a non-const reference to the element 'index' in the final value of the Container

Definition at line 291 of file BaseCounter.hh.

◆ _final() [2/2]

const value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_final ( size_type  index) const
inlineprotectedinherited

const Access to element in the final value of the Container

Returns
a const reference to the element 'index' in the final value of the Container

Definition at line 282 of file BaseCounter.hh.

◆ _increment() [1/4]

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
value_type& CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::_increment ( )
inlineprivate

Definition at line 304 of file IsoCounter.hh.

◆ _increment() [2/4]

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
const value_type& CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::_increment ( ) const
inlineprivate

Definition at line 306 of file IsoCounter.hh.

◆ _increment() [3/4]

value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_increment ( size_type  index)
inlineprotectedinherited

non-const Access to element in the increment value of the Container

Returns
a non-const reference to the element 'index' in the increment value of the Container

Definition at line 307 of file BaseCounter.hh.

◆ _increment() [4/4]

const value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_increment ( size_type  index) const
inlineprotectedinherited

const Access to element in the increment value of the Container

Returns
a const reference to the element 'index' in the increment value of the Container

Definition at line 298 of file BaseCounter.hh.

◆ _init()

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
void CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::_init ( )
inlineprivate

Called from the constructor to set m_lower and m_upper appropriately.

Definition at line 292 of file IsoCounter.hh.

◆ _initial() [1/2]

value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_initial ( size_type  index)
inlineprotectedinherited

non-const Access to element in the initial value of the Container

Returns
a non-const reference to the element 'index' in the initial value of the Container

Definition at line 275 of file BaseCounter.hh.

◆ _initial() [2/2]

const value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_initial ( size_type  index) const
inlineprotectedinherited

const Access to element in the initial value of the Container

Returns
a const reference to the element 'index' in the initial value of the Container

Definition at line 266 of file BaseCounter.hh.

◆ _lower() [1/2]

value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_lower ( size_type  index)
inlineprotectedinherited

non-const Access to element in the lower value of the Container

Returns
a non-const reference to the element 'index' in the lower value of the Container

Definition at line 341 of file BaseCounter.hh.

◆ _lower() [2/2]

const value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_lower ( size_type  index) const
inlineprotectedinherited

const Access to element in the lower value of the Container

Returns
a const reference to the element 'index' in the lower value of the Container

Definition at line 332 of file BaseCounter.hh.

◆ _sum_constraint() [1/2]

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
value_type& CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::_sum_constraint ( )
inlineprivate

Definition at line 275 of file IsoCounter.hh.

◆ _sum_constraint() [2/2]

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
const value_type& CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::_sum_constraint ( ) const
inlineprivate

Definition at line 277 of file IsoCounter.hh.

◆ _upper() [1/2]

value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_upper ( size_type  index)
inlineprotectedinherited

non-const Access to element in the upper value of the Container

Returns
a non-const reference to the element 'index' in the upper value of the Container

Definition at line 325 of file BaseCounter.hh.

◆ _upper() [2/2]

const value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_upper ( size_type  index) const
inlineprotectedinherited

const Access to element in the upper value of the Container

Returns
a const reference to the element 'index' in the upper value of the Container

Definition at line 316 of file BaseCounter.hh.

◆ _valid()

bool& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::_valid ( )
inlineprotectedinherited

non-const reference bool validity flag

Definition at line 237 of file BaseCounter.hh.

◆ compare()

bool CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::compare ( const value_type A,
const value_type B 
)
inlineinherited

Use internal Compare object to compare two values

Returns
bool that is result of Compare()(value A, value B)

Definition at line 193 of file BaseCounter.hh.

◆ current() [1/2]

const Container& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::current ( ) const
inlineinherited

const Access the current value of the Container

Returns
a const reference to the current value of the Container

Definition at line 201 of file BaseCounter.hh.

◆ current() [2/2]

const value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::current ( size_type  index) const
inlineinherited

const Access the element 'index' of the current value of the Container

Returns
a const reference to an element of the Container

Definition at line 207 of file BaseCounter.hh.

◆ current_sum()

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
value_type CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::current_sum ( ) const
inline

Definition at line 145 of file IsoCounter.hh.

◆ final()

const Container& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::final ( ) const
inlineinherited

const Access the final value of the Container

Returns
a const reference to the final value of the Container

Definition at line 227 of file BaseCounter.hh.

◆ increment()

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
const value_type& CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::increment ( ) const
inline

Definition at line 143 of file IsoCounter.hh.

◆ initial()

const Container& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::initial ( ) const
inlineinherited

const Access the intial value of the Container

Returns
a const reference to the initial value of the Container

Definition at line 221 of file BaseCounter.hh.

◆ operator bool()

CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::operator bool ( ) const
inlineinherited

Definition at line 162 of file BaseCounter.hh.

◆ operator const Container &()

CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::operator const Container & ( ) const
inlineinherited

const Access the current value of the Container (identical to current)

Returns
a const reference to the current value of the Container

Definition at line 168 of file BaseCounter.hh.

◆ operator()()

const Container& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::operator() ( ) const
inlineinherited

const Access the current value of the Container (identical to current)

Returns
a const reference to the current value of the Container

Definition at line 215 of file BaseCounter.hh.

◆ operator++() [1/2]

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
IsoCounter& CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::operator++ ( )
inline

Increment the IsoCounter

Returns
true if the IsoCounter is in a valid state after incrementing

Definition at line 158 of file IsoCounter.hh.

◆ operator++() [2/2]

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
void CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::operator++ ( int  )
inline

Definition at line 216 of file IsoCounter.hh.

◆ operator[]()

const value_type& CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::operator[] ( size_type  index) const
inlineinherited

Definition at line 170 of file BaseCounter.hh.

◆ reset()

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
void CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::reset ( )
inline

Reset thse current value of the Counter to the initial value.

Definition at line 235 of file IsoCounter.hh.

◆ set_current()

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
void CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::set_current ( const Container new_current)
inline

Definition at line 223 of file IsoCounter.hh.

◆ set_sum_constraint()

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
void CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::set_sum_constraint ( const value_type new_sum)
inline

Definition at line 218 of file IsoCounter.hh.

◆ size()

size_type CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::size ( ) const
inlineinherited

Return the size of the Container

Returns
the size of the Container

Definition at line 178 of file BaseCounter.hh.

◆ valid()

bool CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::valid ( ) const
inlineinherited
Returns
false if the Counter::current value has been incremented past the Counter::final

Definition at line 160 of file BaseCounter.hh.

◆ value_begin()

const_value_iterator CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::value_begin ( ) const
inlineinherited

Definition at line 180 of file BaseCounter.hh.

◆ value_end()

const_value_iterator CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::value_end ( ) const
inlineinherited

Definition at line 184 of file BaseCounter.hh.

Member Data Documentation

◆ m_access

Access CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::m_access
privateinherited

A functor that enables different ways of accessing the container, by default: container[index]

Definition at line 346 of file BaseCounter.hh.

◆ m_compare

Compare CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::m_compare
privateinherited

A functor that enables custom comparison, by default: operator<.

Definition at line 349 of file BaseCounter.hh.

◆ m_current

Container CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::m_current
privateinherited

The current state of the container.

Definition at line 367 of file BaseCounter.hh.

◆ m_final

Container CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::m_final
privateinherited

Final container values.

Definition at line 355 of file BaseCounter.hh.

◆ m_increment

Container CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::m_increment
privateinherited

Amount to increment each container value.

Definition at line 358 of file BaseCounter.hh.

◆ m_initial

Container CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::m_initial
privateinherited

Initial container values.

Definition at line 352 of file BaseCounter.hh.

◆ m_lower

Container CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::m_lower
privateinherited

The minimum of each value of m_initial and m_final.

Definition at line 361 of file BaseCounter.hh.

◆ m_sum_constraint

template<typename _Container , typename _value_type = typename _Container::value_type, typename _size_type = typename _Container::size_type, typename _Access = CASM_TMP::BracketAccess<_Container, _value_type, _size_type>, typename _Compare = CASM_TMP::MuchLessThan<_value_type>>
value_type CASM::IsoCounter< _Container, _value_type, _size_type, _Access, _Compare >::m_sum_constraint
private

Definition at line 273 of file IsoCounter.hh.

◆ m_upper

Container CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::m_upper
privateinherited

The maximum of each value of m_initial and m_final.

Definition at line 364 of file BaseCounter.hh.

◆ m_valid

bool CASM::BaseCounter< IsoCounter< _Container, typename _Container::value_type, typename _Container::size_type, CASM_TMP::BracketAccess< _Container, typename _Container::value_type, typename _Container::size_type >, CASM_TMP::MuchLessThan< typename _Container::value_type > > >::m_valid
privateinherited

True if m_current is within the allowed bounds, false once all values have been incremented to their limit

Definition at line 371 of file BaseCounter.hh.


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