math: raise flags in logl.c on <= 0 arguments
This commit is contained in:
parent
52bcf3f5fb
commit
e2fe959fe2
2 changed files with 3 additions and 9 deletions
|
|
@ -108,8 +108,7 @@ static const long double S[4] = {
|
||||||
|
|
||||||
long double log2l(long double x)
|
long double log2l(long double x)
|
||||||
{
|
{
|
||||||
long double z;
|
long double y, z;
|
||||||
long double y;
|
|
||||||
int e;
|
int e;
|
||||||
|
|
||||||
if (isnan(x))
|
if (isnan(x))
|
||||||
|
|
|
||||||
|
|
@ -50,11 +50,6 @@
|
||||||
* In the tests over the interval exp(+-10000), the logarithms
|
* In the tests over the interval exp(+-10000), the logarithms
|
||||||
* of the random arguments were uniformly distributed over
|
* of the random arguments were uniformly distributed over
|
||||||
* [-10000, +10000].
|
* [-10000, +10000].
|
||||||
*
|
|
||||||
* ERROR MESSAGES:
|
|
||||||
*
|
|
||||||
* log singularity: x = 0; returns -INFINITY
|
|
||||||
* log domain: x < 0; returns NAN
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "libm.h"
|
#include "libm.h"
|
||||||
|
|
@ -121,8 +116,8 @@ long double logl(long double x)
|
||||||
return x;
|
return x;
|
||||||
if (x <= 0.0) {
|
if (x <= 0.0) {
|
||||||
if (x == 0.0)
|
if (x == 0.0)
|
||||||
return -INFINITY;
|
return -1/(x+0); /* -inf with divbyzero */
|
||||||
return NAN;
|
return 0/0.0f; /* nan with invalid */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* separate mantissa from exponent */
|
/* separate mantissa from exponent */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue