284{
285 int32_t jz,jx,jv,jp,jk,carry,
n,iq[20],
i,
j,
k,
m,q0,ih;
286 double z,fw,
f[20],fq[20],
q[20];
287
288
290 jp = jk;
291
292
294 jv = (e0-3)/24; if(jv<0) jv=0;
295 q0 = e0-24*(jv+1);
296
297
298 j = jv-jx;
m = jx+jk;
299 for (
i=0;
i<=
m;
i++,
j++)
301
302
303 for (
i=0;
i<=jk;
i++) {
304 for (
j=0,fw=0.0;
j<=jx;
j++)
305 fw +=
x[
j]*
f[jx+
i-
j];
307 }
308
309 jz = jk;
310recompute:
311
312 for (
i=0,
j=jz,
z=
q[jz];
j>0;
i++,
j--) {
316 }
317
318
323 ih = 0;
324 if (q0 > 0) {
325 i = iq[jz-1]>>(24-q0);
n +=
i;
326 iq[jz-1] -=
i<<(24-q0);
327 ih = iq[jz-1]>>(23-q0);
328 }
329 else if (q0 == 0) ih = iq[jz-1]>>23;
330 else if (
z >= 0.5) ih = 2;
331
332 if (ih > 0) {
334 for (
i=0;
i<jz;
i++) {
336 if (carry == 0) {
338 carry = 1;
339 iq[
i] = 0x1000000 -
j;
340 }
341 } else
342 iq[
i] = 0xffffff -
j;
343 }
344 if (q0 > 0) {
345 switch(q0) {
346 case 1:
347 iq[jz-1] &= 0x7fffff; break;
348 case 2:
349 iq[jz-1] &= 0x3fffff; break;
350 }
351 }
352 if (ih == 2) {
354 if (carry != 0)
356 }
357 }
358
359
362 for (
i=jz-1;
i>=jk;
i--)
j |= iq[
i];
364 for (
k=1; iq[jk-
k]==0;
k++);
365
366 for (
i=jz+1;
i<=jz+
k;
i++) {
368 for (
j=0,fw=0.0;
j<=jx;
j++)
369 fw +=
x[
j]*
f[jx+
i-
j];
371 }
373 goto recompute;
374 }
375 }
376
377
379 jz -= 1;
380 q0 -= 24;
381 while (iq[jz] == 0) {
382 jz--;
383 q0 -= 24;
384 }
385 } else {
390 jz += 1;
391 q0 += 24;
393 } else
395 }
396
397
399 for (
i=jz;
i>=0;
i--) {
401 fw *= 0x1p-24;
402 }
403
404
405 for(
i=jz;
i>=0;
i--) {
406 for (fw=0.0,
k=0;
k<=jp &&
k<=jz-
i;
k++)
409 }
410
411
412 switch(prec) {
413 case 0:
414 fw = 0.0;
415 for (
i=jz;
i>=0;
i--)
417 y[0] = ih==0 ? fw : -fw;
418 break;
419 case 1:
420 case 2:
421 fw = 0.0;
422 for (
i=jz;
i>=0;
i--)
424
426 y[0] = ih==0 ? fw : -fw;
427 fw = fq[0]-fw;
428 for (
i=1;
i<=jz;
i++)
430 y[1] = ih==0 ? fw : -fw;
431 break;
432 case 3:
433 for (
i=jz;
i>0;
i--) {
437 }
438 for (
i=jz;
i>1;
i--) {
442 }
443 for (fw=0.0,
i=jz;
i>=2;
i--)
445 if (ih==0) {
446 y[0] = fq[0];
y[1] = fq[1];
y[2] = fw;
447 } else {
448 y[0] = -fq[0];
y[1] = -fq[1];
y[2] = -fw;
449 }
450 }
452}
static const int32_t ipio2[]
static const double PIo2[]
static const int init_jk[]
_ACRTIMP double __cdecl scalbn(double, int)
_ACRTIMP double __cdecl floor(double)
static const uint32_t k[]
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLdouble GLdouble GLdouble GLdouble q
GLfloat GLfloat GLfloat GLfloat nx
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 const GLfloat const GLdouble const GLfloat GLint i
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 const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double