summaryrefslogtreecommitdiff
path: root/src/internal
diff options
context:
space:
mode:
authorSzabolcs Nagy <nsz@port70.net>2012-11-13 01:31:49 +0100
committerSzabolcs Nagy <nsz@port70.net>2012-11-13 01:31:49 +0100
commitcfbaba79a2dd380e580a247b8fd36af60c878e8f (patch)
treea002987af1ea7652985973f8db98d2d4f8b6064a /src/internal
parente2fe959fe2a450f74271d4d3c4b0d9456f889125 (diff)
downloadmusl-cfbaba79a2dd380e580a247b8fd36af60c878e8f.tar.gz
musl-cfbaba79a2dd380e580a247b8fd36af60c878e8f.tar.bz2
musl-cfbaba79a2dd380e580a247b8fd36af60c878e8f.tar.xz
musl-cfbaba79a2dd380e580a247b8fd36af60c878e8f.zip
complex: add C11 CMPLX macros and replace cpack with them
Diffstat (limited to 'src/internal')
-rw-r--r--src/internal/libm.h23
1 files changed, 5 insertions, 18 deletions
diff --git a/src/internal/libm.h b/src/internal/libm.h
index a71c4c05..dfecd836 100644
--- a/src/internal/libm.h
+++ b/src/internal/libm.h
@@ -170,25 +170,12 @@ long double __p1evll(long double, const long double *, int);
#define STRICT_ASSIGN(type, lval, rval) ((lval) = (type)(rval))
#endif
-
/* complex */
-union dcomplex {
- double complex z;
- double a[2];
-};
-union fcomplex {
- float complex z;
- float a[2];
-};
-union lcomplex {
- long double complex z;
- long double a[2];
-};
-
-/* x + y*I is not supported properly by gcc */
-#define cpack(x,y) ((union dcomplex){.a={(x),(y)}}.z)
-#define cpackf(x,y) ((union fcomplex){.a={(x),(y)}}.z)
-#define cpackl(x,y) ((union lcomplex){.a={(x),(y)}}.z)
+#ifndef CMPLX
+#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)
+#endif
#endif