Manual Page Result
0
Command: mcmp | Section: 3 | Source: Digital UNIX | File: mcmp.3.gz
mp(3) Library Functions Manual mp(3)
NAME
madd, msub, mult, mdiv, gcd, invert, rpow, msqrt, mcmp, min, omin,
fmin, m_in, mout, omout, fmout, m_out, sdiv, itom - Performs multiple
precision integer arithmetic
LIBRARY
Object Code Library (libmp.a)
SYNOPSIS
#include <mp.h> #include <stdio.h>
typedef struct mint { int len; short *val; } MINT; madd( MINT *a,
MINT *b, MINT *c );
msub( MINT *a, MINT *b, MINT *c );
mult( MINT *a, MINT *b, MINT *c );
mdiv( MINT *a, MINT *b, MINT *q, MINT *r );
pow( MINT *a, MINT *b, MINT *m, MINT *c );
gcd( MINT *a, MINT *b, MINT *c );
invert( MINT *a, MINT *b, MINT *c );
rpow( MINT *a, int n, MINT *c );
msqrt( MINT *a, MINT *b, MINT *r );
mcmp( MINT *a, MINT *b );
move( MINT *a, MINT *b );
min( MINT *a );
omin( MINT *a );
fmin( MINT *a, FILE *f );
m_in( MINT *a, int n, FILE *f );
mout( MINT *a );
omout( MINT *a );
fmout( MINT *a, FILE *f );
m_out( MINT *a, int n, FILE *f );
sdiv( MINT *a, short n, MINT *q, short *r );
*itom( short n );
DESCRIPTION
These functions perform arithmetic on integers of arbitrary length.
The integers are stored using the defined type MINT. Pointers to a
MINT can be initialized using the itom() function, which sets the ini-
tial value to n. After that, space is managed automatically by the
routines.
The madd(), msub() , and mult() functions assign to c the sum, differ-
ence, and product, respectively, of a and b.
The mdiv() function assigns to q and r the quotient and remainder ob-
tained from dividing a by b. The sdiv() function is like the mdiv()
function except that the divisor is a short integer n and the remainder
is placed in a short integer whose address is given as r.
The msqrt() function produces the integer square root of a in b and
places the remainder in r.
The rpow() function calculates in c the value of a raised to the
(``regular'' integral) power n, while the pow() function calculates
this with a full multiple precision exponent b and the result is re-
duced modulo m.
The gcd() function returns the greatest common denominator of a and b
in c, and the invert() function computes c such that a*c mod b = 1, for
a and b relatively prime.
The mcmp() function returns a negative, zero, or positive integer value
when a is less than, equal to, or greater than b, respectively.
The move() function copies a to b.
The min() and mout() functions do decimal input and output while the
omin() and omout() functions do octal input and output. More gener-
ally, the fmin() and fmout() functions do decimal input and output us-
ing file f, and m_in() and m_out do input and output with arbitrary
radix n.
On input, records should have the form of strings of digits terminated
by a newline; output records have a similar form.
NOTES
Programs which use the multiple-precision arithmetic library must be
compiled with -lmp. delim off
mp(3)