diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/math/pow.c | 2 | ||||
| -rw-r--r-- | src/math/powf.c | 2 | ||||
| -rw-r--r-- | src/math/powl.c | 2 | 
3 files changed, 3 insertions, 3 deletions
| diff --git a/src/math/pow.c b/src/math/pow.c index 82f684bd..b66f632d 100644 --- a/src/math/pow.c +++ b/src/math/pow.c @@ -143,7 +143,7 @@ double pow(double x, double y)  				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 */ diff --git a/src/math/powf.c b/src/math/powf.c index 59baf6f3..427c8965 100644 --- a/src/math/powf.c +++ b/src/math/powf.c @@ -90,7 +90,7 @@ float powf(float x, float y)  			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 */ diff --git a/src/math/powl.c b/src/math/powl.c index a765706d..5b6da07b 100644 --- a/src/math/powl.c +++ b/src/math/powl.c @@ -227,7 +227,7 @@ long double powl(long double x, long double y)  	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) { | 
