]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/ieee754/dbl-64/e_atan2.c
Optimize libm
[thirdparty/glibc.git] / sysdeps / ieee754 / dbl-64 / e_atan2.c
index 9e1a794ec82bef0f98d88fc15805514e3ab73c00..784fc5a0c3c5dcb0ffe3e606537bbcc501eb063d 100644 (file)
@@ -63,7 +63,7 @@ double __ieee754_atan2(double y,double x) {
 #endif
   static const int pr[MM]={6,8,10,20,32};
   double ax,ay,u,du,u9,ua,v,vv,dv,t1,t2,t3,t4,t5,t6,t7,t8,
-         z,zz,cor,s1,ss1,s2,ss2;
+        z,zz,cor,s1,ss1,s2,ss2;
 #if 0
   double z1,z2;
 #endif
@@ -73,7 +73,7 @@ double __ieee754_atan2(double y,double x) {
 #endif
 
   static const int ep= 59768832,   /*  57*16**5   */
-                   em=-59768832;   /* -57*16**5   */
+                  em=-59768832;   /* -57*16**5   */
 
   /* x=NaN or y=NaN */
   num.d = x;  ux = num.i[HIGH_HALF];  dx = num.i[LOW_HALF];
@@ -102,23 +102,23 @@ double __ieee754_atan2(double y,double x) {
   if          (ux==0x7ff00000) {
     if        (dx==0x00000000) {
       if      (uy==0x7ff00000) {
-        if    (dy==0x00000000)  return qpi.d; }
+       if    (dy==0x00000000)  return qpi.d; }
       else if (uy==0xfff00000) {
-        if    (dy==0x00000000)  return mqpi.d; }
+       if    (dy==0x00000000)  return mqpi.d; }
       else {
-        if    ((uy&0x80000000)==0x00000000)  return ZERO;
-        else                                 return MZERO; }
+       if    ((uy&0x80000000)==0x00000000)  return ZERO;
+       else                                 return MZERO; }
     }
   }
   else if     (ux==0xfff00000) {
     if        (dx==0x00000000) {
       if      (uy==0x7ff00000) {
-        if    (dy==0x00000000)  return tqpi.d; }
+       if    (dy==0x00000000)  return tqpi.d; }
       else if (uy==0xfff00000) {
-        if    (dy==0x00000000)  return mtqpi.d; }
+       if    (dy==0x00000000)  return mtqpi.d; }
       else                     {
-        if    ((uy&0x80000000)==0x00000000)  return opi.d;
-        else                                 return mopi.d; }
+       if    ((uy&0x80000000)==0x00000000)  return opi.d;
+       else                                 return mopi.d; }
     }
   }
 
