Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Apropos / Subsearch:
optional field

MP(3X)                                                                  MP(3X)

       mp,  madd,  msub,  mult,  mdiv,  mcmp, min, mout, pow, gcd, rpow, itom,
       xtom, mtox, mfree - multiple precision integer arithmetic

       #include <&lt;mp.h>&gt;
       madd(a, b, c)
       MINT *a, *b, *c;
       msub(a, b, c)
       MINT *a, *b, *c;
       mult(a, b, c)
       MINT *a, *b, *c;
       mdiv(a, b, q, r)
       MINT *a, *b, *q, *r;
       MINT *a, *b;
       MINT *a;
       MINT *a;
       pow(a, b, c, d)
       MINT *a, *b, *c, *d;
       gcd(a, b, c)
       MINT *a, *b, *c;
       rpow(a, n, b)
       MINT *a, *b;
       short n;
       msqrt(a, b, r)
       MINT *a, *b, *r;
       sdiv(a, n, q, r)
       MINT *a, *q;
       short n, *r;
       MINT *itom(n)
       short n;
       MINT *xtom(s)
       char *s;
       char *mtox(a)
       MINT *a;
       void mfree(a)
       MINT *a;

       These routines perform arithmetic on integers of arbitrary length.  The
       integers  are  stored  using the defined type MINT.  Pointers to a MINT
       should be initialized using the function itom(), which sets the initial
       value  to  n.   Alternatively,  xtom() may be used to initialize a MINT
       from a string of hexadecimal digits.  mfree() may be  used  to  release
       the storage allocated by the itom() and xtom() routines.

       madd(), msub() and mult() assign to their third arguments the sum, dif-
       ference, and product,  respectively,  of  their  first  two  arguments.
       mdiv()  assigns  the quotient and remainder, respectively, to its third
       and fourth arguments.  sdiv() is like mdiv() except that the divisor is
       an  ordinary  integer.  msqrt produces the square root and remainder of
       its first argument.  mcmp() compares the values of  its  arguments  and
       returns  0  if  the two values are equal, a value greater than 0 if the
       first argument is greater than the second, and a value less than  0  if
       the  second  argument  is greater than the first.  rpow raises a to the
       nth power and assigns this value to b.   pow()  raises  a  to  the  bth
       power,  reduces the result modulo c and assigns this value to d.  min()
       and mout() do decimal input and output.  gcd() finds the greatest  com-
       mon divisor of the first two arguments, returning it in the third argu-
       ment.  mtox() provides the inverse of xtom().  To release  the  storage
       allocated by mtox(), use free() (see malloc(3V)).

       Use the -lmp loader option to obtain access to these functions.

       Illegal  operations and running out of memory produce messages and core



                               7 September 1989                         MP(3X)