# omout(3) [osf1 man page]

```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 initial value to n.  After that, space is managed automatically by the
routines.

The madd(), msub() , and mult() functions assign to c the sum, difference, and product, respectively, of a and b.

The mdiv() function assigns to q and r the quotient and remainder obtained 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 reduced 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 using file f, and m_in() and m_out do input and  output  with  arbitrary

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)```

## Check Out this Related Man Page

```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 initial value to n.  After that, space is managed automatically by the
routines.

The madd(), msub() , and mult() functions assign to c the sum, difference, and product, respectively, of a and b.

The mdiv() function assigns to q and r the quotient and remainder obtained 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 reduced 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 using file f, and m_in() and m_out do input and  output  with  arbitrary

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)```
Man Page