aboutsummaryrefslogtreecommitdiffstats
path: root/forth/fib.fth
blob: 3efdd2c2e8760e3ffcda4afa889cb2a20e46710c (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 !
1000 constant iters

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

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