mirror of
git://git.musl-libc.org/musl
synced 2024-11-27 03:53:58 +08:00
catan: remove no-op reduction mod pi and unused code
the output of atan2 is already in the correct range and does not need further reduction. the MAXNUM macros were both unused and incorrect.
This commit is contained in:
parent
ca4e632df4
commit
e1b57ede3e
@ -60,29 +60,6 @@
|
||||
|
||||
#include "complex_impl.h"
|
||||
|
||||
#define MAXNUM 1.0e308
|
||||
|
||||
static const double DP1 = 3.14159265160560607910E0;
|
||||
static const double DP2 = 1.98418714791870343106E-9;
|
||||
static const double DP3 = 1.14423774522196636802E-17;
|
||||
|
||||
static double _redupi(double x)
|
||||
{
|
||||
double t;
|
||||
long i;
|
||||
|
||||
t = x/M_PI;
|
||||
if (t >= 0.0)
|
||||
t += 0.5;
|
||||
else
|
||||
t -= 0.5;
|
||||
|
||||
i = t; /* the multiple */
|
||||
t = i;
|
||||
t = ((x - t * DP1) - t * DP2) - t * DP3;
|
||||
return t;
|
||||
}
|
||||
|
||||
double complex catan(double complex z)
|
||||
{
|
||||
double complex w;
|
||||
@ -95,7 +72,7 @@ double complex catan(double complex z)
|
||||
a = 1.0 - x2 - (y * y);
|
||||
|
||||
t = 0.5 * atan2(2.0 * x, a);
|
||||
w = _redupi(t);
|
||||
w = t;
|
||||
|
||||
t = y - 1.0;
|
||||
a = x2 + (t * t);
|
||||
|
@ -55,32 +55,6 @@
|
||||
|
||||
#include "complex_impl.h"
|
||||
|
||||
#define MAXNUMF 1.0e38F
|
||||
|
||||
static const double DP1 = 3.140625;
|
||||
static const double DP2 = 9.67502593994140625E-4;
|
||||
static const double DP3 = 1.509957990978376432E-7;
|
||||
|
||||
static const float float_pi = M_PI;
|
||||
|
||||
static float _redupif(float xx)
|
||||
{
|
||||
float x, t;
|
||||
long i;
|
||||
|
||||
x = xx;
|
||||
t = x/float_pi;
|
||||
if (t >= 0.0f)
|
||||
t += 0.5f;
|
||||
else
|
||||
t -= 0.5f;
|
||||
|
||||
i = t; /* the multiple */
|
||||
t = i;
|
||||
t = ((x - t * DP1) - t * DP2) - t * DP3;
|
||||
return t;
|
||||
}
|
||||
|
||||
float complex catanf(float complex z)
|
||||
{
|
||||
float complex w;
|
||||
@ -93,7 +67,7 @@ float complex catanf(float complex z)
|
||||
a = 1.0f - x2 - (y * y);
|
||||
|
||||
t = 0.5f * atan2f(2.0f * x, a);
|
||||
w = _redupif(t);
|
||||
w = t;
|
||||
|
||||
t = y - 1.0f;
|
||||
a = x2 + (t * t);
|
||||
|
@ -67,28 +67,6 @@ long double complex catanl(long double complex z)
|
||||
return catan(z);
|
||||
}
|
||||
#else
|
||||
static const long double PIL = 3.141592653589793238462643383279502884197169L;
|
||||
static const long double DP1 = 3.14159265358979323829596852490908531763125L;
|
||||
static const long double DP2 = 1.6667485837041756656403424829301998703007e-19L;
|
||||
static const long double DP3 = 1.8830410776607851167459095484560349402753e-39L;
|
||||
|
||||
static long double redupil(long double x)
|
||||
{
|
||||
long double t;
|
||||
long i;
|
||||
|
||||
t = x / PIL;
|
||||
if (t >= 0.0L)
|
||||
t += 0.5L;
|
||||
else
|
||||
t -= 0.5L;
|
||||
|
||||
i = t; /* the multiple */
|
||||
t = i;
|
||||
t = ((x - t * DP1) - t * DP2) - t * DP3;
|
||||
return t;
|
||||
}
|
||||
|
||||
long double complex catanl(long double complex z)
|
||||
{
|
||||
long double complex w;
|
||||
@ -101,7 +79,7 @@ long double complex catanl(long double complex z)
|
||||
a = 1.0L - x2 - (y * y);
|
||||
|
||||
t = atan2l(2.0L * x, a) * 0.5L;
|
||||
w = redupil(t);
|
||||
w = t;
|
||||
|
||||
t = y - 1.0L;
|
||||
a = x2 + (t * t);
|
||||
|
Loading…
Reference in New Issue
Block a user