The routine may be called by the names s15agf or nagf_specfun_erfcx_real.
s15agf calculates an approximate value for the scaled complementary error function
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).
Asymptotically, . There is a danger of setting underflow in whenever , where is the largest positive model number (see x02alf) and is the smallest positive model number (see x02akf). In this case s15agf exits with and returns . For in the range , where is the machine precision, the asymptotic value is returned for and s15agf exits with .
There is a danger of setting overflow in whenever . In this case s15agf exits with and returns .
The values of , and are given in the Users' Note for your implementation.
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 since useful values can be provided in some output arguments even when on exit. 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
If on entry or , explanatory error messages are output on the current error message unit (as defined by x04aaf).
Errors or warnings detected by the routine:
Note: in some cases s15agf may return useful information.
On entry, and the constant .
On entry, was in the interval where is approximately : .
On entry, and the constant .
An unexpected error has been triggered by this routine. Please
See Section 7 in the Introduction to the NAG Library FL Interface for further information.
Your licence key may have expired or may not have been installed correctly.
See Section 8 in the Introduction to the NAG Library FL Interface for further information.
Dynamic memory allocation failed.
See Section 9 in the Introduction to the NAG Library FL Interface for further information.
The relative error in computing may be estimated by evaluating
where denotes repeated integration. Empirical results suggest that on the interval the loss in base significant digits for maximum relative error is around , while for root-mean-square relative error on that interval it is (see x02bhf for the definition of the model parameter ). On the interval the values are around for maximum and for root-mean-square relative errors; note that on these two intervals is the primary computation. See also Section 7 in s15adf.
8Parallelism and Performance
Background information to multithreading can be found in the Multithreading documentation.
s15agf is not threaded in any implementation.
This example reads values of the argument from a file, evaluates the function at each value of and prints the results.