for(i=1;i<n&&(__HI(b) != 0xfff00000);i++){
u.d = b; for(i=1;i<n&&(__HI(u) != 0xfff00000);i++){
	double __ieee754_yn(int n, double x) #else	double __ieee754_yn(n,x) 	int n; double x;#endif{	int i,hx,ix,lx;	int sign;	double a, b, temp;	hx = __HI(x);	ix = 0x7fffffff&hx;	lx = __LO(x);    /* if Y(n,NaN) is NaN */	if((ix|((unsigned)(lx|-lx))>>31)>0x7ff00000) return x+x;	if((ix|lx)==0) return -one/zero;	if(hx<0) return zero/zero;	sign = 1;	if(n<0){		n = -n;		sign = 1 - ((n&1)<<1);	}	if(n==0) return(__ieee754_y0(x));	if(n==1) return(sign*__ieee754_y1(x));	if(ix==0x7ff00000) return zero;	if(ix>=0x52D00000) { /* x > 2**302 */    /* (x >> n**2)      *	    Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi)     *	    Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi)     *	    Let s=sin(x), c=cos(x),      *		xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then     *     *		   n	sin(xn)*sqt2	cos(xn)*sqt2     *		----------------------------------     *		   0	 s-c		 c+s     *		   1	-s-c 		-c+s     *		   2	-s+c		-c-s     *		   3	 s+c		 c-s     */		switch(n&3) {		    case 0: temp =  fd_sin(x)-fd_cos(x); break;		    case 1: temp = -fd_sin(x)-fd_cos(x); break;		    case 2: temp = -fd_sin(x)+fd_cos(x); break;		    case 3: temp =  fd_sin(x)+fd_cos(x); break;		}		b = invsqrtpi*temp/fd_sqrt(x);	} else {	    a = __ieee754_y0(x);	    b = __ieee754_y1(x);	/* quit if b is -inf */	    for(i=1;i<n&&(__HI(b) != 0xfff00000);i++){ 		temp = b;		b = ((double)(i+i)/x)*b - a;		a = temp;	    }	}	if(sign>0) return b; else return -b;}