mirror of
https://github.com/fluencelabs/musl
synced 2025-06-27 13:41:57 +00:00
code cleanup of named constants
zero, one, two, half are replaced by const literals The policy was to use the f suffix for float consts (1.0f), but don't use suffix for long double consts (these consts can be exactly represented as double).
This commit is contained in:
@ -30,8 +30,7 @@
|
||||
|
||||
#include "libm.h"
|
||||
|
||||
static const double one = 1.0, huge = 1e300;
|
||||
static const double zero = 0.0;
|
||||
static const double huge = 1e300;
|
||||
|
||||
double atanh(double x)
|
||||
{
|
||||
@ -44,15 +43,15 @@ double atanh(double x)
|
||||
if ((ix | ((lx|-lx)>>31)) > 0x3ff00000) /* |x| > 1 */
|
||||
return (x-x)/(x-x);
|
||||
if (ix == 0x3ff00000)
|
||||
return x/zero;
|
||||
if (ix < 0x3e300000 && (huge+x) > zero) /* x < 2**-28 */
|
||||
return x/0.0;
|
||||
if (ix < 0x3e300000 && (huge+x) > 0.0) /* x < 2**-28 */
|
||||
return x;
|
||||
SET_HIGH_WORD(x, ix);
|
||||
if (ix < 0x3fe00000) { /* x < 0.5 */
|
||||
t = x+x;
|
||||
t = 0.5*log1p(t + t*x/(one-x));
|
||||
t = 0.5*log1p(t + t*x/(1.0-x));
|
||||
} else
|
||||
t = 0.5*log1p((x+x)/(one-x));
|
||||
t = 0.5*log1p((x+x)/(1.0-x));
|
||||
if (hx >= 0)
|
||||
return t;
|
||||
return -t;
|
||||
|
Reference in New Issue
Block a user