about summary refs log tree commit diff
path: root/src/internal/libm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal/libm.h')
-rw-r--r--src/internal/libm.h23
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