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
19hidden double complex __ldexp_cexp(double complex,int);
20hidden float complex __ldexp_cexpf(float complex,int);
21
22#endif
23