|
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 |