aboutsummaryrefslogtreecommitdiffstats
path: root/forth/fib.fth
blob: 671528a486519f33125851e51715d45bf68c2056 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
: fib ( n -- d )
  >r 0 dup 1 0 r> 0 do
  2dup 2>r 2swap 6 sys 2r> 2swap loop 2drop ;

: fibtest ( n -- )
  0 do i fib <# #s #> type space loop ;

: fibbench ( n -- )
  5 sys fib 5 sys >r 2drop r> ;

variable avg 0 avg !
2000 constant iters

: bench ( -- )
  iters 0 do 100 fibbench avg +! loop
  avg @ iters / avg ! ;

bench ." avg time: " avg @ . ." us" cr
bye