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