real procedure cputime;
inline("my_dsa.retval.u.real val = (double)clock() / (double)CLOCKS_PER_SEC;");
begin
comment library 1;
integer
i,
j,
k,
k1;
real
t1,
t2;
integer procedure ackermann(m, n);
value
m,
n;
integer
m,
n;
ackermann :=
if m = 0 then
n + 1
else if n = 0 then
ackermann(m - 1, 1)
else
ackermann(m - 1, ackermann(m, n - 1));
k := 16;
k1 := 1;
for i := 1 step 1 until 6 do
begin
t1 := cputime;
j := ackermann(3, i);
t2 := cputime;
if j != k - 3 then
begin
outreal(1, i);
outreal(1, j)
end;
outreal(1, t2 - t1);
outreal(1, 3 * (t2 - t1) / (512 * k1 - 15 * k + 9 * i + 37) );
k1 := 4 * k1;
k := 2 * k;
end
end