f2cl, cernlib, and maxima (Re: [Maxima] Release plans)



>>>>> "Ole" == Ole Rohne <ole.rohne@cern.ch> writes:

    Ole> I'm under the impression that CERNLIB is not very rich in the
    Ole> special-function area; I recall having resorted to TOMS for things
    Ole> like complex gamma function and hypergeometric stuff (CERNLIB is the
    Ole> default around here :-). Maybe I just didn't look hard enough...

Well, we already have a complex gamma function, created from scratch.

I think CERNLIB has the special functions that maxima wants to use
like Bessel functions, and some exponential integrals.  In fact,
CERNLIB is the only place I know of that has functions for elliptical
integrals with complex arguments.

    Ole> CERNLIB is not just plain FORTRAN-77, at least it doesn't look like
    Ole> it. The #ifdef's are there to make it run on whatever platform CERN
    Ole> has used almost since 1954:-) I guess you can handle this with 
    Ole> $ cpp -DCERNLIB_LINUX -DCERNLIB_UNIX -DCERNLIB_LNX -DCERNLIB_QMGLIBC

Yep.

    Ole> The CERNLIB functions generally depend on common "utilities" for error
    Ole> reporting etc, but that might not be so much the case in mathlib. At
    Ole> any rate, such "utilities" would have to be dealt with manually
    Ole> because blindly translating everything could lead to a terrible bloat.

I have not looked into this, and I think if it were needed, I'd just
write the core error routines in lisp so that we do something sensible
in the context of maxima.

    >> I'm open to suggestions for other sources.  

    Ole> SLATEC is in www.netlib.org and seems complete, but I couldn't find
    Ole> out about the copyright/licensing policy. Actually, this is a somewhat
    Ole> annoying issue with TOMS - you really have to look hard to find out it
    Ole> is copyright ACM.

I will try to contact the ACM about licensing some of the TOMS
routines for our use and pass the information to this list.

    Ole> Emacs calc is serious business even though it might not sound like it.
    Ole> It is definitively GPL but the code seems more appropriate for a
    Ole> (future) arbitrary precision floating point project.

Didn't know calc could do that.  Could probably translate (or even
take as is) the lisp code and run it.  Arbitrary precision would fit
in quite nicely with maxima.

But the bessel routines only have 8 digits of accuracy, according to
the docs.  Maxima already has that, so this doesn't help. :-)

Ray