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...
Saved in:
| Published in | Journal of quantitative spectroscopy & radiative transfer Vol. 112; no. 6; pp. 1010 - 1025 |
|---|---|
| Main Author | |
| Format | Journal Article |
| Language | English |
| Published |
Elsevier Ltd
01.04.2011
|
| Subjects | |
| Online Access | Get full text |
| ISSN | 0022-4073 1879-1352 |
| DOI | 10.1016/j.jqsrt.2010.12.010 |
Cover
| 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 |