S15ADF (PDF version)
S Chapter Contents
S Chapter Introduction
NAG Library Manual

NAG Library Routine Document

S15ADF

Note:  before using this routine, please read the Users' Note for your implementation to check the interpretation of bold italicised terms and other implementation-dependent details.

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

S15ADF returns the value of the complementary error function, erfcx, via the function name.

2  Specification

FUNCTION S15ADF ( X, IFAIL)
REAL (KIND=nag_wp) S15ADF
INTEGER  IFAIL
REAL (KIND=nag_wp)  X

3  Description

S15ADF calculates an approximate value for the complement of the error function
erfcx=2πxe-t2dt=1-erfx.
Let x^ be the root of the equation erfcx-erfx=0 (then x^0.46875). For xx^ the value of erfcx is based on the following rational Chebyshev expansion for erfx:
erfxxR,mx2,
where R,m denotes a rational function of degree  in the numerator and m in the denominator.
For x>x^ the value of erfcx is based on a rational Chebyshev expansion for erfcx: for x^<x4 the value is based on the expansion
erfcxex2R,mx;
and for x>4 it is based on the expansion
erfcxex2x1π+1x2R,m1/x2.
For each expansion, the specific values of  and m are selected to be minimal such that the maximum relative error in the expansion is of the order 10-d, where d is the maximum number of decimal digits that can be accurately represented for the particular implementation (see X02BEF).
For xxhi there is a danger of setting underflow in erfcx (the value of xhi is given in the Users' Note for your implementation). For xxhi, S15ADF returns erfcx=0; for x-xhi it returns erfcx=2.

4  References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications
Cody W J (1969) Rational Chebyshev approximations for the error function Math.Comp. 23 631–637

5  Parameters

1:     X – REAL (KIND=nag_wp)Input
On entry: the argument x of the function.
2:     IFAIL – INTEGERInput/Output
On entry: IFAIL must be set to 0, -1​ or ​1. If you are unfamiliar with this parameter you should refer to Section 3.3 in the Essential Introduction for details.
For environments where it might be inappropriate to halt program execution when an error is detected, the value -1​ or ​1 is recommended. If the output of error messages is undesirable, then the value 1 is recommended. Otherwise, if you are not familiar with this parameter, the recommended value is 0. When the value -1​ or ​1 is used it is essential to test the value of IFAIL on exit.
On exit: IFAIL=0 unless the routine detects an error or a warning has been flagged (see Section 6).

6  Error Indicators and Warnings

There are no failure exits from S15ADF. The parameter IFAIL has been included for consistency with other routines in this chapter.

7  Accuracy

If δ and ε are relative errors in the argument and result, respectively, then in principle
ε 2x e -x2 πerfcx δ .
That is, the relative error in the argument, x, is amplified by a factor 2xe-x2 πerfcx  in the result.
The behaviour of this factor is shown in Figure 1.
Figure 1
Figure 1
It should be noted that near x=0 this factor behaves as 2xπ  and hence the accuracy is largely determined by the machine precision. Also for large negative x, where the factor is xe-x2π , accuracy is mainly limited by machine precision. However, for large positive x, the factor becomes 2x2 and to an extent relative accuracy is necessarily lost. The absolute accuracy E is given by
E2xe-x2πδ
so absolute accuracy is guaranteed for all x.

8  Further Comments

None.

9  Example

This example reads values of the argument x from a file, evaluates the function at each value of x and prints the results.

9.1  Program Text

Program Text (s15adfe.f90)

9.2  Program Data

Program Data (s15adfe.d)

9.3  Program Results

Program Results (s15adfe.r)


S15ADF (PDF version)
S Chapter Contents
S Chapter Introduction
NAG Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012