@@ -156,108 +156,108 @@ double __ieee754_atan2(double y,double x) {
     /* (i)   x>0, abs(y)< abs(x):  atan(ay/ax) */
     if (ay<ax) {
       if (u<inv16.d) {
-        v=u*u;  zz=du+u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
-        if ((z=u+(zz-u1.d*u)) == u+(zz+u1.d*u))  return signArctan2(y,z);
+       v=u*u;  zz=du+u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
+       if ((z=u+(zz-u1.d*u)) == u+(zz+u1.d*u))  return signArctan2(y,z);
 
-        MUL2(u,du,u,du,v,vv,t1,t2,t3,t4,t5,t6,t7,t8)
-        s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
-        ADD2(f9.d,ff9.d,s1,ZERO,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f7.d,ff7.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f5.d,ff5.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f3.d,ff3.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        MUL2(u,du,s1,ss1,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(u,du,s2,ss2,s1,ss1,t1,t2)
-        if ((z=s1+(ss1-u5.d*s1)) == s1+(ss1+u5.d*s1))  return signArctan2(y,z);
-        return atan2Mp(x,y,pr);
+       MUL2(u,du,u,du,v,vv,t1,t2,t3,t4,t5,t6,t7,t8)
+       s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
+       ADD2(f9.d,ff9.d,s1,ZERO,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f7.d,ff7.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f5.d,ff5.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f3.d,ff3.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       MUL2(u,du,s1,ss1,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(u,du,s2,ss2,s1,ss1,t1,t2)
+       if ((z=s1+(ss1-u5.d*s1)) == s1+(ss1+u5.d*s1))  return signArctan2(y,z);
+       return atan2Mp(x,y,pr);
       }
       else {
-        i=(TWO52+TWO8*u)-TWO52;  i-=16;
-        t3=u-cij[i][0].d;
-        EADD(t3,du,v,dv)
-        t1=cij[i][1].d;  t2=cij[i][2].d;
-        zz=v*t2+(dv*t2+v*v*(cij[i][3].d+v*(cij[i][4].d+
-                         v*(cij[i][5].d+v* cij[i][6].d))));
-        if (i<112) {
-          if (i<48)  u9=u91.d;    /* u < 1/4        */
-          else       u9=u92.d; }  /* 1/4 <= u < 1/2 */
-        else {
-          if (i<176) u9=u93.d;    /* 1/2 <= u < 3/4 */
-          else       u9=u94.d; }  /* 3/4 <= u <= 1  */
-        if ((z=t1+(zz-u9*t1)) == t1+(zz+u9*t1))  return signArctan2(y,z);
+       i=(TWO52+TWO8*u)-TWO52;  i-=16;
+       t3=u-cij[i][0].d;
+       EADD(t3,du,v,dv)
+       t1=cij[i][1].d;  t2=cij[i][2].d;
+       zz=v*t2+(dv*t2+v*v*(cij[i][3].d+v*(cij[i][4].d+
+                        v*(cij[i][5].d+v* cij[i][6].d))));
+       if (i<112) {
+         if (i<48)  u9=u91.d;    /* u < 1/4        */
+         else       u9=u92.d; }  /* 1/4 <= u < 1/2 */
+       else {
+         if (i<176) u9=u93.d;    /* 1/2 <= u < 3/4 */
+         else       u9=u94.d; }  /* 3/4 <= u <= 1  */
+       if ((z=t1+(zz-u9*t1)) == t1+(zz+u9*t1))  return signArctan2(y,z);
 
-        t1=u-hij[i][0].d;
-        EADD(t1,du,v,vv)
-        s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+
-           v*(hij[i][14].d+v* hij[i][15].d))));
-        ADD2(hij[i][9].d,hij[i][10].d,s1,ZERO,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][7].d,hij[i][8].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][5].d,hij[i][6].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][3].d,hij[i][4].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][1].d,hij[i][2].d,s1,ss1,s2,ss2,t1,t2)
-        if ((z=s2+(ss2-ub.d*s2)) == s2+(ss2+ub.d*s2))  return signArctan2(y,z);
-        return atan2Mp(x,y,pr);
+       t1=u-hij[i][0].d;
+       EADD(t1,du,v,vv)
+       s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+
+          v*(hij[i][14].d+v* hij[i][15].d))));
+       ADD2(hij[i][9].d,hij[i][10].d,s1,ZERO,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][7].d,hij[i][8].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][5].d,hij[i][6].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][3].d,hij[i][4].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][1].d,hij[i][2].d,s1,ss1,s2,ss2,t1,t2)
+       if ((z=s2+(ss2-ub.d*s2)) == s2+(ss2+ub.d*s2))  return signArctan2(y,z);
+       return atan2Mp(x,y,pr);
       }
     }
 
     /* (ii)  x>0, abs(x)<=abs(y):  pi/2-atan(ax/ay) */
     else {
       if (u<inv16.d) {
-        v=u*u;
-        zz=u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
-        ESUB(hpi.d,u,t2,cor)
-        t3=((hpi1.d+cor)-du)-zz;
-        if ((z=t2+(t3-u2.d)) == t2+(t3+u2.d))  return signArctan2(y,z);
+       v=u*u;
+       zz=u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
+       ESUB(hpi.d,u,t2,cor)
+       t3=((hpi1.d+cor)-du)-zz;
+       if ((z=t2+(t3-u2.d)) == t2+(t3+u2.d))  return signArctan2(y,z);
 
-        MUL2(u,du,u,du,v,vv,t1,t2,t3,t4,t5,t6,t7,t8)
-        s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
-        ADD2(f9.d,ff9.d,s1,ZERO,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f7.d,ff7.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f5.d,ff5.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f3.d,ff3.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        MUL2(u,du,s1,ss1,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(u,du,s2,ss2,s1,ss1,t1,t2)
-        SUB2(hpi.d,hpi1.d,s1,ss1,s2,ss2,t1,t2)
-        if ((z=s2+(ss2-u6.d)) == s2+(ss2+u6.d))  return signArctan2(y,z);
-        return atan2Mp(x,y,pr);
+       MUL2(u,du,u,du,v,vv,t1,t2,t3,t4,t5,t6,t7,t8)
+       s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
+       ADD2(f9.d,ff9.d,s1,ZERO,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f7.d,ff7.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f5.d,ff5.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f3.d,ff3.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       MUL2(u,du,s1,ss1,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(u,du,s2,ss2,s1,ss1,t1,t2)
+       SUB2(hpi.d,hpi1.d,s1,ss1,s2,ss2,t1,t2)
+       if ((z=s2+(ss2-u6.d)) == s2+(ss2+u6.d))  return signArctan2(y,z);
+       return atan2Mp(x,y,pr);
       }
       else {
-        i=(TWO52+TWO8*u)-TWO52;  i-=16;
-        v=(u-cij[i][0].d)+du;
-        zz=hpi1.d-v*(cij[i][2].d+v*(cij[i][3].d+v*(cij[i][4].d+
-                                 v*(cij[i][5].d+v* cij[i][6].d))));
-        t1=hpi.d-cij[i][1].d;
-        if (i<112)  ua=ua1.d;  /* w <  1/2 */
-        else        ua=ua2.d;  /* w >= 1/2 */
-        if ((z=t1+(zz-ua)) == t1+(zz+ua))  return signArctan2(y,z);
+       i=(TWO52+TWO8*u)-TWO52;  i-=16;
+       v=(u-cij[i][0].d)+du;
+       zz=hpi1.d-v*(cij[i][2].d+v*(cij[i][3].d+v*(cij[i][4].d+
+                                v*(cij[i][5].d+v* cij[i][6].d))));
+       t1=hpi.d-cij[i][1].d;
+       if (i<112)  ua=ua1.d;  /* w <  1/2 */
+       else        ua=ua2.d;  /* w >= 1/2 */
+       if ((z=t1+(zz-ua)) == t1+(zz+ua))  return signArctan2(y,z);
 
-        t1=u-hij[i][0].d;
-        EADD(t1,du,v,vv)
-        s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+
-           v*(hij[i][14].d+v* hij[i][15].d))));
-        ADD2(hij[i][9].d,hij[i][10].d,s1,ZERO,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][7].d,hij[i][8].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][5].d,hij[i][6].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][3].d,hij[i][4].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][1].d,hij[i][2].d,s1,ss1,s2,ss2,t1,t2)
-        SUB2(hpi.d,hpi1.d,s2,ss2,s1,ss1,t1,t2)
-        if ((z=s1+(ss1-uc.d)) == s1+(ss1+uc.d))  return signArctan2(y,z);
-        return atan2Mp(x,y,pr);
+       t1=u-hij[i][0].d;
+       EADD(t1,du,v,vv)
+       s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+
+          v*(hij[i][14].d+v* hij[i][15].d))));
+       ADD2(hij[i][9].d,hij[i][10].d,s1,ZERO,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][7].d,hij[i][8].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][5].d,hij[i][6].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][3].d,hij[i][4].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][1].d,hij[i][2].d,s1,ss1,s2,ss2,t1,t2)
+       SUB2(hpi.d,hpi1.d,s2,ss2,s1,ss1,t1,t2)
+       if ((z=s1+(ss1-uc.d)) == s1+(ss1+uc.d))  return signArctan2(y,z);
+       return atan2Mp(x,y,pr);
       }
     }
   }
