Public Types |
| typedef Element | external |
typedef Container< Element,
Alloc< Element > > | array |
| typedef Integer | Rep |
| typedef Rep | Element |
Public Member Functions |
| | IntRNSsystem () |
| | ~IntRNSsystem () |
| | IntRNSsystem (const IntRNSsystem &R) |
| | IntRNSsystem (const array &primes) |
| template<class TT > |
| | IntRNSsystem (const Container< TT, Alloc< TT > > &primes) |
| template<class TT > |
| void | RnsToMixedRadix (array &mixrad, const Container< TT, Alloc< TT > > &residu) |
| void | MixedRadixToRing (external &res, const array &mixrad) const |
| void | RingToRns (array &residu, const external &a) |
| void | fastRingToRns (array &residu, const external &a) const |
| template<class TT > |
| void | RnsToRing (external &a, const Container< TT, Alloc< TT > > &residu) |
| void | fastRnsToRing (external &a, const array &residu) const |
| int | NumOfPrimes () const |
| const array & | Primes () const |
| const Element | ith (const size_t i) const |
| const array & | Reciprocals () const |
| const Element | reciprocal (const size_t i) const |
| const Element | product () const |
| template<class TT > |
| void | RnsToMixedRadix (IntRNSsystem< Container, Alloc >::array &mixrad, const Container< TT, Alloc< TT > > &residu) |
| int | operator== (const IntegerDom &) const |
| int | operator!= (const IntegerDom &) const |
| Rep & | init (Rep &a) const |
| Rep & | init (Rep &a, const Rep &b) const |
| Rep & | read (Rep &a, const long i) const |
| Rep & | read (Rep &a, const unsigned long i) const |
| Rep & | read (Rep &a, const int i) const |
| Rep & | read (Rep &a, const unsigned int i) const |
| std::istream & | read (std::istream &i) |
| std::istream & | read (std::istream &i, Rep &n) const |
| Rep & | convert (Rep &a, const Rep &b) const |
| template<class XXX > |
| XXX & | convert (XXX &x, const Rep &a) const |
| Rep & | assign (Rep &a, const Rep &b) const |
| const Rep & | access (const Rep &a) const |
| Rep & | mul (Rep &r, const Rep &a, const Rep &b) const |
| Rep & | div (Rep &r, const Rep &a, const Rep &b) const |
| Rep & | mod (Rep &r, const Rep &a, const Rep &b) const |
| Rep & | add (Rep &r, const Rep &a, const Rep &b) const |
| Rep & | sub (Rep &r, const Rep &a, const Rep &b) const |
| Rep & | divmod (Rep &q, Rep &r, const Rep &a, const Rep &b) const |
| Rep & | divexact (Rep &q, const Rep &a, const Rep &b) const |
| Rep & | mulin (Rep &r, const Rep &a) const |
| Rep & | divin (Rep &r, const Rep &a) const |
| Rep & | modin (Rep &r, const Rep &a) const |
| Rep & | addin (Rep &r, const Rep &a) const |
| Rep & | subin (Rep &r, const Rep &a) const |
| Rep & | axpy (Rep &r, const Rep &a, const Rep &b, const Rep &c) const |
| Rep & | maxpy (Rep &r, const Rep &a, const Rep &b, const Rep &c) const |
| Rep & | maxpyin (Rep &r, const Rep &a, const Rep &b) const |
| Rep & | axmy (Rep &r, const Rep &a, const Rep &b, const Rep &c) const |
| Rep & | axpyin (Rep &r, const Rep &a, const Rep &b) const |
| Rep & | axmyin (Rep &r, const Rep &a, const Rep &b) const |
| Rep & | neg (Rep &r, const Rep &a) const |
| Rep & | negin (Rep &r) const |
| Rep & | gcd (Rep &g, Rep &u, Rep &v, const Rep &a, const Rep &b) const |
| Rep & | gcd (Rep &g, const Rep &a, const Rep &b) const |
| Rep & | lcm (Rep &l, const Rep &a, const Rep &b) const |
| Rep & | lcmin (Rep &l, const Rep &a) const |
| Rep & | inv (Rep &u, const Rep &a, const Rep &b) const |
| Rep & | invin (Rep &u, const Rep &b) const |
| Rep & | pow (Rep &r, const Rep &n, const long l) const |
| Rep & | pow (Rep &r, const Rep &n, const unsigned long l) const |
| Rep & | pow (Rep &r, const Rep &n, const int l) const |
| Rep & | pow (Rep &r, const Rep &n, const unsigned int l) const |
| Rep & | sqrt (Rep &s, const Rep &n) const |
| Rep & | sqrt (Rep &s, Rep &r, const Rep &n) const |
| long | logp (const Rep &a, const Rep &p) const |
| Rep & | powmod (Rep &r, const Rep &n, const long e, const Rep &m) const |
| Rep & | powmod (Rep &r, const Rep &n, const Rep &e, const Rep &m) const |
| unsigned long | length (const Rep &a) const |
| int | sign (const Rep &a) const |
| bool | isZero (const Rep &a) const |
| bool | isOne (const Rep &a) const |
| bool | areEqual (const Rep &a, const Rep &b) const |
| bool | areNEqual (const Rep &a, const Rep &b) const |
| bool | isgeq (const Rep &a, const Rep &b) const |
| bool | isgeq (const long b, const Rep &a) const |
| bool | isgeq (const Rep &a, const long b) const |
| bool | isleq (const Rep &a, const Rep &b) const |
| bool | isleq (const long b, const Rep &a) const |
| bool | isleq (const Rep &a, const long b) const |
| bool | isgt (const Rep &a, const Rep &b) const |
| bool | isgt (const long b, const Rep &a) const |
| bool | isgt (const Rep &a, const long b) const |
| bool | islt (const Rep &a, const Rep &b) const |
| bool | islt (const long b, const Rep &a) const |
| bool | islt (const Rep &a, const long b) const |
| template<class RandIter > |
| Rep & | random (RandIter &, Rep &r, long s=1) const |
| template<class RandIter > |
| Rep & | random (RandIter &, Rep &r, const Rep &b) const |
| template<class RandIter > |
| Rep & | nonzerorandom (RandIter &, Rep &r, long s=1) const |
| template<class RandIter > |
| Rep & | nonzerorandom (RandIter &, Rep &r, const Rep &b) const |
| std::ostream & | write (std::ostream &o) const |
| std::ostream & | write (std::ostream &o, const Rep &n) const |
Data Fields |
| const Integer | one |
| const Integer | zero |
Protected Member Functions |
| void | ComputeCk () |
| void | ComputeProd () |
| void | ComputeQk () |
Protected Attributes |
| array | _primes |
| Element | _prod |
| array | _ck |
| size_t | _sizek |
| size_t | _log2k |
| array | _qk |
| array | _u |