126 |
y = (y / b) + p1; |
y = (y / b) + p1; |
127 |
y = (y / b) + p0; |
y = (y / b) + p0; |
128 |
|
|
129 |
if (t < 0) y *= -1; |
if (t < 0) |
130 |
|
y *= -1; |
131 |
|
|
132 |
return y; |
return y; |
133 |
} |
} |
134 |
|
|
135 |
#if 0 |
#if 0 |
136 |
/* |
/* |
137 |
* Series approximation for t > 4.0. This needs to be fixed; |
* Series approximation for t > 4.0. This needs to be fixed; |
138 |
* it shouldn't subtract the result from 1.0. A better way is |
* it shouldn't subtract the result from 1.0. A better way is |
190 |
return P; |
return P; |
191 |
} |
} |
192 |
|
|
193 |
if (x2 < nu) |
if (x2 < nu) |
194 |
{ |
{ |
195 |
double u = x2 / nu; |
double u = x2 / nu; |
196 |
double eps = u / (1 + u); |
double eps = u / (1 + u); |
197 |
|
|
198 |
if (x >= 0) |
if (x >= 0) |
199 |
{ |
{ |
200 |
P = beta_inc_AXPY (0.5, 0.5, 0.5, nu / 2.0, eps); |
P = beta_inc_AXPY (0.5, 0.5, 0.5, nu / 2.0, eps); |
201 |
} |
} |
202 |
else |
else |
203 |
{ |
{ |
204 |
P = beta_inc_AXPY (-0.5, 0.5, 0.5, nu / 2.0, eps); |
P = beta_inc_AXPY (-0.5, 0.5, 0.5, nu / 2.0, eps); |
205 |
} |
} |
206 |
} |
} |
207 |
else |
else |
208 |
{ |
{ |
209 |
double v = nu / (x * x); |
double v = nu / (x * x); |
210 |
double eps = v / (1 + v); |
double eps = v / (1 + v); |
211 |
|
|
212 |
if (x >= 0) |
if (x >= 0) |
213 |
{ |
{ |
214 |
P = beta_inc_AXPY (-0.5, 1.0, nu / 2.0, 0.5, eps); |
P = beta_inc_AXPY (-0.5, 1.0, nu / 2.0, 0.5, eps); |
215 |
} |
} |
216 |
else |
else |
217 |
{ |
{ |
218 |
P = beta_inc_AXPY (0.5, 0.0, nu / 2.0, 0.5, eps); |
P = beta_inc_AXPY (0.5, 0.0, nu / 2.0, 0.5, eps); |
219 |
} |
} |
220 |
} |
} |
221 |
|
|
222 |
return P; |
return P; |
242 |
{ |
{ |
243 |
double u = x2 / nu; |
double u = x2 / nu; |
244 |
double eps = u / (1 + u); |
double eps = u / (1 + u); |
245 |
|
|
246 |
if (x >= 0) |
if (x >= 0) |
247 |
{ |
{ |
248 |
Q = beta_inc_AXPY (-0.5, 0.5, 0.5, nu / 2.0, eps); |
Q = beta_inc_AXPY (-0.5, 0.5, 0.5, nu / 2.0, eps); |
249 |
} |
} |
250 |
else |
else |
251 |
{ |
{ |
252 |
Q = beta_inc_AXPY (0.5, 0.5, 0.5, nu / 2.0, eps); |
Q = beta_inc_AXPY (0.5, 0.5, 0.5, nu / 2.0, eps); |
253 |
} |
} |
254 |
} |
} |
255 |
else |
else |
256 |
{ |
{ |
257 |
double v = nu / (x * x); |
double v = nu / (x * x); |
258 |
double eps = v / (1 + v); |
double eps = v / (1 + v); |
259 |
|
|
260 |
if (x >= 0) |
if (x >= 0) |
261 |
{ |
{ |
262 |
Q = beta_inc_AXPY (0.5, 0.0, nu / 2.0, 0.5, eps); |
Q = beta_inc_AXPY (0.5, 0.0, nu / 2.0, 0.5, eps); |
263 |
} |
} |
264 |
else |
else |
265 |
{ |
{ |
266 |
Q = beta_inc_AXPY (-0.5, 1.0, nu / 2.0, 0.5, eps); |
Q = beta_inc_AXPY (-0.5, 1.0, nu / 2.0, 0.5, eps); |
267 |
} |
} |
268 |
} |
} |
269 |
|
|
270 |
return Q; |
return Q; |
271 |
} |
} |
|
|
|
|
|
|
|
|
|