Internal changes have been made to this routine in some implementations at Mark 27.1.1.
This document reflects the updated routine.
The documentation of the Mark 27.1(.0) implementation is also available here.
The routine may be called by the names s15aef or nagf_specfun_erf_real.
s15aef calculates an approximate value for the error function
Unless stated otherwise in the Users' Note, s15aef calls the error function supplied by the compiler used for your implementation; as such, details of the underlying algorithm should be obtained from the documentation supplied by the compiler vendor. The following discussion only applies if the Users' Note for your implementation indicates that the compiler's supplied function was not available.
Let be the root of the equation (then ). For the value of is based on the following rational Chebyshev expansion for :
where denotes a rational function of degree in the numerator and in the denominator.
For the value of is based on a rational Chebyshev expansion for : for the value is based on the expansion
and for it is based on the expansion
For each expansion, the specific values of and are selected to be minimal such that the maximum relative error in the expansion is of the order , where is the maximum number of decimal digits that can be accurately represented for the particular implementation (see x02bef).
For there is a danger of setting underflow in
(the value of is given in the Users' Note for your implementation). For , s15aef returns ; for it returns .
Cody W J (1969) Rational Chebyshev approximations for the error function Math.Comp.23 631–637
1: – Real (Kind=nag_wp)Input
On entry: the argument of the function.
2: – IntegerInput/Output
On entry: ifail must be set to , or to set behaviour on detection of an error; these values have no effect when no error is detected.
A value of causes the printing of an error message and program execution will be halted; otherwise program execution continues. A value of means that an error message is printed while a value of means that it is not.
If halting is not appropriate, the value or is recommended. If message printing is undesirable, then the value is recommended. Otherwise, the value is recommended. When the value or is used it is essential to test the value of ifail on exit.
On exit: unless the routine detects an error or a warning has been flagged (see Section 6).
6Error Indicators and Warnings
There are no failure exits from s15aef. The argument ifail has been included for consistency with other routines in this chapter.