#include <Selector.h>
Public Member Functions | |
Selector (UWORD32 m, std::string pp) | |
Selector (UWORD32 m) | |
Selector (const std::vector< UWORD32 > &retvals) | |
~Selector (void) | |
UWORD32 | operator[] (UWORD32 i) |
UWORD32 | getRange (void) const |
Private Member Functions | |
void | calculate (UWORD32 m) |
bool | idxX (UWORD32 v, UWORD32 m, UWORD32 *p) const |
void | setX (UWORD32 i, UWORD32 v) |
Private Attributes | |
std::vector< UWORD32 > | X |
std::vector< UWORD32 > | Y |
sgi::hash_map< UWORD32, UWORD32 > | Xreversed |
UWORD32 | Maximum |
operator[] will return a value in {0,...,Maximum-1} | |
UWORD32 | NumInArray |
the number of calculated positions in the arrays | |
PseudoRandomSource * | PRandom |
Selector::Selector | ( | UWORD32 | m, | |
std::string | pp | |||
) |
construct a Selector object
m | the range - operator[] will return numbers in {0,...,m-1} | |
pp | a passphrase used to generate the seed |
Selector::Selector | ( | UWORD32 | m | ) |
construct a Selector object that resembles the identity permutation with range m
m | the range - (*this)[i] will be i for i in {0,...,m-1} |
Selector::Selector | ( | const std::vector< UWORD32 > & | retvals | ) |
construct a Selector object that will return predefined values
retvals | the values that operator[] shall return |
Selector::~Selector | ( | void | ) |
get the value at the i-th position
i | an index |
UWORD32 Selector::getRange | ( | void | ) | const [inline] |
void Selector::calculate | ( | UWORD32 | m | ) | [private] |
fill X, Y and Xreversed until but not including index m
search an index i such that 0 <= i < m and X[i] == v
v | the value to be searched for in the X-array | |
m | the upper bound for the index | |
p | a pointer to a variable where the found index can be stored |
std::vector<UWORD32> Selector::X [private] |
std::vector<UWORD32> Selector::Y [private] |
sgi::hash_map<UWORD32,UWORD32> Selector::Xreversed [private] |
UWORD32 Selector::Maximum [private] |
UWORD32 Selector::NumInArray [private] |
PseudoRandomSource* Selector::PRandom [private] |