1570af302Sopenharmony_ci#ifndef _COMPLEX_IMPL_H 2570af302Sopenharmony_ci#define _COMPLEX_IMPL_H 3570af302Sopenharmony_ci 4570af302Sopenharmony_ci#include <complex.h> 5570af302Sopenharmony_ci#include "libm.h" 6570af302Sopenharmony_ci 7570af302Sopenharmony_ci#undef __CMPLX 8570af302Sopenharmony_ci#undef CMPLX 9570af302Sopenharmony_ci#undef CMPLXF 10570af302Sopenharmony_ci#undef CMPLXL 11570af302Sopenharmony_ci 12570af302Sopenharmony_ci#define __CMPLX(x, y, t) \ 13570af302Sopenharmony_ci ((union { _Complex t __z; t __xy[2]; }){.__xy = {(x),(y)}}.__z) 14570af302Sopenharmony_ci 15570af302Sopenharmony_ci#define CMPLX(x, y) __CMPLX(x, y, double) 16570af302Sopenharmony_ci#define CMPLXF(x, y) __CMPLX(x, y, float) 17570af302Sopenharmony_ci#define CMPLXL(x, y) __CMPLX(x, y, long double) 18570af302Sopenharmony_ci 19570af302Sopenharmony_cihidden double complex __ldexp_cexp(double complex,int); 20570af302Sopenharmony_cihidden float complex __ldexp_cexpf(float complex,int); 21570af302Sopenharmony_ci 22570af302Sopenharmony_ci#endif 23