51 pi_o_4 = 7.8539816339744827900E-01,
52 pi_o_2 = 1.5707963267948965580E+00,
53 pi = 3.1415926535897931160E+00,
54 pi_lo = 1.2246467991473531772E-16;
67 hx =
__HI(x); ix = hx&0x7fffffff;
69 hy =
__HI(y); iy = hy&0x7fffffff;
71 if(((ix|((lx|-lx)>>31))>0x7ff00000)||
72 ((iy|((ly|-ly)>>31))>0x7ff00000))
74 if((hx-(0x3ff00000|lx))==0)
return atan(y);
75 m = ((hy>>31)&1)|((hx>>30)&2);
82 case 2:
return pi+tiny;
83 case 3:
return -pi-tiny;
87 if((ix|lx)==0)
return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
93 case 0:
return pi_o_4+tiny;
94 case 1:
return -pi_o_4-tiny;
95 case 2:
return 3.0*pi_o_4+tiny;
96 case 3:
return -3.0*pi_o_4-tiny;
100 case 0:
return zero ;
101 case 1:
return -
zero ;
102 case 2:
return pi+tiny ;
103 case 3:
return -pi-tiny ;
108 if(iy==0x7ff00000)
return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
112 if(k > 60) z=pi_o_2+0.5*pi_lo;
113 else if(hx<0&&k<-60) z=0.0;
117 case 1:
__HI(z) ^= 0x80000000;
119 case 2:
return pi-(z-pi_lo);