This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH v2 0/8] Add float128 functions and declarations to libm
- From: "Gabriel F. T. Gomes" <gftg at linux dot vnet dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Date: Fri, 28 Apr 2017 18:34:32 -0300
- Subject: [PATCH v2 0/8] Add float128 functions and declarations to libm
- Authentication-results: sourceware.org; auth=none
Changes since v1:
- Refactored headers to reduce the amount of repetitive boilerplate
needed to add float128 variants of math functions.
- Removed the float128-specific implementation of IEEE wrappers in
favor of the type-generic (templated) wrappers that do not rely on
__kernel_standard / _LIB_VERSION functionality.
- Moved hacks for old compilers support to the new,
architecture-dependent file bits/floatn-compat.h
Testing of the float128 support was done on the branch
tuliom/float128, where we keep the remaining patches (which: add the
remaining functions and macros to libm; extend __MATH_TG; add
strfromf128/strtof128; add float128 tests; and actually enable
float128 support on powerpc64le).
Gabriel F. T. Gomes (2):
float128: Include math-finite.h for _Float128
float128: Enable use of IEEE wrapper templates
Paul E. Murphy (6):
ldbl-128: Use mathx_hidden_def inplace of hidden_def
float128: Add _Float128 make bits to libm.
Add support for testing __STDC_WANT_IEC_60559_TYPES_EXT__
float128: Add public _Float128 declarations to libm.
float128: Add private _Float128 declarations for libm.
float128: Add wrappers to override ldbl-128 as float128.
bits/floatn-compat.h | 20 ++
bits/floatn.h | 30 +++
bits/huge_val_flt128.h | 25 ++
bits/libc-header-start.h | 9 +
bits/libm-simd-decl-stubs.h | 6 +
include/complex.h | 7 +
include/float.h | 31 +++
include/math.h | 13 +
math/Makefile | 19 +-
math/bits/cmathcalls.h | 4 +-
math/bits/mathcalls.h | 30 ++-
math/complex.h | 27 +-
math/math.h | 73 ++++-
sysdeps/generic/fix-fp-int-convert-overflow.h | 2 +
sysdeps/generic/math-type-macros-float128.h | 46 ++++
sysdeps/generic/math_private.h | 60 ++++-
sysdeps/generic/math_private_calls.h | 4 +-
sysdeps/ieee754/float128/Makeconfig | 3 +
sysdeps/ieee754/float128/Versions | 139 ++++++++++
sysdeps/ieee754/float128/e_acosf128.c | 2 +
sysdeps/ieee754/float128/e_acoshf128.c | 2 +
sysdeps/ieee754/float128/e_asinf128.c | 2 +
sysdeps/ieee754/float128/e_atan2f128.c | 2 +
sysdeps/ieee754/float128/e_atanhf128.c | 2 +
sysdeps/ieee754/float128/e_coshf128.c | 2 +
sysdeps/ieee754/float128/e_exp10f128.c | 2 +
sysdeps/ieee754/float128/e_expf128.c | 2 +
sysdeps/ieee754/float128/e_fmodf128.c | 2 +
sysdeps/ieee754/float128/e_gammaf128_r.c | 2 +
sysdeps/ieee754/float128/e_hypotf128.c | 2 +
sysdeps/ieee754/float128/e_ilogbf128.c | 2 +
sysdeps/ieee754/float128/e_j0f128.c | 2 +
sysdeps/ieee754/float128/e_j1f128.c | 2 +
sysdeps/ieee754/float128/e_jnf128.c | 2 +
sysdeps/ieee754/float128/e_lgammaf128.c | 1 +
sysdeps/ieee754/float128/e_lgammaf128_r.c | 2 +
sysdeps/ieee754/float128/e_log10f128.c | 2 +
sysdeps/ieee754/float128/e_log2f128.c | 2 +
sysdeps/ieee754/float128/e_logf128.c | 2 +
sysdeps/ieee754/float128/e_powf128.c | 2 +
sysdeps/ieee754/float128/e_rem_pio2f128.c | 2 +
sysdeps/ieee754/float128/e_remainderf128.c | 2 +
sysdeps/ieee754/float128/e_scalbf128.c | 1 +
sysdeps/ieee754/float128/e_sinhf128.c | 2 +
sysdeps/ieee754/float128/e_sqrtf128.c | 2 +
sysdeps/ieee754/float128/float128_private.h | 330 +++++++++++++++++++++++
sysdeps/ieee754/float128/gamma_productf128.c | 2 +
sysdeps/ieee754/float128/ieee754_float128.h | 140 ++++++++++
sysdeps/ieee754/float128/k_cosf128.c | 2 +
sysdeps/ieee754/float128/k_rem_pio2f128.c | 2 +
sysdeps/ieee754/float128/k_sincosf128.c | 2 +
sysdeps/ieee754/float128/k_sinf128.c | 2 +
sysdeps/ieee754/float128/k_tanf128.c | 2 +
sysdeps/ieee754/float128/lgamma_negf128.c | 2 +
sysdeps/ieee754/float128/lgamma_productf128.c | 2 +
sysdeps/ieee754/float128/s_asinhf128.c | 2 +
sysdeps/ieee754/float128/s_atanf128.c | 2 +
sysdeps/ieee754/float128/s_cbrtf128.c | 2 +
sysdeps/ieee754/float128/s_ceilf128.c | 2 +
sysdeps/ieee754/float128/s_copysignf128.c | 2 +
sysdeps/ieee754/float128/s_cosf128.c | 2 +
sysdeps/ieee754/float128/s_erff128.c | 2 +
sysdeps/ieee754/float128/s_expm1f128.c | 2 +
sysdeps/ieee754/float128/s_fabsf128.c | 2 +
sysdeps/ieee754/float128/s_finitef128.c | 2 +
sysdeps/ieee754/float128/s_floorf128.c | 2 +
sysdeps/ieee754/float128/s_fmaf128.c | 2 +
sysdeps/ieee754/float128/s_fpclassifyf128.c | 2 +
sysdeps/ieee754/float128/s_frexpf128.c | 2 +
sysdeps/ieee754/float128/s_fromfpf128.c | 5 +
sysdeps/ieee754/float128/s_fromfpxf128.c | 5 +
sysdeps/ieee754/float128/s_getpayloadf128.c | 2 +
sysdeps/ieee754/float128/s_isinff128.c | 2 +
sysdeps/ieee754/float128/s_isnanf128.c | 2 +
sysdeps/ieee754/float128/s_issignalingf128.c | 2 +
sysdeps/ieee754/float128/s_llrintf128.c | 2 +
sysdeps/ieee754/float128/s_llroundf128.c | 2 +
sysdeps/ieee754/float128/s_log1pf128.c | 2 +
sysdeps/ieee754/float128/s_logbf128.c | 2 +
sysdeps/ieee754/float128/s_lrintf128.c | 2 +
sysdeps/ieee754/float128/s_lroundf128.c | 2 +
sysdeps/ieee754/float128/s_modff128.c | 2 +
sysdeps/ieee754/float128/s_nearbyintf128.c | 2 +
sysdeps/ieee754/float128/s_nextafterf128.c | 2 +
sysdeps/ieee754/float128/s_nexttowardf128.c | 1 +
sysdeps/ieee754/float128/s_nextupf128.c | 2 +
sysdeps/ieee754/float128/s_remquof128.c | 2 +
sysdeps/ieee754/float128/s_rintf128.c | 2 +
sysdeps/ieee754/float128/s_roundf128.c | 2 +
sysdeps/ieee754/float128/s_scalblnf128.c | 2 +
sysdeps/ieee754/float128/s_scalbnf128.c | 2 +
sysdeps/ieee754/float128/s_setpayloadf128.c | 4 +
sysdeps/ieee754/float128/s_setpayloadsigf128.c | 4 +
sysdeps/ieee754/float128/s_signbitf128.c | 2 +
sysdeps/ieee754/float128/s_significandf128.c | 1 +
sysdeps/ieee754/float128/s_sincosf128.c | 2 +
sysdeps/ieee754/float128/s_sinf128.c | 2 +
sysdeps/ieee754/float128/s_tanf128.c | 2 +
sysdeps/ieee754/float128/s_tanhf128.c | 2 +
sysdeps/ieee754/float128/s_totalorderf128.c | 2 +
sysdeps/ieee754/float128/s_totalordermagf128.c | 2 +
sysdeps/ieee754/float128/s_truncf128.c | 2 +
sysdeps/ieee754/float128/s_ufromfpf128.c | 5 +
sysdeps/ieee754/float128/s_ufromfpxf128.c | 5 +
sysdeps/ieee754/float128/t_sincosf128.c | 2 +
sysdeps/ieee754/float128/w_llogbf128.c | 3 +
sysdeps/ieee754/float128/x2y2m1f128.c | 2 +
sysdeps/ieee754/ldbl-128/s_finitel.c | 2 +-
sysdeps/ieee754/ldbl-128/s_isinfl.c | 2 +-
sysdeps/ieee754/ldbl-128/s_isnanl.c | 2 +-
sysdeps/ieee754/ldbl-opt/s_sin.c | 1 +
sysdeps/powerpc/powerpc64le/bits/floatn-compat.h | 58 ++++
112 files changed, 1246 insertions(+), 22 deletions(-)
create mode 100644 bits/floatn-compat.h
create mode 100644 bits/floatn.h
create mode 100644 bits/huge_val_flt128.h
create mode 100644 include/float.h
create mode 100644 sysdeps/generic/math-type-macros-float128.h
create mode 100644 sysdeps/ieee754/float128/Makeconfig
create mode 100644 sysdeps/ieee754/float128/Versions
create mode 100644 sysdeps/ieee754/float128/e_acosf128.c
create mode 100644 sysdeps/ieee754/float128/e_acoshf128.c
create mode 100644 sysdeps/ieee754/float128/e_asinf128.c
create mode 100644 sysdeps/ieee754/float128/e_atan2f128.c
create mode 100644 sysdeps/ieee754/float128/e_atanhf128.c
create mode 100644 sysdeps/ieee754/float128/e_coshf128.c
create mode 100644 sysdeps/ieee754/float128/e_exp10f128.c
create mode 100644 sysdeps/ieee754/float128/e_expf128.c
create mode 100644 sysdeps/ieee754/float128/e_fmodf128.c
create mode 100644 sysdeps/ieee754/float128/e_gammaf128_r.c
create mode 100644 sysdeps/ieee754/float128/e_hypotf128.c
create mode 100644 sysdeps/ieee754/float128/e_ilogbf128.c
create mode 100644 sysdeps/ieee754/float128/e_j0f128.c
create mode 100644 sysdeps/ieee754/float128/e_j1f128.c
create mode 100644 sysdeps/ieee754/float128/e_jnf128.c
create mode 100644 sysdeps/ieee754/float128/e_lgammaf128.c
create mode 100644 sysdeps/ieee754/float128/e_lgammaf128_r.c
create mode 100644 sysdeps/ieee754/float128/e_log10f128.c
create mode 100644 sysdeps/ieee754/float128/e_log2f128.c
create mode 100644 sysdeps/ieee754/float128/e_logf128.c
create mode 100644 sysdeps/ieee754/float128/e_powf128.c
create mode 100644 sysdeps/ieee754/float128/e_rem_pio2f128.c
create mode 100644 sysdeps/ieee754/float128/e_remainderf128.c
create mode 100644 sysdeps/ieee754/float128/e_scalbf128.c
create mode 100644 sysdeps/ieee754/float128/e_sinhf128.c
create mode 100644 sysdeps/ieee754/float128/e_sqrtf128.c
create mode 100644 sysdeps/ieee754/float128/float128_private.h
create mode 100644 sysdeps/ieee754/float128/gamma_productf128.c
create mode 100644 sysdeps/ieee754/float128/ieee754_float128.h
create mode 100644 sysdeps/ieee754/float128/k_cosf128.c
create mode 100644 sysdeps/ieee754/float128/k_rem_pio2f128.c
create mode 100644 sysdeps/ieee754/float128/k_sincosf128.c
create mode 100644 sysdeps/ieee754/float128/k_sinf128.c
create mode 100644 sysdeps/ieee754/float128/k_tanf128.c
create mode 100644 sysdeps/ieee754/float128/lgamma_negf128.c
create mode 100644 sysdeps/ieee754/float128/lgamma_productf128.c
create mode 100644 sysdeps/ieee754/float128/s_asinhf128.c
create mode 100644 sysdeps/ieee754/float128/s_atanf128.c
create mode 100644 sysdeps/ieee754/float128/s_cbrtf128.c
create mode 100644 sysdeps/ieee754/float128/s_ceilf128.c
create mode 100644 sysdeps/ieee754/float128/s_copysignf128.c
create mode 100644 sysdeps/ieee754/float128/s_cosf128.c
create mode 100644 sysdeps/ieee754/float128/s_erff128.c
create mode 100644 sysdeps/ieee754/float128/s_expm1f128.c
create mode 100644 sysdeps/ieee754/float128/s_fabsf128.c
create mode 100644 sysdeps/ieee754/float128/s_finitef128.c
create mode 100644 sysdeps/ieee754/float128/s_floorf128.c
create mode 100644 sysdeps/ieee754/float128/s_fmaf128.c
create mode 100644 sysdeps/ieee754/float128/s_fpclassifyf128.c
create mode 100644 sysdeps/ieee754/float128/s_frexpf128.c
create mode 100644 sysdeps/ieee754/float128/s_fromfpf128.c
create mode 100644 sysdeps/ieee754/float128/s_fromfpxf128.c
create mode 100644 sysdeps/ieee754/float128/s_getpayloadf128.c
create mode 100644 sysdeps/ieee754/float128/s_isinff128.c
create mode 100644 sysdeps/ieee754/float128/s_isnanf128.c
create mode 100644 sysdeps/ieee754/float128/s_issignalingf128.c
create mode 100644 sysdeps/ieee754/float128/s_llrintf128.c
create mode 100644 sysdeps/ieee754/float128/s_llroundf128.c
create mode 100644 sysdeps/ieee754/float128/s_log1pf128.c
create mode 100644 sysdeps/ieee754/float128/s_logbf128.c
create mode 100644 sysdeps/ieee754/float128/s_lrintf128.c
create mode 100644 sysdeps/ieee754/float128/s_lroundf128.c
create mode 100644 sysdeps/ieee754/float128/s_modff128.c
create mode 100644 sysdeps/ieee754/float128/s_nearbyintf128.c
create mode 100644 sysdeps/ieee754/float128/s_nextafterf128.c
create mode 100644 sysdeps/ieee754/float128/s_nexttowardf128.c
create mode 100644 sysdeps/ieee754/float128/s_nextupf128.c
create mode 100644 sysdeps/ieee754/float128/s_remquof128.c
create mode 100644 sysdeps/ieee754/float128/s_rintf128.c
create mode 100644 sysdeps/ieee754/float128/s_roundf128.c
create mode 100644 sysdeps/ieee754/float128/s_scalblnf128.c
create mode 100644 sysdeps/ieee754/float128/s_scalbnf128.c
create mode 100644 sysdeps/ieee754/float128/s_setpayloadf128.c
create mode 100644 sysdeps/ieee754/float128/s_setpayloadsigf128.c
create mode 100644 sysdeps/ieee754/float128/s_signbitf128.c
create mode 100644 sysdeps/ieee754/float128/s_significandf128.c
create mode 100644 sysdeps/ieee754/float128/s_sincosf128.c
create mode 100644 sysdeps/ieee754/float128/s_sinf128.c
create mode 100644 sysdeps/ieee754/float128/s_tanf128.c
create mode 100644 sysdeps/ieee754/float128/s_tanhf128.c
create mode 100644 sysdeps/ieee754/float128/s_totalorderf128.c
create mode 100644 sysdeps/ieee754/float128/s_totalordermagf128.c
create mode 100644 sysdeps/ieee754/float128/s_truncf128.c
create mode 100644 sysdeps/ieee754/float128/s_ufromfpf128.c
create mode 100644 sysdeps/ieee754/float128/s_ufromfpxf128.c
create mode 100644 sysdeps/ieee754/float128/t_sincosf128.c
create mode 100644 sysdeps/ieee754/float128/w_llogbf128.c
create mode 100644 sysdeps/ieee754/float128/x2y2m1f128.c
create mode 100644 sysdeps/powerpc/powerpc64le/bits/floatn-compat.h
--
2.4.11