racef
index
/users/schrei_f/src/py4CAtS/var/racef.py

Rational Approximations for the Complex Error Function
    w(z)  =  (i/pi) integral exp(-t**2) / (z-t) dt  =  K(x,y) + iL(x,y)
 
J. Humlicek.
An efficient method for evaluation of the complex probability function
J. Quant. Spectrosc. & Radiat. Transfer, 21, 309­313, 1979.
 
J. Humlicek.
Optimized computation of the Voigt and complex probability function
J. Quant. Spectrosc. & Radiat. Transfer, 27, 437­444, 1982.
 
J.A.C. Weideman.
Computation of the Complex Error Function.
SIAM J. Num. Anal., 31, 1497­1518, 1994.
 
F. Schreier.
Optimized Implementations of Rational Approximations for the Voigt and Complex Error Function.
J. Quant. Spectrosc. & Radiat. Transfer, 112(6), 1010-1025, 2011;  doi 10.1016/j.jqsrt.2010.12.010
 
F. Schreier.
The Voigt and complex error function: Humlicek's rational approximation generalized.
Mon. Not. Roy. Astron. Soc., 479(3), 3068-3075, 2018;  doi 10.1093/mnras/sty1680

 
Modules
       
numpy

 
Functions
       
hum1wei24(x, y)
Complex error function combining Humlicek's and Weideman's rational approximations:
 
|x|+y>15:  Humlicek (JQSRT, 1982) rational approximation for region I;
else:      J.A.C. Weideman (SIAM-NA 1994); equation (38.I) and table I.
 
F. Schreier, JQSRT 112, pp. 1010-1025, 2011:  doi: 10.1016/j.jqsrt.2010.12.010
hum1zpf16m(x, y, s=15.0)
Complex error function w(z)=w(x+iy) combining Humlicek's rational approximations:
 
|x|+y>15:  Humlicek (JQSRT, 1982) rational approximation for region I;
else:      Humlicek (JQSRT, 1979) rational approximation with n=16 and delta=y0=1.31183
 
Version using a mask and np.place;  two real arguments x,y.
hum2wei32(x, y)
Complex error function combining Humlicek's and Weideman's rational approximations:
 
|x|+y>10.0: Humlicek (JQSRT, 1982) rational approximation for region II;
else:       J.A.C. Weideman (SIAM-NA 1994); equation (38.I) and table I.
 
F. Schreier, JQSRT 112, pp. 1010-1025, 2011:  doi: 10.1016/j.jqsrt.2010.12.010
hum2zpf16m(x, y, s=10.0)
Complex error function w(z)=w(x+iy) combining Humlicek's rational approximations:
 
|x|+y>10:  Humlicek (JQSRT, 1982) rational approximation for region II;
else:      Humlicek (JQSRT, 1979) rational approximation with n=16 and delta=y0=1.31183
 
Version using a mask and np.place;  two real arguments x,y.
weideman24a(x, y)
Complex error function using Weideman's rational approximation:
J.A.C. Weideman (SIAM-NA 1994); equation (38.I) for N=24 and table I.
Maximum relative error: 2.6e-1 for 0<x<25 and 1e-8<y<1e2
                        2.6e-3 for 0<x<25 and 1e-6<y<1e2
                        2.6e-5 for 0<x<25 and 1e-4<y<1e2.
weideman32a(x, y)
Complex error function using Weideman's rational approximation:
J.A.C. Weideman (SIAM-NA 1994); equation (38.I) for N=32 and table I.
Maximum relative error: 2.6e-4 for 0<x<25 and 1e-8<y<1e2
                        2.6e-6 for 0<x<25 and 1e-6<y<1e2.
zpf16h(x, y)
Humlicek (JQSRT 1979) complex probability function for n=16 and delta=1.31183.
Generalization described in MNRAS 479(3), 3068-3075, 2018, doi: 10.1093/mnras/sty1680
 
Optimized rational approximation with Horner scheme  (applicable for all z=x+iy).

 
Data
        __all__ = ['weideman24a', 'weideman32a', 'hum1wei24', 'hum2wei32', 'zpf16h', 'hum1zpf16m', 'hum2zpf16m']