Loading...
Searching...
No Matches
BALL::Enumerator< Container, SiteIterator, Variant > Class Template Reference

`#include <BALL/CONCEPT/enumerator.h>`

## Classes

class | IteratorTraits_

## Public Types

Type definitions
typedef void(* | MutatorFunction) (Variant &, const Variant &)
typedef std::vector< Variant > | VariantVector
typedef std::pair< SiteIterator, VariantVector > | Site
typedef std::list< Site > | SiteList
typedef ForwardIterator< Enumerator< Container, SiteIterator, Variant >, Container, EnumeratorIndex *, IteratorTraits_ > | Iterator
typedef ConstForwardIterator< Enumerator< Container, SiteIterator, Variant >, Container, EnumeratorIndex *, IteratorTraits_ > | ConstIterator

## Public Member Functions

Constructors and Destructors
| Enumerator ()
| Enumerator (Container &container)
| Enumerator (Container &container, MutatorFunction mutator)
| ~Enumerator ()
Accessors
void | addVariants (const SiteIterator &it, const VariantVector &variants)
void | deleteVariants (const SiteIterator &it, const VariantVector &variants)
Size | countVariants ()
Container & | getCurrent ()
void | createCombination (const Position index)
void | createCombination (const EnumeratorIndex &index)

## Iterators

class | IteratorTraits_
Container & | container_
MutatorFunction | mutator_
SiteList | variant_sites_
EnumeratorIndex | position_
bool | is_valid_position_
Iterator | begin ()
Iterator | end ()
ConstIterator | begin () const
ConstIterator | end () const
static void | defaultAssign_ (Variant &a, const Variant &b)
void | mutate_ (SiteIterator &it, const Variant &v)

## Detailed Description

template<class Container, class SiteIterator, class Variant>
class BALL::Enumerator< Container, SiteIterator, Variant >

Enumerator class. The EnumeratorIndex class is designed to enumerate all possible combinations of things. Applications are e.g. the enumeration of all possible sequences defined through a multisequence or enumerating all possible rotamers of a peptide or a bindings site.

  Enumerator uses EnumeratorIndex as an inhomogeneous counter class. It is also highly templatized in order to be adaptable to most problem instances. In general, the enumeration problem can be seen as counting with a mixed-base number. For an example of the Enumerator's usage, please refer to the tutorial.

  The Enumerator's template arguments are

- the Container it operates on (e.g. the String representing the sequence or the protein containing the amino acids)
- the SiteIterator (i.e. an iterator pointing to a defined position within the container)
- the Variant type (i.e. the type of the object to be enumerated). It has to be the same type as the dereferenced SiteIterator.

In the case of a string sequence that has to be mutated, the Container is of class String , the SiteIterator is of type String::Iterator, and Variant is obviously of type char.

Definition at line 273 of file enumerator.h.

## Member Typedef Documentation

## ConstIterator

template<class Container, class SiteIterator, class Variant>

typedef ConstForwardIterator<Enumerator<Container, SiteIterator, Variant>, Container, EnumeratorIndex*, IteratorTraits_> BALL::Enumerator< Container, SiteIterator, Variant >::ConstIterator

Constant forward iterator

Definition at line 314 of file enumerator.h.

## Iterator

template<class Container, class SiteIterator, class Variant>

typedef ForwardIterator<Enumerator<Container, SiteIterator, Variant>, Container, EnumeratorIndex*, IteratorTraits_> BALL::Enumerator< Container, SiteIterator, Variant >::Iterator

Mutable forward iterator

Definition at line 309 of file enumerator.h.

## MutatorFunction

template<class Container, class SiteIterator, class Variant>

typedef void(* BALL::Enumerator< Container, SiteIterator, Variant >::MutatorFunction) (Variant &, const Variant &)

Site mutator function. A function used to assing one variant of a site in the container to another. In the trivial case, this is just the assignment operator (as implemented in the default case), but more involved enumeration problems (e.g. side chain rotamer enumeration) might require additional code for the assignment of the true variant.

Definition at line 292 of file enumerator.h.

## Site

template<class Container, class SiteIterator, class Variant>

typedef std::pair<SiteIterator, VariantVector> BALL::Enumerator< Container, SiteIterator, Variant >::Site

A combination of a site position and all its possible variants.

Definition at line 300 of file enumerator.h.

## SiteList

template<class Container, class SiteIterator, class Variant>

typedef std::list<Site> BALL::Enumerator< Container, SiteIterator, Variant >::SiteList

A list of sites.

Definition at line 304 of file enumerator.h.

## VariantVector

template<class Container, class SiteIterator, class Variant>

typedef std::vector<Variant> BALL::Enumerator< Container, SiteIterator, Variant >::VariantVector

A vector containing all possible variants for a specific site.

Definition at line 296 of file enumerator.h.

## Constructor & Destructor Documentation

## Enumerator() [1/3]

template<typename Container, typename SiteIterator, typename Variant>

BALL::Enumerator< Container, SiteIterator, Variant >::Enumerator | ( |  | ) |

Default Constructor

Definition at line 590 of file enumerator.h.

## Enumerator() [2/3]

template<typename Container, typename SiteIterator, typename Variant>

BALL::Enumerator< Container, SiteIterator, Variant >::Enumerator | ( | Container & | container | ) |

Detailed Constructor. The mutator function is set to a default mutator, using the assignment operator for Variant.

Parameters

  container | a Container class to be mutated

Definition at line 597 of file enumerator.h.

## Enumerator() [3/3]

template<class Container, class SiteIterator, class Variant>

