home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1989-10-06 | 1.9 KB | 75 lines |
-
- (* SAC Digit definition module. *)
-
- DEFINITION MODULE SACD;
-
-
- (* Import lists and Definitions *)
-
- FROM MASSTOR IMPORT LIST;
-
-
- VAR THETA, ZETA, DELTA, ETA, EPSIL: LIST;
-
-
- TABP2: ARRAY[1..64] OF LIST;
-
-
- PROCEDURE BITRAN(): LIST;
- (*Bit, random. b is a random bit, 0 or 1.*)
-
-
- PROCEDURE DEGCD(AL,BL: LIST; VAR CL,UL,VL: LIST);
- (*Digit extended greatest common divisor. a and b are beta-integers,
- a ge b ge 0. c=GCD(a,b), a beta-integer. a*u+b*v=c, with
- ABS(u) le b/2c, ABS(v) le a/2c.*)
-
-
- PROCEDURE DGCD(AL,BL: LIST): LIST;
- (*Digit greatest common divisor. a and b are beta-integers,
- a ge b ge 0. c=GCD(a,b).*)
-
-
- PROCEDURE DLOG2(AL: LIST): LIST;
- (*Digit logarithm, base 2. a is a beta-digit. If a=0 then n=0.
- otherwise n=FLOOR(LOG2(ABS(a)))+1.*)
-
-
- PROCEDURE DPCC(AL1,AL2: LIST; VAR UL,ULP,VL,VLP: LIST);
- (*Digit partial cosequence calculation. a1 and a2 are beta-integers,
- a1 ge a2 gt 0. u, up, v and vp are the last cosequence elements
- of a1 and a2 which can be guaranteed to correspond to correct
- quotient digits.*)
-
-
- PROCEDURE DPR(AL,BL: LIST; VAR CL,DL: LIST);
- (*Digit product. a and b are beta-digits. c and d are the unique
- beta-digits such that a*b=c*beta+d and c*d ge 0.*)
-
-
- PROCEDURE DQR(AL1,AL0,BL: LIST; VAR QL,RL: LIST);
- (*Digit quotient and remainder. a1, a0 and b are beta-integers with
- a1*a0 ge 0 and ABS(b) gt ABS(a1). q is the integral part of
- (a1*beta+a0)/b and r is (a1*beta+a0)-b*q. q and r are
- beta-integers.*)
-
-
- PROCEDURE DRAN(): LIST;
- (*Digit, random. a is a random beta-digit.*)
-
-
- PROCEDURE DRANN(): LIST;
- (*Digit, random non-negative. a is a random non-negative beta-digit.
- Caution, the low-order bits of a are not very random.*)
-
-
- PROCEDURE DSQRTF(AL: LIST; VAR BL,TL: LIST);
- (*Digit square root function. a is a non-negative beta-integer.
- b is the floor function of the square root of a and t is the sign
- of a-b*b.*)
-
-
- END SACD.
-
-
-