Optimized implementations of rational approximations for the Voigt and complex error function

Rational functions are frequently used as efficient yet accurate numerical approximations for real and complex valued functions. For the complex error function w( x+i y), whose real part is the Voigt function K( x, y), code optimizations of rational approximations are investigated. An assessment of...

Full description

Saved in:
Bibliographic Details
Published inJournal of quantitative spectroscopy & radiative transfer Vol. 112; no. 6; pp. 1010 - 1025
Main Author Schreier, Franz
Format Journal Article
LanguageEnglish
Published Elsevier Ltd 01.04.2011
Subjects
Online AccessGet full text
ISSN0022-4073
1879-1352
DOI10.1016/j.jqsrt.2010.12.010

Cover

More Information
Summary:Rational functions are frequently used as efficient yet accurate numerical approximations for real and complex valued functions. For the complex error function w( x+i y), whose real part is the Voigt function K( x, y), code optimizations of rational approximations are investigated. An assessment of requirements for atmospheric radiative transfer modeling indicates a y range over many orders of magnitude and accuracy better than 10 −4. Following a brief survey of complex error function algorithms in general and rational function approximations in particular the problems associated with subdivisions of the x, y plane (i.e., conditional branches in the code) are discussed and practical aspects of Fortran and Python implementations are considered. Benchmark tests of a variety of algorithms demonstrate that programming language, compiler choice, and implementation details influence computational speed and there is no unique ranking of algorithms. A new implementation, based on subdivision of the upper half-plane in only two regions, combining Weideman's rational approximation for small | x | + y < 15 and Humlicek's rational approximation otherwise is shown to be efficient and accurate for all x, y. ► Function arguments spanning many orders of magnitude. ► No approximation good for all arguments, but two subregions sufficient. ► Line center: just a few evaluations, accuracy more important than speed. ► Combination of two rational approximations: Weideman and asymptotic Humlicek. ► Code performance is system dependent, no unique ranking of algorithms.
Bibliography:ObjectType-Article-1
SourceType-Scholarly Journals-1
ObjectType-Feature-2
content type line 23
ISSN:0022-4073
1879-1352
DOI:10.1016/j.jqsrt.2010.12.010