This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH v2 0/8] Add float128 functions and declarations to libm


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]