Inherited by SpyInteger::InHeritsInteger.
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
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.
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 (^)
Integer & operator++ ()
Integer operator++ (int)
Integer & operator-- ()
Integer operator-- (int)
Convert an Integer to a basic C++ type.
Warning Cast towards unsigned consider only the absolute value
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 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.
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.
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)
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
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.
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)
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.
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 +.
The convention for rounding are the following :
q = a/b, or equivalent operations with the name div or divin, return q rounded towards 0, in the same manner as C's '/' (truncated division).
r = a % b behaves like C %. The modulo function % rounds towards 0 and the sign of the dividend is preserved. This is :
r = a mod b or similar functions have the same behaviour as GMP mpz_mod, that is the remainder is always positive (>=0). This is the division algorithm convention that is used (see divmod). In a formula :
Warning if q=a/b and r= a % b then a = b q + r is always true (with in addition 0 <= |r| < |b|). This is also true for divmod(q,a,b,r) (and 0<=r<|b|). However, one should not mix the two conventions and expect equalities (except if a>=0) .
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.