Print this page

        

@@ -544,13 +544,13 @@
         RET_SC(I)                                                                               \
 }                                                                                               \
 yisint##I = 0;  /* Y - non-integer */                                                           \
 exp = hy >> 20; /* Y exponent */                                                                \
 ull_y0 &= LMMANT;                                                                               \
-ull_x##I = ull_y0 | LDONE;                                                                      \
+ull_x##I = (ull_y0 | LDONE);                                                                    \
 x##I = *(double*)&ull_x##I;                                                                     \
-ull_ax##I = (ull_x##I + LMROUND) & LMHI20;                                                      \
+ull_ax##I = ((ull_x##I + LMROUND) & LMHI20);                                                    \
 ax##I = *(double*)&ull_ax##I;                                                                   \
 if ( hx >= 0x7ff00000 || exp >= 0x43e )         /* X=Inf,Nan or |Y|>2^63,Inf,Nan */             \
 {                                                                                               \
         y0 = *px;                                                                               \
         if ( hx > 0x7ff00000 || (hx == 0x7ff00000 && lx != 0) ||                                \

@@ -617,11 +617,11 @@
                         *pz = y0 * y0;                                                          \
                 }                                                                               \
                 RET_SC(I)                                                                       \
         }                                                                                       \
 }                                                                                               \
-if ( sx || (hx | lx) == 0 )     /* X <= 0      */                                               \
+if ( (sx || (hx | lx)) == 0 )   /* X <= 0      */                                               \
 {                                                                                               \
         if ( exp >= 0x434 )     /* |Y| >= 2^53 */                                               \
                 yisint##I = 2;  /* Y - even    */                                               \
         else                                                                                    \
         {                                                                                       \

@@ -660,15 +660,15 @@
 ux##I = x##I + ax##I;                                                                           \
 if ( !exp )                                                                                     \
 {                                                                                               \
         ax##I = (double) ull_y0;                                                                \
         ull_ax##I = *(unsigned long long*)&ax##I;                                               \
-        ull_x##I = ull_ax##I & LMMANT | LDONE;                                                  \
+        ull_x##I = ((ull_ax##I & LMMANT) | LDONE);                                                      \
         x##I = *(double*)&ull_x##I;                                                             \
         exp##I = ((unsigned int*) & ull_ax##I)[0];                                              \
         exp##I = (exp##I >> 20) - (2046 + 1023 + 51);                                           \
-        ull_ax##I = ull_x##I + LMROUND & LMHI20;                                                \
+        ull_ax##I = (ull_x##I + (LMROUND & LMHI20));                                            \
         ax##I = *(double*)&ull_ax##I;                                                           \
         ux##I = x##I + ax##I;                                                                   \
 }                                                                                               \
 ull_x##I = *(unsigned long long *)&ux##I;                                                       \
 hx##I = HI(&ull_ax##I);                                                                 \

@@ -676,23 +676,23 @@
 
 void
 __vpow( int n, double * restrict px, int stridex, double * restrict py,
         int stridey, double * restrict pz, int stridez )
 {
-        double                  *py0, *py1, *py2;
-        double                  *pz0, *pz1, *pz2;
-        double                  y0, yd0, u0, s0, s_l0, m_h0;
-        double                  y1, yd1, u1, s1, s_l1, m_h1;
+        double                  *py0 = 0, *py1 = 0, *py2;
+        double                  *pz0 = 0, *pz1 = 0, *pz2;
+        double                  y0, yd0 = 0.0L, u0, s0, s_l0, m_h0;
+        double                  y1, yd1 = 0.0L, u1, s1, s_l1, m_h1;
         double                  y2, yd2, u2, s2, s_l2, m_h2;
-        double                  ax0, x0, s_h0, ux0;
-        double                  ax1, x1, s_h1, ux1;
+        double                  ax0 = 0.0L, x0 = 0.0L, s_h0, ux0;
+        double                  ax1 = 0.0L, x1 = 0.0L, s_h1, ux1;
         double                  ax2, x2, s_h2, ux2;
         int                     eflag0, gflag0, ind0, i0;
         int                     eflag1, gflag1, ind1, i1;
         int                     eflag2, gflag2, ind2, i2;
-        int                     hx0, yisint0, exp0;
-        int                     hx1, yisint1, exp1;
+        int                     hx0 = 0, yisint0 = 0, exp0 = 0;
+        int                     hx1 = 0, yisint1 = 0, exp1 = 0;
         int                     hx2, yisint2, exp2;
         int                     exp, i = 0;
         unsigned                hx, lx, sx, hy, ly, sy;
         unsigned long long      ull_y0, ull_x0, ull_x1, ull_x2, ull_ax0, ull_ax1, ull_ax2;
         unsigned long long      LDONE = ((unsigned long long*)LCONST)[1];       /* 1.0                                  */

@@ -1127,12 +1127,12 @@
 
 static void
 __vpowx( int n, double * restrict px, double * restrict py,
         int stridey, double * restrict pz, int stridez )
 {
-        double                  *py0, *py1, *py2;
-        double                  *pz0, *pz1, *pz2;
+        double                  *py0, *py1 = 0, *py2;
+        double                  *pz0, *pz1 = 0, *pz2;
         double                  ux0, y0, yd0, u0, s0;
         double                  y1, yd1, u1, s1;
         double                  y2, yd2, u2, s2;
         double                  yr, s_h0, s_l0, m_h0, x0, ax0;
         unsigned long long      ull_y0, ull_x0, ull_x1, ull_x2, ull_ax0;

@@ -1153,14 +1153,14 @@
         double                  KB1 = ((double*)LCONST)[19];                    /*  2.70760617406228636578e-03  */
 
         /* perform s_h + yr = 256*log2(x) */
         ull_y0 = *(unsigned long long*)px;
         hx = HI(px);
-        ull_x0 = ull_y0 & LMMANT | LDONE;
+        ull_x0 = (ull_y0 & LMMANT) | LDONE;
         x0 = *(double*)&ull_x0;
         exp0 = (hx >> 20) - 2046;
-        ull_ax0 = ull_x0 + LMROUND & LMHI20;
+        ull_ax0 = ull_x0 + (LMROUND & LMHI20);
         ax0 = *(double*)&ull_ax0;
         hx0 = HI(&ax0);
         ux0 = x0 + ax0;
         yd0 = DONE / ux0;
         u0 = x0 - ax0;