55 double a=x,b=y,
t1,
t2,
y1,y2,w;
58 ha =
__HI(x)&0x7fffffff;
59 hb =
__HI(y)&0x7fffffff;
60 if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;}
else {a=x;b=y;}
63 if((ha-hb)>0x3c00000) {
return a+b;}
66 if(ha >= 0x7ff00000) {
68 if(((ha&0xfffff)|
__LO(a))==0) w = a;
69 if(((hb^0x7ff00000)|
__LO(b))==0) w = b;
73 ha -= 0x25800000; hb -= 0x25800000; k += 600;
78 if(hb <= 0x000fffff) {
79 if((hb|(
__LO(b)))==0)
return a;
81 __HI(t1) = 0x7fd00000;
99 w =
sqrt(t1*t1-(b*(-b)-t2*(a+t1)));
106 __HI(t1) = ha+0x00100000;
108 w =
sqrt(t1*y1-(w*(-w)-(t1*y2+t2*b)));