Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

Chapter Contents
Chapter Introduction
NAG Toolbox

## Purpose

nag_specfun_erfc_real (s15ad) returns the value of the complementary error function, $\mathrm{erfc}\left(x\right)$, via the function name.

## Syntax

[result, ifail] = nag_specfun_erfc_real(x)

## Description

nag_specfun_erfc_real (s15ad) calculates an approximate value for the complement of the error function
 $erfcx=2π∫x∞e-t2dt=1-erfx.$
Let $\stackrel{^}{x}$ be the root of the equation $\mathrm{erfc}\left(x\right)-\mathrm{erf}\left(x\right)=0$ (then $\stackrel{^}{x}\approx 0.46875$). For $\left|x\right|\le \stackrel{^}{x}$ the value of $\mathrm{erfc}\left(x\right)$ is based on the following rational Chebyshev expansion for $\mathrm{erf}\left(x\right)$:
 $erfx≈xRℓ,mx2,$
where ${R}_{\ell ,m}$ denotes a rational function of degree $\ell$ in the numerator and $m$ in the denominator.
For $\left|x\right|>\stackrel{^}{x}$ the value of $\mathrm{erfc}\left(x\right)$ is based on a rational Chebyshev expansion for $\mathrm{erfc}\left(x\right)$: for $\stackrel{^}{x}<\left|x\right|\le 4$ the value is based on the expansion
 $erfcx≈ex2Rℓ,mx;$
and for $\left|x\right|>4$ it is based on the expansion
 $erfcx≈ex2x1π+1x2Rℓ,m1/x2.$
For each expansion, the specific values of $\ell$ 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)).
For $\left|x\right|\ge {x}_{\mathrm{hi}}$ there is a danger of setting underflow in $\mathrm{erfc}\left(x\right)$. For $x\ge {x}_{\mathrm{hi}}$, nag_specfun_erfc_real (s15ad) returns $\mathrm{erfc}\left(x\right)=0$; for $x\le -{x}_{\mathrm{hi}}$ it returns $\mathrm{erfc}\left(x\right)=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:     $\mathrm{x}$ – double scalar
The argument $x$ of the function.

None.

### Output Parameters

1:     $\mathrm{result}$ – double scalar
The result of the function.
2:     $\mathrm{ifail}$int64int32nag_int scalar
${\mathbf{ifail}}={\mathbf{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 argument ifail has been included for consistency with other functions in this chapter.

## Accuracy

If $\delta$ and $\epsilon$ 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 $\frac{2x{e}^{-{x}^{2}}}{\sqrt{\pi }\mathrm{erfc}\left(x\right)}$ in the result.
The behaviour of this factor is shown in Figure 1.
Figure 1
It should be noted that near $x=0$ this factor behaves as $\frac{2x}{\sqrt{\pi }}$ and hence the accuracy is largely determined by the machine precision. Also for large negative $x$, where the factor is $\text{}\sim \frac{x{e}^{-{x}^{2}}}{\sqrt{\pi }}$, accuracy is mainly limited by machine precision. However, for large positive $x$, the factor becomes $\text{}\sim 2{x}^{2}$ and to an extent relative accuracy is necessarily lost. The absolute accuracy $E$ is given by
 $E≃2xe-x2πδ$
so absolute accuracy is guaranteed for all $x$.

None.

## Example

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

x = [-10   -1     0    1     10];
n = size(x,2);
result = x;

for j=1:n
end

disp('      x         erfc(x)');
fprintf('%12.3e%12.3e\n',[x; result]);

```
```s15ad example results

x         erfc(x)
-1.000e+01   2.000e+00
-1.000e+00   1.843e+00
0.000e+00   1.000e+00
1.000e+00   1.573e-01
1.000e+01   2.088e-45
```