numerix_doc 0.4
integer Class Reference

#include <integer.hpp>

List of all members.

Public Member Functions

Friends


Detailed Description

Examples:

integer_test.cpp, and modular_test.cpp.

Definition at line 42 of file integer.hpp.


Constructor & Destructor Documentation

integer ( ) [inline]

Definition at line 50 of file integer.hpp.

: rep (new integer_rep ()) {}
integer ( signed char  i) [inline]

Definition at line 51 of file integer.hpp.

                                :
    rep (new integer_rep ()) { mpz_set_si (rep->x, i); }
integer ( unsigned char  i) [inline]

Definition at line 53 of file integer.hpp.

                                  :
    rep (new integer_rep ()) { mpz_set_ui (rep->x, i); }
integer ( signed int  i) [inline]

Definition at line 55 of file integer.hpp.

                               :
    rep (new integer_rep ()) { mpz_set_si (rep->x, i); }
integer ( unsigned int  i) [inline]

Definition at line 57 of file integer.hpp.

                                 :
    rep (new integer_rep ()) { mpz_set_ui (rep->x, i); }
integer ( signed short int  i) [inline]

Definition at line 59 of file integer.hpp.

                                     :
    rep (new integer_rep ()) { mpz_set_si (rep->x, i); }
integer ( unsigned short int  i) [inline]

Definition at line 61 of file integer.hpp.

                                       :
    rep (new integer_rep ()) { mpz_set_ui (rep->x, i); }
integer ( signed long int  i) [inline]

Definition at line 63 of file integer.hpp.

                                    :
    rep (new integer_rep ()) { mpz_set_si (rep->x, i); }
integer ( unsigned long int  i) [inline]

Definition at line 65 of file integer.hpp.

                                      :
    rep (new integer_rep ()) { mpz_set_ui (rep->x, i); }
integer ( char *  s,
int  base = 10 
) [inline]

Definition at line 86 of file integer.hpp.

References mmx::base().

                                        :
    rep (new integer_rep ()) { mpz_set_str (rep->x, s, base); }
integer ( const string &  s,
int  base = 10 
) [inline]

Definition at line 88 of file integer.hpp.

References mmx::base().

                                                :
    rep (new integer_rep ()) {
      char* r= as_charp (s);
      mpz_set_str (rep->x, r, base);
      free_charp (r); }

Member Function Documentation

bool operator[] ( nat  index) const [inline]

Definition at line 243 of file integer.hpp.

                                            {
    return (bool) mpz_tstbit (rep->x, index); }

Friends And Related Function Documentation

integer abs ( const integer x1) [friend]

Definition at line 221 of file integer.hpp.

                                                {
    integer r; mpz_abs (*r, *x1); return r; }
void add ( integer r,
const integer x1,
const integer x2 
) [friend]

Definition at line 180 of file integer.hpp.

                                                         {
    r.secure (); mpz_add (*r, *x1, *x2); }
