Annotation of 43BSDTahoe/man/man3/mp.3, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1986 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)mp.3x       6.4 (Berkeley) 6/4/86
                      6: .\"
                      7: .TH MP 3X "June 4, 1986"
                      8: .UC 6
                      9: .SH NAME
                     10: madd, msub, mult, mdiv, pow, gcd, invert, rpow, msqrt, mcmp,
                     11: move, min, omin, fmin, m_in, mout, omout, fmout, m_out, sdiv, itom
                     12: \- multiple precision integer arithmetic
                     13: .SH SYNOPSIS
                     14: .nf
                     15: .B #include <mp.h>
                     16: .B #include <stdio.h>
                     17: .PP
                     18: .B "typedef struct mint { int len; short *val; } MINT;"
                     19: .PP
                     20: .B madd(a, b, c)
                     21: .B msub(a, b, c)
                     22: .B mult(a, b, c)
                     23: .B mdiv(a, b, q, r)
                     24: .B pow(a, b, m, c)
                     25: .B gcd(a, b, c)
                     26: .B invert(a, b, c)
                     27: .B rpow(a, n, c)
                     28: .B msqrt(a, b, r)
                     29: .B mcmp(a, b)
                     30: .B move(a, b)
                     31: .B min(a)
                     32: .B omin(a)
                     33: .B fmin(a, f)
                     34: .B m_in(a, n, f)
                     35: .B mout(a)
                     36: .B omout(a)
                     37: .B fmout(a, f)
                     38: .B m_out(a, n, f)
                     39: .B MINT *a, *b, *c, *m, "*q, *r;"
                     40: .B FILE *f;
                     41: .B int n;
                     42: .PP
                     43: .B sdiv(a, n, q, r)
                     44: .B MINT *a, *q;
                     45: .B short n;
                     46: .B short *r;
                     47: .PP
                     48: .B MINT *itom(n)
                     49: .SH DESCRIPTION
                     50: These routines perform arithmetic on integers of
                     51: arbitrary length.
                     52: The integers are stored using the defined type
                     53: .IR MINT .
                     54: Pointers to a
                     55: .I MINT
                     56: can be initialized using the function
                     57: .I itom
                     58: which sets the initial value to
                     59: .IR n .
                     60: After that, space is managed automatically by the routines.
                     61: .PP
                     62: .IR madd , " msub " and " mult"
                     63: assign to
                     64: .I c
                     65: the sum, difference and
                     66: product, respectively, of
                     67: .IR a " and " b .
                     68: .I mdiv
                     69: assigns to
                     70: .IR q " and " r
                     71: the quotient and remainder obtained
                     72: from dividing
                     73: .IR a " by " b.
                     74: .I sdiv
                     75: is like
                     76: .I mdiv
                     77: except that the divisor is a short integer
                     78: .I n
                     79: and the remainder is placed in a short
                     80: whose address is given as
                     81: .IR r .
                     82: .I msqrt
                     83: produces the integer square root of
                     84: .IR a " in " b
                     85: and places the remainder in
                     86: .IR r .
                     87: .I rpow
                     88: calculates in
                     89: .I c
                     90: the value of
                     91: .I a
                     92: raised to the (``regular'' integral) power
                     93: .IR n ,
                     94: while
                     95: .I pow
                     96: calculates this with a full multiple precision exponent
                     97: .I b
                     98: and the result is reduced modulo
                     99: .IR m .
                    100: .I gcd
                    101: returns the greatest common denominator of
                    102: .IR a " and " b " in " c ,
                    103: and
                    104: .I invert
                    105: computes
                    106: .IR c " such that " a*c " mod " b " = 1,"
                    107: for
                    108: .IR a " and " b
                    109: relatively prime.
                    110: .I mcmp
                    111: returns a negative, zero or positive integer value when
                    112: .I a
                    113: is less than, equal to or greater than
                    114: .IR b ,
                    115: respectively.
                    116: .I move
                    117: copies
                    118: .IR a " to " b .
                    119: .IR min " and " mout
                    120: do decimal input and output while
                    121: .IR omin " and " omout
                    122: do octal input and output.
                    123: More generally,
                    124: .IR fmin " and " fmout
                    125: do decimal input and output using file
                    126: .IR f ,
                    127: and
                    128: .IR m_in " and " m_out
                    129: do I/O with arbitrary radix
                    130: .IR n .
                    131: On input, records should have the form of
                    132: strings of digits terminated by a newline;
                    133: output records have a similar form.
                    134: .PP
                    135: Programs which use the multiple-precision arithmetic library
                    136: must be loaded using the loader flag
                    137: .IR \-lmp .
                    138: .SH FILES
                    139: .ta 2i
                    140: /usr/include/mp.h      include file
                    141: .br
                    142: /usr/lib/libmp.a       object code library
                    143: .SH SEE ALSO
                    144: dc(1), bc(1)
                    145: .SH DIAGNOSTICS
                    146: Illegal operations and running out of memory
                    147: produce messages and core images.
                    148: .SH BUGS
                    149: Bases for input and output should be <= 10.
                    150: .PP
                    151: .IR dc (1)
                    152: and
                    153: .IR bc (1)
                    154: don't use this library.
                    155: .PP
                    156: The input and output routines are a crock.
                    157: .PP
                    158: .I pow
                    159: is also the name of a standard math library routine.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.