1 #pragma ident "@(#)k_tan.c 1.5 04/04/22 SMI"
49 static const double xxx[] = {
50 3.33333333333334091986e-01,
51 1.33333333333201242699e-01,
52 5.39682539762260521377e-02,
53 2.18694882948595424599e-02,
54 8.86323982359930005737e-03,
55 3.59207910759131235356e-03,
56 1.45620945432529025516e-03,
57 5.88041240820264096874e-04,
58 2.46463134818469906812e-04,
59 7.81794442939557092300e-05,
60 7.14072491382608190305e-05,
61 -1.85586374855275456654e-05,
62 2.59073051863633712884e-05,
63 1.00000000000000000000e+00,
64 7.85398163397448278999e-01,
65 3.06161699786838301793e-17
69 #define pio4lo xxx[15]
80 if (ix < 0x3e300000) {
82 if (((ix |
__LO(x)) | (iy + 1)) == 0)
96 return t + a * (s + t * v);
101 if (ix >= 0x3FE59428) {
118 r =
T[1] + w * (
T[3] + w * (
T[5] + w * (
T[7] + w * (
T[9] +
120 v = z * (
T[2] + w * (
T[4] + w * (
T[6] + w * (
T[8] + w * (
T[10] +
123 r = y + z * (s * (r + v) + y);
126 if (ix >= 0x3FE59428) {
128 return (
double) (1 - ((hx >> 30) & 2)) *
129 (v - 2.0 * (x - (w * w / (w + v) - r)));
146 return t + a * (s + t * v);