math: move complex math out of libm.h
authorSzabolcs Nagy <nsz@port70.net>
Thu, 29 Nov 2018 22:09:53 +0000 (22:09 +0000)
committerRich Felker <dalias@aerifal.cx>
Wed, 17 Apr 2019 17:03:52 +0000 (13:03 -0400)
This makes it easier to build musl math code with a compiler that
does not support complex types (tcc) and in general more sensible
factorization of the internal headers.

67 files changed:
src/complex/__cexp.c
src/complex/__cexpf.c
src/complex/cabs.c
src/complex/cabsf.c
src/complex/cabsl.c
src/complex/cacos.c
src/complex/cacosf.c
src/complex/cacosh.c
src/complex/cacoshf.c
src/complex/cacoshl.c
src/complex/cacosl.c
src/complex/carg.c
src/complex/cargf.c
src/complex/cargl.c
src/complex/casin.c
src/complex/casinf.c
src/complex/casinh.c
src/complex/casinhf.c
src/complex/casinhl.c
src/complex/casinl.c
src/complex/catan.c
src/complex/catanf.c
src/complex/catanh.c
src/complex/catanhf.c
src/complex/catanhl.c
src/complex/catanl.c
src/complex/ccos.c
src/complex/ccosf.c
src/complex/ccosh.c
src/complex/ccoshf.c
src/complex/ccoshl.c
src/complex/ccosl.c
src/complex/cexp.c
src/complex/cexpf.c
src/complex/cexpl.c
src/complex/cimag.c
src/complex/cimagf.c
src/complex/cimagl.c
src/complex/clog.c
src/complex/clogf.c
src/complex/clogl.c
src/complex/conj.c
src/complex/conjf.c
src/complex/conjl.c
src/complex/cpow.c
src/complex/cpowf.c
src/complex/cpowl.c
src/complex/cproj.c
src/complex/cprojf.c
src/complex/cprojl.c
src/complex/csin.c
src/complex/csinf.c
src/complex/csinh.c
src/complex/csinhf.c
src/complex/csinhl.c
src/complex/csinl.c
src/complex/csqrt.c
src/complex/csqrtf.c
src/complex/csqrtl.c
src/complex/ctan.c
src/complex/ctanf.c
src/complex/ctanh.c
src/complex/ctanhf.c
src/complex/ctanhl.c
src/complex/ctanl.c
src/internal/complex_impl.h [new file with mode: 0644]
src/internal/libm.h

index 05ac28c75c6271219bc66d3c1b27a8750161b1bd..003d20af6efb72252438b68d88c0c39e19bb27b3 100644 (file)
@@ -25,7 +25,7 @@
  * SUCH DAMAGE.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 static const uint32_t k = 1799; /* constant for reduction */
 static const double kln2 = 1246.97177782734161156; /* k * ln2 */
index 69b54045afd4a8e953e19e72e1cf7a0f902d4f89..ee5ff2bce7e8f10f4af7f7c79bdfaf19d329b5ae 100644 (file)
@@ -25,7 +25,7 @@
  * SUCH DAMAGE.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 static const uint32_t k = 235; /* constant for reduction */
 static const float kln2 = 162.88958740F; /* k * ln2 */
