NAG Library Routine Document

1Purpose

s15aef returns the value of the error function $\mathrm{erf}\left(x\right)$, via the function name.

2Specification

Fortran Interface
 Function s15aef ( x,
 Real (Kind=nag_wp) :: s15aef Integer, Intent (Inout) :: ifail Real (Kind=nag_wp), Intent (In) :: x
#include <nagmk26.h>
 double s15aef_ (const double *x, Integer *ifail)

3Description

s15aef calculates an approximate value for the error function
 $erfx = 2π ∫0x e-t2 dt = 1-erfcx .$
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{erf}\left(x\right)$ is based on the following rational Chebyshev expansion for $\mathrm{erf}\left(x\right)$:
 $erfx ≈ xRℓ,m x2 ,$
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{erf}\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 ≈ ex2 Rℓ,m x ;$
and for $\left|x\right|>4$ it is based on the expansion
 $erfcx ≈ ex2 x 1π + 1x2 Rℓ,m 1/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 x02bef).
For $\left|x\right|\ge {x}_{\mathrm{hi}}$ there is a danger of setting underflow in $\mathrm{erfc}\left(x\right)$ (the value of ${x}_{\mathrm{hi}}$ is given in the Users' Note for your implementation). For $x\ge {x}_{\mathrm{hi}}$, s15aef returns $\mathrm{erf}\left(x\right)=1$; for $x\le -{x}_{\mathrm{hi}}$ it returns $\mathrm{erf}\left(x\right)=-1$.

4References

NIST Digital Library of Mathematical Functions
Cody W J (1969) Rational Chebyshev approximations for the error function Math.Comp. 23 631–637

5Arguments

1:     $\mathbf{x}$ – Real (Kind=nag_wp)Input
On entry: the argument $x$ of the function.
2:     $\mathbf{ifail}$ – IntegerInput/Output
On entry: ifail must be set to $0$, . If you are unfamiliar with this argument you should refer to Section 3.4 in How to Use the NAG Library and its Documentation for details.
For environments where it might be inappropriate to halt program execution when an error is detected, the value  is recommended. If the output of error messages is undesirable, then the value $1$ is recommended. Otherwise, if you are not familiar with this argument, the recommended value is $0$. When the value  is used it is essential to test the value of ifail on exit.
On exit: ${\mathbf{ifail}}={\mathbf{0}}$ unless the routine detects an error or a warning has been flagged (see Section 6).

6Error Indicators and Warnings

There are no failure exits from s15aef. The argument ifail has been included for consistency with other routines in this chapter.

8Parallelism and Performance

s15aef is not threaded in any implementation.

None.

10Example

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

10.1Program Text

Program Text (s15aefe.f90)

10.2Program Data

Program Data (s15aefe.d)

10.3Program Results

Program Results (s15aefe.r)