r  = p/q; p  = (float)2.0*s*r-(pio2_lo-(float)2.0*c); q  = pio4_hi-(float)2.0*w;
r  = p; p  = 2.0f*s*r-(pio2_lo-2.0f*c); q  = pio4_hi-2.0f*w;
	float __ieee754_asinf(float x)#else	float __ieee754_asinf(x)	float x;#endif{	float t,w,p,q,c,r,s;	int32_t hx,ix;	GET_FLOAT_WORD(hx,x);	ix = hx&0x7fffffff;	if(ix==0x3f800000) {		/* asin(1)=+-pi/2 with inexact */	    return x*pio2_hi+x*pio2_lo;	} else if(ix> 0x3f800000) {	/* |x|>= 1 */	    return (x-x)/(x-x);		/* asin(|x|>1) is NaN */	} else if (ix<0x3f000000) {	/* |x|<0.5 */	    if(ix<0x32000000) {		/* if |x| < 2**-27 */		if(huge+x>one) return x;/* return x with inexact if x!=0*/	    } else {		t = x*x;		p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));		q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));		w = p/q;		return x+x*w;	    }	}	/* 1> |x|>= 0.5 */	w = one-fabsf(x);	t = w*(float)0.5;	p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));	q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));	s = __ieee754_sqrtf(t);	if(ix>=0x3F79999A) { 	/* if |x| > 0.975 */	    w = p/q;	    t = pio2_hi-((float)2.0*(s+s*w)-pio2_lo);	} else {	    int32_t iw;	    w  = s;	    GET_FLOAT_WORD(iw,w);	    SET_FLOAT_WORD(w,iw&0xfffff000);	    c  = (t-w*w)/(s+w);	    r  = p/q;	    p  = (float)2.0*s*r-(pio2_lo-(float)2.0*c);	    q  = pio4_hi-(float)2.0*w;	    t  = pio4_hi-(p-q);	}	if(hx>0) return t; else return -t;}