48 static const double xxx[] = {
49 3.33333333333334091986e-01,
50 1.33333333333201242699e-01,
51 5.39682539762260521377e-02,
52 2.18694882948595424599e-02,
53 8.86323982359930005737e-03,
54 3.59207910759131235356e-03,
55 1.45620945432529025516e-03,
56 5.88041240820264096874e-04,
57 2.46463134818469906812e-04,
58 7.81794442939557092300e-05,
59 7.14072491382608190305e-05,
60 -1.85586374855275456654e-05,
61 2.59073051863633712884e-05,
62 1.00000000000000000000e+00,
63 7.85398163397448278999e-01,
64 3.06161699786838301793e-17
69 #define pio4lo xxx[15
] 110 double z, r, v, w, s;
119 ix = hx & 0x7FFFFFFF;
129 if (((ix | low) | (iy + 1)) == 0)
146 return t + a * (s + t * v);
151 if (ix >= 0x3FE59428)
172 r =
T[1] + w * (
T[3] + w * (
T[5] + w * (
T[7] + w * (
T[9] + w *
T[11]))));
173 v = z * (
T[2] + w * (
T[4] + w * (
T[6] + w * (
T[8] + w * (
T[10] + w *
T[12])))));
175 r = y + z * (s * (r + v) + y);
179 if (ix >= 0x3FE59428)
182 return (
double)(1 - ((hx >> 30) & 2)) *
183 (v - 2.0 * (x - (w * w / (w + v) - r)));
198 return t + a * (s + t * v);
#define GET_HIGH_WORD(i, d)
Get the more significant 32 bit int from a double.
#define GET_LOW_WORD(i, d)
Get the less significant 32 bit int from a double.
static const double xxx[]
double fabs(double x)
Returns the absolute value of x.
double __kernel_tan(double x, double y, int iy)
Kernel tan function.
#define SET_LOW_WORD(d, v)
Set the less significant 32 bits of a double from an int.