integer Class Reference

#include <integer.hpp>

List of all members.

Public Member Functions

Friends


Detailed Description

Definition at line 42 of file integer.hpp.


Constructor & Destructor Documentation

integer (  )  [inline]

Definition at line 50 of file integer.hpp.

00050 : rep (new integer_rep ()) {}

integer ( signed char  i  )  [inline]

Definition at line 51 of file integer.hpp.

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

integer ( unsigned char  i  )  [inline]

Definition at line 53 of file integer.hpp.

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

integer ( signed int  i  )  [inline]

Definition at line 55 of file integer.hpp.

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

integer ( unsigned int  i  )  [inline]

Definition at line 57 of file integer.hpp.

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

integer ( signed short int  i  )  [inline]

Definition at line 59 of file integer.hpp.

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

integer ( unsigned short int  i  )  [inline]

Definition at line 61 of file integer.hpp.

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

integer ( signed long int  i  )  [inline]

Definition at line 63 of file integer.hpp.

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

integer ( unsigned long int  i  )  [inline]

Definition at line 65 of file integer.hpp.

00065                                       :
00066     rep (new integer_rep ()) { mpz_set_ui (rep->x, i); }
#if defined(BASIX_HAVE_LONG_LONG_INT)

integer ( char *  s,
int  base = 10 
) [inline]

Definition at line 86 of file integer.hpp.

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

integer ( const string s,
int  base = 10 
) [inline]

Definition at line 88 of file integer.hpp.

References mmx::as_charp(), and mmx::free_charp().

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


Member Function Documentation

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

Definition at line 249 of file integer.hpp.

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


Friends And Related Function Documentation

integer abs ( const integer x1  )  [friend]

Definition at line 227 of file integer.hpp.

00227                                                 {
00228     integer r; mpz_abs (*r, *x1); return r; }

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

Definition at line 586 of file integer.hpp.

