BigIntegers.Mesa
Copyright Ó 1988 by Xerox Corporation. All rights reserved.
James Rauen, June 20, 1988 4:34:50 pm PDT
James Rauen, July 16, 1988 5:11:25 pm PDT
BigIntegers:
CEDAR
DEFINITIONS =
BEGIN
BigINT: TYPE = REF BigINTBody;
BigINTBody: TYPE;
Sign: TYPE = {plus, minus};
BigFromRope: PROC [text: Rope.ROPE, base: [2..36] ← 10] RETURNS [BigINT];
RopeFromBig: PROC [big: BigINT, base: [2..36] ← 10] RETURNS [Rope.ROPE];
BigFromSmall: PROC [small: INT] RETURNS [BigINT];
SmallFromBig: PROC [big: BigINT] RETURNS [INT];
Add: PROC [big1, big2: BigINT] RETURNS [BigINT];
Sub: PROC [big1, big2: BigINT] RETURNS [BigINT];
Mul: PROC [big1, big2: BigINT] RETURNS [BigINT];
Div: PROC [big1, big2: BigINT] RETURNS [BigINT];
Mod: PROC [big1, big2: BigINT] RETURNS [BigINT];
Neg: PROC [big1: BigINT] RETURNS [BigINT];
Abs: PROC [big1: BigINT] RETURNS [BigCardinals.BigCARD];
Sgn: PROC [big1: BigINT] RETURNS [Sign]; -- sign of zero is plus --
BigFromBigCARD: PROC [bc: BigCardinals.BigCARD, sign: Sign] RETURNS [BigINT];
END.