SpectraRust/tlusty/extracted/erfcin.f
2026-03-19 14:05:33 +08:00

21 lines
523 B
Fortran

FUNCTION ERFCIN(X)
C ==================
C
C Approximate inverse complementary error function inverfc(x)
C
INCLUDE 'IMPLIC.FOR'
parameter (pisq=1.77245385090551D0, pisq2=pisq/2.d0)
XL=-LOG(X)
REL=0.88623D0+XL*(7.4871471D-3-XL*1.7726701D-4)
E=SQRT(-LOG(X*(2.D0-X)))*REL
iterr=0
10 continue
iterr=iterr+1
dele=(erfcx(e)-x)*pisq2*exp(e*e)
err=abs(dele/e)
e=e+dele
if(err.gt.1.e-6.and.iterr.lt.10) go to 10
erfcin=e
RETURN
END