<> <> <> <> <<>> DIRECTORY BigCardinals USING [BigCARD], Rope USING [ROPE]; 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.