Next: , Previous: gslint, Up: gslint


D.7.1 gslint input parameters

The library functions qng and qagx take an argument of the form (f,(a,b)), where f is a function to be integrated, a is the lower limit, and b is the upper limit, both limits being floating point numbers as in math.

The qng_tol and qagx_tol functions take an argument of the form ((f,t),(a,b)), where f, a, and b are as above, and t is a specified tolerance.

The qagp and qagp_tol functions take arguments of the form (f,p) and ((f,t),p), respectively, where f and t are as above, and p is an ordered list of real numbers specifying the limits of integration along with arbitrarily many intervening breakpoints.

The integrand f is expressed in virtual machine code, and takes a single real argument to a real result. The argument and result of f are required to be floating point numbers as described in math. Any expressible function of this type is acceptable, even one defined in terms of other integrals, so that a double or triple integral can be expressed easily, albeit a costly computation. However, a constant overhead in stack space is required for each nested library function call, and there is currently no mechanism to prevent segmentation faults due to a stack overflow.

When no tolerance is specified, as with qng, qagx, and qagp, the tightest attainable tolerance is chosen by default, currently 2e-14, in order find the most accurate result possible. A selection of progressively looser tolerances is tried automatically if the tightest one is not successful, stopping when either a solution is found or ten orders of magnitude are covered.

If a tolerance is explicitly specified, as with qng_tol, qagx_tol or qagp_tol, only that tolerance is tried.