75 *
76 * For x in [1.75,16/3]
77 * erfc(x) = exp(-x*x)*(1/x)*R1(1/x)/S1(1/x)
78 * erf(x) = 1 - erfc(x)
79 * precision: absolute error of R1/S1 is bounded by 2**-124.03
80 *
81 * For x in [16/3,107]
82 * erfc(x) = exp(-x*x)*(1/x)*R2(1/x)/S2(1/x)
83 * erf(x) = 1 - erfc(x) (if x>=9 simple return erf(x)=1 with inexact)
84 * precision: absolute error of R2/S2 is bounded by 2**-120.07
85 *
86 * Else if inf > x >= 107
87 * erf(x) = 1 with inexact
88 * erfc(x) = 0 with underflow
89 *
90 * Special case:
91 * erf(inf) = 1
92 * erfc(inf) = 0
93 */
94
95 #pragma weak erfl = __erfl
96 #pragma weak erfcl = __erfcl
97
98 #include "libm.h"
99 #include "longdouble.h"
100
101 static long double
102 tiny = 1e-40L,
103 nearunfl = 1e-4000L,
104 half = 0.5L,
105 one = 1.0L,
106 onehalf = 1.5L,
107 L16_3 = 16.0L/3.0L;
108 /*
109 * Coefficients for even polynomial P for erf(x)=x+x*P(x^2) on [0,0.84375]
110 */
111 static long double P[] = { /* 21 coeffs */
112 1.283791670955125738961589031215451715556e-0001L,
113 -3.761263890318375246320529677071815594603e-0001L,
114 1.128379167095512573896158903121205899135e-0001L,
115 -2.686617064513125175943235483344625046092e-0002L,
116 5.223977625442187842111846652980454568389e-0003L,
|
75 *
76 * For x in [1.75,16/3]
77 * erfc(x) = exp(-x*x)*(1/x)*R1(1/x)/S1(1/x)
78 * erf(x) = 1 - erfc(x)
79 * precision: absolute error of R1/S1 is bounded by 2**-124.03
80 *
81 * For x in [16/3,107]
82 * erfc(x) = exp(-x*x)*(1/x)*R2(1/x)/S2(1/x)
83 * erf(x) = 1 - erfc(x) (if x>=9 simple return erf(x)=1 with inexact)
84 * precision: absolute error of R2/S2 is bounded by 2**-120.07
85 *
86 * Else if inf > x >= 107
87 * erf(x) = 1 with inexact
88 * erfc(x) = 0 with underflow
89 *
90 * Special case:
91 * erf(inf) = 1
92 * erfc(inf) = 0
93 */
94
95 #pragma weak __erfl = erfl
96 #pragma weak __erfcl = erfcl
97
98 #include "libm.h"
99 #include "longdouble.h"
100
101 static long double
102 tiny = 1e-40L,
103 nearunfl = 1e-4000L,
104 half = 0.5L,
105 one = 1.0L,
106 onehalf = 1.5L,
107 L16_3 = 16.0L/3.0L;
108 /*
109 * Coefficients for even polynomial P for erf(x)=x+x*P(x^2) on [0,0.84375]
110 */
111 static long double P[] = { /* 21 coeffs */
112 1.283791670955125738961589031215451715556e-0001L,
113 -3.761263890318375246320529677071815594603e-0001L,
114 1.128379167095512573896158903121205899135e-0001L,
115 -2.686617064513125175943235483344625046092e-0002L,
116 5.223977625442187842111846652980454568389e-0003L,
|