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:
nsz
2012-03-19 23:41:19 +01:00
parent b03255af77
commit 0cbb654791
73 changed files with 513 additions and 623 deletions

View File

@ -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;