; ******************************************************************
; Fibonacci Number Generator
; ******************************************************************
; Algorithm from: http://everything2.com/e2node/Fibonacci%2520number

#EMULATOR c:\ti-59\prg2\fib\fib.t59
#LISTING c:\ti-59\prg2\fib\fib.lst
#POCKETPC c:\ti-59\prg2\fib\fib.ti

lbl a
inv stf 1
sto 1 adv "N___ line>> rcl 1 mixline                 ; n -> R01, print n
/ 2 = int * 2 = x%t rcl 1 eq jump1
stf 1                                                ; if uneven stf 1

jump1:
$1.618033988 + . 7 5 ee 0 9 +/- = sto 2 inv ee       ; a -> R02
$.618033988 + . 7 5 EE 0 9 +/- = +/- sto 3 inv ee    ; b -> R03


rcl 2 - rcl 3 = sto 4                                ; a-b -> R04
rcl 2 yx rcl 1 = sto 5                               ; a^n -> R05


rcl 3 +/- yx rcl 1 = 
inv iff 1 jump3 +/-                                  ; if uneven make negative

jump3:
sto 6                                                ; b^n -> R04

rcl 5 - rcl 6 = sto 7 "F(N) line>> rcl 7             ; a^n - b^n -> R07

/ rcl 4 = fix 0 ee inv ee fix 9 

mixline r/s                                          ; F(n), print F(n)



 
#end
