hide long namesshow long names
hide short namesshow short names
Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

NAG Toolbox: nag_specfun_erfc_real (s15ad)

Purpose

nag_specfun_erfc_real (s15ad) returns the value of the complementary error function, erfc(x)erfc(x), via the function name.

Syntax

[result, ifail] = s15ad(x)
[result, ifail] = nag_specfun_erfc_real(x)

Description

nag_specfun_erfc_real (s15ad) calculates an approximate value for the complement of the error function
erfc(x) = 2/(sqrt(π))et2dt = 1erf(x).
x
erfc(x)=2πxe-t2dt=1-erf(x).
Let x^ be the root of the equation erfc(x)erf(x) = 0erfc(x)-erf(x)=0 (then 0.46875x^0.46875). For |x||x|x^ the value of erfc(x)erfc(x) is based on the following rational Chebyshev expansion for erf(x)erf(x):
erf(x)xR,m(x2),
erf(x)xR,m(x2),
where R,mR,m denotes a rational function of degree  in the numerator and mm in the denominator.
For |x| > |x|>x^ the value of erfc(x)erfc(x) is based on a rational Chebyshev expansion for erfc(x)erfc(x): for < |x|4x^<|x|4 the value is based on the expansion
erfc(x)ex2R,m(x);
erfc(x)ex2R,m(x);
and for |x| > 4|x|>4 it is based on the expansion
erfc(x)(ex2)/x(1/(sqrt(π)) + 1/(x2)R,m(1 / x2)).
erfc(x)ex2x(1π+1x2R,m(1/x2)).
For each expansion, the specific values of  and mm are selected to be minimal such that the maximum relative error in the expansion is of the order 10d10-d, where dd is the maximum number of decimal digits that can be accurately represented for the particular implementation (see nag_machine_decimal_digits (x02be)).
For |x|xhi|x|xhi there is a danger of setting underflow in erfc(x)erfc(x). For xxhixxhi, nag_specfun_erfc_real (s15ad) returns erfc(x) = 0erfc(x)=0; for xxhix-xhi it returns erfc(x) = 2erfc(x)=2.

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

Parameters

Compulsory Input Parameters

1:     x – double scalar
The argument xx of the function.

Optional Input Parameters

None.

Input Parameters Omitted from the MATLAB Interface

None.

Output Parameters

1:     result – double scalar
The result of the function.
2:     ifail – int64int32nag_int scalar
ifail = 0ifail=0 unless the function detects an error (see [Error Indicators and Warnings]).

Error Indicators and Warnings

There are no failure exits from nag_specfun_erfc_real (s15ad). The parameter ifail has been included for consistency with other functions in this chapter.

Accuracy

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

Further Comments

None.

Example

function nag_specfun_erfc_real_example
x = -10;
[result, ifail] = nag_specfun_erfc_real(x)
 

result =

     2


ifail =

                    0


function s15ad_example
x = -10;
[result, ifail] = s15ad(x)
 

result =

     2


ifail =

                    0



PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2013