void add ( integer r,
const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 567 of file integer.hpp.

                                                            {
    r.secure (); mpz_add_ui (*r, *x1, x2); }
void add ( integer r,
const integer x1,
long int  x2 
) [friend]

Definition at line 570 of file integer.hpp.

                                                   {
    r.secure ();
    if (x2 < 0) mpz_sub_ui (*r, *x1, (unsigned long int) (-x2));
    else        mpz_add_ui (*r, *x1, (unsigned long int) x2); }
void add ( integer r,
const integer x1,
unsigned int  x2 
) [friend]

Definition at line 574 of file integer.hpp.

{
void add ( integer r,
const integer x1,
int  x2 
) [friend]

Definition at line 574 of file integer.hpp.

{
void add ( integer r,
const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 575 of file integer.hpp.

{
void add ( integer r,
const integer x1,
short int  x2 
) [friend]

Definition at line 575 of file integer.hpp.

{
void add ( integer r,
const integer x1,
unsigned char  x2 
) [friend]

Definition at line 576 of file integer.hpp.

{
void add ( integer r,
const integer x1,
signed char  x2 
) [friend]

Definition at line 576 of file integer.hpp.

{
void add ( integer r,
unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 577 of file integer.hpp.

{
void add ( integer r,
long int  x1,
const integer x2 
) [friend]

Definition at line 577 of file integer.hpp.

{
void add ( integer r,
unsigned int  x1,
const integer x2 
) [friend]

Definition at line 578 of file integer.hpp.

{
void add ( integer r,
int  x1,
const integer x2 
) [friend]

Definition at line 578 of file integer.hpp.

{
void add ( integer r,
unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 579 of file integer.hpp.

{
void add ( integer r,
short int  x1,
const integer x2 
) [friend]

Definition at line 579 of file integer.hpp.

{
void add ( integer r,
unsigned char  x1,
const integer x2 
) [friend]

Definition at line 580 of file integer.hpp.

{
void add ( integer r,
signed char  x1,
const integer x2 
) [friend]

Definition at line 580 of file integer.hpp.

{
double as_double ( const integer x) [friend]

Definition at line 98 of file integer.hpp.

                                                    {
    return mpz_get_d (*x); }
int as_int ( const integer x) [friend]

Definition at line 95 of file integer.hpp.

                                              {
    return (int) mpz_get_si (*x); }
integer as_integer ( const floating< V > &  x) [friend]

Definition at line 264 of file floating.hpp.

                                                   {
  integer r; mpfr_get_z (*r, *x, Rnd); return r; }
string as_string ( const integer x) [friend]

Definition at line 19 of file mmx_gmp.cpp.

                             {
  char* s= mpz_get_str (NULL, 10, *i);
  string r= s;
  mmx_free (s, strlen (s) + 1);
  /* FIXME: for upcoming version of GMP
  void (*free_func) (void *, size_t);
  mp_get_memory_functions (NULL, NULL, &free_func);
  free_func ((void*) s, strlen (s) + 1);
  */
  return r;
}
xnat bit_size ( const integer x) [friend]

Definition at line 971 of file integer.hpp.

                                                 {
    return mpz_sizeinbase (*x, 2); }
integer ceil ( const integer x) [friend]

Definition at line 956 of file integer.hpp.

{ return x; }
integer co_rshiftz ( const integer x1,
nat  shift 
) [friend]

Definition at line 992 of file integer.hpp.

                                                                  {
    if (shift == 0) return 0;
    if ((GMP_LIMB_BITS * shift) / GMP_LIMB_BITS != shift) // overflow
      return lshiftz (co_rshiftz (rshiftz (x1, shift >> 1),
                                  shift - (shift >> 1)), shift >> 1)
        + co_rshiftz (x1, shift >> 1);
    integer r; mpz_fdiv_r_2exp (*r, *x1, GMP_LIMB_BITS * shift); return r; }
integer copy ( const integer x1) [friend]

Definition at line 104 of file integer.hpp.

                                                 {
    integer r; mpz_set (*r, *x1); return r; }
integer denominator ( const rational x1) [friend]
bool divides ( const integer x1,
const integer x2 
) [friend]

Definition at line 141 of file integer.hpp.

                                                                    {
    return mpz_divisible_p (*x2, *x1); }
friend class floating [friend]

Definition at line 1003 of file integer.hpp.

integer floor ( const integer x) [friend]

Definition at line 954 of file integer.hpp.

{ return x; }
integer gcd ( const integer a,
const integer b 
) [friend]

Definition at line 920 of file integer.hpp.

                                                                 {
    integer r; mpz_gcd (*r, *a, *b); return r; }
integer gcd ( const integer a,
const integer b,
integer co_a,
integer co_b 
) [friend]

Definition at line 927 of file integer.hpp.

                                                           {
    integer r; mpz_gcdext (*r, *co_a, *co_b, *a, *b); return r; }
integer gcd ( const integer a,
const integer b,
integer co_a 
) [friend]

Definition at line 923 of file integer.hpp.

                                            {
    integer r; mpz_gcdext (*r, *co_a, NULL, *a, *b); return r; }
nat hamming_distance ( const integer x1,
const integer x2 
) [friend]

Definition at line 249 of file integer.hpp.

                                                                            {
    return mpz_hamdist (*x1, *x2); }
nat hamming_norm ( const integer x1) [friend]

Definition at line 246 of file integer.hpp.

                                                     {
    return mpz_popcount (*x1); }
nat hash ( const integer x) [friend]

Definition at line 962 of file integer.hpp.

                                            {
    const __mpz_struct& rep= (*x)[0];
    if (rep._mp_size == 0) return 0;
    return ((nat) (rep._mp_d[0])) ^ ((nat) (rep._mp_size << 11));
  }
integer invert_modulo ( const integer a,
const integer b 
) [friend]

Definition at line 939 of file integer.hpp.

                                                                           {
    integer r; mpz_invert (*r, *a, *b); return r; }
bool is_square ( const integer a) [friend]

Definition at line 895 of file integer.hpp.

                                                  {
    return mpz_perfect_square_p (*a); }
int jacobi ( const integer a,
const integer b 
) [friend]

Definition at line 942 of file integer.hpp.

                                                                {
    ASSERT ((b&1) != 0, "second argument must be odd");
    return mpz_jacobi (*a, *b); }
int kronecker ( const integer a,
const integer b 
) [friend]

Definition at line 950 of file integer.hpp.

                                                                   {
    return mpz_kronecker (*a, *b); }
integer lcm ( const integer a,
const integer b 
) [friend]

Definition at line 931 of file integer.hpp.

                                                                 {
    integer r; mpz_lcm (*r, *a, *b); return r; }
int legendre ( const integer a,
const integer b 
) [friend]

Definition at line 946 of file integer.hpp.

                                                                  {
    ASSERT ((b&1) != 0, "second argument must be odd");
    return mpz_legendre (*a, *b); }
xnat limb_size ( const integer x) [friend]

Definition at line 974 of file integer.hpp.

                                                  {
    return mpz_size (*x); }
integer lshiftz ( const integer x1,
nat  shift 
) [friend]

Definition at line 980 of file integer.hpp.

                                                               {
    if (shift == 0) return x1;
    if ((GMP_LIMB_BITS * shift) / GMP_LIMB_BITS != shift) // overflow
      return lshiftz (lshiftz (x1, shift >> 1) , shift - (shift >> 1));
    integer r; mpz_mul_2exp (*r, *x1, GMP_LIMB_BITS * shift); return r; }
integer max ( const integer x1,
const integer x2 
) [friend]

Definition at line 227 of file integer.hpp.

                                                                   {
    return x1 >= x2? x1: x2; }
integer min ( const integer x1,
const integer x2 
) [friend]

Definition at line 224 of file integer.hpp.

                                                                   {
    return x1 <= x2? x1: x2; }
void mul ( integer r,
const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 614 of file integer.hpp.

                                                            {
    r.secure (); mpz_mul_ui (*r, *x1, x2); }
void mul ( integer r,
const integer x1,
long int  x2 
) [friend]

Definition at line 617 of file integer.hpp.

                                                   {
    r.secure (); mpz_mul_si (*r, *x1, x2); }
void mul ( integer r,
const integer x1,
unsigned int  x2 
) [friend]

Definition at line 619 of file integer.hpp.

{
void mul ( integer r,
const integer x1,
int  x2 
) [friend]

Definition at line 619 of file integer.hpp.

{
void mul ( integer r,
const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 620 of file integer.hpp.

{
void mul ( integer r,
const integer x1,
short int  x2 
) [friend]

Definition at line 620 of file integer.hpp.

{
void mul ( integer r,
const integer x1,
unsigned char  x2 
) [friend]

Definition at line 621 of file integer.hpp.

{
void mul ( integer r,
const integer x1,
signed char  x2 
) [friend]

Definition at line 621 of file integer.hpp.

{
void mul ( integer r,
unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 622 of file integer.hpp.

{
void mul ( integer r,
long int  x1,
const integer x2 
) [friend]

Definition at line 622 of file integer.hpp.

{
void mul ( integer r,
unsigned int  x1,
const integer x2 
) [friend]

Definition at line 623 of file integer.hpp.

{
void mul ( integer r,
int  x1,
const integer x2 
) [friend]

Definition at line 623 of file integer.hpp.

{
void mul ( integer r,
unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 624 of file integer.hpp.

{
void mul ( integer r,
short int  x1,
const integer x2 
) [friend]

Definition at line 624 of file integer.hpp.

{
void mul ( integer r,
unsigned char  x1,
const integer x2 
) [friend]

Definition at line 625 of file integer.hpp.

{
void mul ( integer r,
signed char  x1,
const integer x2 
) [friend]

Definition at line 625 of file integer.hpp.

{
void mul ( integer r,
const integer x1,
const integer x2 
) [friend]

Definition at line 188 of file integer.hpp.

                                                         {
    r.secure (); mpz_mul (*r, *x1, *x2); }
void mul_add ( integer r,
const integer x1,
unsigned char  x2 
) [friend]

Definition at line 640 of file integer.hpp.

{
void mul_add ( integer r,
const integer x1,
signed char  x2 
) [friend]

Definition at line 640 of file integer.hpp.

{
void mul_add ( integer r,
unsigned char  x1,
const integer x2 
) [friend]

Definition at line 644 of file integer.hpp.

{
void mul_add ( integer r,
int  x1,
const integer x2 
) [friend]

Definition at line 642 of file integer.hpp.

{
void mul_add ( integer r,
const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 639 of file integer.hpp.

{
void mul_add ( integer r,
const integer x1,
unsigned int  x2 
) [friend]

Definition at line 638 of file integer.hpp.

{
void mul_add ( integer r,
const integer x1,
int  x2 
) [friend]

Definition at line 638 of file integer.hpp.

{
void mul_add ( integer r,
const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 631 of file integer.hpp.

                                                                {
    r.secure (); mpz_addmul_ui (*r, *x1, x2); }
void mul_add ( integer r,
const integer x1,
short int  x2 
) [friend]

Definition at line 639 of file integer.hpp.

{
void mul_add ( integer r,
unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 641 of file integer.hpp.

{
void mul_add ( integer r,
long int  x1,
const integer x2 
) [friend]

Definition at line 641 of file integer.hpp.

{
void mul_add ( integer r,
unsigned int  x1,
const integer x2 
) [friend]

Definition at line 642 of file integer.hpp.

{
void mul_add ( integer r,
const integer x1,
long int  x2 
) [friend]

Definition at line 634 of file integer.hpp.

                                                       {
    r.secure ();
    if (x2 < 0) mpz_submul_ui (*r, *x1, (unsigned long int) (-x2));
    else        mpz_addmul_ui (*r, *x1, (unsigned long int) x2);}
void mul_add ( integer r,
short int  x1,
const integer x2 
) [friend]

Definition at line 643 of file integer.hpp.

{
void mul_add ( integer r,
unsigned short  x1,
const integer x2 
) [friend]

Definition at line 643 of file integer.hpp.

{
void mul_add ( integer r,
signed char  x1,
const integer x2 
) [friend]

Definition at line 644 of file integer.hpp.

{
void mul_add ( integer r,
const integer x1,
const integer x2 
) [friend]

Definition at line 192 of file integer.hpp.

                                                             {
    r.secure (); mpz_addmul (*r, *x1, *x2); }
void mul_sub ( integer r,
const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 650 of file integer.hpp.

                                                                {
    r.secure (); mpz_submul_ui (*r, *x1, x2); }
void mul_sub ( integer r,
const integer x1,
long int  x2 
) [friend]

Definition at line 653 of file integer.hpp.

                                                       {
    r.secure ();
    if (x2 < 0) mpz_addmul_ui (*r, *x1, (unsigned long int) (-x2));
    else        mpz_submul_ui (*r, *x1, (unsigned long int) x2); }
void mul_sub ( integer r,
const integer x1,
unsigned int  x2 
) [friend]

Definition at line 657 of file integer.hpp.

{
void mul_sub ( integer r,
const integer x1,
int  x2 
) [friend]

Definition at line 657 of file integer.hpp.

{
void mul_sub ( integer r,
const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 658 of file integer.hpp.

{
void mul_sub ( integer r,
const integer x1,
short int  x2 
) [friend]

Definition at line 658 of file integer.hpp.

{
void mul_sub ( integer r,
const integer x1,
unsigned char  x2 
) [friend]

Definition at line 659 of file integer.hpp.

{
void mul_sub ( integer r,
const integer x1,
signed char  x2 
) [friend]

Definition at line 659 of file integer.hpp.

{
void mul_sub ( integer r,
unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 660 of file integer.hpp.

{
void mul_sub ( integer r,
long int  x1,
const integer x2 
) [friend]

Definition at line 660 of file integer.hpp.

{
void mul_sub ( integer r,
unsigned int  x1,
const integer x2 
) [friend]

Definition at line 661 of file integer.hpp.

{
void mul_sub ( integer r,
int  x1,
const integer x2 
) [friend]

Definition at line 661 of file integer.hpp.

{
void mul_sub ( integer r,
unsigned short  x1,
const integer x2 
) [friend]

Definition at line 662 of file integer.hpp.

{
void mul_sub ( integer r,
short int  x1,
const integer x2 
) [friend]

Definition at line 662 of file integer.hpp.

{
void mul_sub ( integer r,
unsigned char  x1,
const integer x2 
) [friend]

Definition at line 663 of file integer.hpp.

{
void mul_sub ( integer r,
signed char  x1,
const integer x2 
) [friend]

Definition at line 663 of file integer.hpp.

{
void mul_sub ( integer r,
const integer x1,
const integer x2 
) [friend]

Definition at line 196 of file integer.hpp.

                                                             {
    r.secure (); mpz_submul (*r, *x1, *x2); }
nat N ( const integer x) [friend]

Definition at line 977 of file integer.hpp.

                                         {
    return limb_size (x); }
void neg ( integer r,
unsigned long int  x1 
) [friend]

Definition at line 549 of file integer.hpp.

                                                            {
    r.secure (); mpz_set_ui (*r, x1); neg (r); }
void neg ( integer r,
long int  x1 
) [friend]

Definition at line 551 of file integer.hpp.

                                                   {
    r.secure (); mpz_set_si (*r, -x1); }
void neg ( integer r,
unsigned int  x1 
) [friend]

Definition at line 553 of file integer.hpp.

                                                       {
    r.secure (); mpz_set_ui (*r, x1); neg (r); }
void neg ( integer r,
int  x1 
) [friend]

Definition at line 555 of file integer.hpp.

                                              {
    r.secure (); mpz_set_si (*r, -x1); }
void neg ( integer r,
unsigned short int  x1 
) [friend]

Definition at line 557 of file integer.hpp.

                                                             {
    r.secure (); mpz_set_ui (*r, x1); neg (r); }
void neg ( integer r,
short int  x1 
) [friend]

Definition at line 559 of file integer.hpp.

                                                    {
    r.secure (); mpz_set_si (*r, -x1); }
void neg ( integer r,
unsigned char  x1 
) [friend]

Definition at line 561 of file integer.hpp.

                                                        {
    r.secure (); mpz_set_ui (*r, x1); neg (r); }
void neg ( integer r,
signed char  x1 
) [friend]

Definition at line 563 of file integer.hpp.

                                                      {
    r.secure (); mpz_set_si (*r, -x1); }
void neg ( integer r) [friend]

Definition at line 174 of file integer.hpp.

{ r.secure (); mpz_neg (*r, *r); }
void neg ( integer r,
const integer x 
) [friend]

Definition at line 177 of file integer.hpp.

{ r.secure (); mpz_neg (*r, *x); }
integer numerator ( const rational x1) [friend]
bool operator!= ( const integer x1,
signed char  x2 
) [friend]

Definition at line 788 of file integer.hpp.

{
bool operator!= ( int  x1,
const integer x2 
) [friend]

Definition at line 794 of file integer.hpp.

{
bool operator!= ( const integer x1,
const integer x2 
) [friend]

Definition at line 203 of file integer.hpp.

                                                                        {
    return mpz_cmp (*x1, *x2) != 0; }
bool operator!= ( const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 782 of file integer.hpp.

                                                                           {
    return mpz_cmp_ui (*x1, x2) != 0; }
bool operator!= ( const integer x1,
long int  x2 
) [friend]

Definition at line 784 of file integer.hpp.

                                                                  {
    return mpz_cmp_si (*x1, x2) != 0; }
bool operator!= ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 786 of file integer.hpp.

{
bool operator!= ( const integer x1,
int  x2 
) [friend]

Definition at line 786 of file integer.hpp.

{
bool operator!= ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 787 of file integer.hpp.

{
bool operator!= ( const integer x1,
short int  x2 
) [friend]

Definition at line 787 of file integer.hpp.

{
bool operator!= ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 788 of file integer.hpp.

{
bool operator!= ( unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 790 of file integer.hpp.

                                                                           {
    return mpz_cmp_ui (*x2, x1) != 0; }
bool operator!= ( long int  x1,
const integer x2 
) [friend]

Definition at line 792 of file integer.hpp.

                                                                  {
    return mpz_cmp_si (*x2, x1) != 0; }
bool operator!= ( unsigned int  x1,
const integer x2 
) [friend]

Definition at line 794 of file integer.hpp.

{
bool operator!= ( unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 795 of file integer.hpp.

{
bool operator!= ( short int  x1,
const integer x2 
) [friend]

Definition at line 795 of file integer.hpp.

{
bool operator!= ( unsigned char  x1,
const integer x2 
) [friend]

Definition at line 796 of file integer.hpp.

{
bool operator!= ( signed char  x1,
const integer x2 
) [friend]

Definition at line 796 of file integer.hpp.

{
integer operator% ( const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 740 of file integer.hpp.

                                                          {
    return rem (x1, x2); }
integer operator% ( signed char  x1,
const integer x2 
) [friend]

Definition at line 758 of file integer.hpp.

{
integer operator% ( const integer x1,
long int  x2 
) [friend]

Definition at line 743 of file integer.hpp.

                                                 {
    return rem (x1, x2); }
integer operator% ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 746 of file integer.hpp.

{
integer operator% ( const integer x1,
int  x2 
) [friend]

Definition at line 746 of file integer.hpp.

{
integer operator% ( int  x1,
const integer x2 
) [friend]

Definition at line 756 of file integer.hpp.

{
integer operator% ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 747 of file integer.hpp.

{
integer operator% ( const integer x1,
short int  x2 
) [friend]

Definition at line 747 of file integer.hpp.

{
integer operator% ( const integer x1,
const integer x2 
) [friend]

Definition at line 149 of file integer.hpp.

                                                                          {
    return rem (x1, x2); }
integer operator% ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 748 of file integer.hpp.

{
integer operator% ( const integer x1,
signed char  x2 
) [friend]

Definition at line 748 of file integer.hpp.

{
integer operator% ( unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 750 of file integer.hpp.

                                                       {
    return rem (x1, x2); }
integer operator% ( long int  x1,
const integer x2 
) [friend]

Definition at line 753 of file integer.hpp.

                                                       {
    return rem (x1, x2); }
integer operator% ( unsigned int  x1,
const integer x2 
) [friend]

Definition at line 756 of file integer.hpp.

{
integer operator% ( unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 757 of file integer.hpp.

{
integer operator% ( short int  x1,
const integer x2 
) [friend]

Definition at line 757 of file integer.hpp.

{
integer operator% ( unsigned char  x1,
const integer x2 
) [friend]

Definition at line 758 of file integer.hpp.

{
integer& operator%= ( integer x1,
const integer x2 
) [friend]

Definition at line 152 of file integer.hpp.

                                                                      {
    x1.secure (); x1= rem (x1, x2); return x1; }
integer operator& ( const integer x1,
const integer x2 
) [friend]

Definition at line 231 of file integer.hpp.

                                                                          {
    integer r; mpz_and (*r, *x1, *x2); return r; }
integer operator* ( const integer x1,
const unsigned long int &  x2 
) [friend]

Definition at line 459 of file integer.hpp.

                                                                 {
    integer r; mpz_mul_ui (*r, *x1, x2); return r; }
integer operator* ( const integer x1,
const long int &  x2 
) [friend]

Definition at line 462 of file integer.hpp.

                                                        {
    integer r; mpz_mul_si (*r, *x1, x2); return r; }
integer operator* ( const integer x1,
const integer x2 
) [friend]

Definition at line 116 of file integer.hpp.

                                                                          {
    integer r; mpz_mul (*r, *x1, *x2); return r; }
integer operator* ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 465 of file integer.hpp.

{
integer operator* ( const integer x1,
int  x2 
) [friend]

Definition at line 465 of file integer.hpp.

{
integer operator* ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 466 of file integer.hpp.

{
integer operator* ( const integer x1,
short int  x2 
) [friend]

Definition at line 466 of file integer.hpp.

{
integer operator* ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 467 of file integer.hpp.

{
integer operator* ( const integer x1,
char  x2 
) [friend]

Definition at line 467 of file integer.hpp.

{
integer operator* ( long unsigned int  x2,
const integer x1 
) [friend]

Definition at line 468 of file integer.hpp.

{
integer operator* ( long int  x2,
const integer x1 
) [friend]

Definition at line 468 of file integer.hpp.

{
integer operator* ( unsigned int  x2,
const integer x1 
) [friend]

Definition at line 469 of file integer.hpp.

{
integer operator* ( int  x2,
const integer x1 
) [friend]

Definition at line 469 of file integer.hpp.

{
integer operator* ( unsigned short int  x2,
const integer x1 
) [friend]

Definition at line 470 of file integer.hpp.

{
integer operator* ( short int  x2,
const integer x1 
) [friend]

Definition at line 470 of file integer.hpp.

{
integer operator* ( unsigned char  x2,
const integer x1 
) [friend]

Definition at line 471 of file integer.hpp.

{
integer operator* ( char  x2,
const integer x1 
) [friend]

Definition at line 471 of file integer.hpp.

{
integer& operator*= ( integer x1,
unsigned long int  x2 
) [friend]

Definition at line 533 of file integer.hpp.

                                                                         {
    x1.secure (); mpz_mul_ui (*x1, *x1, x2); return x1; }
integer& operator*= ( integer x1,
long int  x2 
) [friend]

Definition at line 535 of file integer.hpp.

                                                                {
    x1.secure (); mpz_mul_si (*x1, *x1, x2); return x1; }
integer& operator*= ( integer x1,
unsigned int  x2 
) [friend]

Definition at line 537 of file integer.hpp.

{
integer& operator*= ( integer x1,
int  x2 
) [friend]

Definition at line 537 of file integer.hpp.

{
integer& operator*= ( integer x1,
unsigned short int  x2 
) [friend]

Definition at line 538 of file integer.hpp.

{
integer& operator*= ( integer x1,
short int  x2 
) [friend]

Definition at line 538 of file integer.hpp.

{
integer& operator*= ( integer x1,
unsigned char  x2 
) [friend]

Definition at line 539 of file integer.hpp.

{
integer& operator*= ( integer x1,
signed char  x2 
) [friend]

Definition at line 539 of file integer.hpp.

{
integer& operator*= ( integer x1,
const integer x2 
) [friend]

Definition at line 167 of file integer.hpp.

                                                                      {
    x1.secure (); mpz_mul (*x1, *x1, *x2); return x1; }
integer operator+ ( const integer x1,
const integer x2 
) [friend]

Definition at line 110 of file integer.hpp.

                                                                          {
    integer r; mpz_add (*r, *x1, *x2); return r; }
integer operator+ ( const integer x1,
int  x2 
) [friend]

Definition at line 418 of file integer.hpp.

{
integer operator+ ( const integer x1,
const unsigned long int &  x2 
) [friend]

Definition at line 409 of file integer.hpp.

                                                                 {
    integer r; mpz_add_ui (*r, *x1, x2); return r; }
integer operator+ ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 418 of file integer.hpp.

{
integer operator+ ( const integer x1,
const long int &  x2 
) [friend]

Definition at line 412 of file integer.hpp.

                                                        {
    integer r;
    if (x2 < 0) mpz_sub_ui (*r, *x1, (unsigned long int) (-x2));
    else        mpz_add_ui (*r, *x1, (unsigned long int) x2);
    return r; }
integer operator+ ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 419 of file integer.hpp.

{
integer operator+ ( const integer x1,
short int  x2 
) [friend]

Definition at line 419 of file integer.hpp.

{
integer operator+ ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 420 of file integer.hpp.

{
integer operator+ ( const integer x1,
char  x2 
) [friend]

Definition at line 420 of file integer.hpp.

{
integer operator+ ( long unsigned int  x2,
const integer x1 
) [friend]

Definition at line 421 of file integer.hpp.

{
integer operator+ ( long int  x2,
const integer x1 
) [friend]

Definition at line 421 of file integer.hpp.

{
integer operator+ ( unsigned int  x2,
const integer x1 
) [friend]

Definition at line 422 of file integer.hpp.

{
integer operator+ ( int  x2,
const integer x1 
) [friend]

Definition at line 422 of file integer.hpp.

{
integer operator+ ( unsigned short int  x2,
const integer x1 
) [friend]

Definition at line 423 of file integer.hpp.

{
integer operator+ ( short int  x2,
const integer x1 
) [friend]

Definition at line 423 of file integer.hpp.

{
integer operator+ ( unsigned char  x2,
const integer x1 
) [friend]

Definition at line 424 of file integer.hpp.

{
integer operator+ ( char  x2,
const integer x1 
) [friend]

Definition at line 424 of file integer.hpp.

{
integer& operator+= ( integer x1,
const integer x2 
) [friend]

Definition at line 161 of file integer.hpp.

                                                                      {
    x1.secure (); mpz_add (*x1, *x1, *x2); return x1; }
integer& operator+= ( integer x1,
unsigned long int  x2 
) [friend]

Definition at line 505 of file integer.hpp.

                                                                         {
    x1.secure (); mpz_add_ui (*x1, *x1, x2); return x1; }
integer& operator+= ( integer x1,
long int  x2 
) [friend]

Definition at line 507 of file integer.hpp.

                                                                {
    x1.secure ();
    if (x2 < 0) mpz_sub_ui (*x1, *x1, (unsigned long int) (-x2));
    else        mpz_add_ui (*x1, *x1, (unsigned long int) x2);
    return x1; }
integer& operator+= ( integer x1,
unsigned int  x2 
) [friend]

Definition at line 512 of file integer.hpp.

{
integer& operator+= ( integer x1,
int  x2 
) [friend]

Definition at line 512 of file integer.hpp.

{
integer& operator+= ( integer x1,
unsigned short int  x2 
) [friend]

Definition at line 513 of file integer.hpp.

{
integer& operator+= ( integer x1,
short int  x2 
) [friend]

Definition at line 513 of file integer.hpp.

{
integer& operator+= ( integer x1,
unsigned char  x2 
) [friend]

Definition at line 514 of file integer.hpp.

{
integer& operator+= ( integer x1,
signed char  x2 
) [friend]

Definition at line 514 of file integer.hpp.

{
integer operator- ( const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 429 of file integer.hpp.

                                                          {
    integer r; mpz_sub_ui (*r, *x1, x2); return r; }
integer operator- ( const integer x1,
long int  x2 
) [friend]

Definition at line 432 of file integer.hpp.

                                                 {
    integer r;
    if (x2 < 0) mpz_add_ui (*r, *x1, (unsigned long int) (-x2));
    else        mpz_sub_ui (*r, *x1, (unsigned long int) x2);
    return r; }
integer operator- ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 438 of file integer.hpp.

{
integer operator- ( const integer x1,
int  x2 
) [friend]

Definition at line 438 of file integer.hpp.

{
integer operator- ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 440 of file integer.hpp.

{
integer operator- ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 439 of file integer.hpp.

{
integer operator- ( unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 453 of file integer.hpp.

{
integer operator- ( const integer x1,
short int  x2 
) [friend]

Definition at line 439 of file integer.hpp.

{
integer operator- ( const integer x1,
char  x2 
) [friend]

Definition at line 440 of file integer.hpp.

{
integer operator- ( unsigned char  x1,
const integer x2 
) [friend]

Definition at line 454 of file integer.hpp.

{
integer operator- ( char  x1,
const integer x2 
) [friend]

Definition at line 454 of file integer.hpp.

{
integer operator- ( const integer x1,
const integer x2 
) [friend]

Definition at line 113 of file integer.hpp.

                                                                          {
    integer r; mpz_sub (*r, *x1, *x2); return r; }
integer operator- ( unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 442 of file integer.hpp.

                                                       {
    integer r; mpz_ui_sub (*r, x1, *x2); return r; }
integer operator- ( long int  x1,
const integer x2 
) [friend]

Definition at line 445 of file integer.hpp.

                                                       {
    integer r;
    if (x1 < 0) { mpz_add_ui (*r, *x2, (unsigned long int) (-x1));
                  neg (r); }
    else          mpz_ui_sub (*r, (unsigned long int) x1, *x2);
    return r; }
integer operator- ( unsigned int  x1,
const integer x2 
) [friend]

Definition at line 452 of file integer.hpp.

{
integer operator- ( int  x1,
const integer x2 
) [friend]

Definition at line 452 of file integer.hpp.

{
integer operator- ( short int  x1,
const integer x2 
) [friend]

Definition at line 453 of file integer.hpp.

{
integer operator- ( const integer x1) [friend]

Definition at line 107 of file integer.hpp.

                                                       {
    integer r; mpz_neg (*r, *x1); return r; }
integer& operator-= ( integer x1,
const integer x2 
) [friend]

Definition at line 164 of file integer.hpp.

                                                                      {
    x1.secure (); mpz_sub (*x1, *x1, *x2); return x1; }
integer& operator-= ( integer x1,
unsigned long int  x2 
) [friend]

Definition at line 519 of file integer.hpp.

                                                                         {
    x1.secure (); mpz_sub_ui (*x1, *x1, x2); return x1; }
integer& operator-= ( integer x1,
long int  x2 
) [friend]

Definition at line 521 of file integer.hpp.

                                                                {
    x1.secure ();
    if (x2 < 0) mpz_add_ui (*x1, *x1, (unsigned long int) (-x2));
    else        mpz_sub_ui (*x1, *x1, (unsigned long int) x2);
    return x1; }
integer& operator-= ( integer x1,
unsigned int  x2 
) [friend]

Definition at line 526 of file integer.hpp.

{
integer& operator-= ( integer x1,
int  x2 
) [friend]

Definition at line 526 of file integer.hpp.

{
integer& operator-= ( integer x1,
unsigned short int  x2 
) [friend]

Definition at line 527 of file integer.hpp.

{
integer& operator-= ( integer x1,
short int  x2 
) [friend]

Definition at line 527 of file integer.hpp.

{
integer& operator-= ( integer x1,
unsigned char  x2 
) [friend]

Definition at line 528 of file integer.hpp.

{
integer& operator-= ( integer x1,
signed char  x2 
) [friend]

Definition at line 528 of file integer.hpp.

{
integer operator/ ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 489 of file integer.hpp.

{
integer operator/ ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 490 of file integer.hpp.

{
integer operator/ ( const integer x1,
short int  x2 
) [friend]

Definition at line 489 of file integer.hpp.

{
integer operator/ ( const integer x1,
char  x2 
) [friend]

Definition at line 490 of file integer.hpp.

{
integer operator/ ( const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 476 of file integer.hpp.

                                                          {
    ASSERT (x2 != 0, "division by zero");
    integer r; mpz_divexact_ui (*r, *x1, x2); return r; }
integer operator/ ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 488 of file integer.hpp.

{
integer operator/ ( const integer x1,
int  x2 
) [friend]

Definition at line 488 of file integer.hpp.

{
integer operator/ ( unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 492 of file integer.hpp.

                                                       {
    return integer (x1) / x2; }
integer operator/ ( long int  x1,
const integer x2 
) [friend]

Definition at line 495 of file integer.hpp.

                                                       {
    return integer (x1) / x2; }
integer operator/ ( const integer x1,
long int  x2 
) [friend]

Definition at line 480 of file integer.hpp.

                                                 {
    ASSERT (x2 != 0, "division by zero");
    integer r; 
    if (x2 < 0) { mpz_divexact_ui (*r, *x1, (unsigned long int) (-x2));
                  neg (r); }
    else          mpz_divexact_ui (*r, *x1, (unsigned long int) x2);
    return r; }
integer operator/ ( const integer x1,
const integer x2 
) [friend]

Definition at line 123 of file integer.hpp.

                                                    {
    ASSERT (mpz_sgn (*x2) != 0, "division by zero");
#ifdef BASIX_ENABLE_VERIFY
    integer r; mpz_fdiv_r (*r, *x1, *x2);
    ASSERT (mpz_sgn (*r) == 0, "unexact division");
    mpz_divexact (*r, *x1, *x2); return r;
#else
    integer r; mpz_divexact (*r, *x1, *x2); return r;
#endif
  }
integer operator/ ( unsigned int  x1,
const integer x2 
) [friend]

Definition at line 498 of file integer.hpp.

{
integer operator/ ( int  x1,
const integer x2 
) [friend]

Definition at line 498 of file integer.hpp.

{
integer operator/ ( unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 499 of file integer.hpp.

{
integer operator/ ( short int  x1,
const integer x2 
) [friend]

Definition at line 499 of file integer.hpp.

{
integer operator/ ( unsigned char  x1,
const integer x2 
) [friend]

Definition at line 500 of file integer.hpp.

{
integer operator/ ( char  x1,
const integer x2 
) [friend]

Definition at line 500 of file integer.hpp.

{
bool operator< ( int  x1,
const integer x2 
) [friend]

Definition at line 813 of file integer.hpp.

{
bool operator< ( short int  x1,
const integer x2 
) [friend]

Definition at line 814 of file integer.hpp.

{
bool operator< ( const integer x1,
const integer x2 
) [friend]

Definition at line 206 of file integer.hpp.

                                                                       {
    return mpz_cmp (*x1, *x2) < 0; }
bool operator< ( const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 801 of file integer.hpp.

                                                                          {
    return mpz_cmp_ui (*x1, x2) < 0; }
bool operator< ( const integer x1,
long int  x2 
) [friend]

Definition at line 803 of file integer.hpp.

                                                                 {
    return mpz_cmp_si (*x1, x2) < 0; }
bool operator< ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 805 of file integer.hpp.

{
bool operator< ( unsigned char  x1,
const integer x2 
) [friend]

Definition at line 815 of file integer.hpp.

{
bool operator< ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 806 of file integer.hpp.

{
bool operator< ( const integer x1,
short int  x2 
) [friend]

Definition at line 806 of file integer.hpp.

{
bool operator< ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 807 of file integer.hpp.

{
bool operator< ( unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 809 of file integer.hpp.

                                                                          {
    return mpz_cmp_ui (*x2, x1) > 0; }
bool operator< ( unsigned int  x1,
const integer x2 
) [friend]

Definition at line 813 of file integer.hpp.

{
bool operator< ( unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 814 of file integer.hpp.

{
bool operator< ( signed char  x1,
const integer x2 
) [friend]

Definition at line 815 of file integer.hpp.

{
bool operator< ( const integer x1,
signed char  x2 
) [friend]

Definition at line 807 of file integer.hpp.

{
bool operator< ( long int  x1,
const integer x2 
) [friend]

Definition at line 811 of file integer.hpp.

                                                                 {
    return mpz_cmp_si (*x2, x1) > 0; }
bool operator< ( const integer x1,
int  x2 
) [friend]

Definition at line 805 of file integer.hpp.

{
integer operator<< ( const integer x1,
int  shift 
) [friend]

Definition at line 155 of file integer.hpp.

                                                                   {
    integer r; mpz_mul_2si (*r, *x1, shift); return r; }
integer& operator<<= ( integer x1,
int  shift 
) [friend]

Definition at line 170 of file integer.hpp.

                                                               {
    x1.secure (); mpz_mul_2si (*x1, *x1, shift); return x1; }
bool operator<= ( const integer x1,
const integer x2 
) [friend]

Definition at line 212 of file integer.hpp.

                                                                        {
    return mpz_cmp (*x1, *x2) <= 0; }
bool operator<= ( unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 852 of file integer.hpp.

{
bool operator<= ( const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 839 of file integer.hpp.

                                                                           {
    return mpz_cmp_ui (*x1, x2) <= 0; }
bool operator<= ( const integer x1,
long int  x2 
) [friend]

Definition at line 841 of file integer.hpp.

                                                                  {
    return mpz_cmp_si (*x1, x2) <= 0; }
bool operator<= ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 843 of file integer.hpp.

{
bool operator<= ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 844 of file integer.hpp.

{
bool operator<= ( short int  x1,
const integer x2 
) [friend]

Definition at line 852 of file integer.hpp.

{
bool operator<= ( unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 847 of file integer.hpp.

                                                                           {
    return mpz_cmp_ui (*x2, x1) >= 0; }
bool operator<= ( unsigned char  x1,
const integer x2 
) [friend]

Definition at line 853 of file integer.hpp.

{
bool operator<= ( long int  x1,
const integer x2 
) [friend]

Definition at line 849 of file integer.hpp.

                                                                  {
    return mpz_cmp_si (*x2, x1) >= 0; }
bool operator<= ( const integer x1,
int  x2 
) [friend]

Definition at line 843 of file integer.hpp.

{
bool operator<= ( int  x1,
const integer x2 
) [friend]

Definition at line 851 of file integer.hpp.

{
bool operator<= ( const integer x1,
signed char  x2 
) [friend]

Definition at line 845 of file integer.hpp.

{
bool operator<= ( unsigned int  x1,
const integer x2 
) [friend]

Definition at line 851 of file integer.hpp.

{
bool operator<= ( signed char  x1,
const integer x2 
) [friend]

Definition at line 853 of file integer.hpp.

{
bool operator<= ( const integer x1,
short int  x2 
) [friend]

Definition at line 844 of file integer.hpp.

{
bool operator<= ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 845 of file integer.hpp.

{
bool operator== ( const integer x1,
const integer x2 
) [friend]

Definition at line 200 of file integer.hpp.

                                                                        {
    return mpz_cmp (*x1, *x2) == 0; }
bool operator== ( const integer x1,
int  x2 
) [friend]

Definition at line 767 of file integer.hpp.

{
bool operator== ( const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 763 of file integer.hpp.

                                                                           {
    return mpz_cmp_ui (*x1, x2) == 0; }
bool operator== ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 767 of file integer.hpp.

{
bool operator== ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 768 of file integer.hpp.

{
bool operator== ( unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 771 of file integer.hpp.

                                                                           {
    return mpz_cmp_ui (*x2, x1) == 0; }
bool operator== ( unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 776 of file integer.hpp.

{
bool operator== ( const integer x1,
short int  x2 
) [friend]

Definition at line 768 of file integer.hpp.

{
bool operator== ( short int  x1,
const integer x2 
) [friend]

Definition at line 776 of file integer.hpp.

{
bool operator== ( signed char  x1,
const integer x2 
) [friend]

Definition at line 777 of file integer.hpp.

{
bool operator== ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 769 of file integer.hpp.

{
bool operator== ( unsigned int  x1,
const integer x2 
) [friend]

Definition at line 775 of file integer.hpp.

{
bool operator== ( const integer x1,
signed char  x2 
) [friend]

Definition at line 769 of file integer.hpp.

{
bool operator== ( unsigned char  x1,
const integer x2 
) [friend]

Definition at line 777 of file integer.hpp.

{
bool operator== ( long int  x1,
const integer x2 
) [friend]

Definition at line 773 of file integer.hpp.

                                                                  {
    return mpz_cmp_si (*x2, x1) == 0; }
bool operator== ( const integer x1,
long int  x2 
) [friend]

Definition at line 765 of file integer.hpp.

                                                                  {
    return mpz_cmp_si (*x1, x2) == 0; }
bool operator== ( int  x1,
const integer x2 
) [friend]

Definition at line 775 of file integer.hpp.

{
bool operator> ( unsigned int  x1,
const integer x2 
) [friend]

Definition at line 832 of file integer.hpp.

{
bool operator> ( short int  x1,
const integer x2 
) [friend]

Definition at line 833 of file integer.hpp.

{
bool operator> ( const integer x1,
const integer x2 
) [friend]

Definition at line 209 of file integer.hpp.

                                                                       {
    return mpz_cmp (*x1, *x2) > 0; }
bool operator> ( int  x1,
const integer x2 
) [friend]

Definition at line 832 of file integer.hpp.

{
bool operator> ( signed char  x1,
const integer x2 
) [friend]

Definition at line 834 of file integer.hpp.

{
bool operator> ( const integer x1,
short int  x2 
) [friend]

Definition at line 825 of file integer.hpp.

{
bool operator> ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 826 of file integer.hpp.

{
bool operator> ( const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 820 of file integer.hpp.

                                                                          {
    return mpz_cmp_ui (*x1, x2) > 0; }
bool operator> ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 824 of file integer.hpp.

{
bool operator> ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 825 of file integer.hpp.

{
bool operator> ( unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 828 of file integer.hpp.

                                                                          {
    return mpz_cmp_ui (*x2, x1) < 0; }
bool operator> ( long int  x1,
const integer x2 
) [friend]

Definition at line 830 of file integer.hpp.

                                                                 {
    return mpz_cmp_si (*x2, x1) < 0; }
bool operator> ( unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 833 of file integer.hpp.

{
bool operator> ( const integer x1,
int  x2 
) [friend]

Definition at line 824 of file integer.hpp.

{
bool operator> ( const integer x1,
signed char  x2 
) [friend]

Definition at line 826 of file integer.hpp.

{
bool operator> ( const integer x1,
long int  x2 
) [friend]

Definition at line 822 of file integer.hpp.

                                                                 {
    return mpz_cmp_si (*x1, x2) > 0; }
bool operator> ( unsigned char  x1,
const integer x2 
) [friend]

Definition at line 834 of file integer.hpp.

{
bool operator>= ( unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 871 of file integer.hpp.

{
bool operator>= ( const integer x1,
long int  x2 
) [friend]

Definition at line 860 of file integer.hpp.

                                                                  {
    return mpz_cmp_si (*x1, x2) >= 0; }
bool operator>= ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 862 of file integer.hpp.

{
bool operator>= ( signed char  x1,
const integer x2 
) [friend]

Definition at line 872 of file integer.hpp.

{
bool operator>= ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 863 of file integer.hpp.

{
bool operator>= ( const integer x1,
short int  x2 
) [friend]

Definition at line 863 of file integer.hpp.

{
bool operator>= ( long int  x1,
const integer x2 
) [friend]

Definition at line 868 of file integer.hpp.

                                                                  {
    return mpz_cmp_si (*x2, x1) <= 0; }
bool operator>= ( int  x1,
const integer x2 
) [friend]

Definition at line 870 of file integer.hpp.

{
bool operator>= ( unsigned int  x1,
const integer x2 
) [friend]

Definition at line 870 of file integer.hpp.

{
bool operator>= ( const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 858 of file integer.hpp.

                                                                           {
    return mpz_cmp_ui (*x1, x2) >= 0; }
bool operator>= ( const integer x1,
signed char  x2 
) [friend]

Definition at line 864 of file integer.hpp.

{
bool operator>= ( const integer x1,
const integer x2 
) [friend]

Definition at line 215 of file integer.hpp.

                                                                        {
    return mpz_cmp (*x1, *x2) >= 0; }
bool operator>= ( short int  x1,
const integer x2 
) [friend]

Definition at line 871 of file integer.hpp.

{
bool operator>= ( unsigned char  x1,
const integer x2 
) [friend]

Definition at line 872 of file integer.hpp.

{
bool operator>= ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 864 of file integer.hpp.

{
bool operator>= ( const integer x1,
int  x2 
) [friend]

Definition at line 862 of file integer.hpp.

{
bool operator>= ( unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 866 of file integer.hpp.

                                                                           {
    return mpz_cmp_ui (*x2, x1) <= 0; }
integer operator>> ( const integer x1,
int  shift 
) [friend]

Definition at line 158 of file integer.hpp.

                                                                   {
    integer r; mpz_mul_2si (*r, *x1, -shift); return r; }
integer operator^ ( const integer x1,
const integer x2 
) [friend]

Definition at line 237 of file integer.hpp.

                                                                          {
    integer r; mpz_xor (*r, *x1, *x2); return r; }
integer operator| ( const integer x1,
const integer x2 
) [friend]

Definition at line 234 of file integer.hpp.

                                                                          {
    integer r; mpz_ior (*r, *x1, *x2); return r; }
integer operator~ ( const integer x1) [friend]

Definition at line 240 of file integer.hpp.

                                                       {
    integer r; mpz_com (*r, *x1); return r; }
integer pow ( const integer x1,
const int &  i 
) [friend]

Definition at line 902 of file integer.hpp.

                                                              {
    ASSERT (i >= 0, "positive int expected");
    integer r; mpz_pow_ui (*r, *x1, (nat) i); return r; }
integer pow ( const integer x1,
const integer i 
) [friend]

Definition at line 909 of file integer.hpp.

                                                                  {
    ASSERT (i >= 0, "positive int expected");
    if (i == 0) return 1;
    if (x1 == 0) return 0;
    if (i == 1) return x1;
    if (x1 == 1) return x1;
    if (x1 == -1) return as_int (i & 1) ? -1 : 1;
    ASSERT (mpz_fits_ulong_p (*i), "exponent too large");
    integer r; mpz_pow_ui (*r, *x1, mpz_get_ui (*i));
    return r; }
integer pow ( const integer x1,
const nat &  i 
) [friend]

Definition at line 906 of file integer.hpp.

                                                              {
    integer r; mpz_pow_ui (*r, *x1, i); return r; }
integer quo ( unsigned int  x1,
const integer x2 
) [friend]

Definition at line 686 of file integer.hpp.

{
integer quo ( short int  x1,
const integer x2 
) [friend]

Definition at line 687 of file integer.hpp.

{
integer quo ( const integer x1,
signed char  x2 
) [friend]

Definition at line 678 of file integer.hpp.

{
integer quo ( const integer x1,
const integer x2 
) [friend]

Definition at line 133 of file integer.hpp.

                                                                   {
    if (mpz_sgn (*x2) == 0) return x2;
    integer r; mpz_fdiv_q (*r, *x1, *x2); return r; }
integer quo ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 678 of file integer.hpp.

{
integer quo ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 677 of file integer.hpp.

{
integer quo ( const integer x1,
int  x2 
) [friend]

Definition at line 676 of file integer.hpp.

{
integer quo ( unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 687 of file integer.hpp.

{
integer quo ( const integer x1,
short int  x2 
) [friend]

Definition at line 677 of file integer.hpp.

{
integer quo ( long int  x1,
const integer x2 
) [friend]

Definition at line 683 of file integer.hpp.

                                                {
    return quo (integer (x1), x2); }
integer quo ( const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 668 of file integer.hpp.

                                                   {
    if (x2 == 0) return x2;
    integer r; mpz_fdiv_q_ui (*r, *x1, x2); return r; }
integer quo ( const integer x1,
const long int &  x2 
) [friend]

Definition at line 672 of file integer.hpp.

                                                 {
    return (x2 < 0) ? - quo (x1, (unsigned long int) (-x2)) :
      quo (x1, (unsigned long int) x2); }
integer quo ( signed char  x1,
const integer x2 
) [friend]

Definition at line 688 of file integer.hpp.

{
integer quo ( unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 680 of file integer.hpp.

                                                {
    return quo (integer (x1), x2); }
integer quo ( int  x1,
const integer x2 
) [friend]

Definition at line 686 of file integer.hpp.

{
integer quo ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 676 of file integer.hpp.

{
integer quo ( unsigned char  x1,
const integer x2 
) [friend]

Definition at line 688 of file integer.hpp.

{
friend class rational [friend]

Definition at line 1000 of file integer.hpp.

integer raw_integer ( nat  limb_sz) [friend]

Definition at line 1011 of file integer.hpp.

                                         {
  return new integer_rep (limb_sz * BITS_PER_LIMB); }
integer rem ( unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 702 of file integer.hpp.

                                                {
    return rem (integer (x1), x2); }
integer rem ( const integer x1,
const integer x2,
integer q 
) [friend]

Definition at line 144 of file integer.hpp.

                                         {
    if (mpz_sgn (*x2) == 0) { q= x2; return x1; }
    integer r; mpz_fdiv_qr (*q, *r, *x1, *x2); return r; }
integer rem ( const integer x1,
unsigned char  x2 
) [friend]

Definition at line 700 of file integer.hpp.

{
integer rem ( long int  x1,
const integer x2 
) [friend]

Definition at line 705 of file integer.hpp.

                                                {
    return rem (integer (x1), x2); }
integer rem ( int  x1,
const integer x2,
integer x 
) [friend]

Definition at line 733 of file integer.hpp.

{
integer rem ( unsigned int  x1,
const integer x2,
integer x 
) [friend]

Definition at line 733 of file integer.hpp.

{
integer rem ( const integer x1,
short int  x2,
integer x 
) [friend]

Definition at line 724 of file integer.hpp.

{
integer rem ( signed char  x1,
const integer x2 
) [friend]

Definition at line 710 of file integer.hpp.

{
integer rem ( const integer x1,
const integer x2 
) [friend]

Definition at line 137 of file integer.hpp.

                                                                   {
    if (mpz_sgn (*x2) == 0) return x1;
    integer r; mpz_fdiv_r (*r, *x1, *x2); return r; }
integer rem ( unsigned char  x1,
const integer x2,
integer x 
) [friend]

Definition at line 735 of file integer.hpp.

{
integer rem ( unsigned short int  x1,
const integer x2,
integer x 
) [friend]

Definition at line 734 of file integer.hpp.

{
integer rem ( unsigned int  x1,
const integer x2 
) [friend]

Definition at line 708 of file integer.hpp.

{
integer rem ( short int  x1,
const integer x2 
) [friend]

Definition at line 709 of file integer.hpp.

{
integer rem ( long int  x1,
const integer x2,
integer q 
) [friend]

Definition at line 730 of file integer.hpp.

                                         {
    return rem (integer (x1), x2, q); }
integer rem ( const integer x1,
signed char  x2 
) [friend]

Definition at line 700 of file integer.hpp.

{
integer rem ( int  x1,
const integer x2 
) [friend]

Definition at line 708 of file integer.hpp.

{
integer rem ( const integer x1,
long int  x2,
integer q 
) [friend]

Definition at line 719 of file integer.hpp.

                                         {
    integer r= rem (x1, (unsigned long int) abs (x2), q);
    if (x2 < 0) neg (q); return r; }
integer rem ( const integer x1,
signed char  x2,
integer x 
) [friend]

Definition at line 725 of file integer.hpp.

{
integer rem ( unsigned long int  x1,
const integer x2,
integer q 
) [friend]

Definition at line 727 of file integer.hpp.

                                         {
    return rem (integer (x1), x2, q); }
integer rem ( signed char  x1,
const integer x2,
integer x 
) [friend]

Definition at line 735 of file integer.hpp.

{
integer rem ( short int  x1,
const integer x2,
integer x 
) [friend]

Definition at line 734 of file integer.hpp.

{
integer rem ( const integer x1,
short int  x2 
) [friend]

Definition at line 699 of file integer.hpp.

{
integer rem ( const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 693 of file integer.hpp.

                                                                      {
    if (x2 == 0) return x1;
    integer r; mpz_fdiv_r_ui (*r, *x1, x2); return r; }
integer rem ( const integer x1,
long int  x2 
) [friend]

Definition at line 696 of file integer.hpp.

                                                             {
    return rem (x1, (unsigned long int) abs (x2)); }
integer rem ( const integer x1,
unsigned int  x2 
) [friend]

Definition at line 698 of file integer.hpp.

{
integer rem ( const integer x1,
unsigned long int  x2,
integer q 
) [friend]

Definition at line 715 of file integer.hpp.

                                         {
    if (x2 == 0) { q= x2; return x1; }
    integer r; mpz_fdiv_qr_ui (*q, *r, *x1, x2); return r; }
integer rem ( const integer x1,
unsigned int  x2,
integer x 
) [friend]

Definition at line 723 of file integer.hpp.

{
integer rem ( const integer x1,
int  x2,
integer x 
) [friend]

Definition at line 723 of file integer.hpp.

{
integer rem ( const integer x1,
unsigned short int  x2,
integer x 
) [friend]

Definition at line 724 of file integer.hpp.

{
integer rem ( const integer x1,
unsigned char  x2,
integer x 
) [friend]

Definition at line 725 of file integer.hpp.

{
integer rem ( const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 699 of file integer.hpp.

{
integer rem ( const integer x1,
int  x2 
) [friend]

Definition at line 698 of file integer.hpp.

{
integer rem ( unsigned char  x1,
const integer x2 
) [friend]

Definition at line 710 of file integer.hpp.

{
integer rem ( unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 709 of file integer.hpp.

{
integer round ( const integer x) [friend]

Definition at line 957 of file integer.hpp.

{ return x; }
integer rshiftz ( const integer x1,
nat  shift 
) [friend]

Definition at line 986 of file integer.hpp.

                                                               {
    if (shift == 0) return x1;
    if ((GMP_LIMB_BITS * shift) / GMP_LIMB_BITS != shift) // overflow
      return rshiftz (rshiftz (x1, shift >> 1) , shift - (shift >> 1));
    integer r; mpz_fdiv_q_2exp (*r, *x1, GMP_LIMB_BITS * shift); return r; }
int sign ( const integer x1) [friend]

Definition at line 218 of file integer.hpp.

                                             {
    int r= mpz_sgn (*x1); return (r<0? -1: (r==0? 0: 1)); }
xnat size ( const integer x,
nat  base 
) [friend]

Definition at line 968 of file integer.hpp.

                                                       {
    return mpz_sizeinbase (*x, base); }
integer sqrt ( const integer a) [friend]

Definition at line 898 of file integer.hpp.

                                                {
    VERIFY (is_square (a), "not a perfect square");
    integer r; mpz_sqrt (*r, *a); return r; }
integer square ( const integer x1) [friend]

Definition at line 119 of file integer.hpp.

                                                   {
    integer r; mpz_mul (*r, *x1, *x1); return r; }
void sub ( integer r,
short int  x1,
const integer x2 
) [friend]

Definition at line 607 of file integer.hpp.

{
void sub ( integer r,
long int  x1,
const integer x2 
) [friend]

Definition at line 601 of file integer.hpp.

                                                   {
    r.secure ();
    if (x1 < 0) { mpz_add_ui (*r, *x2, (unsigned long int) (-x1));
                  neg (r); }
    else          mpz_ui_sub (*r, (unsigned long int) x1, *x2); }
void sub ( integer r,
const integer x1,
signed char  x2 
) [friend]

Definition at line 595 of file integer.hpp.

{
void sub ( integer r,
const integer x1,
unsigned long int  x2 
) [friend]

Definition at line 586 of file integer.hpp.

                                                            {
    r.secure (); mpz_sub_ui (*r, *x1, x2); }
void sub ( integer r,
signed char  x1,
const integer x2 
) [friend]

Definition at line 608 of file integer.hpp.

{
void sub ( integer r,
const integer x1,
unsigned int  x2 
) [friend]

Definition at line 593 of file integer.hpp.

{
void sub ( integer r,
unsigned short int  x1,
const integer x2 
) [friend]

Definition at line 607 of file integer.hpp.

{
void sub ( integer r,
const integer x1,
short int  x2 
) [friend]

Definition at line 594 of file integer.hpp.

{
void sub ( integer r,
unsigned int  x1,
const integer x2 
) [friend]

Definition at line 606 of file integer.hpp.

{
void sub ( integer r,
const integer x1,
long int  x2 
) [friend]

Definition at line 589 of file integer.hpp.

                                                   {
    r.secure (); 
    if (x2 < 0) mpz_add_ui (*r, *x1, (unsigned long int) (-x2));
    else        mpz_sub_ui (*r, *x1, (unsigned long int) x2); }
void sub ( integer r,
const integer x1,
const integer x2 
) [friend]

Definition at line 184 of file integer.hpp.

                                                         {
    r.secure (); mpz_sub (*r, *x1, *x2); }
void sub ( integer r,
unsigned long int  x1,
const integer x2 
) [friend]

Definition at line 598 of file integer.hpp.

                                                            {
    r.secure (); mpz_ui_sub (*r, x1, *x2); }
void sub ( integer r,
int  x1,
const integer x2 
) [friend]

Definition at line 606 of file integer.hpp.

{
void sub ( integer r,
const integer x1,
int  x2 
) [friend]

Definition at line 593 of file integer.hpp.

{
void sub ( integer r,
unsigned char  x1,
const integer x2 
) [friend]

Definition at line 608 of file integer.hpp.

{
void sub ( integer r,
const integer x1,
unsigned short int  x2 
) [friend]

Definition at line 594 of file integer.hpp.

{
void sub ( integer r,
const integer x1,
unsigned char  x2 
) [friend]

Definition at line 595 of file integer.hpp.

{
integer trunc ( const integer x) [friend]

Definition at line 955 of file integer.hpp.

{ return x; }
xgcd_matrix<integer> xgcd ( const integer a,
const integer b 
) [friend]

Definition at line 934 of file integer.hpp.

                                                                              {
    integer g; xgcd_matrix<integer> r;
    mpz_gcdext (*g, *(r.a), *(r.b), *a, *b);
    r.c= -b/g; r.d= a/g; return r; }

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines