|
Givaro 4.2.1
|
This is the Integer class. More...
#include <gmp++_int.h>
Collaboration diagram for Integer:Public Types | |
| typedef std::vector< mp_limb_t > | vect_t |
| vector of limbs (ie a gmp number). | |
Public Member Functions | |
Constructor/Destructors. | |
Constructors and destructor for an Integer. | |
| giv_all_inlined | Integer (int32_t n=0) |
| Constructor form a known type. | |
| giv_all_inlined | Integer (int64_t n) |
| Constructor form a known type. | |
| giv_all_inlined | Integer (unsigned char n) |
| Constructor form a known type. | |
| giv_all_inlined | Integer (uint32_t n) |
| Constructor form a known type. | |
| giv_all_inlined | Integer (uint64_t n) |
| Constructor form a known type. | |
| giv_all_inlined | Integer (double n) |
| Constructor form a known type. | |
| giv_all_inlined | Integer (const char *n) |
| Constructor form a known type. | |
| giv_all_inlined | Integer (const mpz_class &a) |
| Constructor form a known type. | |
| template<size_t K> | |
| Integer (const RecInt::ruint< K > &n) | |
| Constructor form a known type. | |
| template<size_t K> | |
| Integer (const RecInt::rint< K > &n) | |
| Constructor form a known type. | |
| giv_all_inlined | Integer (const Integer &n) |
| Copy constructor. | |
| giv_all_inlined | Integer (uint64_t *d, int64_t sz) |
| Creates a new Integer from pointers. | |
| giv_all_inlined | Integer (const vect_t &v) |
| Creates a new Integers for a vector of limbs. | |
| giv_all_inlined | ~Integer () |
| destructor | |
Assignment and copy operators | |
| giv_all_inlined Integer & | operator= (const Integer &n) |
| copy from an integer. | |
| giv_all_inlined Integer & | logcpy (const Integer &n) |
| copy from an integer. | |
| giv_all_inlined Integer & | copy (const Integer &n) |
| copy from an integer. | |
Bit logic operators. | |
| giv_all_inlined Integer | operator^ (const Integer &a) const |
| XOR (^) | |
| giv_all_inlined Integer | operator^ (const uint64_t &a) const |
| XOR (^) | |
| giv_all_inlined Integer | operator^ (const uint32_t &a) const |
| XOR (^) | |
| giv_all_inlined Integer & | operator^= (const Integer &a) |
| XOR inplace (^=) | |
| giv_all_inlined Integer & | operator^= (const uint64_t &a) |
| XOR (^) | |
| giv_all_inlined Integer & | operator^= (const uint32_t &a) |
| XOR (^) | |
| giv_all_inlined Integer | operator| (const Integer &a) const |
| OR (|) | |
| giv_all_inlined Integer | operator| (const uint64_t &a) const |
| XOR (^) | |
| giv_all_inlined Integer | operator| (const uint32_t &a) const |
| XOR (^) | |
| giv_all_inlined Integer & | operator|= (const Integer &a) |
| OR inplace (|=) | |
| giv_all_inlined Integer & | operator|= (const uint64_t &a) |
| XOR (^) | |
| giv_all_inlined Integer & | operator|= (const uint32_t &a) |
| XOR (^) | |
| giv_all_inlined Integer | operator& (const Integer &a) const |
| AND (&) | |
| giv_all_inlined uint32_t | operator& (const uint32_t &a) const |
| XOR (^) | |
| giv_all_inlined uint64_t | operator& (const uint64_t &a) const |
| XOR (^) | |
| giv_all_inlined Integer & | operator&= (const Integer &a) |
| AND inplace (&=) | |
| giv_all_inlined Integer & | operator&= (const uint64_t &a) |
| XOR (^) | |
| giv_all_inlined Integer & | operator&= (const uint32_t &a) |
| XOR (^) | |
| giv_all_inlined Integer | operator~ () const |
| complement to 1 (~) | |
| giv_all_inlined Integer | operator<< (int32_t l) const |
| left shift (<<) | |
| giv_all_inlined Integer | operator<< (int64_t l) const |
| XOR (^) | |
| giv_all_inlined Integer | operator<< (uint32_t l) const |
| XOR (^) | |
| giv_all_inlined Integer | operator<< (uint64_t l) const |
| XOR (^) | |
| giv_all_inlined Integer & | operator<<= (int32_t l) |
| left shift inplace (<<=) | |
| giv_all_inlined Integer & | operator<<= (int64_t l) |
| XOR (^) | |
| giv_all_inlined Integer & | operator<<= (uint32_t l) |
| XOR (^) | |
| giv_all_inlined Integer & | operator<<= (uint64_t l) |
| XOR (^) | |
| giv_all_inlined Integer | operator>> (int32_t l) const |
| right shift (>>) | |
| giv_all_inlined Integer | operator>> (int64_t l) const |
| XOR (^) | |
| giv_all_inlined Integer | operator>> (uint32_t l) const |
| XOR (^) | |
| giv_all_inlined Integer | operator>> (uint64_t l) const |
| XOR (^) | |
| giv_all_inlined Integer & | operator>>= (int32_t l) |
| right shift inplace (>>=) | |
| giv_all_inlined Integer & | operator>>= (int64_t l) |
| XOR (^) | |
| giv_all_inlined Integer & | operator>>= (uint32_t l) |
| XOR (^) | |
| giv_all_inlined Integer & | operator>>= (uint64_t l) |
| XOR (^) | |
Increment/Decrement operators | |
Cast operators. | |
Convert an Integer to a basic C++ type.
| |
Static Public Member Functions | |
Addition, substraction, multiplication | |
| static giv_all_inlined Integer & | addin (Integer &res, const Integer &n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | addin (Integer &res, const int64_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | addin (Integer &res, const uint64_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | addin (Integer &res, const int32_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | addin (Integer &res, const uint32_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | add (Integer &res, const Integer &n1, const Integer &n2) |
Addition res=n1+n2. | |
| static giv_all_inlined Integer & | add (Integer &res, const Integer &n1, const int64_t n2) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | add (Integer &res, const Integer &n1, const uint64_t n2) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | add (Integer &res, const Integer &n1, const int32_t n2) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | add (Integer &res, const Integer &n1, const uint32_t n2) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | subin (Integer &res, const Integer &n) |
Substraction (inplace) res-=n. | |
| static giv_all_inlined Integer & | subin (Integer &res, const int64_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | subin (Integer &res, const uint64_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | subin (Integer &res, const int32_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | subin (Integer &res, const uint32_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | sub (Integer &res, const Integer &n1, const Integer &n2) |
Substraction res=n1-n2. | |
| static giv_all_inlined Integer & | sub (Integer &res, const Integer &n1, const int64_t n2) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | sub (Integer &res, const Integer &n1, const uint64_t n2) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | sub (Integer &res, const Integer &n1, const int32_t n2) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | sub (Integer &res, const Integer &n1, const uint32_t n2) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | negin (Integer &res) |
Negation (inplace) res=-res. | |
| static giv_all_inlined Integer & | neg (Integer &res, const Integer &n) |
Negation res=-n. | |
| static giv_all_inlined Integer & | mulin (Integer &res, const Integer &n) |
Multiplication (inplace) res*=n. | |
| static giv_all_inlined Integer & | mulin (Integer &res, const int64_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | mulin (Integer &res, const uint64_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | mulin (Integer &res, const int32_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | mulin (Integer &res, const uint32_t n) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | mul (Integer &res, const Integer &n1, const Integer &n2) |
Multiplication res=n1*n2. | |
| static giv_all_inlined Integer & | mul (Integer &res, const Integer &n1, const int64_t n2) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | mul (Integer &res, const Integer &n1, const uint64_t n2) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | mul (Integer &res, const Integer &n1, const int32_t n2) |
Addition (inplace) res+=n. | |
| static giv_all_inlined Integer & | mul (Integer &res, const Integer &n1, const uint32_t n2) |
Addition (inplace) res+=n. | |
fused add-multiply | |
Groups a multiplication and an addition/division in a single function. This is usually faster than doing the two operations separately (and preferable to using operators). | |
| static giv_all_inlined Integer & | axpy (Integer &res, const Integer &a, const Integer &x, const Integer &y) |
axpy res = ax+y. | |
| static giv_all_inlined Integer & | axpy (Integer &res, const Integer &a, const uint64_t x, const Integer &y) |
axpy res = ax+y. | |
| static giv_all_inlined Integer & | axpyin (Integer &res, const Integer &a, const Integer &x) |
axpyin (inplace) res += ax. | |
| static giv_all_inlined Integer & | axpyin (Integer &res, const Integer &a, const uint64_t x) |
axpy res = ax+y. | |
| static giv_all_inlined Integer & | maxpy (Integer &res, const Integer &a, const Integer &x, const Integer &y) |
maxpy res = y - ax. | |
| static giv_all_inlined Integer & | maxpy (Integer &res, const Integer &a, const uint64_t x, const Integer &y) |
axpy res = ax+y. | |
| static giv_all_inlined Integer & | maxpyin (Integer &res, const Integer &a, const Integer &x) |
maxpyin res -= ax. | |
| static giv_all_inlined Integer & | maxpyin (Integer &res, const Integer &a, const uint64_t x) |
axpy res = ax+y. | |
| static giv_all_inlined Integer & | axmy (Integer &res, const Integer &a, const Integer &x, const Integer &y) |
axmy res = ax - y. | |
| static giv_all_inlined Integer & | axmy (Integer &res, const Integer &a, const uint64_t x, const Integer &y) |
axpy res = ax+y. | |
| static giv_all_inlined Integer & | axmyin (Integer &res, const Integer &a, const Integer &x) |
axmyin (in place) res = ax - res. | |
| static giv_all_inlined Integer & | axmyin (Integer &res, const Integer &a, const uint64_t x) |
axpy res = ax+y. | |
Random numbers functions | |
Other stuff gmp has (temporary) | |
| static void | seeding (uint64_t s) |
| Random numbers (no doc) | |
| static void | seeding (const Integer &s) |
| Random numbers (no doc) | |
| static void | seeding () |
| Random numbers (no doc) | |
| static bool | RandBool () |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE> | |
| static Integer & | random_lessthan (Integer &r, const Integer &m) |
returns a random integer r in the intervall [[x, m-1]] where x = 0 or -(m-1) according to ALWAYSPOSITIVE | |
| static Integer & | random_lessthan (Integer &r, const Integer &m) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE> | |
| static Integer & | random_lessthan_2exp (Integer &r, const uint64_t &m) |
returns a random integer r in the intervall [[x, 2^m-1]] where x = 0 or -(2^m-1) according to ALWAYSPOSITIVE returns a random integer r of at most m bits | |
| static Integer & | random_lessthan_2exp (Integer &r, const uint64_t &m) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE> | |
| static Integer | random_lessthan_2exp (const uint64_t &m) |
| Random numbers (no doc) | |
| static Integer | random_lessthan_2exp (const uint64_t &m) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE> | |
| static Integer & | random_lessthan (Integer &r, const uint64_t &m) |
| Random numbers (no doc) | |
| static Integer & | random_lessthan (Integer &r, const uint64_t &m) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE, class T> | |
| static Integer | random_lessthan (const T &m) |
| Random numbers (no doc) | |
| template<class T> | |
| static Integer | random_lessthan (const T &m) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE> | |
| static Integer & | random_exact_2exp (Integer &r, const uint64_t &m) |
returns a reference to a random number r of the size m bits, exactly. | |
| static Integer & | random_exact_2exp (Integer &r, const uint64_t &m) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE> | |
| static Integer & | random_exact (Integer &r, const Integer &s) |
returns a reference to a random number r of the size of s, exactly. | |
| static Integer & | random_exact (Integer &r, const Integer &s) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE> | |
| static Integer & | random_exact (Integer &r, const uint64_t &m) |
| Random numbers (no doc) | |
| static Integer & | random_exact (Integer &r, const uint64_t &m) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE, class T> | |
| static Integer & | random_exact (Integer &r, const T &m) |
| Random numbers (no doc) | |
| template<class T> | |
| static Integer & | random_exact (Integer &r, const T &m) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE, class T> | |
| static Integer | random_exact (const T &s) |
| Random numbers (no doc) | |
| template<class T> | |
| static Integer | random_exact (const T &s) |
| Random numbers (no doc) | |
| static Integer & | random_between (Integer &r, const Integer &m, const Integer &M) |
| Random numbers (no doc) | |
| static Integer | random_between (const Integer &m, const Integer &M) |
| Random numbers (no doc) | |
| static Integer & | random_between_2exp (Integer &r, const uint64_t &m, const uint64_t &M) |
| Random numbers (no doc) | |
| static Integer & | random_between (Integer &r, const uint64_t &m, const uint64_t &M) |
| Random numbers (no doc) | |
| static Integer | random_between_2exp (const uint64_t &m, const uint64_t &M) |
| Random numbers (no doc) | |
| static Integer | random_between (const uint64_t &m, const uint64_t &M) |
| Random numbers (no doc) | |
| template<class R> | |
| static Integer | random_between (const R &m, const R &M) |
| Random numbers (no doc) | |
| template<class R> | |
| static Integer & | random_between (Integer &r, const R &m, const R &M) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE, class T> | |
| static Integer & | random (Integer &r, const T &m) |
| returns a random integer less than... | |
| template<class T> | |
| static Integer & | random (Integer &r, const T &m) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE, class T> | |
| static Integer | random (const T &sz) |
| returns a random integer less than... | |
| template<class T> | |
| static Integer | random (const T &sz) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE> | |
| static Integer | random () |
| Random numbers (no doc) | |
| static Integer | random () |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE, class T> | |
| static Integer | nonzerorandom (const T &sz) |
| Random numbers (no doc) | |
| template<bool ALWAYSPOSITIVE, class T> | |
| static Integer & | nonzerorandom (Integer &r, const T &size) |
| Random numbers (no doc) | |
| template<class T> | |
| static Integer | nonzerorandom (const T &sz) |
| Random numbers (no doc) | |
| template<class T> | |
| static Integer & | nonzerorandom (Integer &r, const T &size) |
| Random numbers (no doc) | |
| static Integer | nonzerorandom () |
| Random numbers (no doc) | |
Static Public Attributes | |
| static const Integer | zero |
| zero (0) | |
| static const Integer | one |
| one (1) | |
| static const Integer | mOne |
| minus one (-1) | |
Friends | |
| giv_all_inlined Integer & | powmod (Integer &Res, const Integer &n, const uint64_t e, const Integer &m) |
modular pow. return ![]() | |
| giv_all_inlined Integer | powmod (const Integer &n, const uint64_t e, const Integer &m) |
| modular pow. | |
| giv_all_inlined Integer | fact (uint64_t l) |
| fact | |
| giv_all_inlined Integer | sqrt (const Integer &p) |
| (square) roots | |
| giv_all_inlined Integer & | sqrt (Integer &r, const Integer &p) |
| (square) roots | |
| giv_all_inlined Integer | sqrtrem (const Integer &p, Integer &rem) |
| (square) roots | |
| giv_all_inlined Integer & | sqrtrem (Integer &r, const Integer &p, Integer &rem) |
| (square) roots | |
| giv_all_inlined bool | root (Integer &q, const Integer &a, uint32_t n) |
| (square) roots | |
| giv_all_inlined int64_t | logp (const Integer &a, const Integer &p) |
| logs | |
| giv_all_inlined double | logtwo (const Integer &a) |
| logs | |
| giv_all_inlined double | naturallog (const Integer &a) |
| logs | |
Arithmetic functions | |
| giv_all_inlined Integer | gcd (const Integer &a, const Integer &b) |
| gcd. | |
| giv_all_inlined Integer | gcd (Integer &u, Integer &v, const Integer &a, const Integer &b) |
| gcd. | |
| giv_all_inlined Integer & | gcd (Integer &g, const Integer &a, const Integer &b) |
| gcd. | |
| giv_all_inlined Integer & | gcd (Integer &g, Integer &u, Integer &v, const Integer &a, const Integer &b) |
| gcd. | |
| giv_all_inlined Integer & | inv (Integer &u, const Integer &a, const Integer &b) |
| Inverse. | |
| giv_all_inlined Integer & | invin (Integer &u, const Integer &b) |
| Compute the inverse inplace u = u/b. | |
| giv_all_inlined Integer | pp (const Integer &P, const Integer &Q) |
| pp | |
| giv_all_inlined Integer & | lcm (Integer &g, const Integer &a, const Integer &b) |
| lcm | |
| giv_all_inlined Integer | lcm (const Integer &a, const Integer &b) |
| lcm | |
| giv_all_inlined Integer & | pow (Integer &Res, const Integer &n, const int64_t l) |
| pow. | |
| giv_all_inlined Integer & | pow (Integer &Res, const uint64_t n, const uint64_t l) |
| gcd. | |
| giv_all_inlined Integer & | pow (Integer &Res, const Integer &n, const uint64_t l) |
| gcd. | |
| giv_all_inlined Integer & | pow (Integer &Res, const Integer &n, const int32_t l) |
| gcd. | |
| giv_all_inlined Integer & | pow (Integer &Res, const Integer &n, const uint32_t l) |
| gcd. | |
| giv_all_inlined Integer | pow (const Integer &n, const int64_t l) |
| pow. | |
| giv_all_inlined Integer | pow (const Integer &n, const uint64_t l) |
| gcd. | |
| giv_all_inlined Integer | pow (const Integer &n, const int32_t l) |
| gcd. | |
| giv_all_inlined Integer | pow (const Integer &n, const uint32_t l) |
| gcd. | |
primes | |
Comparison operators. | |
Compare with operators. | |
| giv_all_inlined int32_t | operator>= (const Integer &l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator>= (const int32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator>= (const int64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator>= (const uint64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator>= (const uint32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator>= (const double l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator>= (const float l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator<= (const Integer &l) const |
| less or equal | |
| giv_all_inlined int32_t | operator<= (const int32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator<= (const int64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator<= (const uint64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator<= (const uint32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator<= (const double l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator<= (const float l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator!= (const Integer &l) const |
| operator != (not equal) | |
| giv_all_inlined int32_t | operator!= (const int32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator!= (const int64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator!= (const uint64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator!= (const uint32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator!= (const double l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator!= (const float l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator== (const Integer &l) const |
| Equality. | |
| giv_all_inlined int32_t | operator== (const int32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator== (const int64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator== (const uint64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator== (const uint32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator== (const double l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator== (const float l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator> (const Integer &l) const |
| greater (strict) | |
| giv_all_inlined int32_t | operator> (const int32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator> (const int64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator> (const uint64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator> (const uint32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator> (const double l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator> (const float l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator< (const Integer &l) const |
| less (strict) | |
| giv_all_inlined int32_t | operator< (const int32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator< (const int64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator< (const uint64_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator< (const uint32_t l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator< (const double l) const |
| greater or equal. | |
| giv_all_inlined int32_t | operator< (const float l) const |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator>= (uint32_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator>= (float l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator>= (double l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator>= (int32_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator>= (int64_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator>= (uint64_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator<= (uint32_t l, const Integer &n) |
| less or equal | |
| giv_all_inlined friend int32_t | operator<= (float l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator<= (double l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator<= (int32_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator<= (int64_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator<= (uint64_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator!= (uint32_t l, const Integer &n) |
| operator != (not equal) | |
| giv_all_inlined friend int32_t | operator!= (float l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator!= (double l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator!= (int32_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator!= (int64_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator!= (uint64_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator== (uint32_t l, const Integer &n) |
| Equality. | |
| giv_all_inlined friend int32_t | operator== (float l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator== (double l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator== (int32_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator== (int64_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator== (uint64_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator> (uint32_t l, const Integer &n) |
| greater (strict) | |
| giv_all_inlined friend int32_t | operator> (float l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator> (double l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator> (int32_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator> (int64_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator> (uint64_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator< (uint32_t l, const Integer &n) |
| less (strict) | |
| giv_all_inlined friend int32_t | operator< (float l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator< (double l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator< (int32_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator< (int64_t l, const Integer &n) |
| greater or equal. | |
| giv_all_inlined friend int32_t | operator< (uint64_t l, const Integer &n) |
| greater or equal. | |
Addition, substraction, multiplication operators | |
| giv_all_inlined Integer | operator+ (const Integer &n) const |
operator +. | |
| giv_all_inlined Integer | operator+ (const uint64_t n) const |
operator +. | |
| giv_all_inlined Integer | operator+ (const int64_t n) const |
operator +. | |
| giv_all_inlined Integer | operator+ (const uint32_t n) const |
operator +. | |
| giv_all_inlined Integer | operator+ (const int32_t n) const |
operator +. | |
| giv_all_inlined Integer & | operator+= (const Integer &n) |
operator += . | |
| giv_all_inlined Integer & | operator+= (const uint64_t n) |
operator +. | |
| giv_all_inlined Integer & | operator+= (const int64_t n) |
operator +. | |
| giv_all_inlined Integer & | operator+= (const uint32_t n) |
operator +. | |
| giv_all_inlined Integer & | operator+= (const int32_t n) |
operator +. | |
| template<class XXX> | |
| Integer & | operator+= (const XXX &n) |
operator +. | |
| giv_all_inlined Integer | operator- (const Integer &n) const |
operator -. | |
| giv_all_inlined Integer | operator- (const uint64_t n) const |
operator +. | |
| giv_all_inlined Integer | operator- (const int64_t n) const |
operator +. | |
| giv_all_inlined Integer | operator- (const uint32_t n) const |
operator +. | |
| giv_all_inlined Integer | operator- (const int32_t n) const |
operator +. | |
| giv_all_inlined Integer & | operator-= (const Integer &n) |
operator -= . | |
| giv_all_inlined Integer & | operator-= (const uint64_t n) |
operator +. | |
| giv_all_inlined Integer & | operator-= (const int64_t n) |
operator +. | |
| giv_all_inlined Integer & | operator-= (const uint32_t n) |
operator +. | |
| giv_all_inlined Integer & | operator-= (const int32_t n) |
operator +. | |
| template<class XXX> | |
| Integer & | operator-= (const XXX &n) |
operator +. | |
| giv_all_inlined Integer | operator- () const |
| Opposite. | |
| giv_all_inlined Integer | operator* (const Integer &n) const |
operator *. | |
| giv_all_inlined Integer | operator* (const uint64_t n) const |
operator +. | |
| giv_all_inlined Integer | operator* (const int64_t n) const |
operator +. | |
| giv_all_inlined Integer | operator* (const uint32_t n) const |
operator +. | |
| giv_all_inlined Integer | operator* (const int32_t n) const |
operator +. | |
| giv_all_inlined Integer & | operator*= (const Integer &n) |
operator *= . | |
| giv_all_inlined Integer & | operator*= (const uint64_t n) |
operator +. | |
| giv_all_inlined Integer & | operator*= (const int64_t n) |
operator +. | |
| giv_all_inlined Integer & | operator*= (const uint32_t n) |
operator +. | |
| giv_all_inlined Integer & | operator*= (const int32_t n) |
operator +. | |
| template<class XXX> | |
| Integer & | operator*= (const XXX &n) |
operator +. | |
| giv_all_inlined Integer | operator+ (const int32_t l, const Integer &n) |
| operator +. | |
| giv_all_inlined Integer | operator+ (const uint32_t l, const Integer &n) |
operator +. | |
| giv_all_inlined Integer | operator+ (const int64_t l, const Integer &n) |
operator +. | |
| giv_all_inlined Integer | operator+ (const uint64_t l, const Integer &n) |
operator +. | |
| giv_all_inlined Integer | operator- (const int32_t l, const Integer &n) |
| operator - | |
| giv_all_inlined Integer | operator- (const uint32_t l, const Integer &n) |
operator +. | |
| giv_all_inlined Integer | operator- (const int64_t l, const Integer &n) |
operator +. | |
| giv_all_inlined Integer | operator- (const uint64_t l, const Integer &n) |
operator +. | |
| giv_all_inlined Integer | operator* (const int32_t l, const Integer &n) |
| operator * | |
| giv_all_inlined Integer | operator* (const uint32_t l, const Integer &n) |
operator +. | |
| giv_all_inlined Integer | operator* (const int64_t l, const Integer &n) |
operator +. | |
| giv_all_inlined Integer | operator* (const uint64_t l, const Integer &n) |
operator +. | |
Division/euclidean division/modulo | |
The convention for rounding are the following :
| |
| giv_all_inlined Integer | operator/ (const Integer &d) const |
| Division operator. | |
| giv_all_inlined Integer | operator/ (const uint64_t d) const |
Division q/=d. | |
| giv_all_inlined Integer | operator/ (const int64_t d) const |
Division q/=d. | |
| giv_all_inlined Integer | operator/ (const uint32_t d) const |
Division q/=d. | |
| giv_all_inlined Integer | operator/ (const int32_t d) const |
Division q/=d. | |
| giv_all_inlined Integer & | operator/= (const Integer &d) |
| Division operator (inplace). | |
| giv_all_inlined Integer & | operator/= (const uint64_t d) |
Division q/=d. | |
| giv_all_inlined Integer & | operator/= (const int64_t d) |
Division q/=d. | |
| giv_all_inlined Integer & | operator/= (const uint32_t d) |
Division q/=d. | |
| giv_all_inlined Integer & | operator/= (const int32_t d) |
Division q/=d. | |
| template<class XXX> | |
| Integer & | operator/= (const XXX &d) |
Division q/=d. | |
| giv_all_inlined Integer | operator% (const Integer &n) const |
| Modulo operator. | |
| giv_all_inlined int64_t | operator% (const uint64_t n) const |
Division q/=d. | |
| giv_all_inlined int64_t | operator% (const int64_t n) const |
Division q/=d. | |
| giv_all_inlined int32_t | operator% (const uint32_t n) const |
Division q/=d. | |
| giv_all_inlined int32_t | operator% (const int32_t n) const |
Division q/=d. | |
| giv_all_inlined double | operator% (const double n) const |
Division q/=d. | |
| int16_t | operator% (const uint16_t n) const |
Division q/=d. | |
| template<class XXX> | |
| XXX | operator% (const XXX &n) const |
Division q/=d. | |
| giv_all_inlined Integer & | operator%= (const Integer &n) |
| Modulo operator (inplace). | |
| giv_all_inlined Integer & | operator%= (const uint64_t n) |
Division q/=d. | |
| giv_all_inlined Integer & | operator%= (const int64_t n) |
Division q/=d. | |
| giv_all_inlined Integer & | operator%= (const uint32_t n) |
Division q/=d. | |
| giv_all_inlined Integer & | operator%= (const int32_t n) |
Division q/=d. | |
| template<class XXX> | |
| Integer & | operator%= (const XXX &n) |
Division q/=d. | |
| static giv_all_inlined Integer & | divin (Integer &q, const Integer &d) |
Division q/=d. | |
| static giv_all_inlined Integer & | divin (Integer &q, const int64_t d) |
Division q/=d. | |
| static giv_all_inlined Integer & | divin (Integer &q, const uint64_t d) |
Division q/=d. | |
| static giv_all_inlined Integer & | div (Integer &q, const Integer &n, const Integer &d) |
Division q=n/d. | |
| static giv_all_inlined Integer & | div (Integer &q, const Integer &n, const int64_t d) |
Division q/=d. | |
| static giv_all_inlined Integer & | div (Integer &q, const Integer &n, const int32_t d) |
Division q/=d. | |
| static giv_all_inlined Integer & | div (Integer &q, const Integer &n, const uint64_t d) |
Division q/=d. | |
| static giv_all_inlined Integer & | divexact (Integer &q, const Integer &n, const Integer &d) |
Division when d divides n. | |
| static giv_all_inlined Integer & | divexact (Integer &q, const Integer &n, const uint64_t &d) |
Division q/=d. | |
| static giv_all_inlined Integer & | divexact (Integer &q, const Integer &n, const int64_t &d) |
Division q/=d. | |
| static giv_all_inlined Integer | divexact (const Integer &n, const Integer &d) |
Division when d divides n. | |
| static giv_all_inlined Integer | divexact (const Integer &n, const uint64_t &d) |
Division q/=d. | |
| static giv_all_inlined Integer | divexact (const Integer &n, const int64_t &d) |
Division q/=d. | |
| static giv_all_inlined Integer & | trem (Integer &r, const Integer &n, const Integer &d) |
| Stuff. | |
| static giv_all_inlined Integer & | crem (Integer &r, const Integer &n, const Integer &d) |
Division q/=d. | |
| static giv_all_inlined Integer & | frem (Integer &r, const Integer &n, const Integer &d) |
Division q/=d. | |
| static giv_all_inlined Integer & | trem (Integer &r, const Integer &n, const uint64_t &d) |
| Stuff. | |
| static giv_all_inlined Integer & | crem (Integer &r, const Integer &n, const uint64_t &d) |
Division q/=d. | |
| static giv_all_inlined Integer & | frem (Integer &r, const Integer &n, const uint64_t &d) |
Division q/=d. | |
| static giv_all_inlined uint64_t | trem (const Integer &n, const uint64_t &d) |
| Stuff. | |
| static giv_all_inlined uint64_t | crem (const Integer &n, const uint64_t &d) |
Division q/=d. | |
| static giv_all_inlined uint64_t | frem (const Integer &n, const uint64_t &d) |
Division q/=d. | |
| static giv_all_inlined Integer & | modin (Integer &r, const Integer &n) |
Function mod (inplace). | |
| static giv_all_inlined Integer & | modin (Integer &r, const int64_t n) |
Division q/=d. | |
| static giv_all_inlined Integer & | modin (Integer &r, const uint64_t n) |
Division q/=d. | |
| static giv_all_inlined Integer & | mod (Integer &r, const Integer &n, const Integer &d) |
Function mod. | |
| static giv_all_inlined Integer & | mod (Integer &r, const Integer &n, const int64_t d) |
Division q/=d. | |
| static giv_all_inlined Integer & | mod (Integer &r, const Integer &n, const uint64_t d) |
Division q/=d. | |
| static giv_all_inlined Integer & | mod (Integer &r, const Integer &n, const int32_t d) |
Division q/=d. | |
| static giv_all_inlined Integer & | mod (Integer &r, const Integer &n, const uint32_t d) |
Division q/=d. | |
| static giv_all_inlined Integer & | divmod (Integer &q, Integer &r, const Integer &n, const Integer &d) |
| Euclidean division. | |
| static giv_all_inlined Integer & | divmod (Integer &q, int64_t &r, const Integer &n, const int64_t d) |
Division q/=d. | |
| static giv_all_inlined Integer & | divmod (Integer &q, uint64_t &r, const Integer &n, const uint64_t d) |
Division q/=d. | |
| static giv_all_inlined Integer & | ceil (Integer &res, const Integer &n, const Integer &d) |
| rounding functions. | |
| static giv_all_inlined Integer & | floor (Integer &res, const Integer &n, const Integer &d) |
| static giv_all_inlined Integer & | trunc (Integer &res, const Integer &n, const Integer &d) |
| static giv_all_inlined Integer | ceil (const Integer &n, const Integer &d) |
| rounding functions. | |
| static giv_all_inlined Integer | floor (const Integer &n, const Integer &d) |
| static giv_all_inlined Integer | trunc (const Integer &n, const Integer &d) |
| giv_all_inlined Integer | operator/ (const int32_t l, const Integer &n) |
| operator / | |
| giv_all_inlined Integer | operator/ (const int64_t l, const Integer &n) |
| Division operator. | |
| giv_all_inlined Integer | operator/ (const uint32_t l, const Integer &n) |
| operator / | |
| giv_all_inlined Integer | operator/ (const uint64_t l, const Integer &n) |
| Division operator. | |
| giv_all_inlined Integer | operator% (const int64_t l, const Integer &n) |
| operator % | |
| giv_all_inlined Integer | operator% (const uint64_t l, const Integer &n) |
| Division operator. | |
| giv_all_inlined Integer | operator% (const int32_t l, const Integer &n) |
| Division operator. | |
| giv_all_inlined Integer | operator% (const uint32_t l, const Integer &n) |
| Division operator. | |
Miscellaneous. | |
| int32_t | sign () const |
| sign | |
| int32_t | priv_sign () const |
| private sign | |
| giv_all_inlined void | swap (Integer &a, Integer &b) |
| int32_t | sign (const Integer &a) |
| sign | |
representation | |
| mpz_ptr | get_mpz () |
| mpz_srcptr | get_mpz () const |
| get representation (constant) | |
| mpz_srcptr | get_mpz_const () const |
| giv_all_inlined size_t | size () const |
| returns the number of machine words used to store *this | |
| giv_all_inlined size_t | size_in_base (int32_t B) const |
returns ceil(log_BASE(*this)). | |
| giv_all_inlined size_t | bitsize () const |
returns ceil(log_2(*this)) . | |
| giv_all_inlined uint64_t | operator[] (size_t i) const |
| return the i-th word of the integer. | |
| giv_all_inlined uint64_t | length (const Integer &a) |
| returns the number of bytes used to store *this | |
| giv_all_inlined int32_t | isperfectpower (const Integer &n) |
| perfect power | |
| giv_all_inlined Integer | abs (const Integer &n) |
| absolute value | |
| giv_all_inlined bool | isOdd (const Integer &a) |
| parity of an integer | |
I/O | |
| giv_all_inlined std::ostream & | print (std::ostream &o) const |
| print32_t integer. | |
| giv_all_inlined std::istream & | operator>> (std::istream &i, Integer &n) |
| Input/Output of Integers. | |
| giv_all_inlined std::ostream & | operator<< (std::ostream &o, const Integer &n) |
| out operator. | |
| giv_all_inlined std::ostream & | absOutput (std::ostream &o, const Integer &n) |
| nodoc | |
| giv_all_inlined void | Protected::importWords (Integer &x, size_t count, int32_t order, int32_t size, int32_t endian, size_t nails, const void *op) |
| nodoc | |
Comparisons functions. | |
| template<class A, class B> | |
| static giv_all_inlined bool | isleq (const A &a, const B &b) |
| isleq | |
| giv_all_inlined friend int32_t | compare (const Integer &a, const Integer &b) |
| Compares two integers. | |
| giv_all_inlined friend int32_t | absCompare (const Integer &a, const Integer &b) |
| Compare the norm of two integers. | |
| giv_all_inlined friend int32_t | absCompare (const Integer &a, const double b) |
| isleq | |
| giv_all_inlined friend int32_t | absCompare (const Integer &a, const float b) |
| isleq | |
| giv_all_inlined friend int32_t | absCompare (const Integer &a, const uint64_t b) |
| isleq | |
| giv_all_inlined friend int32_t | absCompare (const Integer &a, const unsigned b) |
| isleq | |
| giv_all_inlined friend int32_t | absCompare (const Integer &a, const int64_t b) |
| isleq | |
| giv_all_inlined friend int32_t | absCompare (const Integer &a, const int32_t b) |
| isleq | |
| template<class T> | |
| giv_all_inlined friend int32_t | absCompare (const T a, const Integer &b) |
| isleq | |
| giv_all_inlined int32_t | isOne (const Integer &a) |
| name compare to 1 and 0 | |
| giv_all_inlined int32_t | isMOne (const Integer &a) |
| isleq | |
| giv_all_inlined int32_t | nonZero (const Integer &a) |
| name compare to 1 and 0 | |
| giv_all_inlined int32_t | isZero (const Integer &a) |
| name compare to 1 and 0 | |
| giv_all_inlined int32_t | isZero (const int16_t a) |
| isleq | |
| giv_all_inlined int32_t | isZero (const int32_t a) |
| isleq | |
| giv_all_inlined int32_t | isZero (const int64_t a) |
| isleq | |
| giv_all_inlined int32_t | isZero (const uint16_t a) |
| isleq | |
| giv_all_inlined int32_t | isZero (const uint32_t a) |
| isleq | |
| giv_all_inlined int32_t | isZero (const uint64_t a) |
| isleq | |
This is the Integer class.
An Integer is represented as a GMP integer. This class provides arithmetic on Integers.
| Integer | ( | int32_t | n = 0 | ) |
Constructor form a known type.
| n | input to be constructed from |
| Integer | ( | int64_t | n | ) |
Constructor form a known type.
| n | input to be constructed from |
| Integer | ( | unsigned char | n | ) |
Constructor form a known type.
| n | input to be constructed from |
| Integer | ( | uint32_t | n | ) |
Constructor form a known type.
| n | input to be constructed from |
| Integer | ( | uint64_t | n | ) |
Constructor form a known type.
| n | input to be constructed from |
| Integer | ( | double | n | ) |
Constructor form a known type.
| n | input to be constructed from |
| Integer | ( | const char * | n | ) |
Constructor form a known type.
| n | input to be constructed from |
|
inline |
Constructor form a known type.
| n | input to be constructed from |
|
inline |
Constructor form a known type.
| n | input to be constructed from |
|
inline |
Constructor form a known type.
| n | input to be constructed from |
| giv_all_inlined Integer | ( | uint64_t * | d, |
| int64_t | sz ) |
Creates a new Integer from pointers.
| d | array |
| sz | size |
Creates a new Integers for a vector of limbs.
| v | vector of limbs |
|
inlinestatic |
isleq
| a,b |
| int32_t operator>= | ( | const Integer & | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator>= | ( | const int32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator>= | ( | const int64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator>= | ( | const uint64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator>= | ( | const uint32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator>= | ( | const double | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator>= | ( | const float | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator<= | ( | const Integer & | l | ) | const |
less or equal
| l | integer to be compared to |
| int32_t operator<= | ( | const int32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator<= | ( | const int64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator<= | ( | const uint64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator<= | ( | const uint32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator<= | ( | const double | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator<= | ( | const float | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator!= | ( | const Integer & | l | ) | const |
operator != (not equal)
| l | integer |
1 iff l == this | int32_t operator!= | ( | const int32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator!= | ( | const int64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator!= | ( | const uint64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator!= | ( | const uint32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator!= | ( | const double | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator!= | ( | const float | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator== | ( | const Integer & | l | ) | const |
Equality.
| l | integer to be compared to |
| int32_t operator== | ( | const int32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator== | ( | const int64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator== | ( | const uint64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator== | ( | const uint32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator== | ( | const double | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator== | ( | const float | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator> | ( | const Integer & | l | ) | const |
greater (strict)
| l | integer to be compared to |
| int32_t operator> | ( | const int32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator> | ( | const int64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator> | ( | const uint64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator> | ( | const uint32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator> | ( | const double | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator> | ( | const float | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator< | ( | const Integer & | l | ) | const |
less (strict)
| l | integer to be compared to |
| int32_t operator< | ( | const int32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator< | ( | const int64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator< | ( | const uint64_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator< | ( | const uint32_t | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator< | ( | const double | l | ) | const |
greater or equal.
| l | integer to be compared to |
| int32_t operator< | ( | const float | l | ) | const |
greater or equal.
| l | integer to be compared to |
| Integer operator^ | ( | const uint64_t & | a | ) | const |
XOR (^)
| a | integer |
| Integer operator^ | ( | const uint32_t & | a | ) | const |
XOR (^)
| a | integer |
| Integer & operator^= | ( | const uint64_t & | a | ) |
XOR (^)
| a | integer |
| Integer & operator^= | ( | const uint32_t & | a | ) |
XOR (^)
| a | integer |
| Integer operator| | ( | const uint64_t & | a | ) | const |
XOR (^)
| a | integer |
| Integer operator| | ( | const uint32_t & | a | ) | const |
XOR (^)
| a | integer |
| Integer & operator|= | ( | const uint64_t & | a | ) |
XOR (^)
| a | integer |
| Integer & operator|= | ( | const uint32_t & | a | ) |
XOR (^)
| a | integer |
| uint32_t operator& | ( | const uint32_t & | a | ) | const |
XOR (^)
| a | integer |
| uint64_t operator& | ( | const uint64_t & | a | ) | const |
XOR (^)
| a | integer |
| Integer & operator&= | ( | const uint64_t & | a | ) |
XOR (^)
| a | integer |
| Integer & operator&= | ( | const uint32_t & | a | ) |
XOR (^)
| a | integer |
| Integer operator<< | ( | int32_t | l | ) | const |
left shift (<<)
| l | shift |
| Integer operator<< | ( | int64_t | l | ) | const |
XOR (^)
| a | integer |
| Integer operator<< | ( | uint32_t | l | ) | const |
XOR (^)
| a | integer |
| Integer operator<< | ( | uint64_t | l | ) | const |
XOR (^)
| a | integer |
| Integer & operator<<= | ( | int32_t | l | ) |
left shift inplace (<<=)
| l | shift |
| Integer & operator<<= | ( | int64_t | l | ) |
XOR (^)
| a | integer |
| Integer & operator<<= | ( | uint32_t | l | ) |
XOR (^)
| a | integer |
| Integer & operator<<= | ( | uint64_t | l | ) |
XOR (^)
| a | integer |
| Integer operator>> | ( | int32_t | l | ) | const |
right shift (>>)
| l | shift |
| Integer operator>> | ( | int64_t | l | ) | const |
XOR (^)
| a | integer |
| Integer operator>> | ( | uint32_t | l | ) | const |
XOR (^)
| a | integer |
| Integer operator>> | ( | uint64_t | l | ) | const |
XOR (^)
| a | integer |
| Integer & operator>>= | ( | int32_t | l | ) |
right shift inplace (>>=)
| l | shift |
| Integer & operator>>= | ( | int64_t | l | ) |
XOR (^)
| a | integer |
| Integer & operator>>= | ( | uint32_t | l | ) |
XOR (^)
| a | integer |
| Integer & operator>>= | ( | uint64_t | l | ) |
XOR (^)
| a | integer |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition res=n1+n2.
| res | as in the formula |
| n1 | as in the formula |
| n2 | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
|
inlinestatic |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
|
inlinestatic |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Substraction (inplace) res-=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Substraction res=n1-n2.
| res | as in the formula |
| n1 | as in the formula |
| n2 | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
|
inlinestatic |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
|
inlinestatic |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Negation (inplace) res=-res.
| res | as in the formula |
Negation res=-n.
| n | as in the formula |
| res | as in the formula |
Multiplication (inplace) res*=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Multiplication res=n1*n2.
| res | as in the formula |
| n1 | as in the formula |
| n2 | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
|
inlinestatic |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
|
inlinestatic |
Addition (inplace) res+=n.
| res | as in the formula |
| n | as in the formula |
operator +.
(*this)+n | n | as in the formula. |
| Integer operator+ | ( | const uint64_t | n | ) | const |
operator +.
(*this)+n | n | as in the formula. |
| Integer operator+ | ( | const int64_t | n | ) | const |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
operator += .
| n | asfriend In the formula. |
(*this) += n. | Integer & operator+= | ( | const uint64_t | n | ) |
operator +.
(*this)+n | n | as in the formula. |
| Integer & operator+= | ( | const int64_t | n | ) |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
operator -.
(*this)-n | n | as in the formula. |
| Integer operator- | ( | const uint64_t | n | ) | const |
operator +.
(*this)+n | n | as in the formula. |
| Integer operator- | ( | const int64_t | n | ) | const |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
operator -= .
| n | as in the formula. |
(*this) -= n. | Integer & operator-= | ( | const uint64_t | n | ) |
operator +.
(*this)+n | n | as in the formula. |
| Integer & operator-= | ( | const int64_t | n | ) |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
| Integer operator- | ( | ) | const |
Opposite.
-(*this). operator *.
(*this)*n | n | as in the formula. |
| Integer operator* | ( | const uint64_t | n | ) | const |
operator +.
(*this)+n | n | as in the formula. |
| Integer operator* | ( | const int64_t | n | ) | const |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
operator *= .
| n | as in the formula. |
(*this) *= n. | Integer & operator*= | ( | const uint64_t | n | ) |
operator +.
(*this)+n | n | as in the formula. |
| Integer & operator*= | ( | const int64_t | n | ) |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
|
inline |
operator +.
(*this)+n | n | as in the formula. |
axpy res = ax+y.
| res | Integers as in the forumla |
| a | Integers as in the forumla |
| x | Integers as in the forumla |
| y | Integers as in the forumla |
axpy res = ax+y.
| res | Integers as in the forumla |
| a | Integers as in the forumla |
| x | Integers as in the forumla |
| y | Integers as in the forumla |
axpyin (inplace) res += ax.
| res | Integers as in the formula. |
| a | Integers as in the formula. |
| x | Integers as in the formula. |
axpy res = ax+y.
| res | Integers as in the forumla |
| a | Integers as in the forumla |
| x | Integers as in the forumla |
| y | Integers as in the forumla |
maxpy res = y - ax.
| res | Integers as in the formula. |
| a | Integers as in the formula. |
| x | Integers as in the formula. |
| y | Integers as in the formula. |
axpy res = ax+y.
| res | Integers as in the forumla |
| a | Integers as in the forumla |
| x | Integers as in the forumla |
| y | Integers as in the forumla |
maxpyin res -= ax.
| res | Integers as in the formula. |
| a | Integers as in the formula. |
| x | Integers as in the formula. |
axpy res = ax+y.
| res | Integers as in the forumla |
| a | Integers as in the forumla |
| x | Integers as in the forumla |
| y | Integers as in the forumla |
axmy res = ax - y.
| res | Integers as in the formula. |
| a | Integers as in the formula. |
| x | Integers as in the formula. |
| y | Integers as in the formula. |
axpy res = ax+y.
| res | Integers as in the forumla |
| a | Integers as in the forumla |
| x | Integers as in the forumla |
| y | Integers as in the forumla |
axmyin (in place) res = ax - res.
| res | Integers as in the formula. |
| a | Integers as in the formula. |
| x | Integers as in the formula. |
axpy res = ax+y.
| res | Integers as in the forumla |
| a | Integers as in the forumla |
| x | Integers as in the forumla |
| y | Integers as in the forumla |
Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Division q=n/d.
| q | quotient |
| n | dividand. |
| d | divisor |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Division when d divides n.
| q | exact quotient |
| n | dividend |
| d | divisor |
Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Division when d divides n.
| n | dividend |
| d | divisor |
n/d Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q
|
static |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
static |
Division q/=d.
| q | quotient |
| d | divisor. |
q | Integer operator/ | ( | const uint64_t | d | ) | const |
Division q/=d.
| q | quotient |
| d | divisor. |
q | Integer operator/ | ( | const int64_t | d | ) | const |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q | Integer & operator/= | ( | const uint64_t | d | ) |
Division q/=d.
| q | quotient |
| d | divisor. |
q | Integer & operator/= | ( | const int64_t | d | ) |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q Function mod (inplace).

| r | remainder |
| n | modulus |
Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Function mod.

| r | remainder |
| n | integer |
| d | modulus |
Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inlinestatic |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inlinestatic |
Division q/=d.
| q | quotient |
| d | divisor. |
q Euclidean division.
n = d q + r . Computes both the quotient and the residue (as in quorem).
| q | as in the formula |
| r | as in the formula |
| n | as in the formula |
| d | as in the formula |
q Division q/=d.
| q | quotient |
| d | divisor. |
q Division q/=d.
| q | quotient |
| d | divisor. |
q rounding functions.
these are the same as the STL ones, except for the signature.
| res | the result |
| n | the numerator |
| d | the demominator |
same as std::ceil (n/d)
same as std::floor(n/d)
same as std::trunc(n/d)
rounding functions.
these are the same as the STL ones, except for the signature.
| n | the numerator |
| d | the demominator |
same as std::ceil (n/d)
Modulo operator.
| n | modulus |
(*this) mod n | int64_t operator% | ( | const uint64_t | n | ) | const |
Division q/=d.
| q | quotient |
| d | divisor. |
q | int64_t operator% | ( | const int64_t | n | ) | const |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q | double operator% | ( | const double | n | ) | const |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q Modulo operator (inplace).
| n | modulus |
(*this) <- (*this) mod n | Integer & operator%= | ( | const uint64_t | n | ) |
Division q/=d.
| q | quotient |
| d | divisor. |
q | Integer & operator%= | ( | const int64_t | n | ) |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
Division q/=d.
| q | quotient |
| d | divisor. |
q
|
inline |
get representation
|
inline |
get representation
| uint64_t operator[] | ( | size_t | i | ) | const |
return the i-th word of the integer.
Word 0 is lowest word.
|
inlinestatic |
returns a random integer r in the intervall [[x, m-1]] where x = 0 or -(m-1) according to ALWAYSPOSITIVE
| std::ostream & print | ( | std::ostream & | o | ) | const |
print32_t integer.
| o | output stream. |
Compares two integers.
| a | integer |
| b | integer |
1 if 
0 if 
-1 otherwise. Compare the norm of two integers.
| a | integer |
| b | integer |
1 if 
0 if 
-1 otherwise.
|
friend |
isleq
| a,b |
|
friend |
isleq
| a,b |
|
friend |
isleq
| a,b |
|
friend |
isleq
| a,b |
|
friend |
isleq
| a,b |
|
friend |
isleq
| a,b |
|
friend |
isleq
| a,b |
|
friend |
name compare to 1 and 0
| a |
|
friend |
isleq
| a,b |
|
friend |
name compare to 1 and 0
| a |
|
friend |
name compare to 1 and 0
| a |
|
friend |
isleq
| a,b |
|
friend |
isleq
| a,b |
|
friend |
isleq
| a,b |
|
friend |
isleq
| a,b |
|
friend |
isleq
| a,b |
|
friend |
isleq
| a,b |
|
friend |
greater or equal.
| l,n | integers to compare |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
less or equal
| l,n | integers to compare |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
operator != (not equal)
| l,n | integer |
1 iff l == n
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
Equality.
| l,n | integers to compare |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater (strict)
| l,n | integers to compare |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
less (strict)
| l,n | integers to compare |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
|
friend |
greater or equal.
| l | integer to be compared to |
operator +.
| l,n | to be added |
operator +.
(*this)+n | n | as in the formula. |
operator +.
(*this)+n | n | as in the formula. |
operator +.
(*this)+n | n | as in the formula. |
operator -
| l,n | to be substracted |
operator +.
(*this)+n | n | as in the formula. |
operator +.
(*this)+n | n | as in the formula. |
operator +.
(*this)+n | n | as in the formula. |
operator *
| l,n | to be multpct |
operator +.
(*this)+n | n | as in the formula. |
operator +.
(*this)+n | n | as in the formula. |
operator +.
(*this)+n | n | as in the formula. |
Division operator.
| d | divisor |
Division operator.
| d | divisor |
operator %
| l | |
| n |
Division operator.
| d | divisor |
Division operator.
| d | divisor |
Division operator.
| d | divisor |
gcd.
| a,b | integers |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
friend |
gcd.
| a,b | integers |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
gcd.
| a,b | integers |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
friend |
gcd.
| a,b | integers |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Inverse.
Compute the inverse u = a/b.
| u | ||
| a | ||
| b | ||
| a | ||
| b | ||
| [out] | u | is set to ![]() |
Compute the inverse inplace u = u/b.
| u | |
| b |
lcm
| g,a,b |
pow.
return 
| Res,n,l |
gcd.
| a,b | integers |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
gcd.
| a,b | integers |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
gcd.
| a,b | integers |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
gcd.
| a,b | integers |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
pow.
return 
| n,l |
gcd.
| a,b | integers |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
gcd.
| a,b | integers |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
gcd.
| a,b | integers |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
modular pow.
return 
| n,e,m |
|
friend |
fact
| l |
(square) roots
| r,p |
(square) roots
| p,rem |
(square) roots
| r,p,rem |
(square) roots
| q,a,n |
|
friend |
logs
| a |
|
friend |
logs
| a |
|
friend |
sign
| a |
|
friend |
returns the number of bytes used to store *this
| a |
|
friend |
parity of an integer
| a | integer |
|
friend |
Input/Output of Integers.
in operator.
| i | input stream |
| n | integer to be built |
|
friend |
out operator.
| o | output stream |
| n | integer to be printed |
|
friend |
nodoc
| o | output |
| n | integer |
|
friend |
nodoc
| x | x |
| count | x |
| order | x |
| size | x |
| endian | x |
| nails | x |
| op | x |