Givaro
Public Types | Static Public Attributes
Integer Class Reference

This is the Integer class. More...

#include <gmp++_int.h>

Public Types

typedef std::vector< mp_limb_t > vect_t
 vector of limbs (ie a gmp number).

Public Member Functions

Constructor/Destructors
 Integer (const std::vector< mp_limb_t > &vect_t)
 Integer (int n=0)
 Integer (long n)
 Integer (unsigned char n)
 Integer (unsigned int n)
 Integer (unsigned long n)
 Integer (double d)
 Integer (const char *s)
 Integer (const Integer &n)
 ~Integer ()
Assignment and copy operators
Integeroperator= (const Integer &n)
Integerlogcpy (const Integer &n)
Integercopy (const Integer &n)
Bit logic
Integer operator^ (const Integer &) const
Integer operator| (const Integer &) const
Integer operator& (const Integer &) const
unsigned long operator^ (const unsigned long &a) const
unsigned long operator| (const unsigned long &a) const
unsigned long operator& (const unsigned long &a) const
Integer operator~ () const
Integeroperator^= (const Integer &)
Integeroperator|= (const Integer &)
Integeroperator&= (const Integer &)
Integer operator<< (int l) const
Integer operator>> (int l) const
Integer operator<< (long l) const
Integer operator>> (long l) const
Integer operator<< (unsigned int l) const
Integer operator>> (unsigned int l) const
Integer operator<< (unsigned long l) const
Integer operator>> (unsigned long l) const
Integeroperator<<= (int l)
Integeroperator>>= (int l)
Integeroperator<<= (long l)
Integeroperator>>= (long l)
Integeroperator<<= (unsigned int l)
Integeroperator>>= (unsigned int l)
Integeroperator<<= (unsigned long l)
Integeroperator>>= (unsigned long l)

Static Public Member Functions

fused add-multiply

Groups a multiplication adn an addition/division is a single function.

This is usually faster than doing the two operations separately.

static Integeraxpy (Integer &res, const Integer &a, const Integer &x, const Integer &y)
 axpy res = ax+y.
static Integeraxpy (Integer &res, const Integer &a, const unsigned long x, const Integer &y)
 axpy res = ax+y.
static Integeraxpyin (Integer &res, const Integer &a, const Integer &x)
 axpyin (inplace) res += ax.
static Integeraxpyin (Integer &res, const Integer &a, const unsigned long x)
 axpy res = ax+y.
static Integermaxpy (Integer &res, const Integer &a, const Integer &x, const Integer &y)
 maxpy res = y - ax.
static Integermaxpy (Integer &res, const Integer &a, const unsigned long x, const Integer &y)
 axpy res = ax+y.
static Integermaxpyin (Integer &res, const Integer &a, const Integer &x)
 maxpyin res -= ax.
static Integermaxpyin (Integer &res, const Integer &a, const unsigned long x)
 axpy res = ax+y.
static Integeraxmy (Integer &res, const Integer &a, const Integer &x, const Integer &y)
 axmy res = ax - y.
static Integeraxmy (Integer &res, const Integer &a, const unsigned long x, const Integer &y)
 axpy res = ax+y.
static Integeraxmyin (Integer &res, const Integer &a, const Integer &x)
 axmyin (in place) res = ax - res.
static Integeraxmyin (Integer &res, const Integer &a, const unsigned long x)
 axpy res = ax+y.
Random numbers functions
static void seeding (unsigned long int s)
 returns a random integer r in the intervall [[0, m-1]]
static void seeding (Integer s)
 returns a random integer r in the intervall [[0, m-1]]
static void seeding ()
 returns a random integer r in the intervall [[0, m-1]]
static __gmp_randstate_struct intializerandstate ()
 returns a random integer r in the intervall [[0, m-1]]
static __gmp_randstate_struct * randstate ()
 returns a random integer r in the intervall [[0, m-1]]
static bool RandBool ()
 returns a random integer r in the intervall [[0, m-1]]
template<bool U>
static Integerrandom_lessthan (Integer &r, const Integer &m)
 returns a random integer r in the intervall [[0, m-1]]
static Integerrandom_lessthan (Integer &r, const Integer &m)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U>
static Integerrandom_lessthan_2exp (Integer &r, const unsigned long &m)
 returns a random integer r of at most m bits
static Integerrandom_lessthan_2exp (Integer &r, const unsigned long &m)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U>
static Integer random_lessthan_2exp (const unsigned long &m)
 returns a random integer r in the intervall [[0, m-1]]
