return huge*fd_copysign(huge,x);
return really_big*fd_copysign(really_big,x);
	double fd_scalbn (double x, int n)#else	double fd_scalbn (x,n)	double x; int n;#endif{	int  k,hx,lx;	hx = __HI(x);	lx = __LO(x);        k = (hx&0x7ff00000)>>20;		/* extract exponent */        if (k==0) {				/* 0 or subnormal x */            if ((lx|(hx&0x7fffffff))==0) return x; /* +-0 */	    x *= two54; 	    hx = __HI(x);	    k = ((hx&0x7ff00000)>>20) - 54;             if (n< -50000) return tiny*x; 	/*underflow*/	    }        if (k==0x7ff) return x+x;		/* NaN or Inf */        k = k+n;         if (k >  0x7fe) return huge*fd_copysign(huge,x); /* overflow  */        if (k > 0) 				/* normal result */	    {__HI(x) = (hx&0x800fffff)|(k<<20); return x;}        if (k <= -54)            if (n > 50000) 	/* in case integer overflow in n+k */		return huge*fd_copysign(huge,x);	/*overflow*/	    else return tiny*fd_copysign(tiny,x); 	/*underflow*/        k += 54;				/* subnormal result */        __HI(x) = (hx&0x800fffff)|(k<<20);        return x*twom54;}