home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 91 / af091a.adf / af91a3.lzx / prgs / BenchMarks / Ackermann.b next >
Text File  |  2018-01-23  |  584b  |  34 lines

  1. '..Ackermann's function benchmark.
  2. '..It's also a good test of recursion.
  3.  
  4. defint a,j,m,n,v
  5.  
  6. sub Ackermann(m,n)
  7.  if m=0 then 
  8.    Ackermann=n+1
  9.    exit sub
  10.  else
  11.    if n=0 then 
  12.      Ackermann(m-1,1)
  13.    else
  14.      Ackermann(m-1,Ackermann(m,n-1))
  15.    end if
  16.  end if
  17. end sub
  18.  
  19. '...main
  20. k=16
  21. k1=1
  22. for n=1 to 2
  23.  t1=timer
  24.  j=Ackermann(3,n)
  25.  t2=timer
  26.  print j
  27.  if j<>k-3 then print "wrong value -> should be:";k-3
  28.  print "Net CPU time for Ackermann( 3 ,";n;") is";t2-t1;"seconds."
  29.  Num.calls!=(512*k1-15*k+9*n+37)/3
  30.  print "CPU time per call";(t2-t1)/num.calls!;"seconds."
  31.  k1=4*k1
  32.  k=2*k
  33. next
  34.