diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-10-31 17:04:30 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-10-31 17:04:30 +0000 |
commit | 43e662837ca64a5141a5ebbb2d6f9d15513524d7 (patch) | |
tree | eebde99125f8867a7ff3bf4ac0173068392124be | |
parent | 540af6e2f172a016719d3970433b9f6aeb0097f6 (diff) | |
download | glibc-43e662837ca64a5141a5ebbb2d6f9d15513524d7.zip glibc-43e662837ca64a5141a5ebbb2d6f9d15513524d7.tar.gz glibc-43e662837ca64a5141a5ebbb2d6f9d15513524d7.tar.bz2 |
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.
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | math/complex.h | 25 |
2 files changed, 39 insertions, 0 deletions
@@ -1,5 +1,19 @@ 2017-10-31 Joseph Myers <joseph@codesourcery.com> + * 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. + * math/math.h [__FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32] (__MATH_EVAL_FMT2): Define to add 0.0f. diff --git a/math/complex.h b/math/complex.h index 9a6cc3e..43b4c7d 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', |