Faddeeva function


The Faddeeva function or Kramp function is a scaled complex complementary error function,
It is related to the Fresnel integral, to Dawson's integral, and to the Voigt function.
The function arises in various physical problems in describing electromagnetic response in complicated media.

Real and imaginary parts

The decomposition into real and imaginary parts is usually written
where V and L are called the real and imaginary Voigt functions, since V is the Voigt profile.

Sign inversion

For sign-inverted arguments, the following both apply:
and
where * denotes complex conjugate.

Relation to the complementary error function

Faddeeva function evaluated on imaginary arguments equals the scaled complementary error function :
where erfc is the complementary error function. For large real x:

Integral representation

The Faddeeva function occurs as
meaning that it is a convolution of a Gaussian with a simple pole.

History

The function was tabulated by Vera Faddeeva and N. N. Terent'ev in 1954. It appears as nameless function w in Abramowitz and Stegun, formula 7.1.3. The name Faddeeva function was apparently introduced by G. P. M. Poppe and C. M. J. Wijers in 1990; previously, it was known as Kramp's function.
Early implementations used methods by Walter Gautschi or by J. Humlicek. A more efficient algorithm was proposed by Poppe and Wijers. J.A.C. Weideman proposed a particularly short algorithm that takes no more than eight lines of MATLAB code. Zaghloul and Ali pointed out deficiencies of previous algorithms and proposed a new one. Another algorithm has been proposed by M. Abrarov and B.M. Quine.

Implementations

Two software implementations, which are free for non-commercial use only, were published in ACM Transactions on Mathematical Software as Algorithm 680 and Algorithm 916 by Zaghloul and Ali.
A free and open source C or C++ implementation derived from a combination of Algorithm 680 and Algorithm 916 is also available under the MIT License,, and is maintained as a library package libcerf.
This implementation is also available as a plug-in for Matlab, GNU Octave, and in Python via Scipy as scipy.special.wofz.