Givaro
|
This is the Integer class. More...
#include <gmp++_int.h>
Inherited by SpyInteger::InHeritsInteger.
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. More... | |
giv_all_inlined | Integer (int64_t n) |
Constructor form a known type. More... | |
giv_all_inlined | Integer (unsigned char n) |
Constructor form a known type. More... | |
giv_all_inlined | Integer (uint32_t n) |
Constructor form a known type. More... | |
giv_all_inlined | Integer (uint64_t n) |
Constructor form a known type. More... | |
giv_all_inlined | Integer (double n) |
Constructor form a known type. More... | |
giv_all_inlined | Integer (const char *n) |
Constructor form a known type. More... | |
giv_all_inlined | Integer (const mpz_class &a) |
Constructor form a known type. More... | |
template<size_t K> | |
Integer (const RecInt::ruint< K > &n) | |
Constructor form a known type. More... | |
template<size_t K> | |
Integer (const RecInt::rint< K > &n) | |
Constructor form a known type. More... | |
giv_all_inlined | Integer (const Integer &n) |
Copy constructor. More... | |
giv_all_inlined | Integer (uint64_t *d, int64_t sz) |
Creates a new Integer from pointers. More... | |
giv_all_inlined | Integer (const vect_t &v) |
Creates a new Integers for a vector of limbs. More... | |
giv_all_inlined | ~Integer () |
destructor | |
Assignment and copy operators | |
giv_all_inlined Integer & | operator= (const Integer &n) |
copy from an integer. More... | |
giv_all_inlined Integer & | logcpy (const Integer &n) |
copy from an integer. More... | |
giv_all_inlined Integer & | copy (const Integer &n) |
copy from an integer. More... | |
Bit logic operators. <br> | |
giv_all_inlined Integer | operator^ (const Integer &a) const |
XOR (^) More... | |
giv_all_inlined Integer | operator^ (const uint64_t &a) const |
XOR (^) More... | |
giv_all_inlined Integer | operator^ (const uint32_t &a) const |
XOR (^) More... | |
giv_all_inlined Integer & | operator^= (const Integer &a) |
XOR inplace (^=) More... | |
giv_all_inlined Integer & | operator^= (const uint64_t &a) |
XOR (^) More... | |
giv_all_inlined Integer & | operator^= (const uint32_t &a) |
XOR (^) More... | |
giv_all_inlined Integer | operator| (const Integer &a) const |
OR (|) More... | |
giv_all_inlined Integer | operator| (const uint64_t &a) const |
XOR (^) More... | |
giv_all_inlined Integer | operator| (const uint32_t &a) const |
XOR (^) More... | |
giv_all_inlined Integer & | operator|= (const Integer &a) |
OR inplace (|=) More... | |
giv_all_inlined Integer & | operator|= (const uint64_t &a) |
XOR (^) More... | |
giv_all_inlined Integer & | operator|= (const uint32_t &a) |
XOR (^) More... | |
giv_all_inlined Integer | operator& (const Integer &a) const |
AND (&) More... | |
giv_all_inlined uint32_t | operator& (const uint32_t &a) const |
XOR (^) More... | |
giv_all_inlined uint64_t | operator& (const uint64_t &a) const |
XOR (^) More... | |
giv_all_inlined Integer & | operator&= (const Integer &a) |
AND inplace (&=) More... | |
giv_all_inlined Integer & | operator&= (const uint64_t &a) |
XOR (^) More... | |
giv_all_inlined Integer & | operator&= (const uint32_t &a) |
XOR (^) More... | |
giv_all_inlined Integer | operator~ () const |
complement to 1 (~) | |
giv_all_inlined Integer | operator<< (int32_t l) const |
left shift (<<) More... | |
giv_all_inlined Integer | operator<< (int64_t l) const |
XOR (^) More... | |
giv_all_inlined Integer | operator<< (uint32_t l) const |
XOR (^) More... | |
giv_all_inlined Integer | operator<< (uint64_t l) const |
XOR (^) More... | |
giv_all_inlined Integer & | operator<<= (int32_t l) |
left shift inplace (<<=) More... | |
giv_all_inlined Integer & | operator<<= (int64_t l) |
XOR (^) More... | |
giv_all_inlined Integer & | operator<<= (uint32_t l) |
XOR (^) More... | |
giv_all_inlined Integer & | operator<<= (uint64_t l) |
XOR (^) More... | |
giv_all_inlined Integer | operator>> (int32_t l) const |
right shift (>>) More... | |
giv_all_inlined Integer | operator>> (int64_t l) const |
XOR (^) More... | |
giv_all_inlined Integer | operator>> (uint32_t l) const |
XOR (^) More... | |
giv_all_inlined Integer | operator>> (uint64_t l) const |
XOR (^) More... | |
giv_all_inlined Integer & | operator>>= (int32_t l) |
right shift inplace (>>=) More... | |
giv_all_inlined Integer & | operator>>= (int64_t l) |
XOR (^) More... | |
giv_all_inlined Integer & | operator>>= (uint32_t l) |
XOR (^) More... | |
giv_all_inlined Integer & | operator>>= (uint64_t l) |
XOR (^) More... | |
Increment/Decrement operators | |
Integer & | operator++ () |
Integer | operator++ (int) |
Integer & | operator-- () |
Integer | operator-- (int) |
Cast operators. | |
Convert an Integer to a basic C++ type.
| |
operator bool () const | |
operator int16_t () const | |
operator uint16_t () const | |
operator unsigned char () const | |
giv_all_inlined | operator uint32_t () const |
giv_all_inlined | operator int32_t () const |
operator signed char () const | |
giv_all_inlined | operator uint64_t () const |
giv_all_inlined | operator int64_t () const |
giv_all_inlined | operator std::string () const |
giv_all_inlined | operator float () const |
giv_all_inlined | operator double () const |
giv_all_inlined | operator vect_t () const |
template<size_t K> | |
operator RecInt::ruint< K > () const | |
template<size_t K> | |
operator RecInt::rint< K > () const | |
Static Public Member Functions | |
Addition, substraction, multiplication | |
static giv_all_inlined Integer & | addin (Integer &res, const Integer &n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | addin (Integer &res, const int64_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | addin (Integer &res, const uint64_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | addin (Integer &res, const int32_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | addin (Integer &res, const uint32_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | add (Integer &res, const Integer &n1, const Integer &n2) |
Addition res=n1+n2 . More... | |
static giv_all_inlined Integer & | add (Integer &res, const Integer &n1, const int64_t n2) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | add (Integer &res, const Integer &n1, const uint64_t n2) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | add (Integer &res, const Integer &n1, const int32_t n2) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | add (Integer &res, const Integer &n1, const uint32_t n2) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | subin (Integer &res, const Integer &n) |
Substraction (inplace) res-=n . More... | |
static giv_all_inlined Integer & | subin (Integer &res, const int64_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | subin (Integer &res, const uint64_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | subin (Integer &res, const int32_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | subin (Integer &res, const uint32_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | sub (Integer &res, const Integer &n1, const Integer &n2) |
Substraction res=n1-n2 . More... | |
static giv_all_inlined Integer & | sub (Integer &res, const Integer &n1, const int64_t n2) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | sub (Integer &res, const Integer &n1, const uint64_t n2) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | sub (Integer &res, const Integer &n1, const int32_t n2) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | sub (Integer &res, const Integer &n1, const uint32_t n2) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | negin (Integer &res) |
Negation (inplace) res=-res . More... | |
static giv_all_inlined Integer & | neg (Integer &res, const Integer &n) |
Negation res=-n . More... | |
static giv_all_inlined Integer & | mulin (Integer &res, const Integer &n) |
Multiplication (inplace) res*=n . More... | |
static giv_all_inlined Integer & | mulin (Integer &res, const int64_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | mulin (Integer &res, const uint64_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | mulin (Integer &res, const int32_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | mulin (Integer &res, const uint32_t n) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | mul (Integer &res, const Integer &n1, const Integer &n2) |
Multiplication res=n1*n2 . More... | |
static giv_all_inlined Integer & | mul (Integer &res, const Integer &n1, const int64_t n2) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | mul (Integer &res, const Integer &n1, const uint64_t n2) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | mul (Integer &res, const Integer &n1, const int32_t n2) |
Addition (inplace) res+=n . More... | |
static giv_all_inlined Integer & | mul (Integer &res, const Integer &n1, const uint32_t n2) |
Addition (inplace) res+=n . More... | |
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 . More... | |
static giv_all_inlined Integer & | axpy (Integer &res, const Integer &a, const uint64_t x, const Integer &y) |
axpy res = ax+y . More... | |
static giv_all_inlined Integer & | axpyin (Integer &res, const Integer &a, const Integer &x) |
axpyin (inplace) res += ax . More... | |
static giv_all_inlined Integer & | axpyin (Integer &res, const Integer &a, const uint64_t x) |
axpy res = ax+y . More... | |
static giv_all_inlined Integer & | maxpy (Integer &res, const Integer &a, const Integer &x, const Integer &y) |
maxpy res = y - ax . More... | |
static giv_all_inlined Integer & | maxpy (Integer &res, const Integer &a, const uint64_t x, const Integer &y) |
axpy res = ax+y . More... | |
static giv_all_inlined Integer & | maxpyin (Integer &res, const Integer &a, const Integer &x) |
maxpyin res -= ax . More... | |
static giv_all_inlined Integer & | maxpyin (Integer &res, const Integer &a, const uint64_t x) |
axpy res = ax+y . More... | |
static giv_all_inlined Integer & | axmy (Integer &res, const Integer &a, const Integer &x, const Integer &y) |
axmy res = ax - y . More... | |
static giv_all_inlined Integer & | axmy (Integer &res, const Integer &a, const uint64_t x, const Integer &y) |
axpy res = ax+y . More... | |
static giv_all_inlined Integer & | axmyin (Integer &res, const Integer &a, const Integer &x) |
axmyin (in place) res = ax - res . More... | |
static giv_all_inlined Integer & | axmyin (Integer &res, const Integer &a, const uint64_t x) |
axpy res = ax+y . More... | |
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 More... | |
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. More... | |
giv_all_inlined Integer | fact (uint64_t l) |
fact More... | |
giv_all_inlined Integer | sqrt (const Integer &p) |
(square) roots More... | |
giv_all_inlined Integer & | sqrt (Integer &r, const Integer &p) |
(square) roots More... | |
giv_all_inlined Integer | sqrtrem (const Integer &p, Integer &rem) |
(square) roots More... | |
giv_all_inlined Integer & | sqrtrem (Integer &r, const Integer &p, Integer &rem) |
(square) roots More... | |
giv_all_inlined bool | root (Integer &q, const Integer &a, uint32_t n) |
(square) roots More... | |
giv_all_inlined int64_t | logp (const Integer &a, const Integer &p) |
logs More... | |
giv_all_inlined double | logtwo (const Integer &a) |
logs More... | |
giv_all_inlined double | naturallog (const Integer &a) |
logs More... | |
Arithmetic functions | |
giv_all_inlined Integer | gcd (const Integer &a, const Integer &b) |
gcd. More... | |
giv_all_inlined Integer | gcd (Integer &u, Integer &v, const Integer &a, const Integer &b) |
gcd. More... | |
giv_all_inlined Integer & | gcd (Integer &g, const Integer &a, const Integer &b) |
gcd. More... | |
giv_all_inlined Integer & | gcd (Integer &g, Integer &u, Integer &v, const Integer &a, const Integer &b) |
gcd. More... | |
giv_all_inlined Integer & | inv (Integer &u, const Integer &a, const Integer &b) |
Inverse. More... | |
giv_all_inlined Integer & | invin (Integer &u, const Integer &b) |
Compute the inverse inplace u = u/b. More... | |
giv_all_inlined Integer | pp (const Integer &P, const Integer &Q) |
pp More... | |
giv_all_inlined Integer & | lcm (Integer &g, const Integer &a, const Integer &b) |
lcm More... | |
giv_all_inlined Integer | lcm (const Integer &a, const Integer &b) |
lcm More... | |
giv_all_inlined Integer & | pow (Integer &Res, const Integer &n, const int64_t l) |
pow. More... | |
giv_all_inlined Integer & | pow (Integer &Res, const uint64_t n, const uint64_t l) |
gcd. More... | |
giv_all_inlined Integer & | pow (Integer &Res, const Integer &n, const uint64_t l) |
gcd. More... | |
giv_all_inlined Integer & | pow (Integer &Res, const Integer &n, const int32_t l) |
gcd. More... | |
giv_all_inlined Integer & | pow (Integer &Res, const Integer &n, const uint32_t l) |
gcd. More... | |
giv_all_inlined Integer | pow (const Integer &n, const int64_t l) |
pow. More... | |
giv_all_inlined Integer | pow (const Integer &n, const uint64_t l) |
gcd. More... | |
giv_all_inlined Integer | pow (const Integer &n, const int32_t l) |
gcd. More... | |
giv_all_inlined Integer | pow (const Integer &n, const uint32_t l) |
gcd. More... | |
primes | |
giv_all_inlined Integer & | Protected::prevprime (Integer &, const Integer &p) |
giv_all_inlined Integer & | Protected::nextprime (Integer &, const Integer &p) |
giv_all_inlined int32_t | Protected::probab_prime (const Integer &p, int32_t r) |
giv_all_inlined int32_t | kronecker (const Integer &u, const Integer &v) |
giv_all_inlined int32_t | jacobi (const Integer &u, const Integer &v) |
giv_all_inlined int32_t | legendre (const Integer &u, const Integer &v) |
Comparison operators. | |
giv_all_inlined int32_t | operator>= (const Integer &l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator>= (const int32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator>= (const int64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator>= (const uint64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator>= (const uint32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator>= (const double l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator>= (const float l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator<= (const Integer &l) const |
less or equal More... | |
giv_all_inlined int32_t | operator<= (const int32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator<= (const int64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator<= (const uint64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator<= (const uint32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator<= (const double l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator<= (const float l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator!= (const Integer &l) const |
operator != (not equal) More... | |
giv_all_inlined int32_t | operator!= (const int32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator!= (const int64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator!= (const uint64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator!= (const uint32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator!= (const double l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator!= (const float l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator== (const Integer &l) const |
Equality. More... | |
giv_all_inlined int32_t | operator== (const int32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator== (const int64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator== (const uint64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator== (const uint32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator== (const double l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator== (const float l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator> (const Integer &l) const |
greater (strict) More... | |
giv_all_inlined int32_t | operator> (const int32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator> (const int64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator> (const uint64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator> (const uint32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator> (const double l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator> (const float l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator< (const Integer &l) const |
less (strict) More... | |
giv_all_inlined int32_t | operator< (const int32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator< (const int64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator< (const uint64_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator< (const uint32_t l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator< (const double l) const |
greater or equal. More... | |
giv_all_inlined int32_t | operator< (const float l) const |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator>= (uint32_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator>= (float l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator>= (double l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator>= (int32_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator>= (int64_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator>= (uint64_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator<= (uint32_t l, const Integer &n) |
less or equal More... | |
giv_all_inlined friend int32_t | operator<= (float l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator<= (double l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator<= (int32_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator<= (int64_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator<= (uint64_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator!= (uint32_t l, const Integer &n) |
operator != (not equal) More... | |
giv_all_inlined friend int32_t | operator!= (float l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator!= (double l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator!= (int32_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator!= (int64_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator!= (uint64_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator== (uint32_t l, const Integer &n) |
Equality. More... | |
giv_all_inlined friend int32_t | operator== (float l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator== (double l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator== (int32_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator== (int64_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator== (uint64_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator> (uint32_t l, const Integer &n) |
greater (strict) More... | |
giv_all_inlined friend int32_t | operator> (float l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator> (double l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator> (int32_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator> (int64_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator> (uint64_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator< (uint32_t l, const Integer &n) |
less (strict) More... | |
giv_all_inlined friend int32_t | operator< (float l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator< (double l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator< (int32_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator< (int64_t l, const Integer &n) |
greater or equal. More... | |
giv_all_inlined friend int32_t | operator< (uint64_t l, const Integer &n) |
greater or equal. More... | |
Addition, substraction, multiplication operators | |
giv_all_inlined Integer | operator+ (const Integer &n) const |
operator + . More... | |
giv_all_inlined Integer | operator+ (const uint64_t n) const |
operator + . More... | |
giv_all_inlined Integer | operator+ (const int64_t n) const |
operator + . More... | |
giv_all_inlined Integer | operator+ (const uint32_t n) const |
operator + . More... | |
giv_all_inlined Integer | operator+ (const int32_t n) const |
operator + . More... | |
giv_all_inlined Integer & | operator+= (const Integer &n) |
operator += . More... | |
giv_all_inlined Integer & | operator+= (const uint64_t n) |
operator + . More... | |
giv_all_inlined Integer & | operator+= (const int64_t n) |
operator + . More... | |
giv_all_inlined Integer & | operator+= (const uint32_t n) |
operator + . More... | |
giv_all_inlined Integer & | operator+= (const int32_t n) |
operator + . More... | |
template<class XXX > | |
Integer & | operator+= (const XXX &n) |
operator + . More... | |
giv_all_inlined Integer | operator- (const Integer &n) const |
operator - . More... | |
giv_all_inlined Integer | operator- (const uint64_t n) const |
operator + . More... | |
giv_all_inlined Integer | operator- (const int64_t n) const |
operator + . More... | |
giv_all_inlined Integer | operator- (const uint32_t n) const |
operator + . More... | |
giv_all_inlined Integer | operator- (const int32_t n) const |
operator + . More... | |
giv_all_inlined Integer & | operator-= (const Integer &n) |
operator -= . More... | |
giv_all_inlined Integer & | operator-= (const uint64_t n) |
operator + . More... | |
giv_all_inlined Integer & | operator-= (const int64_t n) |
operator + . More... | |
giv_all_inlined Integer & | operator-= (const uint32_t n) |
operator + . More... | |
giv_all_inlined Integer & | operator-= (const int32_t n) |
operator + . More... | |
template<class XXX > | |
Integer & | operator-= (const XXX &n) |
operator + . More... | |
giv_all_inlined Integer | operator- () const |
Opposite. More... | |
giv_all_inlined Integer | operator* (const Integer &n) const |
operator * . More... | |
giv_all_inlined Integer | operator* (const uint64_t n) const |
operator + . More... | |
giv_all_inlined Integer | operator* (const int64_t n) const |
operator + . More... | |
giv_all_inlined Integer | operator* (const uint32_t n) const |
operator + . More... | |
giv_all_inlined Integer | operator* (const int32_t n) const |
operator + . More... | |
giv_all_inlined Integer & | operator*= (const Integer &n) |
operator *= . More... | |
giv_all_inlined Integer & | operator*= (const uint64_t n) |
operator + . More... | |
giv_all_inlined Integer & | operator*= (const int64_t n) |
operator + . More... | |
giv_all_inlined Integer & | operator*= (const uint32_t n) |
operator + . More... | |
giv_all_inlined Integer & | operator*= (const int32_t n) |
operator + . More... | |
template<class XXX > | |
Integer & | operator*= (const XXX &n) |
operator + . More... | |
giv_all_inlined Integer | operator+ (const int32_t l, const Integer &n) |
operator +. More... | |
giv_all_inlined Integer | operator+ (const uint32_t l, const Integer &n) |
operator + . More... | |
giv_all_inlined Integer | operator+ (const int64_t l, const Integer &n) |
operator + . More... | |
giv_all_inlined Integer | operator+ (const uint64_t l, const Integer &n) |
operator + . More... | |
giv_all_inlined Integer | operator- (const int32_t l, const Integer &n) |
operator - More... | |
giv_all_inlined Integer | operator- (const uint32_t l, const Integer &n) |
operator + . More... | |
giv_all_inlined Integer | operator- (const int64_t l, const Integer &n) |
operator + . More... | |
giv_all_inlined Integer | operator- (const uint64_t l, const Integer &n) |
operator + . More... | |
giv_all_inlined Integer | operator* (const int32_t l, const Integer &n) |
operator * More... | |
giv_all_inlined Integer | operator* (const uint32_t l, const Integer &n) |
operator + . More... | |
giv_all_inlined Integer | operator* (const int64_t l, const Integer &n) |
operator + . More... | |
giv_all_inlined Integer | operator* (const uint64_t l, const Integer &n) |
operator + . More... | |
Division/euclidean division/modulo | |
The convention for rounding are the following :
| |
giv_all_inlined Integer | operator/ (const Integer &d) const |
Division operator. More... | |
giv_all_inlined Integer | operator/ (const uint64_t d) const |
Division q/=d . More... | |
giv_all_inlined Integer | operator/ (const int64_t d) const |
Division q/=d . More... | |
giv_all_inlined Integer | operator/ (const uint32_t d) const |
Division q/=d . More... | |
giv_all_inlined Integer | operator/ (const int32_t d) const |
Division q/=d . More... | |
giv_all_inlined Integer & | operator/= (const Integer &d) |
Division operator (inplace). More... | |
giv_all_inlined Integer & | operator/= (const uint64_t d) |
Division q/=d . More... | |
giv_all_inlined Integer & | operator/= (const int64_t d) |
Division q/=d . More... | |
giv_all_inlined Integer & | operator/= (const uint32_t d) |
Division q/=d . More... | |
giv_all_inlined Integer & | operator/= (const int32_t d) |
Division q/=d . More... | |
template<class XXX > | |
Integer & | operator/= (const XXX &d) |
Division q/=d . More... | |
giv_all_inlined Integer | operator% (const Integer &n) const |
Modulo operator. More... | |
giv_all_inlined int64_t | operator% (const uint64_t n) const |
Division q/=d . More... | |
giv_all_inlined int64_t | operator% (const int64_t n) const |
Division q/=d . More... | |
giv_all_inlined int32_t | operator% (const uint32_t n) const |
Division q/=d . More... | |
giv_all_inlined int32_t | operator% (const int32_t n) const |
Division q/=d . More... | |
giv_all_inlined double | operator% (const double n) const |
Division q/=d . More... | |
int16_t | operator% (const uint16_t n) const |
Division q/=d . More... | |
template<class XXX > | |
XXX | operator% (const XXX &n) const |
Division q/=d . More... | |
giv_all_inlined Integer & | operator%= (const Integer &n) |
Modulo operator (inplace). More... | |
giv_all_inlined Integer & | operator%= (const uint64_t n) |
Division q/=d . More... | |
giv_all_inlined Integer & | operator%= (const int64_t n) |
Division q/=d . More... | |
giv_all_inlined Integer & | operator%= (const uint32_t n) |
Division q/=d . More... | |
giv_all_inlined Integer & | operator%= (const int32_t n) |
Division q/=d . More... | |
template<class XXX > | |
Integer & | operator%= (const XXX &n) |
Division q/=d . More... | |
static giv_all_inlined Integer & | divin (Integer &q, const Integer &d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | divin (Integer &q, const int64_t d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | divin (Integer &q, const uint64_t d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | div (Integer &q, const Integer &n, const Integer &d) |
Division q=n/d . More... | |
static giv_all_inlined Integer & | div (Integer &q, const Integer &n, const int64_t d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | div (Integer &q, const Integer &n, const int32_t d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | div (Integer &q, const Integer &n, const uint64_t d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | divexact (Integer &q, const Integer &n, const Integer &d) |
Division when d divides n . More... | |
static giv_all_inlined Integer & | divexact (Integer &q, const Integer &n, const uint64_t &d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | divexact (Integer &q, const Integer &n, const int64_t &d) |
Division q/=d . More... | |
static giv_all_inlined Integer | divexact (const Integer &n, const Integer &d) |
Division when d divides n . More... | |
static giv_all_inlined Integer | divexact (const Integer &n, const uint64_t &d) |
Division q/=d . More... | |
static giv_all_inlined Integer | divexact (const Integer &n, const int64_t &d) |
Division q/=d . More... | |
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 . More... | |
static giv_all_inlined Integer & | frem (Integer &r, const Integer &n, const Integer &d) |
Division q/=d . More... | |
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 . More... | |
static giv_all_inlined Integer & | frem (Integer &r, const Integer &n, const uint64_t &d) |
Division q/=d . More... | |
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 . More... | |
static giv_all_inlined uint64_t | frem (const Integer &n, const uint64_t &d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | modin (Integer &r, const Integer &n) |
Function mod (inplace). More... | |
static giv_all_inlined Integer & | modin (Integer &r, const int64_t n) |
Division q/=d . More... | |
static giv_all_inlined Integer & | modin (Integer &r, const uint64_t n) |
Division q/=d . More... | |
static giv_all_inlined Integer & | mod (Integer &r, const Integer &n, const Integer &d) |
Function mod . More... | |
static giv_all_inlined Integer & | mod (Integer &r, const Integer &n, const int64_t d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | mod (Integer &r, const Integer &n, const uint64_t d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | mod (Integer &r, const Integer &n, const int32_t d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | mod (Integer &r, const Integer &n, const uint32_t d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | divmod (Integer &q, Integer &r, const Integer &n, const Integer &d) |
Euclidean division. More... | |
static giv_all_inlined Integer & | divmod (Integer &q, int64_t &r, const Integer &n, const int64_t d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | divmod (Integer &q, uint64_t &r, const Integer &n, const uint64_t d) |
Division q/=d . More... | |
static giv_all_inlined Integer & | ceil (Integer &res, const Integer &n, const Integer &d) |
rounding functions. More... | |
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. More... | |
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. More... | |
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. More... | |
giv_all_inlined Integer | operator% (const int64_t l, const Integer &n) |
operator % More... | |
giv_all_inlined Integer | operator% (const uint64_t l, const Integer &n) |
Division operator. More... | |
giv_all_inlined Integer | operator% (const int32_t l, const Integer &n) |
Division operator. More... | |
giv_all_inlined Integer | operator% (const uint32_t l, const Integer &n) |
Division operator. More... | |
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 More... | |
representation | |
mpz_ptr | get_mpz () |
get representation (constant) | |
mpz_srcptr | get_mpz () const |
get representation (constant) | |
mpz_srcptr | get_mpz_const () const |
get representation (constant) | |
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)) . More... | |
giv_all_inlined size_t | bitsize () const |
returns ceil(log_2(*this)) . More... | |
giv_all_inlined uint64_t | operator[] (size_t i) const |
return the i-th word of the integer. More... | |
giv_all_inlined uint64_t | length (const Integer &a) |
returns the number of bytes used to store *this More... | |
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 &) |
parity of an integer More... | |
I/O | |
giv_all_inlined std::ostream & | print (std::ostream &o) const |
print32_t integer. More... | |
giv_all_inlined std::istream & | operator>> (std::istream &i, Integer &n) |
Input/Output of Integers. More... | |
giv_all_inlined std::ostream & | operator<< (std::ostream &o, const Integer &n) |
out operator. More... | |
giv_all_inlined std::ostream & | absOutput (std::ostream &o, const Integer &n) |
nodoc More... | |
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 More... | |
Comparisons functions. | |
template<class A , class B > | |
static giv_all_inlined bool | isleq (const A &a, const B &b) |
isleq More... | |
giv_all_inlined friend int32_t | compare (const Integer &a, const Integer &b) |
Compares two integers. More... | |
giv_all_inlined friend int32_t | absCompare (const Integer &a, const Integer &b) |
Compare the norm of two integers. More... | |
giv_all_inlined friend int32_t | absCompare (const Integer &a, const double b) |
isleq More... | |
giv_all_inlined friend int32_t | absCompare (const Integer &a, const float b) |
isleq More... | |
giv_all_inlined friend int32_t | absCompare (const Integer &a, const uint64_t b) |
isleq More... | |
giv_all_inlined friend int32_t | absCompare (const Integer &a, const unsigned b) |
isleq More... | |
giv_all_inlined friend int32_t | absCompare (const Integer &a, const int64_t b) |
isleq More... | |
giv_all_inlined friend int32_t | absCompare (const Integer &a, const int32_t b) |
isleq More... | |
template<class T > | |
giv_all_inlined friend int32_t | absCompare (const T a, const Integer &b) |
isleq More... | |
giv_all_inlined int32_t | isOne (const Integer &a) |
name compare to 1 and 0 More... | |
giv_all_inlined int32_t | isMOne (const Integer &a) |
isleq More... | |
giv_all_inlined int32_t | nonZero (const Integer &a) |
name compare to 1 and 0 More... | |
giv_all_inlined int32_t | isZero (const Integer &a) |
name compare to 1 and 0 More... | |
giv_all_inlined int32_t | isZero (const int16_t a) |
isleq More... | |
giv_all_inlined int32_t | isZero (const int32_t a) |
isleq More... | |
giv_all_inlined int32_t | isZero (const int64_t a) |
isleq More... | |
giv_all_inlined int32_t | isZero (const uint16_t a) |
isleq More... | |
giv_all_inlined int32_t | isZero (const uint32_t a) |
isleq More... | |
giv_all_inlined int32_t | isZero (const uint64_t a) |
isleq More... | |
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
size_t size_in_base | ( | int32_t | B | ) | const |
returns ceil(log_BASE(*this))
.
size_t bitsize | ( | ) | const |
returns ceil(log_2(*this))
.
uint64_t operator[] | ( | size_t | i | ) | const |
return the i-th word of the integer.
Word 0 is lowest word.
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 and -1
otherwise. Compare the norm of two integers.
a | integer |
b | integer |
1
if , 0
if and -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 modulo b |
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 |