There are differences between fib and fastfib. For one, fastfib
is a Maxima function and fib is a CL function. To avoid changing (
$fib...) to (mfuncall '$fib ...) in all CL code, I think fastfib would
need to be re-written in CL. Also:
(%i2) fib(-7);
(%o2) 13
(%i3) fastfib(-7);
(%o3) 1
(%i4) fib(x);
(%o4) fib(x)
(%i5) fastfib(x);
Maxima encountered a Lisp error:
(%i6) fib(12.3);
(%o6) fib(12.3)
(%i7) fastfib(12.3);
Maxima encountered a Lisp error:
These differences would need to be fixed / resolved too. The
$prevfib scheme looks like a misfeature, but who knows, there might be
code out there that uses it. (Actually the ffib code in combin looks
broken, but I wasn't able to find a bug.)
Barton