- return pio2_hi + pio2_lo;
- z = x*x;
- p = z*(pS0+z*(pS1+z*pS2));
- q = one+z*qS1;
- r = p/q;
- return pio2_hi - (x - (pio2_lo-x*r));
- } else if (hx < 0) { /* x < -0.5 */
- z = (one+x)*0.5f;
- p = z*(pS0+z*(pS1+z*pS2));
- q = one+z*qS1;
- s = sqrtf(z);
- r = p/q;
- w = r*s-pio2_lo;
- return pi - 2.0f*(s+w);
- } else { /* x > 0.5 */
- int32_t idf;
-
- z = (one-x)*0.5f;