Print this page




  34 #endif
  35 
  36 extern const double __vlibm_TBL_atan1[];
  37 
  38 static const double
  39 pio4    =  7.8539816339744827900e-01,
  40 pio2    =  1.5707963267948965580e+00,
  41 pi      =  3.1415926535897931160e+00;
  42 
  43 static const float
  44 zero    =  0.0f,
  45 one     =  1.0f,
  46 q1      = -3.3333333333296428046e-01f,
  47 q2      =  1.9999999186853752618e-01f,
  48 twop24  =  16777216.0f;
  49 
  50 void
  51 __vatan2f( int n, float * restrict y, int stridey, float * restrict x,
  52         int stridex, float * restrict z, int stridez )
  53 {
  54         float           x0, x1, x2, y0, y1, y2, *pz0, *pz1, *pz2;
  55         double          ah0, ah1, ah2;
  56         double          t0, t1, t2;
  57         double          sx0, sx1, sx2;
  58         double          sign0, sign1, sign2;
  59         int             i, k0, k1, k2, hx, sx, sy;
  60         int             hy0, hy1, hy2;
  61         float           base0, base1, base2;
  62         double          num0, num1, num2;
  63         double          den0, den1, den2;
  64         double          dx0, dx1, dx2;
  65         double          dy0, dy1, dy2;
  66         double          db0, db1, db2;          
  67 
  68         do
  69         {
  70 loop0:
  71                 hy0 = *(int*)y;
  72                 hx = *(int*)x;
  73                 sign0 = one;
  74                 sy = hy0 & 0x80000000;
  75                 hy0 &= ~0x80000000;
  76 
  77                 sx = hx & 0x80000000;
  78                 hx &= ~0x80000000;
  79 
  80                 if ( hy0 > hx )
  81                 {




  34 #endif
  35 
  36 extern const double __vlibm_TBL_atan1[];
  37 
  38 static const double
  39 pio4    =  7.8539816339744827900e-01,
  40 pio2    =  1.5707963267948965580e+00,
  41 pi      =  3.1415926535897931160e+00;
  42 
  43 static const float
  44 zero    =  0.0f,
  45 one     =  1.0f,
  46 q1      = -3.3333333333296428046e-01f,
  47 q2      =  1.9999999186853752618e-01f,
  48 twop24  =  16777216.0f;
  49 
  50 void
  51 __vatan2f( int n, float * restrict y, int stridey, float * restrict x,
  52         int stridex, float * restrict z, int stridez )
  53 {
  54         float           x0, x1, x2, y0, y1, y2, *pz0 = 0, *pz1, *pz2;
  55         double          ah0, ah1, ah2;
  56         double          t0, t1, t2;
  57         double          sx0, sx1, sx2;
  58         double          sign0, sign1, sign2;
  59         int             i, k0 = 0, k1, k2, hx, sx, sy;
  60         int             hy0, hy1, hy2;
  61         float           base0 = 0.0, base1, base2;
  62         double          num0, num1, num2;
  63         double          den0, den1, den2;
  64         double          dx0, dx1, dx2;
  65         double          dy0, dy1, dy2;
  66         double          db0, db1, db2;
  67 
  68         do
  69         {
  70 loop0:
  71                 hy0 = *(int*)y;
  72                 hx = *(int*)x;
  73                 sign0 = one;
  74                 sy = hy0 & 0x80000000;
  75                 hy0 &= ~0x80000000;
  76 
  77                 sx = hx & 0x80000000;
  78                 hx &= ~0x80000000;
  79 
  80                 if ( hy0 > hx )
  81                 {