|
Public Types |
typedef _Integer | Integer |
typedef std::vector< Integer > | Vector |
typedef std::list< Vector > | LVector |
typedef std::list< Integer > | List |
typedef std::vector< int > | IntVector |
typedef _Integer | Integer |
typedef std::vector< Integer > | Vector |
typedef std::list< Vector > | LVector |
typedef std::list< Integer > | List |
typedef std::vector< int > | IntVector |
Public Methods |
| CRA (size_t n=0, unsigned int EARLY=1, const double BOUND=0) |
| CRA (size_t n, unsigned int EARLY, const integer BOUND) |
void | initialize (size_t n, unsigned int EARLY, const integer BOUND) |
void | initialize (size_t n, unsigned int EARLY=1, const double BOUND=0) |
template<class Vect, class Function, class RandPrime> Vect & | operator() (Vect &res, const Function &F, RandPrime &genprime) |
| The CRA loop.
|
void | progress (const Integer &p, const Integer &d) |
| Function for adding a new prime and it's residue to the CRA process.
|
template<class Vect> void | progress (const Integer &p, const Vect &d) |
| Taking a step when the CRA process is being applied ot a vector or list of values..
|
int | steps () |
bool | terminated () |
size_t | stableSteps () |
| Number of progress steps without change in the combined residue.
|
integer & | result (integer &d) |
| result mod the lcm of the moduli.
|
template<class Vect> Vect & | result (Vect &w) |
| results mod the lcm of the moduli.
|
Integer & | modulus () |
| CRA () |
template<class V> void | step (Integer p, const V &d) |
int | steps () |
bool | terminated () |
size_t | changelessness () |
template<class V> void | result (V &w) |
Integer & | modulus () |
Protected Methods |
void | buildTree (List &holdprime, LVector &holdres) |
void | combine (List &holdprime, LVector &holdres) |
void | buildTree (List &holdp, List &holdv) |
void | combine (List &holdp, List &holdv) |
void | normalize (Integer &res, const Integer &m) |
void | normalize (Vector &res, const Integer &m) |
template<class Vect> void | printVect (const Vect &v) |
void | debug () |
template<class Vect1, class Vect2> bool | check (const Vect1 &v1, const Vect2 &v2, const Integer &p) |
template<class Vect1, class Vect2> void | dot (Integer &d, const Vect1 &v1, const Vect2 &v2) |
void | buildTree (List &holdprime, LVector &holdres) |
void | combine (List &holdprime, LVector &holdres) |
void | normalize (Integer &res, const Integer &m) |
void | normalize (Vector &res, const Integer &m) |
template<class Vect> void | printVect (const Vect &v) |
void | debug () |
template<class Vect1, class Vect2> bool | check (const Vect1 &v1, const Vect2 &v2, const Integer &p) |
template<class Vect1, class Vect2> void | dot (Integer &d, const Vect1 &v1, const Vect2 &v2) |
Protected Attributes |
Integer | m |
double | lm |
Integer | cert |
std::vector< int > | randv |
unsigned int | EARLY_TERM_THRESHOLD |
double | UPPER_BOUND |
LVector | holdres |
List | holdvalue |
List | holdprime |
size_t | occurency |
int | k |
Integer | cert1 |
Integer | cert2 |
std::vector< int > | randv1 |
std::vector< int > | randv2 |
size_t | isTerminating |
bool | first_call |