Access to a family of Gauss error functions for arbitrary complex arguments is provided via the 'Faddeeva' package by Steven G. Johnson (see < http://ab-initio.mit.edu/wiki/index.php/Faddeeva_Package> for more information).
Wrapper to the Faddeeva Package by Steven G. Johnson
The Faddeeva package provides C++ code to compute the various error functions of arbitrary complex arguments, in particular the Faddeeva function, error function, complementary error function, scaled complementary error function and imaginary error function as well as the Dawson function. With these, Voigt functions, Fresnel integrals and more can be computed.
The package was created to provide a fast implementation of the Voigt lineshape, formally defined as the convolution between a Lorentzian and a Gaussian. The imaginary part of the Faddeeva function, properly scaled, provides directly the result.
This package also results in a nice example for creating Rcpp wrappers for a small and self-contained C++ library, in this case a single header file along with a single code file.
Baptiste Auguié and Dirk Eddelbuettel
GPL (>= 2)