static Integer random_lessthan_2exp (const unsigned long &m)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U>
static Integerrandom_lessthan (Integer &r, const unsigned long &m)
 returns a random integer r in the intervall [[0, m-1]]
static Integerrandom_lessthan (Integer &r, const unsigned long &m)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U, class T >
static Integer random_lessthan (const T &m)
 returns a random integer r in the intervall [[0, m-1]]
template<class T >
static Integer random_lessthan (const T &m)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U>
static Integerrandom_exact (Integer &r, const Integer &s)
 returns a reference to a random number r of the size of s, exactly.
static Integerrandom_exact (Integer &r, const Integer &s)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U>
static Integerrandom_exact_2exp (Integer &r, const unsigned long int &m)
 returns a reference to a random number r of the size m bits, exactly.
static Integerrandom_exact_2exp (Integer &r, const unsigned long int &m)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U>
static Integerrandom_exact (Integer &r, const unsigned long int &m)
 returns a random integer r in the intervall [[0, m-1]]
static Integerrandom_exact (Integer &r, const unsigned long int &m)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U, class T >
static Integerrandom_exact (Integer &r, const T &m)
 returns a random integer r in the intervall [[0, m-1]]
template<class T >
static Integerrandom_exact (Integer &r, const T &m)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U, class T >
static Integer random_exact (const T &s)
 returns a random integer r in the intervall [[0, m-1]]
template<class T >
static Integer random_exact (const T &s)
 returns a random integer r in the intervall [[0, m-1]]
static Integerrandom_between (Integer &r, const Integer &m, const Integer &M)
 returns a random integer r in the intervall [[0, m-1]]
static Integer random_between (const Integer &m, const Integer &M)
 returns a random integer r in the intervall [[0, m-1]]
static Integerrandom_between_2exp (Integer &r, const unsigned long int &m, const unsigned long int &M)
 returns a random integer r in the intervall [[0, m-1]]
static Integerrandom_between (Integer &r, const unsigned long int &m, const unsigned long int &M)
 returns a random integer r in the intervall [[0, m-1]]
static Integer random_between_2exp (const unsigned long int &m, const unsigned long int &M)
 returns a random integer r in the intervall [[0, m-1]]
static Integer random_between (const unsigned long int &m, const unsigned long int &M)
 returns a random integer r in the intervall [[0, m-1]]
template<class R >
static Integer random_between (const R &m, const R &M)
 returns a random integer r in the intervall [[0, m-1]]
template<class R >
static Integerrandom_between (Integer &r, const R &m, const R &M)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U, class T >
static Integerrandom (Integer &r, const T &m)
 returns a random integer less than...
template<class T >
static Integerrandom (Integer &r, const T &m)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U, class T >
static Integer random (const T &sz)
 returns a random integer less than...
template<class T >
static Integer random (const T &sz)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U>
static Integer random ()
 returns a random integer r in the intervall [[0, m-1]]
static Integer random ()
 returns a random integer r in the intervall [[0, m-1]]
template<bool U, class T >
static Integer nonzerorandom (const T &sz)
 returns a random integer r in the intervall [[0, m-1]]
template<bool U, class T >
static Integernonzerorandom (Integer &r, const T &size)
 returns a random integer r in the intervall [[0, m-1]]
template<class T >
static Integer nonzerorandom (const T &sz)
 returns a random integer r in the intervall [[0, m-1]]
template<class T >
static Integernonzerorandom (Integer &r, const T &size)
 returns a random integer r in the intervall [[0, m-1]]
static Integer nonzerorandom ()
 returns a random integer r in the intervall [[0, m-1]]

Static Public Attributes

static const Integer zero
 zero
static const Integer one
 one

Friends

