The quadpack routines are checked in now. I've added a few of the fixes
to slatec mentioned previously. I think some more work needs to be done
here, though.
Currently, the only user-visible interface is
quad_qags(f, var, low, high [, epsrel [, limit]])
which returns a list of 4 elements:
[value, estimated abs err, # of function evals, error code]
The main integrators are:
qng Non adaptive
qag General adaptive
qags General adaptive with singularities
qagp General adaptive with user-provided singularities
qagi General adaptive over an infinite interval
qawc Cauchy principal value of f/(x-c)
qawf Fourier integral of f*w, w = sin/cos (omega*x)
qawo Like qawf, but interval is finite
qaws Adaptive integration of f*w for certain weight functions
w
Right now, I'm just make the maxima names be quad_<integrator>. The
interface will be as simple as possible, and the return values will be
the same as quad_qags.
I'm open to suggestions on what arguments these functions should take
and what they should return.
Also, since these are in Lisp, it opens up the possibility of doing
multiple integrals adaptively, which isn't really possible with the
Fortran versions. (Fortran 77 doesn't allow recursion.)
Ray