|
Public Types |
typedef Domain::Element | DomainElement |
typedef unsigned long | BaseRing |
Public Methods |
| ChineseRemainder (const unsigned long EARLY=DEFAULT_EARLY_TERM_THRESHOLD, const size_t n=1) |
| ChineseRemainder (const double BOUND) |
void | initialize (const unsigned long EARLY=1, const size_t n=1, const double BOUND=0.0) |
template<class Function, class RandPrime> Integer & | operator() (Integer &res, const Function &Iteration, RandPrime &genprime) |
| The CRA loop.
|
template<template< class T > class Vect, class Function, class RandPrime> Vect< Integer > & | operator() (Vect< Integer > &res, const Function &Iteration, RandPrime &genprime) |
template<class VectOrInt> void | progress (const Domain &D, const VectOrInt &e) |
| Function for adding a new prime and it's residue to the CRA process.
|
int | steps () |
template<class VectOrInt> VectOrInt & | result (VectOrInt &d) |
| result mod the lcm of the moduli.
|
bool | terminated () |
bool | noncoprime (const Integer &i) const |
Protected Methods |
bool | Early_noncoprimality (const Integer &i) const |
bool | Full_noncoprimality (const Integer &i) const |
void | Full_progress (const Domain &D, const DomainElement &e) |
template<template< class T > class Vect> void | Full_progress (const Domain &D, const Vect< DomainElement > &e) |
Integer & | Full_result (Integer &d) |
template<template< class T > class Vect> Vect< Integer > & | Full_result (Vect< Integer > &d) |
bool | Full_terminated () |
template<template< class T > class Vect> void | Early_progress (const Domain &D, const Vect< DomainElement > &e) |
template<template< class T > class Vect> void | First_Early_progress (const Domain &D, const Vect< DomainElement > &e) |
void | Early_progress (const Domain &D, const DomainElement &e) |
void | First_Early_progress (const Domain &D, const DomainElement &e) |
template<template< class T > class Vect> Vect< Integer > & | Early_result (Vect< Integer > &d) |
Integer & | Early_result (Integer &d) |
bool | Early_terminated () |
Integer & | fieldreconstruct (Integer &res, const Domain &D1, const DomainElement &u1, const Integer &r0, const Integer &P0) |
Integer & | Early_normalized_fieldreconstruct (Integer &res, const Integer &P0, const Domain &D1, const DomainElement &u1, const Integer &M1) |
Integer & | fieldreconstruct (Integer &res, const Domain &D1, const DomainElement &u1, DomainElement &u0, DomainElement &m0, const Integer &r0, const Integer &P0) |
Integer & | normalized_fieldreconstruct (Integer &res, const Domain &D1, const DomainElement &u1, DomainElement &u0, DomainElement &m0, const Integer &r0, const Integer &P0, const Integer &m1) |
Integer & | smallbigreconstruct (Integer &u1, const Integer &m1, const Integer &u0, const Integer &m0) |
Integer & | normalize (Integer &u1, Integer &tmp, const Integer &m1) |
Integer & | normalizesmallbigreconstruct (Integer &u1, const Integer &m1, const Integer &u0, const Integer &m0) |
template<template< class T > class Vect1, class Vect2> DomainElement & | dot (DomainElement &z, const Domain &D, const Vect1< DomainElement > &v1, const Vect2 &v2) |
Protected Attributes |
unsigned int | occurency |
double | dSizes0 |
Integer | nextm |
Integer | Modulo0 |
Integer | Table0 |
bool | Occupation0 |
std::vector< unsigned long > | randv |
std::vector< double > | dSizes |
std::vector< LazyProduct > | Modulo |
std::vector< std::vector<
Integer > > | Table |
std::vector< bool > | Occupation |
unsigned int | EARLY_TERM_THRESHOLD |
double | LOGARITHMIC_UPPER_BOUND |
unsigned int | step |