function erfci(X) variable X; variable Z,W,WI,F,D,Z2; if (X>1.0) return -erfci(2.0-X); endif; Z=1.0-X; if (Z>0.85) W=sqrt(-ln(X+X*Z)); if (W>=2.5) if (W>=4.0) WI=1.0/W; F=0.01078639*WI-0.1498384; F=(F*WI-0.002028152)*WI; D=WI-0.06888301; D=D*WI+0.5211733; D=D*WI+0.09952975; return W+W*(0.0001851159+F/D); else F=0.06208963*W-0.3166501; F=(F*W+0.3937021)*W; D=W-2.962883; D=D*W+4.666263; D=D*W-6.266786; return W+W*(-0.05668422+F/D); endif; else F=0.05073975*W-0.2368201; F=(F*W-0.1314774)*W; D=(W-7.586103)*W+21.98546; D=D*W-44.27977; return W+W*(-0.1146666+F/D); endif; else Z2=Z*Z; F=-1.187515+Z2; F=-2.374996+Z2-0.05496261/F; F=-3.293474+Z2-1.896513/F; F=-0.1137730-0.5751703*Z2/F; return Z+Z*F; endif; end;