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+iy), 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.

[1]  F. X. Kneizys,et al.  Convolution algorithm for the Lorentz function. , 1979, Applied optics.

[2]  Ralph W. Nicholls,et al.  Emission, absorption, and transfer of radiation in heated atmospheres , 1972 .

[3]  Christoph W. Ueberhuber,et al.  Numerical Computation 2 , 1997 .

[4]  Chikako Takahashi,et al.  Evaluation of Voigt algorithms for the ISS/JEM/SMILES L2 data processing system , 2010 .

[5]  Franz Schreier,et al.  Optimized evaluation of a large sum of functions using a three-grid approach , 2006, Comput. Phys. Commun..

[6]  D. P. Edwards,et al.  Atmospheric Transmittance And Radiance Calculations Using Line-By-Line Computer Models , 1988, Defense, Security, and Sensing.

[7]  Laurence S. Rothman,et al.  The HITRAN molecular spectroscopic database: edition of 2000 including updates through 2001 , 2003 .

[8]  A. Ralston A first course in numerical analysis , 1965 .

[9]  A. Belafhal,et al.  The shape of spectral lines: widths and equivalent widths of the Voigt profile , 2000 .

[10]  Franz Schreier,et al.  Comments on “A Common Misunderstanding about the Voigt Line Profile” , 2009 .

[11]  Irene A. Stegun,et al.  Handbook of Mathematical Functions. , 1966 .

[12]  Joseph H. Pierluissi,et al.  Fast calculational algorithm for the Voigt profile , 1977 .

[13]  P. L. Rarig,et al.  A comparison of fast codes for the evaluation of the Voigt profile function , 1980 .

[14]  A. Klim,et al.  A comparison of methods for the calculation of Voigt profiles. , 1981 .

[15]  A. E. Lynas-Gray,et al.  VOIGTL — a fast subroutine for Voigt function evaluation on vector processors , 1993 .

[16]  Alan H. Karp,et al.  Efficient computation of spectral line shapes , 1978 .

[17]  J. J. Olivero,et al.  Empirical fits to the Voigt line width: A brief review , 1977 .

[18]  Kendra L. Letchworth,et al.  RAPID AND ACCURATE CALCULATION OF THE VOIGT FUNCTION , 2007 .

[19]  R. J. Wells,et al.  Rapid approximation to the Voigt/Faddeeva function and its derivatives , 1999 .

[20]  J Puerta,et al.  Generalized Lorentzian approximations for the Voigt line shape. , 1981, Applied optics.

[21]  Josef Humlíček,et al.  An efficient method for evaluation of the complex probability function: The Voigt function and its derivatives , 1979 .

[22]  S. R. Drayson Rapid computation of the Voigt profile , 1976 .

[23]  William J. Thompson,et al.  Numerous Neat Algorithms for the Voigt Profile Function , 1993 .

[24]  G. P. M. Poppe,et al.  More efficient computation of the complex error function , 1990, TOMS.

[25]  Gang Li,et al.  The HITRAN 2008 molecular spectroscopic database , 2005 .

[26]  J. Weideman Computations of the complex error function , 1994 .

[27]  Lawrence Sparks,et al.  Efficient line-by-line calculation of absorption coefficients to high numerical accuracy , 1997 .

[28]  Larry L. Gordley,et al.  Linepak: Algorithms for modeling spectral transmittance and radiance , 1994 .

[29]  J. Drummond,et al.  GENSPECT: a line-by-line code with selectable interpolation error tolerance , 2002 .

[30]  M. Kuntz,et al.  A new implementation of the Humlicek algorithm for the calculation of the Voigt profile function , 1997 .

[31]  P L Varghese,et al.  Collisional narrowing effects on spectral line shapes measured at high resolution. , 1984, Applied optics.

[32]  Yuk L. Yung,et al.  A Common Misunderstanding about the Voigt Line Profile , 2004 .

[33]  Ellis E. Whiting,et al.  An empirical approximation to the Voigt profile , 1968 .

[34]  Franz Schreier,et al.  Line-by-Line Computation of Atmospheric Infrared Spectra With Field Programmable Gate Arrays , 2011, IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing.

[35]  Walter Gautschi,et al.  Efficient computation of the complex error function , 1970 .

[36]  D. Murtagh,et al.  An overview of the Odin atmospheric mission , 2002 .

[37]  Paul F. Dubois,et al.  Guest Editor's Introduction: Python: Batteries Included , 2007, Computing in Science & Engineering.

[38]  David Defour,et al.  Line-by-line spectroscopic simulations on graphics processing units , 2008, Comput. Phys. Commun..

[39]  Wim Ruyten,et al.  Comment on ''A new implementation of the Humlicek algorithm for the calculation of the Voigt profile function'' by M. Kuntz [JQSRT 57(6) (1997) 819-824] [rapid communication] , 2004 .

[40]  W. G. Read,et al.  A highly accurate Voigt function algorithm , 1993 .

[41]  F. X. Kneizys,et al.  Line shape and the water vapor continuum , 1989 .

[42]  John F. Kielkopf,et al.  New approximation to the Voigt function with applications to spectral-line profile analysis , 1973 .

[43]  Martin Kuntz,et al.  Efficient line-by-line calculation of absorption coefficients , 1999 .

[44]  G. Rybicki Dawson's Integral and the Sampling Theorem , 1989 .

[45]  Franz Schreier,et al.  Optimized implementations of rational approximations - a case study on the Voigt and complex error function , 2008, Comput. Phys. Commun..

[46]  B. Armstrong Spectrum line profiles: The Voigt function , 1967 .

[47]  Hans Petter Langtangen,et al.  Python Scripting for Computational Science (Texts in Computational Science and Engineering) , 2005 .

[48]  A. K. Hui,et al.  Rapid computation of the Voigt and complex error functions , 1978 .

[49]  D. V. Titov,et al.  A fast and accurate method of calculation of gaseous transmission functions in planetary atmospheres , 1997 .

[50]  Franz Schreier,et al.  The Voigt and complex error function: A comparison of computational methods , 1992 .

[51]  J Puerta,et al.  Three and four generalized Lorentzian approximations for the Voigt line shape: errata. , 1983, Applied optics.

[52]  S. V. Afonin,et al.  Comparative analysis of three procedures for calculation of the Voigt profile of a spectral line , 1984 .

[53]  Franz Schreier,et al.  The GEISA spectroscopic database: Current and future archive for Earth and planetary atmosphere studies , 2008 .

[54]  Jeanne C. Adams Fortran 2003 Handbook , 2003 .

[55]  M. Abramowitz,et al.  Handbook of Mathematical Functions with Formulas, Graphs and Mathematical Tables. U.S. Department of Commerce, National Bureau of Standards , 1965 .

[56]  Josef Humlíček,et al.  Optimized computation of the voigt and complex probability functions , 1982 .

[57]  K. S. Kölbig Certification of algorithm 363 [S15] , 1972, CACM.

[58]  Martine De Mazière,et al.  Fast method for calculating infrared spectral transmittances in the wings of absorption lines , 2005 .

[59]  Thomas Trautmann,et al.  Radiation in the Atmosphere: A Course in Theoretical Meteorology , 2007 .

[60]  Paolo Minguzzi,et al.  Simple padé approximations for the width of a Voigt profile , 1985 .

[61]  Brendan M. Quine,et al.  A simple interpolating algorithm for the rapid and accurate calculation of the Voigt function , 2009 .

[62]  G. P. M. Poppe,et al.  Algorithm 680: evaluation of the complex error function , 1990, TOMS.