|
BALL
1.4.2
|
#include <BALL/CONCEPT/enumerator.h>
Classes | |
| class | IncompatibleIndex |
Public Member Functions | |
Constructors and Destructors | |
| EnumeratorIndex () | |
| template<typename Variant , typename VariantIterator > | |
| EnumeratorIndex (const std::list< std::pair< VariantIterator, std::vector< Variant > > > &variant_list) | |
| ~EnumeratorIndex () | |
Assignment | |
| const EnumeratorIndex & | operator= (const EnumeratorIndex &rhs) |
| const EnumeratorIndex & | operator= (Position index) |
| template<typename Variant , typename VariantIterator > | |
| const EnumeratorIndex & | operator= (const std::list< std::pair< VariantIterator, std::vector< Variant > > > &variant_list) |
Accessors | |
| const std::vector< Size > & | getModulus () const |
| Size | getModulus (Position pos) const |
| EnumeratorIndex & | operator++ () |
| EnumeratorIndex & | operator-- () |
| Position | operator[] (Position pos) const |
| Position & | operator[] (Position pos) |
| Size | getSize () const |
| EnumeratorIndex & | operator<< (Size modulus) |
Predicates for EnumeratorIndex class | |
| bool | operator== (const EnumeratorIndex &rhs) const |
| bool | operator!= (const EnumeratorIndex &rhs) const |
| bool | operator> (const EnumeratorIndex &rhs) const |
| bool | operator< (const EnumeratorIndex &rhs) const |
| bool | operator>= (const EnumeratorIndex &rhs) const |
| bool | operator<= (const EnumeratorIndex &rhs) const |
Private Attributes | |
| std::vector< Size > | modulus_ |
| std::vector< Size > | base_multipliers_ |
Private Attributes inherited from std::vector< T > | |
| T | elements |
| STL member. More... | |
EnumeratorIndex class. The Enumerator class provides a means for enumerating all possible combinations of objects. The counting is hereby done by the EnumeratorIndex class. This class is derived from vector and additionally contains two vectors of the same size which hold the modulus and the base for each digit. The values of the EnumeratorIndex vector itself are interpreted as an inhomogenous number consisting of digits that have different bases. The bases are the numbers of possibilities for each variant in the list. Most significant component is operator [] (0), so incrementing starts at operator [] (size() - 1)
Definition at line 45 of file enumerator.h.
| BALL::EnumeratorIndex::EnumeratorIndex | ( | ) |
Default Constructor
| BALL::EnumeratorIndex::EnumeratorIndex | ( | const std::list< std::pair< VariantIterator, std::vector< Variant > > > & | variant_list | ) |
Detailed Constructor
| variant_list | the list of variants to be applied |
Definition at line 210 of file enumerator.h.
| BALL::EnumeratorIndex::~EnumeratorIndex | ( | ) |
Destructor
| const std::vector<Size>& BALL::EnumeratorIndex::getModulus | ( | ) | const |
Access the modulus part of the enumerator
Access the modulus of a specific position
| Size BALL::EnumeratorIndex::getSize | ( | ) | const |
Return the size of the array.
| bool BALL::EnumeratorIndex::operator!= | ( | const EnumeratorIndex & | rhs | ) | const |
Inequality operator.
| rhs |
rhs is not equal to this instance | EnumeratorIndex& BALL::EnumeratorIndex::operator++ | ( | ) |
Increment an instance of EnumeratorIndex. Increment the least significant component and apply any overflow to more signficant components.
| Exception::IndexOverflow |
| EnumeratorIndex& BALL::EnumeratorIndex::operator-- | ( | ) |
Decrement an instance of EnumeratorIndex. Decrement the least significant component and apply any underflow to more signficant components.
| Exception::IndexUnderflow |
| bool BALL::EnumeratorIndex::operator< | ( | const EnumeratorIndex & | rhs | ) | const |
Lesser than operator.
| rhs |
rhs is lesser than this instance | EnumeratorIndex::Incompatible | index if the modulus vector differs, i.e. the two indices aren't comparable |
| EnumeratorIndex& BALL::EnumeratorIndex::operator<< | ( | Size | modulus | ) |
Add a new digit. Push the modulus to the ack of the modulus array and initialize the corresponding digit with zero.
EnumerationIndex counter; counter << 16 << 16 << 16;| OutOfRange | if the modulus is less than 2 |
| bool BALL::EnumeratorIndex::operator<= | ( | const EnumeratorIndex & | rhs | ) | const |
Lesser or equal operator.
| rhs |
rhs is lesser than or equal to this instance | EnumeratorIndex::Incompatible | index if the modulus vector differs, i.e. the two indices aren't comparable |
| const EnumeratorIndex& BALL::EnumeratorIndex::operator= | ( | const EnumeratorIndex & | rhs | ) |
Assignment operator.
| const EnumeratorIndex& BALL::EnumeratorIndex::operator= | ( | Position | index | ) |
Assignment operator for Position.
| Exception::IndexOverflow |
| const EnumeratorIndex & BALL::EnumeratorIndex::operator= | ( | const std::list< std::pair< VariantIterator, std::vector< Variant > > > & | variant_list | ) |
Assignment operator for a variant list.
Definition at line 221 of file enumerator.h.
| bool BALL::EnumeratorIndex::operator== | ( | const EnumeratorIndex & | rhs | ) | const |
Equality operator.
| rhs |
rhs is equal to this instance | bool BALL::EnumeratorIndex::operator> | ( | const EnumeratorIndex & | rhs | ) | const |
Greater than operator.
| rhs |
rhs is greater than this instance | EnumeratorIndex::Incompatible | index if the modulus vector differs, i.e. the two indices aren't comparable |
| bool BALL::EnumeratorIndex::operator>= | ( | const EnumeratorIndex & | rhs | ) | const |
Greater or equal operator.
| rhs |
rhs is greater than or equal to this instance | EnumeratorIndex::Incompatible | index if the modulus vector differs, i.e. the two indices aren't comparable |
|
private |
Definition at line 205 of file enumerator.h.
|
private |
Definition at line 203 of file enumerator.h.
1.8.3.1