BALL::Enumerator< Container, SiteIterator, Variant >::Enumerator | ( | Container & | container,
|  | MutatorFunction | mutator )

Detailed Constructor

Parameters

  container | a Container class to be mutated
  mutator | the function defining the mutations to be applied

## ~Enumerator()

template<class Container, class SiteIterator, class Variant>

BALL::Enumerator< Container, SiteIterator, Variant >::~Enumerator | ( |  | ) |

inline

Default Destructor

Definition at line 340 of file enumerator.h.

## Member Function Documentation

## addVariants()

template<class Container, class SiteIterator, class Variant>

void BALL::Enumerator< Container, SiteIterator, Variant >::addVariants | ( | const SiteIterator & | it,
|  | const VariantVector & | variants )

inline

Add variants to the list of variants

Definition at line 351 of file enumerator.h.

## begin() [1/2]

template<typename Container, typename SiteIterator, typename Variant>

BALL_INLINE Enumerator< Container, SiteIterator, Variant >::Iterator BALL::Enumerator< Container, SiteIterator, Variant >::begin | ( |  | ) |

Definition at line 654 of file enumerator.h.

## begin() [2/2]

template<typename Container, typename VariantConstIterator, typename Variant>

BALL_INLINE Enumerator< Container, VariantConstIterator, Variant >::ConstIterator BALL::Enumerator< Container, VariantConstIterator, Variant >::begin | ( |  | ) | const

Definition at line 668 of file enumerator.h.

## countVariants()

template<class Container, class SiteIterator, class Variant>

Size BALL::Enumerator< Container, SiteIterator, Variant >::countVariants | ( |  | ) |

inline

Count all variants.

Returns
  the number of all possible variants

Definition at line 373 of file enumerator.h.

## createCombination() [1/2]

template<typename Container, typename SiteIterator, typename Variant>

void BALL::Enumerator< Container, SiteIterator, Variant >::createCombination | ( | const EnumeratorIndex & | index | ) |

Create a combination denoted by an instance of EnumeratorIndex.

Parameters

  index | the instance of EnumeratorIndex that describes the combination to be created

Exceptions

  EnumeratorIndex::IncompatibleIndex |

Definition at line 635 of file enumerator.h.

## createCombination() [2/2]

template<typename Container, typename SiteIterator, typename Variant>

void BALL::Enumerator< Container, SiteIterator, Variant >::createCombination | ( | const Position | index | ) |

Create a combination denoted by its number.

Parameters

  index | the number of the combination to be created

Exceptions

  Exception::IndexOverflow |

Definition at line 621 of file enumerator.h.

## defaultAssign_()

template<class Container, class SiteIterator, class Variant>

void BALL::Enumerator< Container, SiteIterator, Variant >::defaultAssign_ | ( | Variant & | a,
|  | const Variant & | b )

inline static protected

Definition at line 572 of file enumerator.h.

## deleteVariants()

template<class Container, class SiteIterator, class Variant>

void BALL::Enumerator< Container, SiteIterator, Variant >::deleteVariants | ( | const SiteIterator & | it,
|  | const VariantVector & | variants )

inline

Delete variants from the list of variants

Definition at line 359 of file enumerator.h.

## end() [1/2]

template<typename Container, typename SiteIterator, typename Variant>

BALL_INLINE Enumerator< Container, SiteIterator, Variant >::Iterator BALL::Enumerator< Container, SiteIterator, Variant >::end | ( |  | ) |

Definition at line 661 of file enumerator.h.

## end() [2/2]

template<typename Container, typename VariantConstIterator, typename Variant>

BALL_INLINE Enumerator< Container, VariantConstIterator, Variant >::ConstIterator BALL::Enumerator< Container, VariantConstIterator, Variant >::end | ( |  | ) | const

Definition at line 675 of file enumerator.h.

## getCurrent()

template<typename Container, typename SiteIterator, typename Variant>

BALL_INLINE Container & BALL::Enumerator< Container, SiteIterator, Variant >::getCurrent | ( |  | ) |

Access the current content

Returns
  a reference to the container class of this enumerator

Definition at line 615 of file enumerator.h.

## mutate_()

template<class Container, class SiteIterator, class Variant>

void BALL::Enumerator< Container, SiteIterator, Variant >::mutate_ | ( | SiteIterator & | it,
|  | const Variant & | v )

inline protected

Definition at line 577 of file enumerator.h.

## Friends And Related Symbol Documentation

## IteratorTraits_

template<class Container, class SiteIterator, class Variant>

friend class IteratorTraits_

friend

Definition at line 422 of file enumerator.h.

## Member Data Documentation

## container_

template<class Container, class SiteIterator, class Variant>

Container& BALL::Enumerator< Container, SiteIterator, Variant >::container_

protected

Definition at line 582 of file enumerator.h.

## is_valid_position_

template<class Container, class SiteIterator, class Variant>

bool BALL::Enumerator< Container, SiteIterator, Variant >::is_valid_position_

protected

Definition at line 586 of file enumerator.h.

## mutator_

template<class Container, class SiteIterator, class Variant>

MutatorFunction BALL::Enumerator< Container, SiteIterator, Variant >::mutator_

protected

Definition at line 583 of file enumerator.h.

## position_

template<class Container, class SiteIterator, class Variant>

EnumeratorIndex BALL::Enumerator< Container, SiteIterator, Variant >::position_

protected

Definition at line 585 of file enumerator.h.

## variant_sites_

template<class Container, class SiteIterator, class Variant>

SiteList BALL::Enumerator< Container, SiteIterator, Variant >::variant_sites_

protected

Definition at line 584 of file enumerator.h.