Arithmetic functions
Integer gcd (const Integer &a, const Integer &b)
Integer gcd (const Integer &a, const Integer &b, Integer &u, Integer &v)
Integergcd (Integer &g, const Integer &a, const Integer &b)
Integergcd (Integer &g, const Integer &a, const Integer &b, Integer &u, Integer &v)
Integerinv (Integer &u, const Integer &a, const Integer &b)
Integerinvin (Integer &u, const Integer &b)
Integer pp (const Integer &P, const Integer &Q)
Integerlcm (Integer &g, const Integer &a, const Integer &b)
Integer lcm (const Integer &a, const Integer &b)
Integerpow (Integer &Res, const Integer &n, const long l)
Integerpow (Integer &Res, const unsigned long n, const unsigned long l)
Integerpow (Integer &Res, const Integer &n, const unsigned long l)
Integerpow (Integer &Res, const Integer &n, const int l)
Integerpow (Integer &Res, const Integer &n, const unsigned int l)
Integer pow (const Integer &n, const long l)
Integer pow (const Integer &n, const unsigned long l)
Integer pow (const Integer &n, const int l)
Integer pow (const Integer &n, const unsigned int l)
Integerpowmod (Integer &Res, const Integer &n, const unsigned long e, const Integer &m)
Integerpowmod (Integer &Res, const Integer &n, const long e, const Integer &m)
Integerpowmod (Integer &Res, const Integer &n, const unsigned int e, const Integer &m)
Integerpowmod (Integer &Res, const Integer &n, const int e, const Integer &m)
Integerpowmod (Integer &Res, const Integer &n, const Integer &e, const Integer &m)
Integer powmod (const Integer &n, const unsigned long e, const Integer &m)
Integer powmod (const Integer &n, const long e, const Integer &m)
Integer powmod (const Integer &n, const unsigned int e, const Integer &m)
Integer powmod (const Integer &n, const int e, const Integer &m)
Integer powmod (const Integer &n, const Integer &e, const Integer &m)
Integer fact (unsigned long l)
Integer sqrt (const Integer &p)
Integer sqrtrem (const Integer &p, Integer &rem)
Integersqrt (Integer &r, const Integer &p)
Integersqrtrem (Integer &r, const Integer &p, Integer &rem)
bool root (Integer &q, const Integer &, unsigned int n)
long logp (const Integer &a, const Integer &p)
double logtwo (const Integer &a)
double naturallog (const Integer &a)

(in)equality

int operator!= (const int l) const
int operator!= (const long l) const
int operator!= (const unsigned long l) const
int operator> (const int l) const
int operator> (const long l) const
int operator> (const unsigned long l) const
int operator< (const int l) const
int operator< (const long l) const
int operator< (const unsigned long l) const
int compare (const Integer &a, const Integer &b)
int absCompare (const Integer &a, const Integer &b)

Addition, substraction, multiplication

Integer operator+ (const Integer &n) const
 operator +.
Integer operator+ (const unsigned long n) const
 operator +.
Integer operator+ (const long n) const
 operator +.
Integeroperator+= (const Integer &n)
 operator += .
Integeroperator+= (const unsigned long n)
 operator +.
Integeroperator+= (const long n)
 operator +.
template<class XXX >
Integeroperator+= (const XXX &n)
 operator +.
Integer operator- (const Integer &n) const
 operator -.
Integer operator- (const unsigned long n) const
 operator +.
Integer operator- (const long n) const
 operator +.
Integeroperator-= (const Integer &n)
 operator -= .
Integeroperator-= (const unsigned long n)
 operator +.
Integeroperator-= (const long n)
 operator +.
template<class XXX >
Integeroperator-= (const XXX &n)
 operator +.
Integer operator- () const
 Opposite.
Integer operator* (const Integer &n) const
 operator *.
Integer operator* (const unsigned long n) const
 operator +.
Integer operator* (const long n) const
 operator +.
Integeroperator*= (const Integer &n)
 operator *= .
Integeroperator*= (const unsigned long n)
 operator +.
Integeroperator*= (const long n)
 operator +.
template<class XXX >
Integeroperator*= (const XXX &n)
 operator +.
static Integeraddin (Integer &res, const Integer &n)
 Addition (inplace) res+=n.
static Integeraddin (Integer &res, const long n)
 operator +.
static Integeraddin (Integer &res, const unsigned long n)
 operator +.
static Integeradd (Integer &res, const Integer &n1, const Integer &n2)
 Addition res=n1+n2.
static Integeradd (Integer &res, const Integer &n1, const long n2)
 operator +.
static Integeradd (Integer &res, const Integer &n1, const unsigned long n2)
 operator +.
static Integersubin (Integer &res, const Integer &n)
 Substraction (inplace) res-=n.
static Integersubin (Integer &res, const long n)
 operator +.
static Integersubin (Integer &res, const unsigned long n)
 operator +.
static Integersub (Integer &res, const Integer &n1, const Integer &n2)
 Substraction res=n1-n2.
static Integersub (Integer &res, const Integer &n1, const long n2)
 operator +.
