While looking at some old mail messages and what not, I started to
think about a few small things.
First, it seems that maxima now requires gcl in ANSI mode. (Is that
right?) If so, gcl ansi-mode has conditions, I think. Can we start
thinking about signaling better conditions? The immediate use of this
is in adaptive plotting. It treats any kind of error as a singularity
and tries to refine the plot. So if you do something like
plot2d(bessel_j[0](x)) (Note: it should be bessel_j(0,x)!), the
adaptive plotter just generates a bunch of points but ends up plotting
nothing, because no numbers were returned. And until you realize
what's happening, you'll think it's a bug in plot2d.
Second, while playing with the elliptic functions and integrals, I
noticed that many of the numerical algorithms there are not specific
to a float implementation. They are, in fact, valid for bigfloats,
complex, and even bigfloat complex values.
But hand writing a version for each of these is a pain. I was
thinking that since every lisp we support has CLOS, could we not use
CLOS to define a bigfloat class and a complex-bigfloat class and add a
few methods to compute the basic functions for these classes? The
bigfloat class would basically use the current bigfloat routines. The
complex-bigfloat would just be the obvious extension.
What do people think about this?
Ray