%begin
!option "-nocheck-nodiag-nostack"
%ownintegerarray a(0:16)=0(9),7,2986,38537,185816,233545,92113,28978,0
%ownintegerarray b(0:16)=0(*)
%integer i,c,t1=0,t2=0,tim=0,t
%integerarray x(0:16,0:16)
  t = cputime
  x(0,0)=1
  %for i = 0,1,16 %cycle
    x(i,i) = 1; x(i,0) = 1
  %repeat
  %for i = 2,1,16 %cycle
    %for c = 1,1,i-1 %cycle
      x(i,c) = x(i-1,c-1)+x(i-1,c)
    %repeat
  %repeat
  write(cputime-t,0); newline

%routine f(%integer l,e)
c = x(l,e)<<1-1; %return
  c = c+1
  %returnif e=0 %or e=l
  l = l-1
  f(l,e-1); f(l,e)
%end

%for i = 0,1,16 %cycle
  write(i,2)
  c = 0
  t = cputime; f(16,i); tim = cputime-t+tim
  b(i) = (c+1)>>1
  t1=t1+c;t2=t2+b(i)
  write(c,6); write(b(i),6); write(a(i),6)
  print(a(i)/b(i),6,3) %unless b(i)=0; newline
%repeat
write(t2,16); newline
write(tim,0); newline
%end
