math: raise flags in log2l.c on <= 0 arguments, and fix volatile

This commit is contained in:
Szabolcs Nagy 2012-11-13 00:30:06 +01:00
parent 04ccbdca6d
commit 37aa7f7301

View File

@ -50,11 +50,6 @@
* In the tests over the interval exp(+-10000), the logarithms
* of the random arguments were uniformly distributed over
* [-10000, +10000].
*
* ERROR MESSAGES:
*
* log singularity: x = 0; returns -INFINITY
* log domain: x < 0; returns NAN
*/
#include "libm.h"
@ -113,7 +108,7 @@ static const long double S[4] = {
long double log2l(long double x)
{
volatile long double z;
long double z;
long double y;
int e;
@ -123,8 +118,8 @@ long double log2l(long double x)
return x;
if (x <= 0.0) {
if (x == 0.0)
return -INFINITY;
return NAN;
return -1/(x+0); /* -inf with divbyzero */
return 0/0.0f; /* nan with invalid */
}
/* separate mantissa from exponent */