mp(3BSD) (BSD System Compatibility) mp(3BSD)
NAME
mp: madd, msub, mult, mdiv, mcmp, min, mout, pow, gcd, rpow,
msqrt, sdiv, itom, xtom, mtox, mfree - (BSD) multiple
precision integer arithmetic
SYNOPSIS
/usr/ucb/cc [flag . . . ] file . . .
#include <mp.h>
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);
mcmp(MINT *a,MINT *b);
min(MINT *a);
mout(MINT *a);
pow(MINT *a, MINT *b, MINT *c, MINT *d);
gcd(MINT *a, MINT *b, MINT *c);
rpow(MINT *a, short n, MINT *b);
msqrt(MINT *a, MINT *b, MINT *r);
sdiv(MINT *a, short n, MINT *q, short r);
MINT *itom(short n);
MINT *xtom(char *s);
char *mtox(MINT *a);
void mfree(MINT *a);
DESCRIPTION
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,
difference, 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, >0 if the first argument is greater than
the second, and <0 if the second argument is greater than the
first. rpow calculates a raised to the power b, while pow
calculates this reduced modulo m. min and mout do decimal
input and output. gcd finds the greatest common divisor of
Copyright 1994 Novell, Inc. Page 1
mp(3BSD) (BSD System Compatibility) mp(3BSD)
the first two arguments, returning it in the third argument.
mtox provides the inverse of xtom. To release the storage
allocated by mtox, use free [see malloc(3C)].
Return Values
Invalid operations and running out of memory produce messages
and core images.
REFERENCES
malloc(3C)
Copyright 1994 Novell, Inc. Page 2