static Integersub (Integer &res, const Integer &n1, const unsigned long n2)
 operator +.
static Integernegin (Integer &res)
 Negation (inplace) res=-res.
static Integerneg (Integer &res, const Integer &n)
 Negation res=-n.
static Integermulin (Integer &res, const Integer &n)
 Multiplication (inplace) res*=n.
static Integermulin (Integer &res, const long n)
 operator +.
static Integermulin (Integer &res, const unsigned long n)
 operator +.
static Integermul (Integer &res, const Integer &n1, const Integer &n2)
 Multiplication res=n1*n2.
static Integermul (Integer &res, const Integer &n1, const long n2)
 operator +.
static Integermul (Integer &res, const Integer &n1, const unsigned long n2)
 operator +.

Division/euclidean division/modulo

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 :

    \[ a= b q + r, \text{with } \vert r\vert < \vert b\vert \text{ and } a r \geq 0 \]

  • 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 :

    \[ a= b q + r, \text{with } 0 \leq r < \vert b\vert \]

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).
Integer operator/ (const Integer &d) const
 Division operator.
Integer operator/ (const unsigned long d) const
 Division operator.
Integer operator/ (const long d) const
 Division operator.
Integeroperator/= (const Integer &d)
 Division operator (inplace).
Integeroperator/= (const unsigned long d)
 Division operator.
Integeroperator/= (const long d)
 Division operator.
template<class XXX >
Integeroperator/= (const XXX &d)
 Division operator.
Integer operator% (const Integer &n) const
 Modulo operator.
long operator% (const unsigned long n) const
 Division operator.
long operator% (const long n) const
 Division operator.
double operator% (const double n) const
 Division operator.
short operator% (const unsigned short n) const
 Division operator.
template<class XXX >
XXX operator% (const XXX &n) const
 Division operator.
Integeroperator%= (const Integer &n)
 Modulo operator (inplace).
Integeroperator%= (const unsigned long n)
 Division operator.
Integeroperator%= (const long n)
 Division operator.
template<class XXX >
Integeroperator%= (const XXX &n)
 Division operator.
static Integerdivin (Integer &q, const Integer &d)
 Division q/=d.
static Integerdivin (Integer &q, const long d)
 Division operator.
static Integerdivin (Integer &q, const unsigned long d)
 Division operator.
static Integerdiv (Integer &q, const Integer &n, const Integer &d)
 Division q=n/d.
static Integerdiv (Integer &q, const Integer &n, const long d)
 Division operator.
static Integerdiv (Integer &q, const Integer &n, const int d)
 Division operator.
static Integerdiv (Integer &q, const Integer &n, const unsigned long d)
 Division operator.
static Integerdivexact (Integer &q, const Integer &n, const Integer &d)
 Division when d divides n.
static Integer divexact (const Integer &n, const Integer &d)
 Division when d divides n.
static Integermodin (Integer &r, const Integer &n)
 Function mod (inplace).
static Integermodin (Integer &r, const long n)
 Division operator.
static Integermodin (Integer &r, const unsigned long n)
 Division operator.
static Integermod (Integer &r, const Integer &n, const Integer &d)
 Function mod.
static Integermod (Integer &r, const Integer &n, const long d)
 Division operator.
static Integermod (Integer &r, const Integer &n, const unsigned long d)
 Division operator.
static Integerdivmod (Integer &q, Integer &r, const Integer &n, const Integer &d)
 Euclidean division.
static Integerdivmod (Integer &q, long &r, const Integer &n, const long d)
 Division operator.
static Integerdivmod (Integer &q, unsigned long &r, const Integer &n, const unsigned long d)
 Division operator.

Miscellaneous.

Integeroperator++ ()
Integer operator++ (int)
Integeroperator-- ()
Integer operator-- (int)
size_t size () const
size_t size_in_base (int B) const
size_t bitsize () const
unsigned long operator[] (size_t i) const
 operator bool () const
 operator short () const
 operator unsigned short () const
 operator unsigned char () const
 operator unsigned int () const
 operator int () const
 operator signed char () const
 operator unsigned long () const
 operator long () const
 operator unsigned long long () const
 operator long long () const
 operator std::string () const
 operator float () const
 operator double () const
 operator vect_t () const
