return 1.0;
else if (ix >= 0x3ff00000) /* (|x|>1)**+-inf = inf,0 */
return hy >= 0 ? y : 0.0;
- else if ((ix|lx) != 0) /* (|x|<1)**+-inf = 0,inf if x!=0 */
+ else /* (|x|<1)**+-inf = 0,inf */
return hy >= 0 ? 0.0 : -y;
}
if (iy == 0x3ff00000) { /* y is +-1 */
return 1.0f;
else if (ix > 0x3f800000) /* (|x|>1)**+-inf = inf,0 */
return hy >= 0 ? y : 0.0f;
- else if (ix != 0) /* (|x|<1)**+-inf = 0,inf if x!=0 */
+ else /* (|x|<1)**+-inf = 0,inf */
return hy >= 0 ? 0.0f: -y;
}
if (iy == 0x3f800000) /* y is +-1 */
if (y <= -LDBL_MAX) {
if (x > 1.0 || x < -1.0)
return 0.0;
- if (x != 0.0)
+ if (x != 0.0 || y == -INFINITY)
return INFINITY;
}
if (x >= LDBL_MAX) {