|
11 | 11 | * ==================================================== |
12 | 12 | */ |
13 | 13 |
|
| 14 | +#include <assert.h> |
| 15 | + |
14 | 16 | #include "cdefs-compat.h" |
15 | 17 | //__FBSDID("$FreeBSD: src/lib/msun/src/e_j0.c,v 1.9 2008/02/22 02:30:35 das Exp $"); |
16 | 18 |
|
@@ -268,17 +270,19 @@ static const double pS2[5] = { |
268 | 270 | 1.46576176948256193810e+01, /* 0x402D50B3, 0x44391809 */ |
269 | 271 | }; |
270 | 272 |
|
| 273 | + /* Note: This function is only called for ix>=0x40000000 (see above) */ |
271 | 274 | static double pzero(double x) |
272 | 275 | { |
273 | 276 | const double *p,*q; |
274 | 277 | double z,r,s; |
275 | 278 | int32_t ix; |
276 | 279 | GET_HIGH_WORD(ix,x); |
277 | 280 | ix &= 0x7fffffff; |
| 281 | + assert(ix>=0x40000000 && ix<=0x48000000); |
278 | 282 | if(ix>=0x40200000) {p = pR8; q= pS8;} |
279 | 283 | else if(ix>=0x40122E8B){p = pR5; q= pS5;} |
280 | 284 | else if(ix>=0x4006DB6D){p = pR3; q= pS3;} |
281 | | - else if(ix>=0x40000000){p = pR2; q= pS2;} |
| 285 | + else {p = pR2; q= pS2;} |
282 | 286 | z = one/(x*x); |
283 | 287 | r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); |
284 | 288 | s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4])))); |
@@ -363,17 +367,19 @@ static const double qS2[6] = { |
363 | 367 | -5.31095493882666946917e+00, /* 0xC0153E6A, 0xF8B32931 */ |
364 | 368 | }; |
365 | 369 |
|
| 370 | + /* Note: This function is only called for ix>=0x40000000 (see above) */ |
366 | 371 | static double qzero(double x) |
367 | 372 | { |
368 | 373 | const double *p,*q; |
369 | 374 | double s,r,z; |
370 | 375 | int32_t ix; |
371 | 376 | GET_HIGH_WORD(ix,x); |
372 | 377 | ix &= 0x7fffffff; |
| 378 | + assert(ix>=0x40000000 && ix<=0x48000000); |
373 | 379 | if(ix>=0x40200000) {p = qR8; q= qS8;} |
374 | 380 | else if(ix>=0x40122E8B){p = qR5; q= qS5;} |
375 | 381 | else if(ix>=0x4006DB6D){p = qR3; q= qS3;} |
376 | | - else if(ix>=0x40000000){p = qR2; q= qS2;} |
| 382 | + else {p = qR2; q= qS2;} |
377 | 383 | z = one/(x*x); |
378 | 384 | r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); |
379 | 385 | s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5]))))); |
|
0 commit comments