void swap (Integer &, Integer &)
int sign (const Integer &a)
int isZero (const Integer &a)
int isOne (const Integer &a)
int isperfectpower (const Integer &)
Integer abs (const Integer &n)
Integerprevprime (Integer &, const Integer &p)
Integernextprime (Integer &, const Integer &p)
int probab_prime (const Integer &p)
int probab_prime (const Integer &p, int r)
int jacobi (const Integer &u, const Integer &v)
int legendre (const Integer &u, const Integer &v)
unsigned long length (const Integer &a)

I/O

std::ostream & print (std::ostream &o) const
std::istream & operator>> (std::istream &i, Integer &n)
std::ostream & operator<< (std::ostream &o, const Integer &n)
std::ostream & absOutput (std::ostream &o, const Integer &n)
void importWords (Integer &, size_t, int, int, int, size_t, const void *)

Detailed Description

This is the Integer class.

An Integer is represented as a GMP integer. This class provides arithmetic on Integers.

Examples:

examples/FiniteField/all_field.C, examples/FiniteField/domain_to_operatorstyle.C, examples/FiniteField/GF128.C, examples/FiniteField/Test_Extension.C, examples/Integer/iexponentiation.C, examples/Integer/ifactor.C, examples/Integer/ifactor_lenstra.C, examples/Integer/igcd.C, examples/Integer/igcdext.C, examples/Integer/ilcm.C, examples/Integer/ispower.C, examples/Integer/isprime.C, examples/Integer/isproot.C, examples/Integer/ModularSquareRoot.C, examples/Integer/nb_primes.C, examples/Integer/nextprime.C, examples/Integer/order.C, examples/Integer/prevprime.C, examples/Integer/primitiveroot.C, examples/Integer/ProbLucas.C, examples/Integer/RSA_breaking.C, examples/Integer/RSA_decipher.C, examples/Integer/RSA_encipher.C, examples/Polynomial/PolynomialCRT.C, examples/Rational/iratrecon.C, and examples/Rational/polydouble.C.


Member Function Documentation

Integer & addin ( Integer res,
const Integer n 
) [static]

Addition (inplace) res+=n.

