Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cc(1)

intro(3)

itom(3mp)

mout(3mp)



MADD(3MP)               COMMAND REFERENCE               MADD(3MP)



NAME
     madd, msub, mult, mdiv, pow, rpow, gcd, invert, msqrt, sdiv
     - multiple precision integer arithmetic

SYNOPSIS
     cc ... -lmp

     #include <mp.h>

     madd(a, b, c)
     msub(a, b, c)
     mult(a, b, c)
     mdiv(a, b, q, r)
     pow(a, b, m, c)
     gcd(a, b, c)
     invert(a, b, c)
     msqrt(a, b, r)
     MINT *a, *b, *c, *m, *q,

     rpow(a, b, c)
     MINT *a, *c;
     int b;

     sdiv (a, n, q, r)
     MINT *a, *q;
     int n;
     short *r;

DESCRIPTION
     These routines perform arithmetic on integers of arbitrary
     length.  The integers are stored using the defined type
     MINT, which is found in /usr/include/mp.h.

     The subroutine madd calculates the sum of its first two
     arguments and places the result in the third.

     The subroutine msub calculates the difference of its first
     two arguments and places the result in the third.

     The subroutine mult calculates the product of its first two
     arguments and places the result in the third.

     The subroutine mdiv divides its first two arguments and
     places the quotient in the third and the remainder in the
     fourth.

     The subroutine rpow calulates the first argument raised to
     the power of the second argument and places the result in
     the third argument.

     The subroutine pow calulates the first argument raised to
     the power of the second argument modulo the third argument,



Printed 3/13/89                                                 1





MADD(3MP)               COMMAND REFERENCE               MADD(3MP)



     and places the result in the fourth argument.

     The subroutine gcd calculates the greatest common divisor of
     the first two arguments and places the result in the third.

     The subroutine invert calculates the modular inverse of the
     first argument modulus the second argument and places it in
     the third.

     The subroutine msqrt calculates the closest perfect square
     that is less than or equal to the first argument and places
     the square root in the second argument.  The difference
     between the first argument and the perfect square found is
     placed in the third argument.  Thus, (`arg2' * `arg2') +
     `arg3' = arg1.

     The subroutine sdiv is the same as mdiv, except that the
     divisor is an integer instead of a multiple precision
     integer.

CAVEATS
     All arguments should be initialized by using the subroutine
     itom(3mp).

SEE ALSO
     cc(1), intro(3), itom(3mp), and mout(3mp).





























Printed 3/13/89                                                 2



%%index%%
na:288,156;
sy:444,2408;
de:2852,1321;4533,1034;
ca:5567,174;
se:5741,199;
%%index%%000000000108

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026