- /* asin(1)=+-pi/2 with inexact */
- return x*pio2_hi + x*pio2_lo;
- return (x-x)/(x-x); /* asin(|x|>1) is NaN */
- } else if (expt < BIAS-1) { /* |x|<0.5 */
- if (expt < ASIN_LINEAR) { /* if |x| is small, asinl(x)=x */
+ /* asin(+-1)=+-pi/2 with inexact */
+ return x*pio2_hi + 0x1p-120f;
+ return 0/(x-x);
+ }
+ if (expt < 0x3fff - 1) { /* |x| < 0.5 */
+ if (expt < 0x3fff - 32) { /* |x|<0x1p-32, asinl(x)=x */