man pages section 3: Extended Library Functions, Volume 2

Updated: Thursday, June 13, 2019

mp_mout (3MP)

Name

mp, mp_madd, mp_msub, mp_mult, mp_mdiv, mp_mcmp, mp_min, mp_mout, mp_pow, mp_gcd, mp_rpow, mp_msqrt, mp_sdiv, mp_itom, mp_xtom, mp_mtox, mp_mfree - multiple precision integer arithmetic

Synopsis

cc [ flag... ]
file... –lmp [ library... ]
#include <mp.h>

a, MINT *b,
MINT *c);
void mp_msub(MINT *
a, MINT *b
, MINT *c);
void mp_mult(MINT *
a, MINT *b
, MINT *c);
void mp_mdiv(MINT *
a, MINT *b
, MINT *q,
MINT *r);
int mp_mcmp(MINT *
a, MINT *b
);
int mp_min(MINT *
a);
void mp_mout(MINT *
a);
void mp_pow(MINT *
a, MINT *b
, MINT *c,
MINT *d);
void mp_gcd(MINT *
a, MINT *b
, MINT *c);
void mp_rpow(MINT *
a, short n
, MINT *b);
int mp_msqrt(MINT *
a, MINT *b
, MINT *r);
void mp_sdiv(MINT *
a, short n
, MINT *q,
short *r);
MINT * mp_itom(short
n);
MINT * mp_xtom(char *
a);
char * mp_mtox(MINT *
a);
void mp_mfree(MINT *
a);

Description

These functions 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 mp_itom(n), which sets the initial value to n. Alternatively, mp_xtom(a) may be used to initialize a MINT from a string of hexadecimal digits. mp_mfree( a) may be used to release the storage allocated by the mp_itom(a) and mp_xtom(a) routines.

The mp_madd(a, b,c), mp_msub( a,b,c) and mp_mult(a, b,c) functions assign to their third arguments the sum, difference, and product, respectively, of their first two arguments. The mp_mdiv( a,b,q, r) function assigns the quotient and remainder, respectively, to its third and fourth arguments. The mp_sdiv( a,n,q, r) function is similar to mp_mdiv( a,b,q, r) except that the divisor is an ordinary integer. The mp_msqrt(a, b,r) function produces the square root and remainder of its first argument. The mp_mcmp( a,b) function 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. The mp_rpow(a,n, b) function raises a to the nth power and assigns this value to b. The mp_pow(a,b ,c,d) function raises a to the bth power, reduces the result modulo c and assigns this value to d. The mp_min( a) and mp_mout(a) functions perform decimal input and output. The mp_gcd (a,b, c) function finds the greatest common divisor of the first two arguments, returning it in the third argument. The mp_mtox( a) function provides the inverse of mp_xtom(a) . To release the storage allocated by mp_mtox( a) use free() (see malloc(3C)).

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

Files

/usr/lib/libmp.so

shared object

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
MT-Level
Unsafe