index f61d364e47d260ec634f191f0a767aff3b2e39ee..c5ad58ab9353a1ca895ca9bc053cac7e67d0883a 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 double cabs(double complex z)
 {
index 30b25c70315ddd7c483db05e99b8b013ff728f39..619f28d39de57c29eb8c5d152634a41c40ecea42 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float cabsf(float complex z)
 {
index 40a067c1c59f182d7d96957a3286e4dace5e5449..d37e3f2ea5059ca2cceb12742b565f3b38428909 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double cabsl(long double complex z)
index 27c356364c8c6ffe438767352195e791ed03a23f..c39d257b44b52a679a4e6efe61a38eef739e5b3e 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 // FIXME: Hull et al. "Implementing the complex arcsine and arccosine functions using exception handling" 1997
 
index 11852659523a4c0ea22c44ed47eaef26f4d9c1ff..2e048540fac8c261cb7a625f0f2d66bb23aee5c9 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 // FIXME
 
index 8c68cb01fd6039eafaa856a7f3130a425b7504f6..8e42f1ae86ed5556933a3f0dca8b7a6b9130ffcc 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 /* acosh(z) = i acos(z) */
 
index ade01c0907c8322ffcfe0dc084d35f5ec37be246..d7e6b545474dd299bea83bf8a06e73fab49f6413 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float complex cacoshf(float complex z)
 {
index 65342557f9a545ef935190b3c64b6bdf2c6ceaa5..d3eaee204f6d51a13c8932e0e2e68fe708536b78 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex cacoshl(long double complex z)
index 7fd4a2f6b442404b00e9ea133e0e6e90dec8b057..cc20dcd7d954dad8c681bcba7a6ec6767c554636 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex cacosl(long double complex z)
index d2d1b4623a7fc77b2d413c363fd2ccef8d892939..dfe9b97a09e10eedbfbb65c72682fd4a49210ec9 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 double carg(double complex z)
 {
index ce183c4b335be96f5fc66daf5459b30cb3afb751..9a6c19b638dde14964a4de1ffd4ad285eebd0b07 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float cargf(float complex z)
 {
index e0d504782f1fc36aa7fcb70a9e40248f7a9b4be4..88f95f96e9c02e2e8877c771591259f12c2d9d08 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double cargl(long double complex z)
index 01ed61841ea4dc3447b76ec1b9470114a605fc62..3244bebb169349d946a63bd2b7e984be75821294 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 // FIXME
 
index 4fcb76fc57597b6b899cfa72c666b2aaa20b2765..2cda2f086b252dd49378efbfe0c7b2074701d455 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 // FIXME
 
index b57fe8c40ba3bfe94047e8af1f17b12ff9e4dd89..50bf27ce88ea426e67fec4f140560ac5445067a9 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 /* asinh(z) = -i asin(i z) */
 
index a11bf902d86f9cb7dff2ff5984e63d10ec441d85..93d82e5f4f11f8d7c99e8d4963889f4a1401d86f 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float complex casinhf(float complex z)
 {
index 714f189359071e31c9da7e52f66cb17df35facc9..68ba3ddfce16b0aaea18c9383beb4c0366f28f29 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex casinhl(long double complex z)
index 3b7ceba7a31fff8e87c27dbf0a87dcc63407cb8d..072adc450d2b0ac6c224c734469b3b82f79d537a 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex casinl(long double complex z)
index 7dc2afeb50330a3293e1b349499df1eb875a5a59..ccc2fb539af799f97c4411c4e820de23d43797b8 100644 (file)
@@ -58,7 +58,7 @@
  * 2.9e-17.  See also clog().
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 #define MAXNUM 1.0e308
 
index 8533bde397fba574164335268dd839a650ef4756..e10d9c09343282a30cb3b63770e126dba3e30615 100644 (file)
@@ -53,7 +53,7 @@
  *    IEEE      -10,+10     30000        2.3e-6      5.2e-8
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 #define MAXNUMF 1.0e38F
 
index e248d9b934135c5b474d16223c520109f0ed3d71..c324c7f2bca8017d6e27474a21576c157cf78ad9 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 /* atanh = -i atan(i z) */
 
index 4a5eb04079b9de3af8d3c814a53010fb52618828..b0505f6054053cd5797ee91cf818e4a75cd8045a 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float complex catanhf(float complex z)
 {
index a5dd538e44535ccc4961eadb593df3f1461a649b..6025c414053c0bdae8808c9ad9fdecda50a135df 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex catanhl(long double complex z)
index 5ace7704fdc086461216389aa83b980c161e2c3f..a9fc02db03012604488c7c867cb3618b9212f177 100644 (file)
@@ -59,7 +59,7 @@
 
 #include <complex.h>
 #include <float.h>
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex catanl(long double complex z)
index 645aec29a9dc013de43e3bb4bfed7d36d671a39b..f32e1fadfbf3439f0d804013f2235bf4bf2497a0 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 /* cos(z) = cosh(i z) */
 
index 9a67241f1cfb47ce688b9f982d9144b764516d31..490be9b3f218b5459cb9ef580a315076206fe1bf 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float complex ccosf(float complex z)
 {
index 401f3c604237c046fb9f3ebf0aa9656e31ca8a31..c995da7bb2247a88db849199d1d5aea12bec8b30 100644 (file)
@@ -34,7 +34,7 @@
  * These values and the return value were taken from n1124.pdf.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 static const double huge = 0x1p1023;
 
index 90acfe05829f3b2078a5e4af7b45ec6e5ca5bebd..189ce946dd4765ef47cffc897daa24268c486a32 100644 (file)
@@ -28,7 +28,7 @@
  * Hyperbolic cosine of a complex argument.  See s_ccosh.c for details.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 static const float huge = 0x1p127;
 
index 9b2aed9ef16c4e3e412e710a909f51bc167a1daf..ffb4d8a1465f47c1a5ac04d8c9005599fd231416 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 //FIXME
 long double complex ccoshl(long double complex z)
index d787047fec8d5a8df1234f393cd2b8f1a683092b..2530006bfc4262e10b75a75f94e2744d79c739f7 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex ccosl(long double complex z)
index 5118e00ea5b74d37b0721d5a3c35169c8e39cc07..7fb489bb930c4b3ae6095534052cc17927ad2aa5 100644 (file)
@@ -25,7 +25,7 @@
  * SUCH DAMAGE.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 static const uint32_t
 exp_ovfl  = 0x40862e42,  /* high bits of MAX_EXP * ln2 ~= 710 */
index 1a09964cbb52df1cc68b857e459450cf6d98910d..00d258f3fcea4e3b363cee35bf1be9058681ebc9 100644 (file)
@@ -25,7 +25,7 @@
  * SUCH DAMAGE.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 static const uint32_t
 exp_ovfl  = 0x42b17218,  /* MAX_EXP * ln2 ~= 88.722839355 */
index a27f85c052c1bf8302ce80d586a3399aced623b7..d4df950e335cbb25c71a49147a8b9a22d26219ac 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 //FIXME
 long double complex cexpl(long double complex z)
index 00955641b14a929373a55f9f3f30839d587f3d20..d6b0e6838c82a2a6ced9b2b809e4dc2f55da5c98 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 double (cimag)(double complex z)
 {
index f7bcd76e439fe0f81a45896f5814ce0fe8b79e75..b7166dcfa940d0ceea494700b1eacb71d0f9f28c 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float (cimagf)(float complex z)
 {
index 9ec24eeeafc56d93bddaead909538ff896c59908..4db77f201e0d26ec611dc62fb24347e6f9209841 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 long double (cimagl)(long double complex z)
 {
index 12aae9c7e9a02e32f7c68a9a6f98e1218455cca8..b587c2915a002c2a32222bba5cbc170c3dd526bb 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 // FIXME
 
index e9b32e6087bf284e972d3f0ce8377e0f0bfc131f..0389d4723082b4583db00cd7b7abcb67faec9f98 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 // FIXME
 
index 18f16088d7a31082feb0ff51c6453e2ea1f8d64a..88e83e87c92593f85a8cbe370066955d36d922f0 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex clogl(long double complex z)
index 0b3f5f46306c78086e026c7d61a0f7b8390dea4e..a3b19a4aa979a4cabdba7e57c4f325b0e18b95b1 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 double complex conj(double complex z)
 {
index 9af6b2c3b4549e5233c5f502fa26037cf1bd952b..b2195c84019a91360ee81bb0c8c1165f85815a59 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float complex conjf(float complex z)
 {
index 67f11b9dde8ee8a3622cce946941ad57bc0cc3b0..87a4ebecc365320498d2fff6cc9e7fe1d48668b6 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 long double complex conjl(long double complex z)
 {
index f863588fe7881dc9eeda32c620d2cc3cad889757..1137d3911724ced602aceb54cc1b7fff2ee5badb 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 /* pow(z, c) = exp(c log(z)), See C99 G.6.4.1 */
 
index 53c65dcb1112aab6846ede9bfb36c9b1106b1371..f3fd4b7b771bec3368303200823d38233d3a8ebf 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float complex cpowf(float complex z, float complex c)
 {
index c1a80a7b255bdedf712a067fe3eebcaedf96b78d..be36f046134aa828445d015131424da05b4ec5e5 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex cpowl(long double complex z, long double complex c)
index 15f358a14f045c0dd600a3c654b058c4c212326c..9ae1e17c0d8e26c91e0608794427f790bd94b65c 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 double complex cproj(double complex z)
 {
index 653be5e87cfcbf2d64f297fe21bed06423aab9e3..03fab339d9215dc589142444f9440195549339e3 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float complex cprojf(float complex z)
 {
index 6731aaa2aaaebd74cb8bc22a17f729841e436ad7..38a494c5c4b9c14bee615c8b337f17f6adcdc0e7 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex cprojl(long double complex z)
index ad8ae67ad99a59983cd00b6fbd5fe83b2071e667..535c4bf8b0b0cd4432563fc54d49f050c92270b3 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 /* sin(z) = -i sinh(i z) */
 
index 60b3cbaa8681ad3d5f31e40d4a86db764a053227..69f5164eb9982c74559dbf9b2aec8375916205f3 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float complex csinf(float complex z)
 {
index 0f8035d1ca41f3fc864881eb5ee0b9be36410347..eda0ab59f445d4135ba71336c0898f3eafa7102e 100644 (file)
@@ -34,7 +34,7 @@
  * These values and the return value were taken from n1124.pdf.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 static const double huge = 0x1p1023;
 
index 49697f02f4a35359bce63973f8b446adee6138fb..eb1d98c524a7d3db59eb4fccbf06498bca279721 100644 (file)
@@ -28,7 +28,7 @@
  * Hyperbolic sine of a complex argument z.  See s_csinh.c for details.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 static const float huge = 0x1p127;
 
index c566653b3356f34dacad3cde5312f45bf506db73..09fd18f931126203169cb1dc6ec12d6f19ad9bfa 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 //FIXME
 long double complex csinhl(long double complex z)
index 4e9f86c3ae4dc2094dd55dd79bd88a25ce40d784..90a4eb377777db4abe75970670d473fc94fb6240 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex csinl(long double complex z)
index 8a2ba608012230d79a16ce788feb96e4b4d53a0f..c36de00196cfe105bc236c85a426a3e65004d654 100644 (file)
@@ -25,7 +25,7 @@
  * SUCH DAMAGE.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 /*
  * gcc doesn't implement complex multiplication or division correctly,
index ab5102f035b9edc7889ffe3ff24d3b18ffcec50b..a6163974da042e1a1ba3b12836043175f2eb1331 100644 (file)
@@ -25,7 +25,7 @@
  * SUCH DAMAGE.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 /*
  * gcc doesn't implement complex multiplication or division correctly,
index 0600ef3bebcd31389a65a10edb21051843503ab1..225393790420d67b9b5740d9f73e756912b59bfb 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 //FIXME
 long double complex csqrtl(long double complex z)
index c09263744b869b92e03fc5c956a18178b089d655..918717bfcc42233dfdb83493002ea4ca187bde93 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 /* tan(z) = -i tanh(i z) */
 
index 009b1921ba35699471628e8cd3dcfa4b76adcfbc..04c3ff198a24f59fff99d732b816ea07ab418109 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 float complex ctanf(float complex z)
 {
index 3ba3a8997d80349099e4b9b98fcac27fae1f828d..54004cd7dcd97d64ff377022745f45416d9e4bf6 100644 (file)
@@ -63,7 +63,7 @@
  *   precision.  I also handle large x differently.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 double complex ctanh(double complex z)
 {
index 72b76da075cf83f26a3ea7297af2d0e5e052b039..7f422ba7fd3a583fc4062575d625503839d0291d 100644 (file)
@@ -28,7 +28,7 @@
  * Hyperbolic tangent of a complex argument z.  See s_ctanh.c for details.
  */
 
-#include "libm.h"
+#include "complex_impl.h"
 
 float complex ctanhf(float complex z)
 {
index 89a75d1334670296f5be2e3cf7d6df0b4ef088ce..45d5862c8baca5d8586e9681cf10cf499432b668 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 //FIXME
 long double complex ctanhl(long double complex z)
index ac1c3e0ad86d7611b8a9a74ed68a99abbffdbc21..4b87420d8ac18264e1f454c782d08d592f791669 100644 (file)
@@ -1,4 +1,4 @@
-#include "libm.h"
+#include "complex_impl.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 long double complex ctanl(long double complex z)
diff --git a/src/internal/complex_impl.h b/src/internal/complex_impl.h
new file mode 100644 (file)
index 0000000..51fb298
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef _COMPLEX_IMPL_H
+#define _COMPLEX_IMPL_H
+
+#include <complex.h>
+#include "libm.h"
+
+#undef __CMPLX
+#undef CMPLX
+#undef CMPLXF
+#undef CMPLXL
+
+#define __CMPLX(x, y, t) \
+       ((union { _Complex t __z; t __xy[2]; }){.__xy = {(x),(y)}}.__z)
+
+#define CMPLX(x, y) __CMPLX(x, y, double)
+#define CMPLXF(x, y) __CMPLX(x, y, float)
+#define CMPLXL(x, y) __CMPLX(x, y, long double)
+
+hidden double complex __ldexp_cexp(double complex,int);
+hidden float complex __ldexp_cexpf(float complex,int);
+
+#endif
index fd91627770d53b873a27f03f0a185cab3b3fac55..6e2d19008d8fe6babc31234cf8f585fbfc836736 100644 (file)
@@ -16,7 +16,6 @@
 #include <stdint.h>
 #include <float.h>
 #include <math.h>
-#include <complex.h>
 #include <endian.h>
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
@@ -153,18 +152,6 @@ do {                                              \
   (d) = __u.f;                                    \
 } while (0)
 
-#undef __CMPLX
-#undef CMPLX
-#undef CMPLXF
-#undef CMPLXL
-
-#define __CMPLX(x, y, t) \
-       ((union { _Complex t __z; t __xy[2]; }){.__xy = {(x),(y)}}.__z)
-
-#define CMPLX(x, y) __CMPLX(x, y, double)
-#define CMPLXF(x, y) __CMPLX(x, y, float)
-#define CMPLXL(x, y) __CMPLX(x, y, long double)
-
 /* fdlibm kernel functions */
 
 hidden int    __rem_pio2_large(double*,double*,int,int,int);
@@ -174,14 +161,12 @@ hidden double __sin(double,double,int);
 hidden double __cos(double,double);
 hidden double __tan(double,double,int);
 hidden double __expo2(double);
-hidden double complex __ldexp_cexp(double complex,int);
 
 hidden int    __rem_pio2f(float,double*);
 hidden float  __sindf(double);
 hidden float  __cosdf(double);
 hidden float  __tandf(double,int);
 hidden float  __expo2f(float);
-hidden float complex __ldexp_cexpf(float complex,int);
 
 hidden int __rem_pio2l(long double, long double *);
 hidden long double __sinl(long double, long double, int);