| OLD | NEW | 
|     1 // The following is adapted from fdlibm (http://www.netlib.org/fdlibm). |     1 // The following is adapted from fdlibm (http://www.netlib.org/fdlibm). | 
|     2 // |     2 // | 
|     3 // ==================================================== |     3 // ==================================================== | 
|     4 // Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. |     4 // Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | 
|     5 // |     5 // | 
|     6 // Developed at SunSoft, a Sun Microsystems, Inc. business. |     6 // Developed at SunSoft, a Sun Microsystems, Inc. business. | 
|     7 // Permission to use, copy, modify, and distribute this |     7 // Permission to use, copy, modify, and distribute this | 
|     8 // software is freely granted, provided that this notice |     8 // software is freely granted, provided that this notice | 
|     9 // is preserved. |     9 // is preserved. | 
|    10 // ==================================================== |    10 // ==================================================== | 
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   360 V8_INLINE double __kernel_cos(double x, double y) { |   360 V8_INLINE double __kernel_cos(double x, double y) { | 
|   361   static const double |   361   static const double | 
|   362       one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ |   362       one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ | 
|   363       C1 = 4.16666666666666019037e-02,  /* 0x3FA55555, 0x5555554C */ |   363       C1 = 4.16666666666666019037e-02,  /* 0x3FA55555, 0x5555554C */ | 
|   364       C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ |   364       C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ | 
|   365       C3 = 2.48015872894767294178e-05,  /* 0x3EFA01A0, 0x19CB1590 */ |   365       C3 = 2.48015872894767294178e-05,  /* 0x3EFA01A0, 0x19CB1590 */ | 
|   366       C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ |   366       C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ | 
|   367       C5 = 2.08757232129817482790e-09,  /* 0x3E21EE9E, 0xBDB4B1C4 */ |   367       C5 = 2.08757232129817482790e-09,  /* 0x3E21EE9E, 0xBDB4B1C4 */ | 
|   368       C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ |   368       C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ | 
|   369  |   369  | 
|   370   double a, hz, z, r, qx; |   370   double a, iz, z, r, qx; | 
|   371   int32_t ix; |   371   int32_t ix; | 
|   372   GET_HIGH_WORD(ix, x); |   372   GET_HIGH_WORD(ix, x); | 
|   373   ix &= 0x7fffffff;                           /* ix = |x|'s high word*/ |   373   ix &= 0x7fffffff;                           /* ix = |x|'s high word*/ | 
|   374   if (ix < 0x3e400000) {                      /* if x < 2**27 */ |   374   if (ix < 0x3e400000) {                      /* if x < 2**27 */ | 
|   375     if (static_cast<int>(x) == 0) return one; /* generate inexact */ |   375     if (static_cast<int>(x) == 0) return one; /* generate inexact */ | 
|   376   } |   376   } | 
|   377   z = x * x; |   377   z = x * x; | 
|   378   r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * C6))))); |   378   r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * C6))))); | 
|   379   if (ix < 0x3FD33333) { /* if |x| < 0.3 */ |   379   if (ix < 0x3FD33333) { /* if |x| < 0.3 */ | 
|   380     return one - (0.5 * z - (z * r - x * y)); |   380     return one - (0.5 * z - (z * r - x * y)); | 
|   381   } else { |   381   } else { | 
|   382     if (ix > 0x3fe90000) { /* x > 0.78125 */ |   382     if (ix > 0x3fe90000) { /* x > 0.78125 */ | 
|   383       qx = 0.28125; |   383       qx = 0.28125; | 
|   384     } else { |   384     } else { | 
|   385       INSERT_WORDS(qx, ix - 0x00200000, 0); /* x/4 */ |   385       INSERT_WORDS(qx, ix - 0x00200000, 0); /* x/4 */ | 
|   386     } |   386     } | 
|   387     hz = 0.5 * z - qx; |   387     iz = 0.5 * z - qx; | 
|   388     a = one - qx; |   388     a = one - qx; | 
|   389     return a - (hz - (z * r - x * y)); |   389     return a - (iz - (z * r - x * y)); | 
|   390   } |   390   } | 
|   391 } |   391 } | 
|   392  |   392  | 
|   393 /* __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) |   393 /* __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) | 
|   394  * double x[],y[]; int e0,nx,prec; int ipio2[]; |   394  * double x[],y[]; int e0,nx,prec; int ipio2[]; | 
|   395  * |   395  * | 
|   396  * __kernel_rem_pio2 return the last three digits of N with |   396  * __kernel_rem_pio2 return the last three digits of N with | 
|   397  *              y = x - N*pi/2 |   397  *              y = x - N*pi/2 | 
|   398  * so that |y| < pi/2. |   398  * so that |y| < pi/2. | 
|   399  * |   399  * | 
| (...skipping 1904 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2304     /* argument reduction needed */ |  2304     /* argument reduction needed */ | 
|  2305     n = __ieee754_rem_pio2(x, y); |  2305     n = __ieee754_rem_pio2(x, y); | 
|  2306     /* 1 -> n even, -1 -> n odd */ |  2306     /* 1 -> n even, -1 -> n odd */ | 
|  2307     return __kernel_tan(y[0], y[1], 1 - ((n & 1) << 1)); |  2307     return __kernel_tan(y[0], y[1], 1 - ((n & 1) << 1)); | 
|  2308   } |  2308   } | 
|  2309 } |  2309 } | 
|  2310  |  2310  | 
|  2311 }  // namespace ieee754 |  2311 }  // namespace ieee754 | 
|  2312 }  // namespace base |  2312 }  // namespace base | 
|  2313 }  // namespace v8 |  2313 }  // namespace v8 | 
| OLD | NEW |