16#if defined(LIBM_SCCS) && !defined(lint)
17static char rcsid[] =
"$NetBSD: e_j0.c,v 1.8 1995/05/10 20:45:23 jtc Exp $";
82tpi = 6.36619772367581382433e-01,
84R[] = {0.0, 0.0, 1.56249999999999947958e-02,
85 -1.89979294238854721751e-04,
86 1.82954049532700665670e-06,
87 -4.61832688532103189199e-09},
88S[] = {0.0, 1.56191029464890010492e-02,
89 1.16926784663337450260e-04,
90 5.13546550207318111446e-07,
91 1.16614003333790000205e-09};
94static const double zero = 0.0;
106 double z,
s,
c,
ss,
cc,
r,
u,
v,
r1,
r2,
s1,
s2,z2,z4;
111 if(ix>=0x7ff00000)
return one/(
x*
x);
113 if(ix >= 0x40000000) {
135 if(ix<0x3e400000)
return one;
136 else return one - 0.25*
x*
x;
140#ifdef DO_NOT_USE_THIS
141 r =
z*(R02+
z*(R03+
z*(R04+
z*R05)));
142 s =
one+
z*(S01+
z*(S02+
z*(S03+
z*S04)));
145 r2 =
R[3]+
z*
R[4]; z4=z2*z2;
151 if(ix < 0x3FF00000) {
152 return one +
z*(-0.25+(
r/
s));
164U[] = {-7.38042951086872317523e-02,
165 1.76666452509181115538e-01,
166 -1.38185671945596898896e-02,
167 3.47453432093683650238e-04,
168 -3.81407053724364161125e-06,
169 1.95590137035022920206e-08,
170 -3.98205194132103398453e-11},
171V[] = {1.27304834834123699328e-02,
172 7.60068627350353253702e-05,
173 2.59150851840457805467e-07,
174 4.41110311332675467403e-10};
183 double z,
s,
c,
ss,
cc,
u,
v,z2,z4,z6,
u1,
u2,
u3,
v1,
v2;
189 if(ix>=0x7ff00000)
return one/(
x+
x*
x);
192 if(ix >= 0x40000000) {
227#ifdef DO_NOT_USE_THIS
228 u = u00+
z*(u01+
z*(u02+
z*(u03+
z*(u04+
z*(u05+
z*u06)))));
229 v =
one+
z*(v01+
z*(v02+
z*(v03+
z*v04)));
232 u2 =
U[2]+
z*
U[3]; z4=z2*z2;
233 u3 =
U[4]+
z*
U[5]; z6=z4*z2;
252static const double pR8[6] = {
256 0.00000000000000000000e+00,
257 -7.03124999999900357484e-02,
258 -8.08167041275349795626e+00,
259 -2.57063105679704847262e+02,
260 -2.48521641009428822144e+03,
261 -5.25304380490729545272e+03,
264static const double pS8[5] = {
268 1.16534364619668181717e+02,
269 3.83374475364121826715e+03,
270 4.05978572648472545552e+04,
271 1.16752972564375915681e+05,
272 4.76277284146730962675e+04,
276static const double pR5[6] = {
280 -1.14125464691894502584e-11,
281 -7.03124940873599280078e-02,
282 -4.15961064470587782438e+00,
283 -6.76747652265167261021e+01,
284 -3.31231299649172967747e+02,
285 -3.46433388365604912451e+02,
288static const double pS5[5] = {
292 6.07539382692300335975e+01,
293 1.05125230595704579173e+03,
294 5.97897094333855784498e+03,
295 9.62544514357774460223e+03,
296 2.40605815922939109441e+03,
300static const double pR3[6] = {
304 -2.54704601771951915620e-09,
305 -7.03119616381481654654e-02,
306 -2.40903221549529611423e+00,
307 -2.19659774734883086467e+01,
308 -5.80791704701737572236e+01,
309 -3.14479470594888503854e+01,
312static const double pS3[5] = {
316 3.58560338055209726349e+01,
317 3.61513983050303863820e+02,
318 1.19360783792111533330e+03,
319 1.12799679856907414432e+03,
320 1.73580930813335754692e+02,
324static const double pR2[6] = {
328 -8.87534333032526411254e-08,
329 -7.03030995483624743247e-02,
330 -1.45073846780952986357e+00,
331 -7.63569613823527770791e+00,
332 -1.11931668860356747786e+01,
333 -3.23364579351335335033e+00,
336static const double pS2[5] = {
340 2.22202997532088808441e+01,
341 1.36206794218215208048e+02,
342 2.70470278658083486789e+02,
343 1.53875394208320329881e+02,
344 1.46576176948256193810e+01,
348 static double pzero(
double x)
355 const double *
p = 0,*
q = 0;
357 double *
p = 0,*
q = 0;
359 double z,
r,
s,z2,z4,
r1,
r2,
r3,
s1,
s2,s3;
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;
395static const double qR8[6] = {
399 0.00000000000000000000e+00,
400 7.32421874999935051953e-02,
401 1.17682064682252693899e+01,
402 5.57673380256401856059e+02,
403 8.85919720756468632317e+03,
404 3.70146267776887834771e+04,
407static const double qS8[6] = {
411 1.63776026895689824414e+02,
412 8.09834494656449805916e+03,
413 1.42538291419120476348e+05,
414 8.03309257119514397345e+05,
415 8.40501579819060512818e+05,
416 -3.43899293537866615225e+05,
420static const double qR5[6] = {
424 1.84085963594515531381e-11,
425 7.32421766612684765896e-02,
426 5.83563508962056953777e+00,
427 1.35111577286449829671e+02,
428 1.02724376596164097464e+03,
429 1.98997785864605384631e+03,
432static const double qS5[6] = {
436 8.27766102236537761883e+01,
437 2.07781416421392987104e+03,
438 1.88472887785718085070e+04,
439 5.67511122894947329769e+04,
440 3.59767538425114471465e+04,
441 -5.35434275601944773371e+03,
445static const double qR3[6] = {
449 4.37741014089738620906e-09,
450 7.32411180042911447163e-02,
451 3.34423137516170720929e+00,
452 4.26218440745412650017e+01,
453 1.70808091340565596283e+02,
454 1.66733948696651168575e+02,
457static const double qS3[6] = {
461 4.87588729724587182091e+01,
462 7.09689221056606015736e+02,
463 3.70414822620111362994e+03,
464 6.46042516752568917582e+03,
465 2.51633368920368957333e+03,
466 -1.49247451836156386662e+02,
470static const double qR2[6] = {
474 1.50444444886983272379e-07,
475 7.32234265963079278272e-02,
476 1.99819174093815998816e+00,
477 1.44956029347885735348e+01,
478 3.16662317504781540833e+01,
479 1.62527075710929267416e+01,
482static const double qS2[6] = {
486 3.03655848355219184498e+01,
487 2.69348118608049844624e+02,
488 8.44783757595320139444e+02,
489 8.82935845112488550512e+02,
490 2.12666388511798828631e+02,
491 -5.31095493882666946917e+00,
495 static double qzero(
double x)
502 const double *
p = 0,*
q = 0;
504 double *
p = 0,*
q = 0;
506 double s,
r,
z,z2,z4,z6,
r1,
r2,
r3,
s1,
s2,s3;
510 if(ix>=0x40200000) {
p =
qR8;
q=
qS8;}
511 else if(ix>=0x40122E8B){
p =
qR5;
q=
qS5;}
512 else if(ix>=0x4006DB6D){
p =
qR3;
q=
qS3;}
513 else if(ix>=0x40000000){
p =
qR2;
q=
qS2;}
515#ifdef DO_NOT_USE_THIS
520 r2 =
p[2]+
z*
p[3]; z4=z2*z2;
521 r3 =
p[4]+
z*
p[5]; z6=z4*z2;
526 s =
s1 + z2*
s2 + z4*s3 +z6*
q[5];
528 return (-.125 +
r/
s)/
x;
GLint GLint GLint GLint GLint x
GLdouble GLdouble GLdouble r
GLdouble GLdouble GLdouble GLdouble q
GLfloat GLfloat GLfloat v2
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
double __ieee754_y0(double x)
double __ieee754_j0(double x)
static __inline void __sincos(double x, double *s, double *c)
static __inline double __cos(double x)
#define EXTRACT_WORDS(ix0, ix1, d)
static __inline double __ieee754_log(double x)
#define GET_HIGH_WORD(i, d)
static __inline double __ieee754_sqrt(double x)
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double x)
static TRIO_CONST char rcsid[]