![]() |
CMR
1.3.0
|
#include <permutations.hpp>
Public Types | |
| typedef size_t | size_type |
| typedef ptrdiff_t | difference_type |
| typedef size_t | value_type |
| typedef std::vector< value_type > | data_type |
Public Member Functions | |
| permutation (size_type size=0) | |
| template<typename RandomNumberGenerator > | |
| permutation (size_type size, RandomNumberGenerator &rng) | |
| permutation (const permutation &other) | |
| virtual | ~permutation () |
| void | reset (size_t new_size) |
| void | reset () |
| template<typename RandomNumberGenerator > | |
| void | shuffle (RandomNumberGenerator &rng) |
| size_type | size () const |
| value_type | operator() (value_type index) const |
| value_type | get (value_type index) const |
| void | swap (value_type a, value_type b) |
| void | rswap (value_type a, value_type b) |
| void | revert () |
| permutation | reverse () const |
| permutation & | operator= (const permutation &other) |
| permutation | operator* (const permutation &rhs) const |
| void | resize (size_type new_size) |
| void | grow (difference_type by) |
| void | shrink (difference_type by) |
Protected Member Functions | |
| void | _set (value_type index, value_type value) |
| data_type & | get_data () |
Protected Attributes | |
| data_type | _data |
Friends | |
| class | permutation_enumerator |
| Class to enumerate permutations. More... | |
| template<class Less > | |
| void | sort (permutation &permutation, size_t first, size_t beyond, Less &less) |
| Class to setup a permutation which can be put before a vector. More... | |
A permutation which maps integers from 0 to size-1 to the same range in any possible way. This implementation stores the image of each of the values in a vector.
| typedef std::vector<value_type> tu::permutation::data_type |
| typedef ptrdiff_t tu::permutation::difference_type |
| typedef size_t tu::permutation::size_type |
| typedef size_t tu::permutation::value_type |
|
inline |
Constructs a permutation of a given size, initializing to the identity.
| size | Optional size of the permutation |
|
inline |
Constructs a permutation of a given size, initializing to a random permutation.
| size | Optional size of the permutation |
| rng | Random number generator. |
|
inline |
Copy constructor
| other | Another permutation |
|
inlinevirtual |
Destructor
|
inlineprotected |
Sets a specific value without checking validity.
| index | Index of the entry |
| value | New value |
|
inline |
The image of a specific integer in range 0 .. size-1.
| index | Given integer |
|
inlineprotected |
|
inline |
Grows the permutation by a given number of elements.
| by | Number of elements to increase the size by |
|
inline |
The image of a specific integer in range 0 .. size-1.
| index | Given integer |
|
inline |
Calculates the product of this and another permutation. The result is equivalent to applying the second permutation first and this one afterwards.
| rhs | Right hand side permutation |
|
inline |
Assignment operator.
| other | Another permutation |
|
inline |
Resets the permutation to identity.
|
inline |
Resizes the permutation and resets it to identity.
| new_size | New size |
|
inline |
Resizes the permutation, retaining the contents. This may fail if it cannot be shrunken this way and will throw a permutation_shrink_exception in that case.
| new_size | New size of the permutation |
|
inline |
|
inline |
Makes this permutation its own inverse.
Create a temporary copy
|
inline |
Swaps the preimages of two integers in range 0 .. size-1.
| a | First integer |
| b | Second integer |
|
inline |
Shrinks the permutation by a given number of elements.
| by | Number of elements to decrease the size by |
|
inline |
Shuffles a permutation.
| rng | Random number generator. |
|
inline |
|
inline |
Swaps the images of two integers in range 0 .. size-1.
| a | First integer |
| b | Second integer |
|
friend |
Class to enumerate permutations.
|
friend |
Class to setup a permutation which can be put before a vector.
Arranges part of a given permutation such that it can be used to view a vector in a sorted way.
| permutation | The given permutation to be changed |
| first | First index of the part |
| beyond | Beyond index of the part |
| less | Functor to compare two elements |
|
protected |