diff options
author | Szabolcs Nagy <nsz@port70.net> | 2012-11-13 01:31:49 +0100 |
---|---|---|
committer | Szabolcs Nagy <nsz@port70.net> | 2012-11-13 01:31:49 +0100 |
commit | cfbaba79a2dd380e580a247b8fd36af60c878e8f (patch) | |
tree | a002987af1ea7652985973f8db98d2d4f8b6064a /src/internal | |
parent | e2fe959fe2a450f74271d4d3c4b0d9456f889125 (diff) | |
download | musl-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.h | 23 |
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 |