Use suffixed floating-point constants in float and long double catan/catanh.
This commit is contained in:
parent
2f38fbfe09
commit
77f143fdb4
|
@ -1,5 +1,11 @@
|
|||
2013-04-24 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* math/s_catanf.c (__catanf): Use suffixed floating-point
|
||||
constants.
|
||||
* math/s_catanhf.c (__catanhf): Likewise.
|
||||
* math/s_catanhl.c (__catanhl): Likewise.
|
||||
* math/s_catanl.c (__catanl): Likewise.
|
||||
|
||||
[BZ #15394]
|
||||
* math/s_catan.c (__catan): Calculate imaginary part of result
|
||||
with log1p not log unless computing log of number close to 0.
|
||||
|
|
|
@ -67,21 +67,21 @@ __catanf (__complex__ float x)
|
|||
|
||||
den = 1 - r2 - __imag__ x * __imag__ x;
|
||||
|
||||
__real__ res = 0.5 * __ieee754_atan2f (2.0 * __real__ x, den);
|
||||
__real__ res = 0.5f * __ieee754_atan2f (2.0f * __real__ x, den);
|
||||
|
||||
num = __imag__ x + 1.0;
|
||||
num = __imag__ x + 1.0f;
|
||||
num = r2 + num * num;
|
||||
|
||||
den = __imag__ x - 1.0;
|
||||
den = __imag__ x - 1.0f;
|
||||
den = r2 + den * den;
|
||||
|
||||
f = num / den;
|
||||
if (f < 0.5)
|
||||
__imag__ res = 0.25 * __ieee754_logf (f);
|
||||
if (f < 0.5f)
|
||||
__imag__ res = 0.25f * __ieee754_logf (f);
|
||||
else
|
||||
{
|
||||
num = 4.0 * __imag__ x;
|
||||
__imag__ res = 0.25 * __log1pf (num / den);
|
||||
num = 4.0f * __imag__ x;
|
||||
__imag__ res = 0.25f * __log1pf (num / den);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -58,24 +58,24 @@ __catanhf (__complex__ float x)
|
|||
{
|
||||
float i2 = __imag__ x * __imag__ x;
|
||||
|
||||
float num = 1.0 + __real__ x;
|
||||
float num = 1.0f + __real__ x;
|
||||
num = i2 + num * num;
|
||||
|
||||
float den = 1.0 - __real__ x;
|
||||
float den = 1.0f - __real__ x;
|
||||
den = i2 + den * den;
|
||||
|
||||
float f = num / den;
|
||||
if (f < 0.5)
|
||||
__real__ res = 0.25 * __ieee754_logf (f);
|
||||
if (f < 0.5f)
|
||||
__real__ res = 0.25f * __ieee754_logf (f);
|
||||
else
|
||||
{
|
||||
num = 4.0 * __real__ x;
|
||||
__real__ res = 0.25 * __log1pf (num / den);
|
||||
num = 4.0f * __real__ x;
|
||||
__real__ res = 0.25f * __log1pf (num / den);
|
||||
}
|
||||
|
||||
den = 1 - __real__ x * __real__ x - i2;
|
||||
|
||||
__imag__ res = 0.5 * __ieee754_atan2f (2.0 * __imag__ x, den);
|
||||
__imag__ res = 0.5f * __ieee754_atan2f (2.0f * __imag__ x, den);
|
||||
}
|
||||
|
||||
return res;
|
||||
|
|
|
@ -58,24 +58,24 @@ __catanhl (__complex__ long double x)
|
|||
{
|
||||
long double i2 = __imag__ x * __imag__ x;
|
||||
|
||||
long double num = 1.0 + __real__ x;
|
||||
long double num = 1.0L + __real__ x;
|
||||
num = i2 + num * num;
|
||||
|
||||
long double den = 1.0 - __real__ x;
|
||||
long double den = 1.0L - __real__ x;
|
||||
den = i2 + den * den;
|
||||
|
||||
long double f = num / den;
|
||||
if (f < 0.5)
|
||||
__real__ res = 0.25 * __ieee754_logl (f);
|
||||
if (f < 0.5L)
|
||||
__real__ res = 0.25L * __ieee754_logl (f);
|
||||
else
|
||||
{
|
||||
num = 4.0 * __real__ x;
|
||||
__real__ res = 0.25 * __log1pl (num / den);
|
||||
num = 4.0L * __real__ x;
|
||||
__real__ res = 0.25L * __log1pl (num / den);
|
||||
}
|
||||
|
||||
den = 1 - __real__ x * __real__ x - i2;
|
||||
|
||||
__imag__ res = 0.5 * __ieee754_atan2l (2.0 * __imag__ x, den);
|
||||
__imag__ res = 0.5L * __ieee754_atan2l (2.0L * __imag__ x, den);
|
||||
}
|
||||
|
||||
return res;
|
||||
|
|
|
@ -67,21 +67,21 @@ __catanl (__complex__ long double x)
|
|||
|
||||
den = 1 - r2 - __imag__ x * __imag__ x;
|
||||
|
||||
__real__ res = 0.5 * __ieee754_atan2l (2.0 * __real__ x, den);
|
||||
__real__ res = 0.5L * __ieee754_atan2l (2.0L * __real__ x, den);
|
||||
|
||||
num = __imag__ x + 1.0;
|
||||
num = __imag__ x + 1.0L;
|
||||
num = r2 + num * num;
|
||||
|
||||
den = __imag__ x - 1.0;
|
||||
den = __imag__ x - 1.0L;
|
||||
den = r2 + den * den;
|
||||
|
||||
f = num / den;
|
||||
if (f < 0.5)
|
||||
__imag__ res = 0.25 * __ieee754_logl (f);
|
||||
if (f < 0.5L)
|
||||
__imag__ res = 0.25L * __ieee754_logl (f);
|
||||
else
|
||||
{
|
||||
num = 4.0 * __imag__ x;
|
||||
__imag__ res = 0.25 * __log1pl (num / den);
|
||||
num = 4.0L * __imag__ x;
|
||||
__imag__ res = 0.25L * __log1pl (num / den);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue