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 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 operator.
giv_all_inlined Integer operator/ (const int64_t d) const
Division operator.
giv_all_inlined Integer operator/ (const uint32_t d) const
Division operator.
giv_all_inlined Integer operator/ (const int32_t d) const
Division operator.
giv_all_inlined Integer & operator/= (const Integer &d)
Division operator (inplace).
giv_all_inlined Integer & operator/= (const uint64_t d)
Division operator.
giv_all_inlined Integer & operator/= (const int64_t d)
Division operator.
giv_all_inlined Integer & operator/= (const uint32_t d)
Division operator.
giv_all_inlined Integer & operator/= (const int32_t d)
Division operator.
template<class XXX >
Integer & operator/= (const XXX &d)
Division operator.
giv_all_inlined Integer operator% (const Integer &n) const
Modulo operator.
giv_all_inlined int64_t operator% (const uint64_t n) const
Division operator.
giv_all_inlined int64_t operator% (const int64_t n) const
Division operator.
giv_all_inlined int32_t operator% (const uint32_t n) const
Division operator.
giv_all_inlined int32_t operator% (const int32_t n) const
Division operator.
giv_all_inlined double operator% (const double n) const
Division operator.
int16_t operator% (const uint16_t n) const
Division operator.
template<class XXX >
XXX operator% (const XXX &n) const
Division operator.
giv_all_inlined Integer & operator%= (const Integer &n)
Modulo operator (inplace).
giv_all_inlined Integer & operator%= (const uint64_t n)
Division operator.
giv_all_inlined Integer & operator%= (const int64_t n)
Division operator.
giv_all_inlined Integer & operator%= (const uint32_t n)
Division operator.
giv_all_inlined Integer & operator%= (const int32_t n)
Division operator.
template<class XXX >
Integer & operator%= (const XXX &n)
Division operator.
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.
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 operator.
static giv_all_inlined Integer & divin (Integer &q, const uint64_t d)
Division operator.
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 operator.
static giv_all_inlined Integer & div (Integer &q, const Integer &n, const int32_t d)
Division operator.
static giv_all_inlined Integer & div (Integer &q, const Integer &n, const uint64_t d)
Division operator.
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 operator.
static giv_all_inlined Integer & divexact (Integer &q, const Integer &n, const int64_t &d)
Division operator.
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 operator.
static giv_all_inlined Integer divexact (const Integer &n, const int64_t &d)
Division operator.
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 operator.
static giv_all_inlined Integer & frem (Integer &r, const Integer &n, const Integer &d)
Division operator.
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 operator.
static giv_all_inlined Integer & frem (Integer &r, const Integer &n, const uint64_t &d)
Division operator.
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 operator.
static giv_all_inlined uint64_t frem (const Integer &n, const uint64_t &d)
Division operator.
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 operator.
static giv_all_inlined Integer & modin (Integer &r, const uint64_t n)
Division operator.
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 operator.
static giv_all_inlined Integer & mod (Integer &r, const Integer &n, const uint64_t d)
Division operator.
static giv_all_inlined Integer & mod (Integer &r, const Integer &n, const int32_t d)
Division operator.
static giv_all_inlined Integer & mod (Integer &r, const Integer &n, const uint32_t d)
Division operator.
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 operator.
static giv_all_inlined Integer & divmod (Integer &q, uint64_t &r, const Integer &n, const uint64_t d)
Division operator.
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)