16 #if defined(LIBM_SCCS) && !defined(lint) 17 static char rcsid[] =
"$NetBSD: e_j1.c,v 1.8 1995/05/10 20:45:27 jtc Exp $";
69 static double pone(
double),
qone(
double);
82 tpi = 6.36619772367581382433e-01,
84 R[] = {-6.25000000000000000000e-02,
85 1.40705666955189706048e-03,
86 -1.59955631084035597520e-05,
87 4.96727999609584448412e-08},
88 S[] = {0.0, 1.91537599538363460805e-02,
89 1.85946785588630915560e-04,
90 1.17718464042623683263e-06,
91 5.04636257076217042715e-09,
92 1.23542274426137913908e-11};
95 static const double zero = 0.0;
107 double z,
s,
c,
ss,
cc,
r,
u,
v,
y,
r1,
r2,
s1,
s2,s3,z2,z4;
112 if(ix>=0x7ff00000)
return one/
x;
114 if(ix >= 0x40000000) {
139 #ifdef DO_NOT_USE_THIS 140 r =
z*(r00+
z*(r01+
z*(r02+
z*r03)));
141 s =
one+
z*(s01+
z*(s02+
z*(s03+
z*(s04+
z*s05))));
145 r2 =
R[1]+
z*
R[2]; z4=z2*z2;
151 s =
s1 + z2*
s2 + z4*s3;
157 static const double U0[5] = {
159 static double U0[5] = {
161 -1.96057090646238940668e-01,
162 5.04438716639811282616e-02,
163 -1.91256895875763547298e-03,
164 2.35252600561610495928e-05,
165 -9.19099158039878874504e-08,
168 static const double V0[5] = {
170 static double V0[5] = {
172 1.99167318236649903973e-02,
173 2.02552581025135171496e-04,
174 1.35608801097516229404e-06,
175 6.22741452364621501295e-09,
176 1.66559246207992079114e-11,
186 double z,
s,
c,
ss,
cc,
u,
v,
u1,
u2,
v1,
v2,
v3,z2,z4;
192 if(ix>=0x7ff00000)
return one/(
x+
x*
x);
195 if(ix >= 0x40000000) {
226 #ifdef DO_NOT_USE_THIS 252 static const double pr8[6] = {
256 0.00000000000000000000e+00,
257 1.17187499999988647970e-01,
258 1.32394806593073575129e+01,
259 4.12051854307378562225e+02,
260 3.87474538913960532227e+03,
261 7.91447954031891731574e+03,
264 static const double ps8[5] = {
268 1.14207370375678408436e+02,
269 3.65093083420853463394e+03,
270 3.69562060269033463555e+04,
271 9.76027935934950801311e+04,
272 3.08042720627888811578e+04,
276 static const double pr5[6] = {
280 1.31990519556243522749e-11,
281 1.17187493190614097638e-01,
282 6.80275127868432871736e+00,
283 1.08308182990189109773e+02,
284 5.17636139533199752805e+02,
285 5.28715201363337541807e+02,
288 static const double ps5[5] = {
292 5.92805987221131331921e+01,
293 9.91401418733614377743e+02,
294 5.35326695291487976647e+03,
295 7.84469031749551231769e+03,
296 1.50404688810361062679e+03,
300 static const double pr3[6] = {
304 3.02503916137373618024e-09,
305 1.17186865567253592491e-01,
306 3.93297750033315640650e+00,
307 3.51194035591636932736e+01,
308 9.10550110750781271918e+01,
309 4.85590685197364919645e+01,
312 static const double ps3[5] = {
316 3.47913095001251519989e+01,
317 3.36762458747825746741e+02,
318 1.04687139975775130551e+03,
319 8.90811346398256432622e+02,
320 1.03787932439639277504e+02,
324 static const double pr2[6] = {
328 1.07710830106873743082e-07,
329 1.17176219462683348094e-01,
330 2.36851496667608785174e+00,
331 1.22426109148261232917e+01,
332 1.76939711271687727390e+01,
333 5.07352312588818499250e+00,
336 static const double ps2[5] = {
340 2.14364859363821409488e+01,
341 1.25290227168402751090e+02,
342 2.32276469057162813669e+02,
343 1.17679373287147100768e+02,
344 8.36463893371618283368e+00,
348 static double pone(
double x)
355 const double *
p = 0,*
q = 0;
357 double *
p = 0,*
q = 0;
359 double z,
r,
s,
r1,
r2,
r3,
s1,
s2,s3,z2,z4;
363 if(ix>=0x40200000) {
p =
pr8;
q=
ps8;}
364 else if(ix>=0x40122E8B){
p =
pr5;
q=
ps5;}
365 else if(ix>=0x4006DB6D){
p =
pr3;
q=
ps3;}
366 else if(ix>=0x40000000){
p =
pr2;
q=
ps2;}
368 #ifdef DO_NOT_USE_THIS 373 r2 =
p[2]+
z*
p[3]; z4=z2*z2;
379 s =
s1 + z2*
s2 + z4*s3;
396 static const double qr8[6] = {
400 0.00000000000000000000e+00,
401 -1.02539062499992714161e-01,
402 -1.62717534544589987888e+01,
403 -7.59601722513950107896e+02,
404 -1.18498066702429587167e+04,
405 -4.84385124285750353010e+04,
408 static const double qs8[6] = {
412 1.61395369700722909556e+02,
413 7.82538599923348465381e+03,
414 1.33875336287249578163e+05,
415 7.19657723683240939863e+05,
416 6.66601232617776375264e+05,
417 -2.94490264303834643215e+05,
421 static const double qr5[6] = {
425 -2.08979931141764104297e-11,
426 -1.02539050241375426231e-01,
427 -8.05644828123936029840e+00,
428 -1.83669607474888380239e+02,
429 -1.37319376065508163265e+03,
430 -2.61244440453215656817e+03,
433 static const double qs5[6] = {
437 8.12765501384335777857e+01,
438 1.99179873460485964642e+03,
439 1.74684851924908907677e+04,
440 4.98514270910352279316e+04,
441 2.79480751638918118260e+04,
442 -4.71918354795128470869e+03,
446 static const double qr3[6] = {
450 -5.07831226461766561369e-09,
451 -1.02537829820837089745e-01,
452 -4.61011581139473403113e+00,
453 -5.78472216562783643212e+01,
454 -2.28244540737631695038e+02,
455 -2.19210128478909325622e+02,
458 static const double qs3[6] = {
462 4.76651550323729509273e+01,
463 6.73865112676699709482e+02,
464 3.38015286679526343505e+03,
465 5.54772909720722782367e+03,
466 1.90311919338810798763e+03,
467 -1.35201191444307340817e+02,
471 static const double qr2[6] = {
475 -1.78381727510958865572e-07,
476 -1.02517042607985553460e-01,
477 -2.75220568278187460720e+00,
478 -1.96636162643703720221e+01,
479 -4.23253133372830490089e+01,
480 -2.13719211703704061733e+01,
483 static const double qs2[6] = {
487 2.95333629060523854548e+01,
488 2.52981549982190529136e+02,
489 7.57502834868645436472e+02,
490 7.39393205320467245656e+02,
491 1.55949003336666123687e+02,
492 -4.95949898822628210127e+00,
496 static double qone(
double x)
503 const double *
p = 0,*
q = 0;
505 double *
p = 0,*
q = 0;
507 double s,
r,
z,
r1,
r2,
r3,
s1,
s2,s3,z2,z4,z6;
511 if(ix>=0x40200000) {
p =
qr8;
q=
qs8;}
512 else if(ix>=0x40122E8B){
p =
qr5;
q=
qs5;}
513 else if(ix>=0x4006DB6D){
p =
qr3;
q=
qs3;}
514 else if(ix>=0x40000000){
p =
qr2;
q=
qs2;}
516 #ifdef DO_NOT_USE_THIS 521 r2 =
p[2]+
z*
p[3]; z4=z2*z2;
522 r3 =
p[4]+
z*
p[5]; z6=z4*z2;
527 s =
s1 + z2*
s2 + z4*s3 + z6*
q[5];
529 return (.375 +
r/
s)/
x;
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
GLdouble GLdouble GLdouble r
static __inline double __ieee754_sqrt(double x)
GLint GLint GLint GLint GLint x
static __inline double __cos(double x)
double __ieee754_y1(double x)
#define GET_HIGH_WORD(i, d)
double __ieee754_j1(double x)
#define EXTRACT_WORDS(ix0, ix1, d)
GLdouble GLdouble GLdouble GLdouble q
GLfloat GLfloat GLfloat GLfloat v3
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double x)
GLfloat GLfloat GLfloat v2
static __inline void __sincos(double x, double *s, double *c)
GLint GLint GLint GLint GLint GLint y
static __inline double __ieee754_log(double x)
static TRIO_CONST char rcsid[]