1 #ifndef _COMPLEX_IMPL_H 2 #define _COMPLEX_IMPL_H 3 4 #include <complex.h> 5 #include "libm.h" 6 7 #undef __CMPLX 8 #undef CMPLX 9 #undef CMPLXF 10 #undef CMPLXL 11 12 #define __CMPLX(x, y, t) \ 13 ((union { _Complex t __z; t __xy[2]; }){.__xy = {(x),(y)}}.__z) 14 15 #define CMPLX(x, y) __CMPLX(x, y, double) 16 #define CMPLXF(x, y) __CMPLX(x, y, float) 17 #define CMPLXL(x, y) __CMPLX(x, y, long double) 18 19 hidden double complex __ldexp_cexp(double complex,int); 20 hidden float complex __ldexp_cexpf(float complex,int); 21 22 #endif 23