00592 {

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

Definition at line 586 of file integer.hpp.

00592 {

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

Definition at line 585 of file integer.hpp.

00592 {

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

Definition at line 585 of file integer.hpp.

00592 {

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

Definition at line 584 of file integer.hpp.

00592 {

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

Definition at line 584 of file integer.hpp.

00592 {

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

Definition at line 583 of file integer.hpp.

00592 {

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

Definition at line 583 of file integer.hpp.

00592 {

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

Definition at line 582 of file integer.hpp.

00592 {

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

Definition at line 582 of file integer.hpp.

00592 {

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

Definition at line 581 of file integer.hpp.

00592 {

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

Definition at line 581 of file integer.hpp.

00592 {

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

Definition at line 580 of file integer.hpp.

00592 {

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

Definition at line 580 of file integer.hpp.

00592 {

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

Definition at line 576 of file integer.hpp.

00576                                                    {
00577     r.secure ();
00578     if (x2 < 0) mpz_sub_ui (*r, *x1, (unsigned long int) (-x2));
00579     else        mpz_add_ui (*r, *x1, (unsigned long int) x2); }

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

Definition at line 573 of file integer.hpp.

00573                                                             {
00574     r.secure (); mpz_add_ui (*r, *x1, x2); }

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

Definition at line 186 of file integer.hpp.

00186                                                          {
00187     r.secure (); mpz_add (*r, *x1, *x2); }

double as_double ( const integer x  )  [friend]

Definition at line 101 of file integer.hpp.

00101                                                     {
00102     return mpz_get_d (*x); }

int as_int ( const integer x  )  [friend]

Definition at line 98 of file integer.hpp.

00098                                               {
00099     return (int) mpz_get_si (*x); }

integer as_integer ( const floating< V > &  x  )  [friend]

Definition at line 264 of file floating.hpp.

00264                                                    {
00265   integer r; mpfr_get_z (*r, *x, Rnd); return r; }

string as_string ( const integer x  )  [friend]
xnat bit_size ( const integer x  )  [friend]

Definition at line 986 of file integer.hpp.

00986                                                  {
00987     return mpz_sizeinbase (*x, 2); }

integer ceil ( const integer x  )  [friend]

Definition at line 971 of file integer.hpp.

00971 { return x; }

integer co_rshiftz ( const integer x1,
nat  shift 
) [friend]

Definition at line 1009 of file integer.hpp.

01009                                                                   {
01010     if (shift == 0) return 0;
01011     if ((GMP_LIMB_BITS * shift) / GMP_LIMB_BITS != shift) // overflow
01012       return lshiftz (co_rshiftz (rshiftz (x1, shift >> 1),
01013                                   shift - (shift >> 1)), shift >> 1)
01014         + co_rshiftz (x1, shift >> 1);
01015     integer r; mpz_fdiv_r_2exp (*r, *x1, GMP_LIMB_BITS * shift);
01016     return r; }

integer copy ( const integer x1  )  [friend]

Definition at line 107 of file integer.hpp.

00107                                                  {
00108     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 144 of file integer.hpp.

00144                                                                     {
00145     return mpz_divisible_p (*x2, *x1); }

friend class floating [friend]

Definition at line 1021 of file integer.hpp.

integer floor ( const integer x  )  [friend]

Definition at line 969 of file integer.hpp.

00969 { return x; }

integer floor_sqrt ( const integer a  )  [friend]

Definition at line 913 of file integer.hpp.

00913                                                       {
00914     ASSERT (a >= 0, "wrong sign");
00915     integer r; mpz_sqrt (*r, *a); return r; }

integer gcd ( const integer a,
const integer b,
integer co_a,
integer co_b 
) [friend]

Definition at line 942 of file integer.hpp.

00943                                                            {
00944     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 938 of file integer.hpp.

00939                                             {
00940     integer r; mpz_gcdext (*r, *co_a, NULL, *a, *b); return r; }

integer gcd ( const integer a,
const integer b 
) [friend]

Definition at line 935 of file integer.hpp.

00935                                                                  {
00936     integer r; mpz_gcd (*r, *a, *b); return r; }

nat hamming_distance ( const integer x1,
const integer x2 
) [friend]

Definition at line 255 of file integer.hpp.

00255                                                                             {
00256     return mpz_hamdist (*x1, *x2); }

nat hamming_norm ( const integer x1  )  [friend]

Definition at line 252 of file integer.hpp.

00252                                                      {
00253     return mpz_popcount (*x1); }

nat hash ( const integer x  )  [friend]

Definition at line 977 of file integer.hpp.

00977                                             {
00978     const __mpz_struct& rep= (*x)[0];
00979     if (rep._mp_size == 0) return 0;
00980     return ((nat) (rep._mp_d[0])) ^ ((nat) (rep._mp_size << 11));
00981   }

integer invert_modulo ( const integer a,
const integer b 
) [friend]

Definition at line 954 of file integer.hpp.

00954                                                                            {
00955     integer r; mpz_invert (*r, *a, *b); return r; }

bool is_int ( const integer x  )  [friend]

Definition at line 95 of file integer.hpp.

00095                                                {
00096     return mpz_fits_sint_p (*x); }

bool is_invertible ( const integer x  )  [friend]

Definition at line 147 of file integer.hpp.

00147                                                       {
00148     return x == 1 || x == -1; }

bool is_square ( const integer a  )  [friend]

Definition at line 906 of file integer.hpp.

00906                                                   {
00907     return mpz_perfect_square_p (*a); }

int jacobi ( const integer a,
const integer b 
) [friend]

Definition at line 957 of file integer.hpp.

00957                                                                 {
00958     ASSERT ((b&1) != 0, "second argument must be odd");
00959     return mpz_jacobi (*a, *b); }

int kronecker ( const integer a,
const integer b 
) [friend]

Definition at line 965 of file integer.hpp.

00965                                                                    {
00966     return mpz_kronecker (*a, *b); }

integer lcm ( const integer a,
const integer b 
) [friend]

Definition at line 946 of file integer.hpp.

00946                                                                  {
00947     integer r; mpz_lcm (*r, *a, *b); return r; }

int legendre ( const integer a,
const integer b 
) [friend]

Definition at line 961 of file integer.hpp.

00961                                                                   {
00962     ASSERT ((b&1) != 0, "second argument must be odd");
00963     return mpz_legendre (*a, *b); }

xnat limb_size ( const integer x  )  [friend]

Definition at line 989 of file integer.hpp.

00989                                                   {
00990     return mpz_size (*x); }

integer lshiftz ( const integer x1,
nat  shift 
) [friend]

Definition at line 995 of file integer.hpp.

00995                                                                {
00996     if (shift == 0) return x1;
00997     if ((GMP_LIMB_BITS * shift) / GMP_LIMB_BITS != shift) // overflow
00998       return lshiftz (lshiftz (x1, shift >> 1), shift - (shift >> 1));
00999     integer r; mpz_mul_2exp (*r, *x1, GMP_LIMB_BITS * shift);
01000     return r; }

integer max ( const integer x1,
const integer x2 
) [friend]

Definition at line 233 of file integer.hpp.

00233                                                                    {
00234     return x1 >= x2? x1: x2; }

integer min ( const integer x1,
const integer x2 
) [friend]

Definition at line 230 of file integer.hpp.

00230                                                                    {
00231     return x1 <= x2? x1: x2; }

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

Definition at line 631 of file integer.hpp.

00637 {

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

Definition at line 631 of file integer.hpp.

00637 {

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

Definition at line 630 of file integer.hpp.

00637 {

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

Definition at line 630 of file integer.hpp.

00637 {

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

Definition at line 629 of file integer.hpp.

00637 {

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

Definition at line 629 of file integer.hpp.

00637 {

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

Definition at line 628 of file integer.hpp.

00637 {

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

Definition at line 628 of file integer.hpp.

00637 {

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

Definition at line 627 of file integer.hpp.

00637 {

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

Definition at line 627 of file integer.hpp.

00637 {

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

Definition at line 626 of file integer.hpp.

00637 {

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

Definition at line 626 of file integer.hpp.

00637 {

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

Definition at line 625 of file integer.hpp.

00637 {

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

Definition at line 625 of file integer.hpp.

00637 {

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

Definition at line 623 of file integer.hpp.

00623                                                    {
00624     r.secure (); mpz_mul_si (*r, *x1, x2); }

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

Definition at line 620 of file integer.hpp.

00620                                                             {
00621     r.secure (); mpz_mul_ui (*r, *x1, x2); }

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

Definition at line 194 of file integer.hpp.

00194                                                          {
00195     r.secure (); mpz_mul (*r, *x1, *x2); }

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

Definition at line 650 of file integer.hpp.

00656 {

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

Definition at line 650 of file integer.hpp.

00656 {

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

Definition at line 649 of file integer.hpp.

00656 {

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

Definition at line 649 of file integer.hpp.

00656 {

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

Definition at line 648 of file integer.hpp.

00656 {

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

Definition at line 648 of file integer.hpp.

00656 {

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

Definition at line 647 of file integer.hpp.

00656 {

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

Definition at line 647 of file integer.hpp.

00656 {

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

Definition at line 646 of file integer.hpp.

00656 {

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

Definition at line 646 of file integer.hpp.

00656 {

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

Definition at line 645 of file integer.hpp.

00656 {

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

Definition at line 645 of file integer.hpp.

00656 {

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

Definition at line 644 of file integer.hpp.

00656 {

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

Definition at line 644 of file integer.hpp.

00656 {

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

Definition at line 640 of file integer.hpp.

00640                                                        {
00641     r.secure ();
00642     if (x2 < 0) mpz_submul_ui (*r, *x1, (unsigned long int) (-x2));
00643     else        mpz_addmul_ui (*r, *x1, (unsigned long int) x2);}

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

Definition at line 637 of file integer.hpp.

00637                                                                 {
00638     r.secure (); mpz_addmul_ui (*r, *x1, x2); }

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

Definition at line 198 of file integer.hpp.

00198                                                              {
00199     r.secure (); mpz_addmul (*r, *x1, *x2); }

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

Definition at line 669 of file integer.hpp.

00675 {

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

Definition at line 669 of file integer.hpp.

00675 {

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

Definition at line 668 of file integer.hpp.

00675 {

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

Definition at line 668 of file integer.hpp.

00675 {

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

Definition at line 667 of file integer.hpp.

00675 {

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

Definition at line 667 of file integer.hpp.

00675 {

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

Definition at line 666 of file integer.hpp.

00675 {

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

Definition at line 666 of file integer.hpp.

00675 {

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

Definition at line 665 of file integer.hpp.

00675 {

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

Definition at line 665 of file integer.hpp.

00675 {

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

Definition at line 664 of file integer.hpp.

00675 {

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

Definition at line 664 of file integer.hpp.

00675 {

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

Definition at line 663 of file integer.hpp.

00675 {

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

Definition at line 663 of file integer.hpp.

00675 {

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

Definition at line 659 of file integer.hpp.

00659                                                        {
00660     r.secure ();
00661     if (x2 < 0) mpz_addmul_ui (*r, *x1, (unsigned long int) (-x2));
00662     else        mpz_submul_ui (*r, *x1, (unsigned long int) x2); }

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

Definition at line 656 of file integer.hpp.

00656                                                                 {
00657     r.secure (); mpz_submul_ui (*r, *x1, x2); }

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

Definition at line 202 of file integer.hpp.

00202                                                              {
00203     r.secure (); mpz_submul (*r, *x1, *x2); }

nat N ( const integer x  )  [friend]

Definition at line 992 of file integer.hpp.

00992                                          {
00993     return limb_size (x); }

void neg ( integer r,
signed char  x1 
) [friend]

Definition at line 569 of file integer.hpp.

00569                                                       {
00570     r.secure (); mpz_set_si (*r, -x1); }

void neg ( integer r,
unsigned char  x1 
) [friend]

Definition at line 567 of file integer.hpp.

00567                                                         {
00568     r.secure (); mpz_set_ui (*r, x1); neg (r); }

void neg ( integer r,
short int  x1 
) [friend]

Definition at line 565 of file integer.hpp.

00565                                                     {
00566     r.secure (); mpz_set_si (*r, -x1); }

void neg ( integer r,
unsigned short int  x1 
) [friend]

Definition at line 563 of file integer.hpp.

00563                                                              {
00564     r.secure (); mpz_set_ui (*r, x1); neg (r); }

void neg ( integer r,
int  x1 
) [friend]

Definition at line 561 of file integer.hpp.

00561                                               {
00562     r.secure (); mpz_set_si (*r, -x1); }

void neg ( integer r,
unsigned int  x1 
) [friend]

Definition at line 559 of file integer.hpp.

00559                                                        {
00560     r.secure (); mpz_set_ui (*r, x1); neg (r); }

void neg ( integer r,
long int  x1 
) [friend]

Definition at line 557 of file integer.hpp.

00557                                                    {
00558     r.secure (); mpz_set_si (*r, -x1); }

void neg ( integer r,
unsigned long int  x1 
) [friend]

Definition at line 555 of file integer.hpp.

00555                                                             {
00556     r.secure (); mpz_set_ui (*r, x1); neg (r); }

void neg ( integer r,
const integer x 
) [friend]

Definition at line 183 of file integer.hpp.

00183 { r.secure (); mpz_neg (*r, *x); }

void neg ( integer r  )  [friend]

Definition at line 180 of file integer.hpp.

00180 { r.secure (); mpz_neg (*r, *r); }

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

Definition at line 802 of file integer.hpp.

00807 {

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

Definition at line 802 of file integer.hpp.

00807 {

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

Definition at line 801 of file integer.hpp.

00807 {

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

Definition at line 801 of file integer.hpp.

00807 {

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

Definition at line 800 of file integer.hpp.

00807 {

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

Definition at line 800 of file integer.hpp.

00807 {

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

Definition at line 798 of file integer.hpp.

00798                                                                   {
00799     return mpz_cmp_si (*x2, x1) != 0; }

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

Definition at line 796 of file integer.hpp.

00796                                                                            {
00797     return mpz_cmp_ui (*x2, x1) != 0; }

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

Definition at line 794 of file integer.hpp.

00796 {

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

Definition at line 794 of file integer.hpp.

00796 {

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

Definition at line 793 of file integer.hpp.

00796 {

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

Definition at line 793 of file integer.hpp.

00796 {

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

Definition at line 792 of file integer.hpp.

00796 {

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

Definition at line 792 of file integer.hpp.

00796 {

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

Definition at line 790 of file integer.hpp.

00790                                                                   {
00791     return mpz_cmp_si (*x1, x2) != 0; }

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

Definition at line 788 of file integer.hpp.

00788                                                                            {
00789     return mpz_cmp_ui (*x1, x2) != 0; }

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

Definition at line 209 of file integer.hpp.

00209                                                                         {
00210     return mpz_cmp (*x1, *x2) != 0; }

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

Definition at line 764 of file integer.hpp.

00769 {

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

Definition at line 764 of file integer.hpp.

00769 {

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

Definition at line 763 of file integer.hpp.

00769 {

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

Definition at line 763 of file integer.hpp.

00769 {

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

Definition at line 762 of file integer.hpp.

00769 {

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

Definition at line 762 of file integer.hpp.

00769 {

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

Definition at line 759 of file integer.hpp.

00760                                                        {
00761     return rem (x1, x2); }

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

Definition at line 756 of file integer.hpp.

00757                                                        {
00758     return rem (x1, x2); }

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

Definition at line 754 of file integer.hpp.

00757 {

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

Definition at line 754 of file integer.hpp.

00757 {

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

Definition at line 753 of file integer.hpp.

00757 {

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

Definition at line 753 of file integer.hpp.

00757 {

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

Definition at line 752 of file integer.hpp.

00757 {

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

Definition at line 752 of file integer.hpp.

00757 {

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

Definition at line 749 of file integer.hpp.

00750                                                  {
00751     return rem (x1, x2); }

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

Definition at line 746 of file integer.hpp.

00747                                                           {
00748     return rem (x1, x2); }

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

Definition at line 155 of file integer.hpp.

00155                                                                           {
00156     return rem (x1, x2); }

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

Definition at line 158 of file integer.hpp.

00158                                                                       {
00159     x1.secure (); x1= rem (x1, x2); return x1; }

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

Definition at line 237 of file integer.hpp.

00237                                                                           {
00238     integer r; mpz_and (*r, *x1, *x2); return r; }

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

Definition at line 477 of file integer.hpp.

00483 {

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

Definition at line 477 of file integer.hpp.

00483 {

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

Definition at line 476 of file integer.hpp.

00483 {

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

Definition at line 476 of file integer.hpp.

00483 {

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

Definition at line 475 of file integer.hpp.

00483 {

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

Definition at line 475 of file integer.hpp.

00483 {

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

Definition at line 474 of file integer.hpp.

00483 {

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

Definition at line 474 of file integer.hpp.

00483 {

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

Definition at line 473 of file integer.hpp.

00483 {

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

Definition at line 473 of file integer.hpp.

00483 {

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

Definition at line 472 of file integer.hpp.

00483 {

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

Definition at line 472 of file integer.hpp.

00483 {

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

Definition at line 471 of file integer.hpp.

00483 {

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

Definition at line 471 of file integer.hpp.

00483 {

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

Definition at line 468 of file integer.hpp.

00469                                                         {
00470     integer r; mpz_mul_si (*r, *x1, x2); return r; }

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

Definition at line 465 of file integer.hpp.

00466                                                                  {
00467     integer r; mpz_mul_ui (*r, *x1, x2); return r; }

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

Definition at line 119 of file integer.hpp.

00119                                                                           {
00120     integer r; mpz_mul (*r, *x1, *x2); return r; }

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

Definition at line 545 of file integer.hpp.

00550 {

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

Definition at line 545 of file integer.hpp.

00550 {

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

Definition at line 544 of file integer.hpp.

00550 {

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

Definition at line 544 of file integer.hpp.

00550 {

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

Definition at line 543 of file integer.hpp.

00550 {

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

Definition at line 543 of file integer.hpp.

00550 {

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

Definition at line 541 of file integer.hpp.

00541                                                                 {
00542     x1.secure (); mpz_mul_si (*x1, *x1, x2); return x1; }

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

Definition at line 539 of file integer.hpp.

00539                                                                          {
00540     x1.secure (); mpz_mul_ui (*x1, *x1, x2); return x1; }

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

Definition at line 173 of file integer.hpp.

00173                                                                       {
00174     x1.secure (); mpz_mul (*x1, *x1, *x2); return x1; }

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

Definition at line 430 of file integer.hpp.

00436 {

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

Definition at line 430 of file integer.hpp.

00436 {

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

Definition at line 429 of file integer.hpp.

00436 {

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

Definition at line 429 of file integer.hpp.

00436 {

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

Definition at line 428 of file integer.hpp.

00436 {

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

Definition at line 428 of file integer.hpp.

00436 {

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

Definition at line 427 of file integer.hpp.

00436 {

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

Definition at line 427 of file integer.hpp.

00436 {

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

Definition at line 426 of file integer.hpp.

00436 {

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

Definition at line 426 of file integer.hpp.

00436 {

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

Definition at line 425 of file integer.hpp.

00436 {

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

Definition at line 425 of file integer.hpp.

00436 {

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

Definition at line 424 of file integer.hpp.

00436 {

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

Definition at line 424 of file integer.hpp.

00436 {

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

Definition at line 418 of file integer.hpp.

00419                                                         {
00420     integer r;
00421     if (x2 < 0) mpz_sub_ui (*r, *x1, (unsigned long int) (-x2));
00422     else        mpz_add_ui (*r, *x1, (unsigned long int) x2);
00423     return r; }

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

Definition at line 415 of file integer.hpp.

00416                                                                  {
00417     integer r; mpz_add_ui (*r, *x1, x2); return r; }

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

Definition at line 113 of file integer.hpp.

00113                                                                           {
00114     integer r; mpz_add (*r, *x1, *x2); return r; }

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

Definition at line 520 of file integer.hpp.

00525 {

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

Definition at line 520 of file integer.hpp.

00525 {

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

Definition at line 519 of file integer.hpp.

00525 {

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

Definition at line 519 of file integer.hpp.

00525 {

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

Definition at line 518 of file integer.hpp.

00525 {

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

Definition at line 518 of file integer.hpp.

00525 {

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

Definition at line 513 of file integer.hpp.

00513                                                                 {
00514     x1.secure ();
00515     if (x2 < 0) mpz_sub_ui (*x1, *x1, (unsigned long int) (-x2));
00516     else        mpz_add_ui (*x1, *x1, (unsigned long int) x2);
00517     return x1; }

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

Definition at line 511 of file integer.hpp.

00511                                                                          {
00512     x1.secure (); mpz_add_ui (*x1, *x1, x2); return x1; }

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

Definition at line 167 of file integer.hpp.

00167                                                                       {
00168     x1.secure (); mpz_add (*x1, *x1, *x2); return x1; }

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

Definition at line 460 of file integer.hpp.

00466 {

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

Definition at line 460 of file integer.hpp.

00466 {

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

Definition at line 459 of file integer.hpp.

00466 {

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

Definition at line 459 of file integer.hpp.

00466 {

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

Definition at line 458 of file integer.hpp.

00466 {

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

Definition at line 458 of file integer.hpp.

00466 {

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

Definition at line 451 of file integer.hpp.

00452                                                        {
00453     integer r;
00454     if (x1 < 0) { mpz_add_ui (*r, *x2, (unsigned long int) (-x1));
00455                   neg (r); }
00456     else          mpz_ui_sub (*r, (unsigned long int) x1, *x2);
00457     return r; }

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

Definition at line 448 of file integer.hpp.

00449                                                        {
00450     integer r; mpz_ui_sub (*r, x1, *x2); return r; }

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

Definition at line 446 of file integer.hpp.

00449 {

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

Definition at line 446 of file integer.hpp.

00449 {

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

Definition at line 445 of file integer.hpp.

00449 {

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

Definition at line 445 of file integer.hpp.

00449 {

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

Definition at line 444 of file integer.hpp.

00449 {

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

Definition at line 444 of file integer.hpp.

00449 {

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

Definition at line 438 of file integer.hpp.

00439                                                  {
00440     integer r;
00441     if (x2 < 0) mpz_add_ui (*r, *x1, (unsigned long int) (-x2));
00442     else        mpz_sub_ui (*r, *x1, (unsigned long int) x2);
00443     return r; }

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

Definition at line 435 of file integer.hpp.

00436                                                           {
00437     integer r; mpz_sub_ui (*r, *x1, x2); return r; }

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

Definition at line 116 of file integer.hpp.

00116                                                                           {
00117     integer r; mpz_sub (*r, *x1, *x2); return r; }

integer operator- ( const integer x1  )  [friend]

Definition at line 110 of file integer.hpp.

00110                                                        {
00111     integer r; mpz_neg (*r, *x1); return r; }

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

Definition at line 534 of file integer.hpp.

00539 {

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

Definition at line 534 of file integer.hpp.

00539 {

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

Definition at line 533 of file integer.hpp.

00539 {

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

Definition at line 533 of file integer.hpp.

00539 {

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

Definition at line 532 of file integer.hpp.

00539 {

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

Definition at line 532 of file integer.hpp.

00539 {

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

Definition at line 527 of file integer.hpp.

00527                                                                 {
00528     x1.secure ();
00529     if (x2 < 0) mpz_add_ui (*x1, *x1, (unsigned long int) (-x2));
00530     else        mpz_sub_ui (*x1, *x1, (unsigned long int) x2);
00531     return x1; }

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

Definition at line 525 of file integer.hpp.

00525                                                                          {
00526     x1.secure (); mpz_sub_ui (*x1, *x1, x2); return x1; }

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

Definition at line 170 of file integer.hpp.

00170                                                                       {
00171     x1.secure (); mpz_sub (*x1, *x1, *x2); return x1; }

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

Definition at line 506 of file integer.hpp.

00511 {

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

Definition at line 506 of file integer.hpp.

00511 {

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

Definition at line 505 of file integer.hpp.

00511 {

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

Definition at line 505 of file integer.hpp.

00511 {

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

Definition at line 504 of file integer.hpp.

00511 {

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

Definition at line 504 of file integer.hpp.

00511 {

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

Definition at line 501 of file integer.hpp.

00502                                                        {
00503     return integer (x1) / x2; }

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

Definition at line 498 of file integer.hpp.

00499                                                        {
00500     return integer (x1) / x2; }

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

Definition at line 496 of file integer.hpp.

00499 {

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

Definition at line 496 of file integer.hpp.

00499 {

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

Definition at line 495 of file integer.hpp.

00499 {

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

Definition at line 495 of file integer.hpp.

00499 {

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

Definition at line 494 of file integer.hpp.

00499 {

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

Definition at line 494 of file integer.hpp.

00499 {

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

Definition at line 486 of file integer.hpp.

00487                                                  {
00488     ASSERT (x2 != 0, "division by zero");
00489     integer r; 
00490     if (x2 < 0) { mpz_divexact_ui (*r, *x1, (unsigned long int) (-x2));
00491                   neg (r); }
00492     else          mpz_divexact_ui (*r, *x1, (unsigned long int) x2);
00493     return r; }

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

Definition at line 482 of file integer.hpp.

00483                                                           {
00484     ASSERT (x2 != 0, "division by zero");
00485     integer r; mpz_divexact_ui (*r, *x1, x2); return r; }

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

Definition at line 126 of file integer.hpp.

00126                                                     {
00127     ASSERT (mpz_sgn (*x2) != 0, "division by zero");
00128 #ifdef BASIX_ENABLE_VERIFY
00129     integer r; mpz_fdiv_r (*r, *x1, *x2);
00130     ASSERT (mpz_sgn (*r) == 0, "unexact division");
00131     mpz_divexact (*r, *x1, *x2); return r;
00132 #else
00133     integer r; mpz_divexact (*r, *x1, *x2); return r;
00134 #endif
00135   }

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

Definition at line 821 of file integer.hpp.

00826 {

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

Definition at line 821 of file integer.hpp.

00826 {

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

Definition at line 820 of file integer.hpp.

00826 {

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

Definition at line 820 of file integer.hpp.

00826 {

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

Definition at line 819 of file integer.hpp.

00826 {

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

Definition at line 819 of file integer.hpp.

00826 {

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

Definition at line 817 of file integer.hpp.

00817                                                                  {
00818     return mpz_cmp_si (*x2, x1) > 0; }

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

Definition at line 815 of file integer.hpp.

00815                                                                           {
00816     return mpz_cmp_ui (*x2, x1) > 0; }

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

Definition at line 813 of file integer.hpp.

00815 {

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

Definition at line 813 of file integer.hpp.

00815 {

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

Definition at line 812 of file integer.hpp.

00815 {

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

Definition at line 812 of file integer.hpp.

00815 {

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

Definition at line 811 of file integer.hpp.

00815 {

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

Definition at line 811 of file integer.hpp.

00815 {

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

Definition at line 809 of file integer.hpp.

00809                                                                  {
00810     return mpz_cmp_si (*x1, x2) < 0; }

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

Definition at line 807 of file integer.hpp.

00807                                                                           {
00808     return mpz_cmp_ui (*x1, x2) < 0; }

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

Definition at line 212 of file integer.hpp.

00212                                                                        {
00213     return mpz_cmp (*x1, *x2) < 0; }

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

Definition at line 161 of file integer.hpp.

00161                                                                    {
00162     integer r; mpz_mul_2si (*r, *x1, shift); return r; }

integer& operator<<= ( integer x1,
int  shift 
) [friend]

Definition at line 176 of file integer.hpp.

00176                                                                {
00177     x1.secure (); mpz_mul_2si (*x1, *x1, shift); return x1; }

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

Definition at line 859 of file integer.hpp.

00864 {

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

Definition at line 859 of file integer.hpp.

00864 {

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

Definition at line 858 of file integer.hpp.

00864 {

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

Definition at line 858 of file integer.hpp.

00864 {

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

Definition at line 857 of file integer.hpp.

00864 {

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

Definition at line 857 of file integer.hpp.

00864 {

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

Definition at line 855 of file integer.hpp.

00855                                                                   {
00856     return mpz_cmp_si (*x2, x1) >= 0; }

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

Definition at line 853 of file integer.hpp.

00853                                                                            {
00854     return mpz_cmp_ui (*x2, x1) >= 0; }

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

Definition at line 851 of file integer.hpp.

00853 {

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

Definition at line 851 of file integer.hpp.

00853 {

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

Definition at line 850 of file integer.hpp.

00853 {

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

Definition at line 850 of file integer.hpp.

00853 {

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

Definition at line 849 of file integer.hpp.

00853 {

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

Definition at line 849 of file integer.hpp.

00853 {

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

Definition at line 847 of file integer.hpp.

00847                                                                   {
00848     return mpz_cmp_si (*x1, x2) <= 0; }

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

Definition at line 845 of file integer.hpp.

00845                                                                            {
00846     return mpz_cmp_ui (*x1, x2) <= 0; }

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

Definition at line 218 of file integer.hpp.

00218                                                                         {
00219     return mpz_cmp (*x1, *x2) <= 0; }

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

Definition at line 783 of file integer.hpp.

00788 {

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

Definition at line 783 of file integer.hpp.

00788 {

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

Definition at line 782 of file integer.hpp.

00788 {

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

Definition at line 782 of file integer.hpp.

00788 {

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

Definition at line 781 of file integer.hpp.

00788 {

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

Definition at line 781 of file integer.hpp.

00788 {

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

Definition at line 779 of file integer.hpp.

00779                                                                   {
00780     return mpz_cmp_si (*x2, x1) == 0; }

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

Definition at line 777 of file integer.hpp.

00777                                                                            {
00778     return mpz_cmp_ui (*x2, x1) == 0; }

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

Definition at line 775 of file integer.hpp.

00777 {

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

Definition at line 775 of file integer.hpp.

00777 {

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

Definition at line 774 of file integer.hpp.

00777 {

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

Definition at line 774 of file integer.hpp.

00777 {

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

Definition at line 773 of file integer.hpp.

00777 {

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

Definition at line 773 of file integer.hpp.

00777 {

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

Definition at line 771 of file integer.hpp.

00771                                                                   {
00772     return mpz_cmp_si (*x1, x2) == 0; }

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

Definition at line 769 of file integer.hpp.

00769                                                                            {
00770     return mpz_cmp_ui (*x1, x2) == 0; }

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

Definition at line 206 of file integer.hpp.

00206                                                                         {
00207     return mpz_cmp (*x1, *x2) == 0; }

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

Definition at line 840 of file integer.hpp.

00845 {

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

Definition at line 840 of file integer.hpp.

00845 {

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

Definition at line 839 of file integer.hpp.

00845 {

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

Definition at line 839 of file integer.hpp.

00845 {

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

Definition at line 838 of file integer.hpp.

00845 {

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

Definition at line 838 of file integer.hpp.

00845 {

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

Definition at line 836 of file integer.hpp.

00836                                                                  {
00837     return mpz_cmp_si (*x2, x1) < 0; }

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

Definition at line 834 of file integer.hpp.

00834                                                                           {
00835     return mpz_cmp_ui (*x2, x1) < 0; }

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

Definition at line 832 of file integer.hpp.

00834 {

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

Definition at line 832 of file integer.hpp.

00834 {

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

Definition at line 831 of file integer.hpp.

00834 {

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

Definition at line 831 of file integer.hpp.

00834 {

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

Definition at line 830 of file integer.hpp.

00834 {

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

Definition at line 830 of file integer.hpp.

00834 {

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

Definition at line 828 of file integer.hpp.

00828                                                                  {
00829     return mpz_cmp_si (*x1, x2) > 0; }

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

Definition at line 826 of file integer.hpp.

00826                                                                           {
00827     return mpz_cmp_ui (*x1, x2) > 0; }

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

Definition at line 215 of file integer.hpp.

00215                                                                        {
00216     return mpz_cmp (*x1, *x2) > 0; }

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

Definition at line 878 of file integer.hpp.

00906 {

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

Definition at line 878 of file integer.hpp.

00906 {

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

Definition at line 877 of file integer.hpp.

00906 {

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

Definition at line 877 of file integer.hpp.

00906 {

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

Definition at line 876 of file integer.hpp.

00906 {

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

Definition at line 876 of file integer.hpp.

00906 {

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

Definition at line 874 of file integer.hpp.

00874                                                                   {
00875     return mpz_cmp_si (*x2, x1) <= 0; }

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

Definition at line 872 of file integer.hpp.

00872                                                                            {
00873     return mpz_cmp_ui (*x2, x1) <= 0; }

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

Definition at line 870 of file integer.hpp.

00872 {

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

Definition at line 870 of file integer.hpp.

00872 {

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

Definition at line 869 of file integer.hpp.

00872 {

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

Definition at line 869 of file integer.hpp.

00872 {

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

Definition at line 868 of file integer.hpp.

00872 {

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

Definition at line 868 of file integer.hpp.

00872 {

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

Definition at line 866 of file integer.hpp.

00866                                                                   {
00867     return mpz_cmp_si (*x1, x2) >= 0; }

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

Definition at line 864 of file integer.hpp.

00864                                                                            {
00865     return mpz_cmp_ui (*x1, x2) >= 0; }

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

Definition at line 221 of file integer.hpp.

00221                                                                         {
00222     return mpz_cmp (*x1, *x2) >= 0; }

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

Definition at line 164 of file integer.hpp.

00164                                                                    {
00165     integer r; mpz_mul_2si (*r, *x1, -shift); return r; }

integer operator^ ( const integer x1,
const integer x2 
) [friend]

Definition at line 243 of file integer.hpp.

00243                                                                           {
00244     integer r; mpz_xor (*r, *x1, *x2); return r; }

integer operator| ( const integer x1,
const integer x2 
) [friend]

Definition at line 240 of file integer.hpp.

00240                                                                           {
00241     integer r; mpz_ior (*r, *x1, *x2); return r; }

integer operator~ ( const integer x1  )  [friend]

Definition at line 246 of file integer.hpp.

00246                                                        {
00247     integer r; mpz_com (*r, *x1); return r; }

integer pow ( const integer x1,
const integer i 
) [friend]

Definition at line 924 of file integer.hpp.

00924                                                                   {
00925     ASSERT (i >= 0, "positive int expected");
00926     if (i == 0) return 1;
00927     if (x1 == 0) return 0;
00928     if (i == 1) return x1;
00929     if (x1 == 1) return x1;
00930     if (x1 == -1) return as_int (i & 1) ? -1 : 1;
00931     ASSERT (mpz_fits_ulong_p (*i), "exponent too large");
00932     integer r; mpz_pow_ui (*r, *x1, mpz_get_ui (*i));
00933     return r; }

integer pow ( const integer x1,
const nat i 
) [friend]

Definition at line 921 of file integer.hpp.

00921                                                               {
00922     integer r; mpz_pow_ui (*r, *x1, i); return r; }

integer pow ( const integer x1,
const int &  i 
) [friend]

Definition at line 917 of file integer.hpp.

00917                                                               {
00918     ASSERT (i >= 0, "positive int expected");
00919     integer r; mpz_pow_ui (*r, *x1, (nat) i); return r; }

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

Definition at line 694 of file integer.hpp.

00699 {

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

Definition at line 694 of file integer.hpp.

00699 {

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

Definition at line 693 of file integer.hpp.

00699 {

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

Definition at line 693 of file integer.hpp.

00699 {

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

Definition at line 692 of file integer.hpp.

00699 {

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

Definition at line 692 of file integer.hpp.

00699 {

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

Definition at line 689 of file integer.hpp.

00690                                                 {
00691     return quo (integer (x1), x2); }

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

Definition at line 686 of file integer.hpp.

00687                                                 {
00688     return quo (integer (x1), x2); }

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

Definition at line 684 of file integer.hpp.

00687 {

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

Definition at line 684 of file integer.hpp.

00687 {

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

Definition at line 683 of file integer.hpp.

00687 {

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

Definition at line 683 of file integer.hpp.

00687 {

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

Definition at line 682 of file integer.hpp.

00687 {

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

Definition at line 682 of file integer.hpp.

00687 {

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

Definition at line 678 of file integer.hpp.

00679                                                  {
00680     return (x2 < 0) ? - quo (x1, (unsigned long int) (-x2)) :
00681       quo (x1, (unsigned long int) x2); }

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

Definition at line 674 of file integer.hpp.

00675                                                    {
00676     if (x2 == 0) return x2;
00677     integer r; mpz_fdiv_q_ui (*r, *x1, x2); return r; }

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

Definition at line 136 of file integer.hpp.

00136                                                                    {
00137     if (mpz_sgn (*x2) == 0) return x2;
00138     integer r; mpz_fdiv_q (*r, *x1, *x2); return r; }

friend class rational [friend]

Definition at line 1018 of file integer.hpp.

integer raw_integer ( nat  limb_sz  )  [friend]

Definition at line 1029 of file integer.hpp.

01029                                          {
01030   return new integer_rep (limb_sz * BITS_PER_LIMB); }

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

Definition at line 741 of file integer.hpp.

00747 {

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

Definition at line 741 of file integer.hpp.

00747 {

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

Definition at line 740 of file integer.hpp.

00747 {

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

Definition at line 740 of file integer.hpp.

00747 {

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

Definition at line 739 of file integer.hpp.

00747 {

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

Definition at line 739 of file integer.hpp.

00747 {

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

Definition at line 736 of file integer.hpp.

00737                                          {
00738     return rem (integer (x1), x2, q); }

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

Definition at line 733 of file integer.hpp.

00734                                          {
00735     return rem (integer (x1), x2, q); }

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

Definition at line 731 of file integer.hpp.

00734 {

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

Definition at line 731 of file integer.hpp.

00734 {

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

Definition at line 730 of file integer.hpp.

00734 {

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

Definition at line 730 of file integer.hpp.

00734 {

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

Definition at line 729 of file integer.hpp.

00734 {

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

Definition at line 729 of file integer.hpp.

00734 {

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

Definition at line 725 of file integer.hpp.

00726                                          {
00727     integer r= rem (x1, (unsigned long int) abs (x2), q);
00728     if (x2 < 0) neg (q); return r; }

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

Definition at line 721 of file integer.hpp.

00722                                          {
00723     if (x2 == 0) { q= x2; return x1; }
00724     integer r; mpz_fdiv_qr_ui (*q, *r, *x1, x2); return r; }

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

Definition at line 716 of file integer.hpp.

00722 {

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

Definition at line 716 of file integer.hpp.

00722 {

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

Definition at line 715 of file integer.hpp.

00722 {

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

Definition at line 715 of file integer.hpp.

00722 {

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

Definition at line 714 of file integer.hpp.

00722 {

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

Definition at line 714 of file integer.hpp.

00722 {

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

Definition at line 711 of file integer.hpp.

00712                                                 {
00713     return rem (integer (x1), x2); }

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

Definition at line 708 of file integer.hpp.

00709                                                 {
00710     return rem (integer (x1), x2); }

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

Definition at line 706 of file integer.hpp.

00709 {

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

Definition at line 706 of file integer.hpp.

00709 {

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

Definition at line 705 of file integer.hpp.

00709 {

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

Definition at line 705 of file integer.hpp.

00709 {

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

Definition at line 704 of file integer.hpp.

00709 {

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

Definition at line 704 of file integer.hpp.

00709 {

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

Definition at line 702 of file integer.hpp.

00702                                                              {
00703     return rem (x1, (unsigned long int) abs (x2)); }

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

Definition at line 699 of file integer.hpp.

00699                                                                       {
00700     if (x2 == 0) return x1;
00701     integer r; mpz_fdiv_r_ui (*r, *x1, x2); return r; }

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

Definition at line 150 of file integer.hpp.

00151                                          {
00152     if (mpz_sgn (*x2) == 0) { q= x2; return x1; }
00153     integer r; mpz_fdiv_qr (*q, *r, *x1, *x2); return r; }

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

Definition at line 140 of file integer.hpp.

00140                                                                    {
00141     if (mpz_sgn (*x2) == 0) return x1;
00142     integer r; mpz_fdiv_r (*r, *x1, *x2); return r; }

integer round ( const integer x  )  [friend]

Definition at line 972 of file integer.hpp.

00972 { return x; }

integer rshiftz ( const integer x1,
nat  shift 
) [friend]

Definition at line 1002 of file integer.hpp.

01002                                                                {
01003     if (shift == 0) return x1;
01004     if ((GMP_LIMB_BITS * shift) / GMP_LIMB_BITS != shift) // overflow
01005       return rshiftz (rshiftz (x1, shift >> 1) , shift - (shift >> 1));
01006     integer r; mpz_fdiv_q_2exp (*r, *x1, GMP_LIMB_BITS * shift);
01007     return r; }

int sign ( const integer x1  )  [friend]

Definition at line 224 of file integer.hpp.

00224                                              {
00225     int r= mpz_sgn (*x1); return (r<0? -1: (r==0? 0: 1)); }

xnat size ( const integer x,
nat  base 
) [friend]

Definition at line 983 of file integer.hpp.

00983                                                        {
00984     return mpz_sizeinbase (*x, base); }

integer sqrt ( const integer a  )  [friend]

Definition at line 909 of file integer.hpp.

00909                                                 {
00910     VERIFY (is_square (a), "not a perfect square");
00911     integer r; mpz_sqrt (*r, *a); return r; }

integer square ( const integer x1  )  [friend]

Definition at line 122 of file integer.hpp.

00122                                                    {
00123     integer r; mpz_mul (*r, *x1, *x1); return r; }

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

Definition at line 614 of file integer.hpp.

00620 {

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

Definition at line 614 of file integer.hpp.

00620 {

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

Definition at line 613 of file integer.hpp.

00620 {

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

Definition at line 613 of file integer.hpp.

00620 {

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

Definition at line 612 of file integer.hpp.

00620 {

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

Definition at line 612 of file integer.hpp.

00620 {

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

Definition at line 607 of file integer.hpp.

00607                                                    {
00608     r.secure ();
00609     if (x1 < 0) { mpz_add_ui (*r, *x2, (unsigned long int) (-x1));
00610                   neg (r); }
00611     else          mpz_ui_sub (*r, (unsigned long int) x1, *x2); }

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

Definition at line 604 of file integer.hpp.

00604                                                             {
00605     r.secure (); mpz_ui_sub (*r, x1, *x2); }

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

Definition at line 601 of file integer.hpp.

00604 {

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

Definition at line 601 of file integer.hpp.

00604 {

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

Definition at line 600 of file integer.hpp.

00604 {

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

Definition at line 600 of file integer.hpp.

00604 {

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

Definition at line 599 of file integer.hpp.

00604 {

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

Definition at line 599 of file integer.hpp.

00604 {

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

Definition at line 595 of file integer.hpp.

00595                                                    {
00596     r.secure (); 
00597     if (x2 < 0) mpz_add_ui (*r, *x1, (unsigned long int) (-x2));
00598     else        mpz_sub_ui (*r, *x1, (unsigned long int) x2); }

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

Definition at line 592 of file integer.hpp.

00592                                                             {
00593     r.secure (); mpz_sub_ui (*r, *x1, x2); }

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

Definition at line 190 of file integer.hpp.

00190                                                          {
00191     r.secure (); mpz_sub (*r, *x1, *x2); }

integer trunc ( const integer x  )  [friend]

Definition at line 970 of file integer.hpp.

00970 { return x; }

xgcd_matrix<integer> xgcd ( const integer a,
const integer b 
) [friend]

Definition at line 949 of file integer.hpp.

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


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

Generated on 6 Dec 2012 for numerix by  doxygen 1.6.1