Some random thoughts on future features



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