im_w_of_x(3) Faddeeva's rescaled complex error function

Other Alias



#include <cerf.h>

double _Complex w_of_z ( double _Complex z );

double im_w_of_x ( double x );


Faddeeva's rescaled complex error function w(z), also called the plasma dispersion function.

w_of_z returns w(z) = exp(-z^2) * erfc(-i*z).

im_w_of_x returns Im[w(x)].


Project web site:


To compute w(z), a combination of two algorithms is used:

For sufficiently large |z|, a continued-fraction expansion similar to those described by Gautschi (1970) and Poppe & Wijers (1990).

Otherwise, Algorithm 916 by Zaghloul & Ali (2011), which is generally competitive at small |z|, and more accurate than the Poppe & Wijers expansion in some regions, e.g. in the vicinity of z=1+i.

To compute Im[w(x)], Chebyshev polynomials and continous fractions are used.

Milton Abramowitz and Irene M. Stegun, ``Handbook of Mathematical Functions'', National Bureau of Standards (1964): Formula (7.1.3) introduces the nameless function w(z).

Walter Gautschi, ``Efficient computation of the complex error function,'' SIAM J. Numer. Anal. 7, 187 (1970).

G. P. M. Poppe and C. M. J. Wijers, ``More efficient computation of the complex error function,'' ACM Trans. Math. Soft. 16, 38 (1990).

Mofreh R. Zaghloul and Ahmed N. Ali, ``Algorithm 916: Computing the Faddeyeva and Voigt Functions,'' ACM Trans. Math. Soft. 38, 15 (2011).

Steven G. Johnson, (accessed January 2013).


Please report bugs to the authors.


Steven G. Johnson [],
  Massachusetts Institute of Technology,
  researched the numerics, and implemented the Faddeeva function.

Joachim Wuttke <[email protected]>, Forschungszentrum Juelich,
  reorganized the code into a library, and wrote this man page.


Copyright (c) 2012 Massachusetts Institute of Technology

Copyright (c) 2013 Forschungszentrum Juelich GmbH

Software: MIT License.

This documentation: Creative Commons Attribution Share Alike.