nag_erfcx (s15agc) (PDF version)
s Chapter Contents
s Chapter Introduction
NAG Library Manual

NAG Library Function Document

nag_erfcx (s15agc)

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

nag_erfcx (s15agc) returns the value of the scaled complementary error function erfcxx.

2  Specification

#include <nag.h>
#include <nags.h>
double  nag_erfcx (double x, NagError *fail)

3  Description

nag_erfcx (s15agc) calculates an approximate value for the scaled complementary error function
erfcxx = e x2 erfcx = 2 π e x2 x e-t2 dt = e x2 1- erfx .
Let x^ be the root of the equation erfcx-erfx=0 (then x^0.46875). For xx^ the value of erfcxx 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 erfcxx 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 nag_decimal_digits (X02BEC)).
Asymptotically, erfcxx1/πx. There is a danger of setting underflow in erfcxx whenever xxhi=minxhuge,1/πxtiny, where xhuge is the largest positive model number (see nag_real_largest_number (X02ALC)) and xtiny is the smallest positive model number (see nag_real_smallest_number (X02AKC)). In this case nag_erfcx (s15agc) exits with fail.code= NW_HI and returns erfcxx=0. For x in the range 1/2εx<xhi, where ε is the machine precision, the asymptotic value 1/πx is returned for erfcxx and nag_erfcx (s15agc) exits with fail.code= NW_REAL.
There is a danger of setting overflow in ex2 whenever x<xneg=-logxhuge/2. In this case nag_erfcx (s15agc) exits with fail.code= NW_NEG and returns erfcxx=xhuge.
The values of xhi, 1/2ε and xneg are given in the Users' Note for your implementation.

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  Arguments

1:     xdoubleInput
On entry: the argument x of the function.
2:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.
NW_HI
On entry, x=value and the constant xhi=value.
Constraint: x<xhi.
NW_NEG
On entry, x=value and the constant xneg=value.
Constraint: xxneg.
NW_REAL
On entry, x was in the interval value,value where erfcxx is approximately 1/π*x: x=value.

7  Accuracy

The relative error in computing erfcxx may be estimated by evaluating
E= erfcxx - ex2 n=1 Inerfcx erfcxx ,
where In denotes repeated integration. Empirical results suggest that on the interval x^,2 the loss in base b significant digits for maximum relative error is around 3.3, while for root-mean-square relative error on that interval it is 1.2 (see nag_real_base (X02BHC) for the definition of the model parameter b). On the interval 2,20 the values are around 3.5 for maximum and 0.45 for root-mean-square relative errors; note that on these two intervals erfcx is the primary computation. See also Section 7 in nag_erfc (s15adc).

8  Parallelism and Performance

Not applicable.

9  Further Comments

None.

10  Example

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

10.1  Program Text

Program Text (s15agce.c)

10.2  Program Data

Program Data (s15agce.d)

10.3  Program Results

Program Results (s15agce.r)


nag_erfcx (s15agc) (PDF version)
s Chapter Contents
s Chapter Introduction
NAG Library Manual

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