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_erfcx_real (s15ag)


    1  Purpose
    2  Syntax
    7  Accuracy
    9  Example


nag_specfun_erfcx_real (s15ag) returns the value of the scaled complementary error function erfcxx, via the function name.


[result, ifail] = s15ag(x)
[result, ifail] = nag_specfun_erfcx_real(x)


nag_specfun_erfcx_real (s15ag) 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:
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
and for x>4 it is based on the expansion
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_machine_decimal_digits (x02be)).
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_machine_real_largest (x02al)) and xtiny is the smallest positive model number (see nag_machine_real_smallest (x02ak)). In this case nag_specfun_erfcx_real (s15ag) exits with ifail=1 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_specfun_erfcx_real (s15ag) exits with ifail=2.
There is a danger of setting overflow in ex2 whenever x<xneg=-logxhuge/2. In this case nag_specfun_erfcx_real (s15ag) exits with ifail=3 and returns erfcxx=xhuge.
The values of xhi, 1/2ε and xneg are given in the Users' Note for your implementation.


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


Compulsory Input Parameters

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

Optional Input Parameters


Output Parameters

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

Error Indicators and Warnings

Note: nag_specfun_erfcx_real (s15ag) may return useful information for one or more of the following detected errors or warnings.
Errors or warnings detected by the function:

Cases prefixed with W are classified as warnings and do not generate an error of type NAG:error_n. See nag_issue_warnings.

W  ifail=1
Constraint: x<xhi.
W  ifail=2
On entry, x was in the interval _,_ where erfcxx is approximately 1/π*x: .
W  ifail=3
Constraint: xxneg.
An unexpected error has been triggered by this routine. Please contact NAG.
Your licence key may have expired or may not have been installed correctly.
Dynamic memory allocation failed.


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_machine_model_base (x02bh) 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 Accuracy in nag_specfun_erfc_real (s15ad).

Further Comments



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

fprintf('s15ag example results\n\n');

x = [-30.0; -6.0; -4.5; -1.0; 1.0; 4.5; 6.0; 7.0e7];

% Catch non-zero ifails
wstat = warning();

result = zeros(8, 1);
ifail  = zeros(8, 1, 'int64');
for i=1:8
  [result(i), ifail(i)] = s15ag(x(i));
fprintf('       x       erfcx(x)    ifail\n');
for i=1:8
  fprintf('%10.2e %13.5e     %d\n', x(i), result(i), ifail(i));


s15ag example results

       x       erfcx(x)    ifail
 -3.00e+01  1.79769e+308     3
 -6.00e+00   8.62246e+15     0
 -4.50e+00   1.24593e+09     0
 -1.00e+00   5.00898e+00     0
  1.00e+00   4.27584e-01     0
  4.50e+00   1.22485e-01     0
  6.00e+00   9.27766e-02     0
  7.00e+07   8.05985e-09     2

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–2015