NAG Library Function Document
nag_complex_erfc (s15ddc)
1 Purpose
nag_complex_erfc (s15ddc) computes values of the function , for Complex .
2 Specification
#include <nag.h> |
#include <nags.h> |
Complex |
nag_complex_erfc (Complex z,
NagError *fail) |
|
3 Description
nag_complex_erfc (s15ddc) computes values of the function
, where
is the complementary error function
for Complex
. The method used is that in
Gautschi (1970) for
in the first quadrant of the complex plane, and is extended for
in other quadrants via the relations
and
. Following advice in
Gautschi (1970) and
van der Laan and Temme (1984), the code in
Gautschi (1969) has been adapted to work in various precisions up to
decimal places. The real part of
is sometimes known as the Voigt function.
4 References
Gautschi W (1969) Algorithm 363: Complex error function Comm. ACM 12 635
Gautschi W (1970) Efficient computation of the complex error function SIAM J. Numer. Anal. 7 187–198
van der Laan C G and Temme N M (1984) Calculation of special functions: the gamma function, the exponential integrals and error-like functions CWI Tract 10 Centre for Mathematics and Computer Science, Amsterdam
5 Arguments
- 1:
– ComplexInput
-
On entry: the argument of the function.
- 2:
– NagError *Input/Output
-
The NAG error argument (see
Section 2.7 in How to Use the NAG Library and its Documentation).
6 Error Indicators and Warnings
- NE_ALLOC_FAIL
-
Dynamic memory allocation failed.
See
Section 2.3.1.2 in How to Use the NAG Library and its Documentation for further information.
- 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.
An unexpected error has been triggered by this function. Please contact
NAG.
See
Section 2.7.6 in How to Use the NAG Library and its Documentation for further information.
- NE_NO_LICENCE
-
Your licence key may have expired or may not have been installed correctly.
See
Section 2.7.5 in How to Use the NAG Library and its Documentation for further information.
- NE_RESULT_HALF_PRECISION
-
Result has less than half precision when entered with argument .
- NE_RESULT_IMAGINARY_OVERFLOW
-
Imaginary part of result overflows when entered with argument .
- NE_RESULT_NO_PRECISION
-
Result has no precision when entered with argument .
- NE_RESULT_OVERFLOW
-
Both real and imaginary parts of result overflow when entered with argument .
- NE_RESULT_REAL_OVERFLOW
-
Real part of result overflows when entered with argument .
7 Accuracy
The accuracy of the returned result depends on the argument
. If
lies in the first or second quadrant of the complex plane (i.e.,
is greater than or equal to zero), the result should be accurate almost to
machine precision, except that there is a limit of about
decimal places on the achievable accuracy because constants in the function are given to this precision. With such arguments,
fail can only return as
NE_NOERROR.
If however
is less than zero, accuracy may be lost in two ways; firstly, in the evaluation of
, if
is large, in which case a warning will be issued through
NE_RESULT_HALF_PRECISION or
NE_RESULT_NO_PRECISION; and secondly, near the zeros of the required function, where precision is lost due to cancellation, in which case no warning is given – the result has absolute accuracy rather than relative accuracy. Note also that in this half-plane, one or both parts of the result may overflow – this is signalled through
NE_RESULT_IMAGINARY_OVERFLOW,
NE_RESULT_OVERFLOW or
NE_RESULT_REAL_OVERFLOW.
8 Parallelism and Performance
nag_complex_erfc (s15ddc) is not threaded in any implementation.
The time taken for a call of nag_complex_erfc (s15ddc) depends on the argument , the time increasing as .
nag_complex_erfc (s15ddc) may be used to compute values of
and
for Complex
by the relations
,
. (For double arguments,
nag_erfc (s15adc) and
nag_erf (s15aec) should be used.)
10 Example
This example reads values of the argument from a file, evaluates the function at each value of and prints the results.
10.1 Program Text
Program Text (s15ddce.c)
10.2 Program Data
Program Data (s15ddce.d)
10.3 Program Results
Program Results (s15ddce.r)