cerfc3
Complex error functions
Usage
double complex
cerf
(
double
complex
z
);
double complex
cerfc
(
double
complex
z
);
Overview
The function cerf is the complex version of the error function: erf(z) = 2/sqrt(pi) * integral from 0 to z of exp(-t*t) dt.
The complementary complex error function cerfc is defined as erfc(z) = 1-cerf(z).
Accuracy
Errors are given in units of eps = 2^-53 = 1.1e-16, as relative deviations of the modulus from high-precision reference values.
Both functions are computed from Faddeeva's function w_of_z(3) through the factor exp(-z^2), as erfc(z) = exp(-z^2) w(iz) and erf(z) = 1 - erfc(z), with the exponent -z^2 carried as an unevaluated sum of two doubles. Where exp(-z^2) overflows although the product with w does not, the modulus of the factor is taken in scaled form and the scale applied to the product, so that both functions cover their full range and return an infinity only where the value itself exceeds the double format.
The error is not controlled. For Re z < 0, w(iz) is obtained by reflection, and cancellation must be expected (see w_of_z(3)); near the zeros of erfc, the first of which lie at z = -1.3548 +- 1.9915i, the relative error of cerfc is unbounded. cerf shares the error of cerfc in absolute terms, so that its relative error is unbounded near the zeros of erf, the first of which lie at z = +-1.4506 +- 1.8809i, and reaches about 120 eps close to the origin, for 0.01 < |z| < 0.1 off the coordinate axes, where the Maclaurin series is not used.
References
Joachim Wuttke, "libcerf, complex error function and related functions reimplemented with relative accuracy guarantees" (unpublished manuscript, available upon request) documents the algorithms of this library and derives their error bounds.
Contact
Please report bugs to the maintainer:
Joachim Wuttke <[email protected]>
Copying
Copyright (c) 2012 Massachusetts Institute of Technology
Copyright (c) 2013 Forschungszentrum Juelich GmbH
Software: MIT License.
This documentation: Creative Commons Attribution Share Alike.
History
- Arch Linux 2026-11-01: the text shown here
- Debian 13 (Trixie)
- Debian 12 (Bookworm) to Debian 8 (Jessie)
- Debian 7 (Wheezy)
- Debian 6.0 (Squeeze)
- Debian 5.0 (Lenny)
- Debian 4.0 (Etch)
- Debian 3.1 (Sarge)