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