BEGIN
REAL X, Y, Z;
COMMENT LIBRARY A6, A30;
COMMENT A6, A30 ARE THE STANDARD
FUNCTIONS AND INPUT/OUTPUT ROUTINES;
REALPROCEDURE CPUTIME; EXTERNAL REALCPUTIME;
INTEGER I, N, K, L, M, CASE;
INTEGERARRAY E1[1 : 1], E2[1 : 1,
1 : 1], E3[1 : 1, 1 : 1, 1 : 1];
PROCEDURE P0;
;
PROCEDURE P1(X);
VALUE X;
REAL X;
;
PROCEDURE P2(X, Y);
VALUE X, Y;
REAL X, Y;
;
PROCEDURE P3(X, Y, Z);
VALUE X, Y, Z;
REAL X, Y, Z;
;
ARRAY TT[1 : 43];
PROCEDURE PRINTTT;
BEGIN
INTEGER I;
REAL X, MIX, LOOP;
COMMENT CALCULATE AND PRINT TIME DIFFERENCES;
FOR I := 1 STEP 1 UNTIL 42 DO
BEGIN
TT[I] := X := TT[I + 1] - TT[I];
OUTREAL(99, X)
END ;
COMMENT CALCULATE ALGOL MIX FIGURE AS FROM CCU11,
MAKING ALLOWANCE FOR STATEMENT REPETITIONS;
LOOP := X;
MIX := 0.0;
I := 1;
FOR X := 1000,
875,
769,
3337,
6242,
2750,
187.5,
125,
430,
995.6,
160.3,
384.6,
500,
166.7,
1390,
154.5,
442,
4759,
5321,
148,
4759,
0,
59,
59,
39,
.73,
201,
94,
1020,
1490,
278,
831,
644,
1750,
591,
27.3,
454.5,
788,
2316,
2316,
6053 DO
BEGIN
MIX := MIX + (TT[I] - LOOP) * X / N;
I := I + 1
END ;
MIX := MIX + LOOP * 17800 / N;
OUTREAL(99, 6524512 / MIX)
END ;
X := Y := Z := 1.0;
L := K := M := 1;
E1[1] := 1;
CASE := 1;
N := 10000;
COMMENT N SHOULD BE GIVEN A LARGE ENOUGH VALUE FOR
THE RESOLUTION OF THE CLOCK NOT TO BE A LIMITING
FACTOR TO THE ACCURACY. IF N IS MADE TOO LARGE, THEN
PROCESSOR TIME WILL BE WASTED;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := 1.0;
X := 1.0;
X := 1.0;
X := 1.0;
X := 1.0;
X := 1.0;
X := 1.0;
X := 1.0;
X := 1.0;
X := 1.0;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := 1;
X := 1;
X := 1;
X := 1;
X := 1;
X := 1;
X := 1;
X := 1;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := Y;
X := Y;
X := Y;
X := Y;
X := Y;
X := Y;
X := Y;
X := Y;
X := Y;
X := Y;
X := Y;
X := Y;
X := Y;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := Y + Z;
X := Y + Z;
X := Y + Z;
X := Y + Z;
X := Y + Z;
X := Y + Z;
X := Y + Z;
X := Y + Z;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := Y * Z;
X := Y * Z;
X := Y * Z;
X := Y * Z;
X := Y * Z;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := Y / Z;
X := Y / Z;
X := Y / Z;
X := Y / Z;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
K := 1;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
K := 1.0;
K := 1.0;
K := 1.0;
K := 1.0;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
K := L + M;
K := L + M;
K := L + M;
K := L + M;
K := L + M;
K := L + M;
K := L + M;
K := L + M;
K := L + M;
K := L + M;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
K := L * M;
K := L * M;
K := L * M;
K := L * M;
K := L * M;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
K := L DIV M;
K := L DIV M;
K := L DIV M;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
K := L;
K := L;
K := L;
K := L;
K := L;
K := L;
K := L;
K := L;
K := L;
K := L;
K := 1;
K := 1;
K := L;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := L;
X := L;
X := L;
X := L;
X := L;
X := L;
X := L;
X := L;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
L := Y;
L := Y;
L := Y;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := Y**2;
X := Y**2;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := Y**3;
X := Y**3;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
X := Y**Z;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
E1[1] := 1;
E1[1] := 1;
E1[1] := 1;
E1[1] := 1;
E1[1] := 1;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
E2[1, 1] := 1;
E2[1, 1] := 1;
E2[1, 1] := 1;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
E3[1, 1, 1] := 1;
E3[1, 1, 1] := 1;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
L := E1[1];
L := E1[1];
L := E1[1];
L := E1[1];
L := E1[1];
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
BEGIN
REAL A;
END ;
BEGIN
REAL A;
END ;
BEGIN
REAL A;
END ;
BEGIN
REAL A;
END ;
BEGIN
REAL A;
END ;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
ARRAY A[1 : 1];
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
ARRAY A[1 : 500];
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
ARRAY A[1 : 1, 1 : 1];
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
ARRAY A[1 : 1, 1 : 1, 1 : 1];
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
GOTO L0;
L0 :;
GOTO L1;
L1 :;
GOTO L2;
L2 :;
GOTO L3;
L3 :;
GOTO L4;
L4 :;
GOTO L5;
L5 :;
GOTO L6;
L6 :;
GOTO L7;
L7 :;
GOTO L8;
L8 :;
GOTO L9;
L9 :;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
SWITCH SS := PQ;
GOTO SS[1];
PQ :;
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
X := SIN(Y);
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
X := COS(Y);
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := ABS(Y);
X := ABS(Y);
X := ABS(Y);
X := ABS(Y);
X := ABS(Y);
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
X := EXP(Y);
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
X := LN(Y);
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
X :=SQRT(Y);
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
X := ARCTAN(Y);
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := SIGN(Y);
X := SIGN(Y);
X := SIGN(Y);
END ;
TT[CASE] := CPUTIME;
CASE := CASE+1;
FOR I := 1 STEP 1 UNTIL N DO
BEGIN
X := ENTIER(Y);
X := ENTIER(Y);
END ;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
P0;
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
P1(X);
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
P2(X, Y);
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
P3(X, Y, Z);
TT[CASE] := CPUTIME;
CASE := CASE + 1;
FOR I := 1 STEP 1 UNTIL N DO
;
TT[CASE] := CPUTIME;
PRINTTT;
END