# mp_min(3mp) [sunos man page]

```mp(3MP) 					       Multiple Precision Library Functions						   mp(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>

void mp_madd(MINT *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)  rou-
tines.

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, respec-
tively, 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)).

FILES
/usr/lib/libmp.so       shared object

ATTRIBUTES
See attributes(5) for descriptions of the following attributes:

+-----------------------------+-----------------------------+
|      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
+-----------------------------+-----------------------------+
|MT-Level		     |Unsafe			   |
+-----------------------------+-----------------------------+

exp(3M), malloc(3C), libmp(3LIB), attributes(5)

DIAGNOSTICS
Illegal operations and running out of memory produce messages and core images.

WARNINGS
The  function  pow() exists in both libmp and libm with widely differing semantics. This is the reason libmp.so.2 exists. libmp.so.1 exists
solely for reasons of backward compatibility, and should not be used otherwise. Use the	mp_*() functions instead.  See libmp(3LIB).

SunOS 5.10							    14 Nov 2002 							   mp(3MP)```

## Check Out this Related Man Page

```mp(3MP) 					       Multiple Precision Library Functions						   mp(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>

void mp_madd(MINT *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)  rou-
tines.

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, respec-
tively, 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)).

FILES
/usr/lib/libmp.so       shared object

ATTRIBUTES
See attributes(5) for descriptions of the following attributes:

+-----------------------------+-----------------------------+
|      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
+-----------------------------+-----------------------------+
|MT-Level		     |Unsafe			   |
+-----------------------------+-----------------------------+