Parameters:
resas in the formula
nas in the formula
Integer & addin ( Integer res,
const long  n 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & addin ( Integer res,
const unsigned long  n 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & add ( Integer res,
const Integer n1,
const Integer n2 
) [static]

Addition res=n1+n2.

Parameters:
resas in the formula
n1as in the formula
n2as in the formula
Integer & add ( Integer res,
const Integer n1,
const long  n2 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & add ( Integer res,
const Integer n1,
const unsigned long  n2 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & subin ( Integer res,
const Integer n 
) [static]

Substraction (inplace) res-=n.

Parameters:
resas in the formula
nas in the formula
Integer & subin ( Integer res,
const long  n 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & subin ( Integer res,
const unsigned long  n 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & sub ( Integer res,
const Integer n1,
const Integer n2 
) [static]

Substraction res=n1-n2.

Parameters:
resas in the formula
n1as in the formula
n2as in the formula
Examples:
examples/Integer/primitiveroot.C.
Integer & sub ( Integer res,
const Integer n1,
const long  n2 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & sub ( Integer res,
const Integer n1,
const unsigned long  n2 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & negin ( Integer res) [static]

Negation (inplace) res=-res.

Parameters:
resas in the formula
Examples:
examples/Integer/ifactor.C, and examples/Integer/ifactor_lenstra.C.
Integer & neg ( Integer res,
const Integer n 
) [static]

Negation res=-n.

Parameters:
nas in the formula
resas in the formula
Integer & mulin ( Integer res,
const Integer n 
) [static]

Multiplication (inplace) res*=n.

Parameters:
resas in the formula
nas in the formula
Integer & mulin ( Integer res,
const long  n 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & mulin ( Integer res,
const unsigned long  n 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & mul ( Integer res,
const Integer n1,
const Integer n2 
) [static]

Multiplication res=n1*n2.

Parameters:
resas in the formula
n1as in the formula
n2as in the formula
Examples:
examples/Integer/ilcm.C.
Integer & mul ( Integer res,
const Integer n1,
const long  n2 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & mul ( Integer res,
const Integer n1,
const unsigned long  n2 
) [static]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer operator+ ( const Integer n) const

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer operator+ ( const unsigned long  n) const

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer operator+ ( const long  n) const

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & operator+= ( const Integer n)

operator += .

Parameters:
nas in the formula.
Returns:
(*this) += n.
Integer & operator+= ( const unsigned long  n)

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & operator+= ( const long  n)

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer& operator+= ( const XXX &  n) [inline]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer operator- ( const Integer n) const

operator -.

Returns:
(*this)-n
Parameters:
nas in the formula.
Integer operator- ( const unsigned long  n) const

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer operator- ( const long  n) const

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & operator-= ( const Integer n)

operator -= .

Parameters:
nas in the formula.
Returns:
(*this) -= n.
Integer & operator-= ( const unsigned long  n)

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & operator-= ( const long  n)

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer& operator-= ( const XXX &  n) [inline]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer operator- ( ) const [inline]

Opposite.

Returns:
-(*this).
Integer operator* ( const Integer n) const

operator *.

Returns:
(*this)*n
Parameters:
nas in the formula.
Integer operator* ( const unsigned long  n) const

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer operator* ( const long  n) const

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & operator*= ( const Integer n)

operator *= .

Parameters:
nas in the formula.
Returns:
(*this) *= n.
Integer & operator*= ( const unsigned long  n)

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & operator*= ( const long  n)

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer& operator*= ( const XXX &  n) [inline]

operator +.

Returns:
(*this)+n
Parameters:
nas in the formula.
Integer & axpy ( Integer res,
const Integer a,
const Integer x,
const Integer y 
) [static]

axpy res = ax+y.

Parameters:
resIntegers as in the forumla
aIntegers as in the forumla
xIntegers as in the forumla
yIntegers as in the forumla
static Integer& axpy ( Integer res,
const Integer a,
const unsigned long  x,
const Integer y 
) [static]

axpy res = ax+y.

Parameters:
resIntegers as in the forumla
aIntegers as in the forumla
xIntegers as in the forumla
yIntegers as in the forumla
Integer & axpyin ( Integer res,
const Integer a,
const Integer x 
) [static]

axpyin (inplace) res += ax.

Parameters:
resIntegers as in the formula.
aIntegers as in the formula.
xIntegers as in the formula.
static Integer& axpyin ( Integer res,
const Integer a,
const unsigned long  x 
) [static]

axpy res = ax+y.

Parameters:
resIntegers as in the forumla
aIntegers as in the forumla
xIntegers as in the forumla
yIntegers as in the forumla
Integer & maxpy ( Integer res,
const Integer a,
const Integer x,
const Integer y 
) [static]

maxpy res = y - ax.

Parameters:
resIntegers as in the formula.
aIntegers as in the formula.
xIntegers as in the formula.
yIntegers as in the formula.
static Integer& maxpy ( Integer res,
const Integer a,
const unsigned long  x,
const Integer y 
) [static]

axpy res = ax+y.

Parameters:
resIntegers as in the forumla
aIntegers as in the forumla
xIntegers as in the forumla
yIntegers as in the forumla
Integer & maxpyin ( Integer res,
const Integer a,
const Integer x 
) [static]

maxpyin res -= ax.

Parameters:
resIntegers as in the formula.
aIntegers as in the formula.
xIntegers as in the formula.
yIntegers as in the formula.
Integer & maxpyin ( Integer res,
const Integer a,
const unsigned long  x 
) [static]

axpy res = ax+y.

Parameters:
resIntegers as in the forumla
aIntegers as in the forumla
xIntegers as in the forumla
yIntegers as in the forumla
Integer & axmy ( Integer res,
const Integer a,
const Integer x,
const Integer y 
) [static]

axmy res = ax - y.

Parameters:
resIntegers as in the formula.
aIntegers as in the formula.
xIntegers as in the formula.
yIntegers as in the formula.
static Integer& axmy ( Integer res,
const Integer a,
const unsigned long  x,
const Integer y 
) [static]

axpy res = ax+y.

Parameters:
resIntegers as in the forumla
aIntegers as in the forumla
xIntegers as in the forumla
yIntegers as in the forumla
Integer & axmyin ( Integer res,
const Integer a,
const Integer x 
) [static]

axmyin (in place) res = ax - res.

Parameters:
resIntegers as in the formula.
aIntegers as in the formula.
xIntegers as in the formula.
Integer & axmyin ( Integer res,
const Integer a,
const unsigned long  x 
) [static]

axpy res = ax+y.

Parameters:
resIntegers as in the forumla
aIntegers as in the forumla
xIntegers as in the forumla
yIntegers as in the forumla
Integer & divin ( Integer q,
const Integer d 
) [static]

Division q/=d.

Parameters:
qquotient
ddivisor.
Returns:
q
Examples:
examples/Integer/ilcm.C.
Integer & divin ( Integer q,
const long  d 
) [static]

Division operator.

Parameters:
ddivisor
Integer & divin ( Integer q,
const unsigned long  d 
) [static]

Division operator.

Parameters:
ddivisor
Integer & div ( Integer q,
const Integer n,
const Integer d 
) [static]

Division q=n/d.

Parameters:
qquotient
ndividand.
ddivisor
Returns:
q
Integer & div ( Integer q,
const Integer n,
const long  d 
) [static]

Division operator.

Parameters:
ddivisor
Integer & div ( Integer q,
const Integer n,
const int  d 
) [static]

Division operator.

Parameters:
ddivisor
Integer & div ( Integer q,
const Integer n,
const unsigned long  d 
) [static]

Division operator.

Parameters:
ddivisor
Integer & divexact ( Integer q,
const Integer n,
const Integer d 
) [static]

Division when d divides n.

Parameters:
qexact quotient
ndividend
ddivisor
Warning:
if quotient is not exact, the result is not predictable.
Integer divexact ( const Integer n,
const Integer d 
) [static]

Division when d divides n.

Parameters:
ndividend
ddivisor
Returns:
exact quotient n/d
Warning:
if quotient is not exact, the result is not predictable.
Integer operator/ ( const Integer d) const

Division operator.

Parameters:
ddivisor
Integer operator/ ( const unsigned long  d) const

Division operator.

Parameters:
ddivisor
Integer operator/ ( const long  d) const

Division operator.

Parameters:
ddivisor
Integer & operator/= ( const Integer d)

Division operator (inplace).

Parameters:
ddivisor
Integer & operator/= ( const unsigned long  d)

Division operator.

Parameters:
ddivisor
Integer & operator/= ( const long  d)

Division operator.

Parameters:
ddivisor
Integer& operator/= ( const XXX &  d) [inline]

Division operator.

Parameters:
ddivisor
Integer & modin ( Integer r,
const Integer n 
) [static]

Function mod (inplace).

$ r \gets r \mod n$

Parameters:
rremainder
nmodulus
Integer & modin ( Integer r,
const long  n 
) [static]

Division operator.

Parameters:
ddivisor
Integer & modin ( Integer r,
const unsigned long  n 
) [static]

Division operator.

Parameters:
ddivisor
Integer & mod ( Integer r,
const Integer n,
const Integer d 
) [static]

Function mod.

$ r \gets n \mod d$

Parameters:
rremainder
ninteger
dmodulus
Integer & mod ( Integer r,
const Integer n,
const long  d 
) [static]

Division operator.

Parameters:
ddivisor
Integer & mod ( Integer r,
const Integer n,
const unsigned long  d 
) [static]

Division operator.

Parameters:
ddivisor
Integer & divmod ( Integer q,
Integer r,
const Integer n,
const Integer d 
) [static]

Euclidean division.

n = d q + r .

Parameters:
qas in the formula
ras in the formula
nas in the formula
das in the formula
Returns:
the quotient q
Integer & divmod ( Integer q,
long &  r,
const Integer n,
const long  d 
) [static]

Division operator.

Parameters:
ddivisor
Integer & divmod ( Integer q,
unsigned long &  r,
const Integer n,
const unsigned long  d 
) [static]

Division operator.

Parameters:
ddivisor
Integer operator% ( const Integer n) const

Modulo operator.

Parameters:
nmodulus
Returns:
remainder (*this) mod n
long operator% ( const unsigned long  n) const

Division operator.

Parameters:
ddivisor
long operator% ( const long  n) const

Division operator.

Parameters:
ddivisor
double operator% ( const double  n) const

Division operator.

Parameters:
ddivisor
short operator% ( const unsigned short  n) const [inline]

Division operator.

Parameters:
ddivisor
XXX operator% ( const XXX &  n) const [inline]

Division operator.

Parameters:
ddivisor
Integer & operator%= ( const Integer n)

Modulo operator (inplace).

Parameters:
nmodulus
Returns:
remainder (*this) <- (*this) mod n
Integer & operator%= ( const unsigned long  n)

Division operator.

Parameters:
ddivisor
Integer & operator%= ( const long  n)

Division operator.

Parameters:
ddivisor
Integer& operator%= ( const XXX &  n) [inline]

Division operator.

Parameters:
ddivisor

The documentation for this class was generated from the following files: