mirror of
https://github.com/fluencelabs/musl
synced 2025-06-15 16:01:41 +00:00
math: raise flags in log2l.c on <= 0 arguments, and fix volatile
This commit is contained in:
@ -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"
|
||||||
@ -113,7 +108,7 @@ static const long double S[4] = {
|
|||||||
|
|
||||||
long double log2l(long double x)
|
long double log2l(long double x)
|
||||||
{
|
{
|
||||||
volatile long double z;
|
long double z;
|
||||||
long double y;
|
long double y;
|
||||||
int e;
|
int e;
|
||||||
|
|
||||||
@ -123,8 +118,8 @@ long double log2l(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 */
|
||||||
|
Reference in New Issue
Block a user