I re-worked the program from lapack/ eispack "bisect" which
computes eigenvalues of a symmetric tridiagonal matrix (STM) so that
it runs in bigfloat arithmetic. it is in
http://www.cs.berkeley.edu/~fateman/lisp/bfbisect.lisp
and appears to be happy in GCL. testing it in your favorite version of
maxima
would require loading that file (optionally compiling), and running ?test();
Bisect is possibly the program of choice for STM
if you need only a set number n of eigenvalues in an interval, rather
than all of them.
Thanks to f2cl for producing a first cut. I also have a version that
runs using MPFR
(a c-coded bigfloat library). I loaded MPFR into Allegro Common Lisp for
this version;
loading MPFR into other lisps requires special attention and knowledge
that I don't
have. (I gather that GCL is particularly deficient in loading foreign
function libraries).
Comments, improvements, welcome.
RJF