@@ -266,112 +266,114 @@ double __ieee754_atan2(double y,double x) {
     /* (iii) x<0, abs(x)< abs(y):  pi/2+atan(ax/ay) */
     if (ax<ay) {
       if (u<inv16.d) {
-        v=u*u;
-        zz=u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
-        EADD(hpi.d,u,t2,cor)
-        t3=((hpi1.d+cor)+du)+zz;
-        if ((z=t2+(t3-u3.d)) == t2+(t3+u3.d))  return signArctan2(y,z);
+       v=u*u;
+       zz=u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
+       EADD(hpi.d,u,t2,cor)
+       t3=((hpi1.d+cor)+du)+zz;
+       if ((z=t2+(t3-u3.d)) == t2+(t3+u3.d))  return signArctan2(y,z);
 
-        MUL2(u,du,u,du,v,vv,t1,t2,t3,t4,t5,t6,t7,t8)
-        s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
-        ADD2(f9.d,ff9.d,s1,ZERO,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f7.d,ff7.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f5.d,ff5.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f3.d,ff3.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        MUL2(u,du,s1,ss1,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(u,du,s2,ss2,s1,ss1,t1,t2)
-        ADD2(hpi.d,hpi1.d,s1,ss1,s2,ss2,t1,t2)
-        if ((z=s2+(ss2-u7.d)) == s2+(ss2+u7.d))  return signArctan2(y,z);
-        return atan2Mp(x,y,pr);
+       MUL2(u,du,u,du,v,vv,t1,t2,t3,t4,t5,t6,t7,t8)
+       s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
+       ADD2(f9.d,ff9.d,s1,ZERO,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f7.d,ff7.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f5.d,ff5.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f3.d,ff3.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       MUL2(u,du,s1,ss1,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(u,du,s2,ss2,s1,ss1,t1,t2)
+       ADD2(hpi.d,hpi1.d,s1,ss1,s2,ss2,t1,t2)
+       if ((z=s2+(ss2-u7.d)) == s2+(ss2+u7.d))  return signArctan2(y,z);
+       return atan2Mp(x,y,pr);
       }
       else {
-        i=(TWO52+TWO8*u)-TWO52;  i-=16;
-        v=(u-cij[i][0].d)+du;
-        zz=hpi1.d+v*(cij[i][2].d+v*(cij[i][3].d+v*(cij[i][4].d+
-                                 v*(cij[i][5].d+v* cij[i][6].d))));
-        t1=hpi.d+cij[i][1].d;
-        if (i<112)  ua=ua1.d;  /* w <  1/2 */
-        else        ua=ua2.d;  /* w >= 1/2 */
-        if ((z=t1+(zz-ua)) == t1+(zz+ua))  return signArctan2(y,z);
+       i=(TWO52+TWO8*u)-TWO52;  i-=16;
+       v=(u-cij[i][0].d)+du;
+       zz=hpi1.d+v*(cij[i][2].d+v*(cij[i][3].d+v*(cij[i][4].d+
+                                v*(cij[i][5].d+v* cij[i][6].d))));
+       t1=hpi.d+cij[i][1].d;
+       if (i<112)  ua=ua1.d;  /* w <  1/2 */
+       else        ua=ua2.d;  /* w >= 1/2 */
+       if ((z=t1+(zz-ua)) == t1+(zz+ua))  return signArctan2(y,z);
 
-        t1=u-hij[i][0].d;
-        EADD(t1,du,v,vv)
-        s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+
-           v*(hij[i][14].d+v* hij[i][15].d))));
-        ADD2(hij[i][9].d,hij[i][10].d,s1,ZERO,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][7].d,hij[i][8].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][5].d,hij[i][6].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][3].d,hij[i][4].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][1].d,hij[i][2].d,s1,ss1,s2,ss2,t1,t2)
-        ADD2(hpi.d,hpi1.d,s2,ss2,s1,ss1,t1,t2)
-        if ((z=s1+(ss1-uc.d)) == s1+(ss1+uc.d))  return signArctan2(y,z);
-        return atan2Mp(x,y,pr);
+       t1=u-hij[i][0].d;
+       EADD(t1,du,v,vv)
+       s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+
+          v*(hij[i][14].d+v* hij[i][15].d))));
+       ADD2(hij[i][9].d,hij[i][10].d,s1,ZERO,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][7].d,hij[i][8].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][5].d,hij[i][6].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][3].d,hij[i][4].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][1].d,hij[i][2].d,s1,ss1,s2,ss2,t1,t2)
+       ADD2(hpi.d,hpi1.d,s2,ss2,s1,ss1,t1,t2)
+       if ((z=s1+(ss1-uc.d)) == s1+(ss1+uc.d))  return signArctan2(y,z);
+       return atan2Mp(x,y,pr);
       }
     }
 
     /* (iv)  x<0, abs(y)<=abs(x):  pi-atan(ax/ay) */
     else {
       if (u<inv16.d) {
-        v=u*u;
-        zz=u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
-        ESUB(opi.d,u,t2,cor)
-        t3=((opi1.d+cor)-du)-zz;
-        if ((z=t2+(t3-u4.d)) == t2+(t3+u4.d))  return signArctan2(y,z);
+       v=u*u;
+       zz=u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
+       ESUB(opi.d,u,t2,cor)
+       t3=((opi1.d+cor)-du)-zz;
+       if ((z=t2+(t3-u4.d)) == t2+(t3+u4.d))  return signArctan2(y,z);
 
-        MUL2(u,du,u,du,v,vv,t1,t2,t3,t4,t5,t6,t7,t8)
-        s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
-        ADD2(f9.d,ff9.d,s1,ZERO,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f7.d,ff7.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f5.d,ff5.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(f3.d,ff3.d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        MUL2(u,du,s1,ss1,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(u,du,s2,ss2,s1,ss1,t1,t2)
-        SUB2(opi.d,opi1.d,s1,ss1,s2,ss2,t1,t2)
-        if ((z=s2+(ss2-u8.d)) == s2+(ss2+u8.d))  return signArctan2(y,z);
-        return atan2Mp(x,y,pr);
+       MUL2(u,du,u,du,v,vv,t1,t2,t3,t4,t5,t6,t7,t8)
+       s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
+       ADD2(f9.d,ff9.d,s1,ZERO,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f7.d,ff7.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f5.d,ff5.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(f3.d,ff3.d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       MUL2(u,du,s1,ss1,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(u,du,s2,ss2,s1,ss1,t1,t2)
+       SUB2(opi.d,opi1.d,s1,ss1,s2,ss2,t1,t2)
+       if ((z=s2+(ss2-u8.d)) == s2+(ss2+u8.d))  return signArctan2(y,z);
+       return atan2Mp(x,y,pr);
       }
       else {
-        i=(TWO52+TWO8*u)-TWO52;  i-=16;
-        v=(u-cij[i][0].d)+du;
-        zz=opi1.d-v*(cij[i][2].d+v*(cij[i][3].d+v*(cij[i][4].d+
-                                 v*(cij[i][5].d+v* cij[i][6].d))));
-        t1=opi.d-cij[i][1].d;
-        if (i<112)  ua=ua1.d;  /* w <  1/2 */
-        else        ua=ua2.d;  /* w >= 1/2 */
-        if ((z=t1+(zz-ua)) == t1+(zz+ua))  return signArctan2(y,z);
+       i=(TWO52+TWO8*u)-TWO52;  i-=16;
+       v=(u-cij[i][0].d)+du;
+       zz=opi1.d-v*(cij[i][2].d+v*(cij[i][3].d+v*(cij[i][4].d+
+                                v*(cij[i][5].d+v* cij[i][6].d))));
+       t1=opi.d-cij[i][1].d;
+       if (i<112)  ua=ua1.d;  /* w <  1/2 */
+       else        ua=ua2.d;  /* w >= 1/2 */
+       if ((z=t1+(zz-ua)) == t1+(zz+ua))  return signArctan2(y,z);
 
-        t1=u-hij[i][0].d;
-        EADD(t1,du,v,vv)
-        s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+
-           v*(hij[i][14].d+v* hij[i][15].d))));
-        ADD2(hij[i][9].d,hij[i][10].d,s1,ZERO,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][7].d,hij[i][8].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][5].d,hij[i][6].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][3].d,hij[i][4].d,s1,ss1,s2,ss2,t1,t2)
-        MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
-        ADD2(hij[i][1].d,hij[i][2].d,s1,ss1,s2,ss2,t1,t2)
-        SUB2(opi.d,opi1.d,s2,ss2,s1,ss1,t1,t2)
-        if ((z=s1+(ss1-uc.d)) == s1+(ss1+uc.d))  return signArctan2(y,z);
-        return atan2Mp(x,y,pr);
+       t1=u-hij[i][0].d;
+       EADD(t1,du,v,vv)
+       s1=v*(hij[i][11].d+v*(hij[i][12].d+v*(hij[i][13].d+
+          v*(hij[i][14].d+v* hij[i][15].d))));
+       ADD2(hij[i][9].d,hij[i][10].d,s1,ZERO,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][7].d,hij[i][8].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][5].d,hij[i][6].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][3].d,hij[i][4].d,s1,ss1,s2,ss2,t1,t2)
+       MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
+       ADD2(hij[i][1].d,hij[i][2].d,s1,ss1,s2,ss2,t1,t2)
+       SUB2(opi.d,opi1.d,s2,ss2,s1,ss1,t1,t2)
+       if ((z=s1+(ss1-uc.d)) == s1+(ss1+uc.d))  return signArctan2(y,z);
+       return atan2Mp(x,y,pr);
       }
     }
   }
 }
+strong_alias (__ieee754_atan2, __atan2_finite)
+
   /* Treat the Denormalized case */
 static double  normalized(double ax,double ay,double y, double z)
     { int p;