summary refs log tree commit diff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-10-31 17:04:30 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-10-31 17:04:30 +0000
commit43e662837ca64a5141a5ebbb2d6f9d15513524d7 (patch)
treeeebde99125f8867a7ff3bf4ac0173068392124be /math
parent540af6e2f172a016719d3970433b9f6aeb0097f6 (diff)
downloadglibc-43e662837ca64a5141a5ebbb2d6f9d15513524d7.tar.gz
glibc-43e662837ca64a5141a5ebbb2d6f9d15513524d7.tar.xz
glibc-43e662837ca64a5141a5ebbb2d6f9d15513524d7.zip
Define CMPLX macros for more _FloatN, _FloatNx types.
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch defines CMPLX* macros for all such types, as
already done for _Float128.

Tested for x86_64.

	* math/complex.h
	[__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF16):
	New macro.
	[__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF32):
	Likewise.
	[__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF64):
	Likewise.
	[__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
	(CMPLXF32X): Likewise.
	[__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
	(CMPLXF64X): Likewise.
	[__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
	(CMPLXF128X): Likewise.
Diffstat (limited to 'math')
-rw-r--r--math/complex.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/math/complex.h b/math/complex.h
index 9a6cc3e799..43b4c7dbc3 100644
--- a/math/complex.h
+++ b/math/complex.h
@@ -59,10 +59,35 @@ __BEGIN_DECLS
 # define CMPLXL(x, y) __builtin_complex ((long double) (x), (long double) (y))
 #endif
 
+#if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF16(x, y) __builtin_complex ((_Float16) (x), (_Float16) (y))
+#endif
+
+#if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF32(x, y) __builtin_complex ((_Float32) (x), (_Float32) (y))
+#endif
+
+#if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF64(x, y) __builtin_complex ((_Float64) (x), (_Float64) (y))
+#endif
+
 #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
 # define CMPLXF128(x, y) __builtin_complex ((_Float128) (x), (_Float128) (y))
 #endif
 
+#if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF32X(x, y) __builtin_complex ((_Float32x) (x), (_Float32x) (y))
+#endif
+
+#if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF64X(x, y) __builtin_complex ((_Float64x) (x), (_Float64x) (y))
+#endif
+
+#if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF128X(x, y)					\
+  __builtin_complex ((_Float128x) (x), (_Float128x) (y))
+#endif
+
 /* The file <bits/cmathcalls.h> contains the prototypes for all the
    actual math functions.  These macros are used for those prototypes,
    so we can easily declare each function as both `name' and `__name',