Skip to content

Commit

Permalink
newlib: libm: skip "long double" complex functions if long double != …
Browse files Browse the repository at this point in the history
…double

The rest of "long double" functions aren't compiled with long double
and double are not the same.  Do the same for all complex functions.

Signed-off-by: Pietro Monteiro <[email protected]>
  • Loading branch information
Pietro Monteiro authored and jjohnstn committed Jun 6, 2024
1 parent 10b9216 commit 1ed1516
Show file tree
Hide file tree
Showing 14 changed files with 47 additions and 6 deletions.
9 changes: 4 additions & 5 deletions newlib/libm/complex/cargl.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,11 @@
#include <complex.h>
#include <math.h>

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double
cargl(long double complex z)
{
#ifdef _LDBL_EQ_DBL
{
return carg (z);
#else
return atan2l (cimagl (z), creall (z));
#endif
}
#endif
4 changes: 3 additions & 1 deletion newlib/libm/complex/catanl.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
#include <math.h>
#include "cephes_subrl.h"

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
#ifdef __weak_alias
__weak_alias(catanl, _catanl)
#endif
Expand Down Expand Up @@ -72,4 +74,4 @@ catanl(long double complex z)
w = HUGE_VALL + HUGE_VALL * I;
return w;
}

#endif
3 changes: 3 additions & 0 deletions newlib/libm/complex/ccoshl.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
#include <complex.h>
#include <math.h>

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double complex
ccoshl(long double complex z)
{
Expand All @@ -43,3 +45,4 @@ ccoshl(long double complex z)
w = coshl(x) * cosl(y) + (sinhl(x) * sinl(y)) * I;
return w;
}
#endif
3 changes: 3 additions & 0 deletions newlib/libm/complex/ccosl.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
#include <math.h>
#include "cephes_subrl.h"

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double complex
ccosl(long double complex z)
{
Expand All @@ -43,3 +45,4 @@ ccosl(long double complex z)
w = cosl(creall(z)) * ch - (sinl(creall(z)) * sh) * I;
return w;
}
#endif
6 changes: 6 additions & 0 deletions newlib/libm/complex/cephes_subrl.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@

/* calculate cosh and sinh */

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
void
_cchshl(long double x, long double *c, long double *s)
{
Expand All @@ -51,6 +53,7 @@ _cchshl(long double x, long double *c, long double *s)
*c = e + ei;
}
}
#endif

/* Program to subtract nearest integer multiple of PI */

Expand Down Expand Up @@ -85,6 +88,8 @@ _redupil(long double x)

/* Taylor series expansion for cosh(2y) - cos(2x) */

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double
_ctansl(long double complex z)
{
Expand Down Expand Up @@ -126,3 +131,4 @@ _ctansl(long double complex z)
} while (fabsl(t/d) > MACHEPL);
return d;
}
#endif
3 changes: 3 additions & 0 deletions newlib/libm/complex/cexpl.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
#include <complex.h>
#include <math.h>

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double complex
cexpl(long double complex z)
{
Expand All @@ -44,3 +46,4 @@ cexpl(long double complex z)
w = r * cosl(y) + r * sinl(y) * I;
return w;
}
#endif
3 changes: 3 additions & 0 deletions newlib/libm/complex/clogl.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
#include <complex.h>
#include <math.h>

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double complex
clogl(long double complex z)
{
Expand All @@ -44,3 +46,4 @@ clogl(long double complex z)
w = p + rr * I;
return w;
}
#endif
3 changes: 3 additions & 0 deletions newlib/libm/complex/cpowl.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
#include <complex.h>
#include <math.h>

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double complex
cpowl(long double complex a, long double complex z)
{
Expand All @@ -54,3 +56,4 @@ cpowl(long double complex a, long double complex z)
w = r * cosl(theta) + (r * sinl(theta)) * I;
return w;
}
#endif
4 changes: 4 additions & 0 deletions newlib/libm/complex/cprojl.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ __RCSID("$NetBSD: cprojl.c,v 1.7 2014/10/10 00:48:18 christos Exp $");
*
* INFINITY + I * copysign(0.0, cimag(z))
*/

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double complex
cprojl(long double complex z)
{
Expand All @@ -62,3 +65,4 @@ cprojl(long double complex z)

return (w.z);
}
#endif
3 changes: 3 additions & 0 deletions newlib/libm/complex/csinhl.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
#include <complex.h>
#include <math.h>

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double complex
csinhl(long double complex z)
{
Expand All @@ -43,3 +45,4 @@ csinhl(long double complex z)
w = sinhl(x) * cosl(y) + (coshl(x) * sinl(y)) * I;
return w;
}
#endif
3 changes: 3 additions & 0 deletions newlib/libm/complex/csinl.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
#include <math.h>
#include "cephes_subrl.h"

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double complex
csinl(long double complex z)
{
Expand All @@ -43,3 +45,4 @@ csinl(long double complex z)
w = sinl(creall(z)) * ch + (cosl(creall(z)) * sh) * I;
return w;
}
#endif
3 changes: 3 additions & 0 deletions newlib/libm/complex/csqrtl.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ __RCSID("$NetBSD: csqrtl.c,v 1.2 2014/10/11 00:43:51 christos Exp $");

#define cpackl(r, i) ((r) + (i) * I)

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double complex
csqrtl(long double complex z)
{
Expand Down Expand Up @@ -110,3 +112,4 @@ csqrtl(long double complex z)
else
return (result);
}
#endif
3 changes: 3 additions & 0 deletions newlib/libm/complex/ctanhl.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
#include <complex.h>
#include <math.h>

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double complex
ctanhl(long double complex z)
{
Expand All @@ -45,3 +47,4 @@ ctanhl(long double complex z)

return w;
}
#endif
3 changes: 3 additions & 0 deletions newlib/libm/complex/ctanl.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@
#include <math.h>
#include "cephes_subrl.h"

/* On platforms where long double is as wide as double. */
#ifdef _LDBL_EQ_DBL
long double complex
ctanl(long double complex z)
{
Expand All @@ -54,3 +56,4 @@ ctanl(long double complex z)
w = sinl(2.0L * creall(z)) / d + (sinhl(2.0L * cimagl(z)) / d) * I;
return w;
}
#endif

0 comments on commit 1ed1516

Please sign in to comment.