glibc/sysdeps/ieee754/dbl-64
Paul Zimmermann 392b3f0971 replace tgammaf by the CORE-MATH implementation
The CORE-MATH implementation is correctly rounded (for any rounding mode).
This can be checked by exhaustive tests in a few minutes since there are
less than 2^32 values to check against for example GNU MPFR.
This patch also adds some bench values for tgammaf.

Tested on x86_64 and x86 (cfarm26).

With the initial GNU libc code it gave on an Intel(R) Core(TM) i7-8700:

      "tgammaf": {
       "": {
        "duration": 3.50188e+09,
        "iterations": 2e+07,
        "max": 602.891,
        "min": 65.1415,
        "mean": 175.094
       }
      }

With the new code:

      "tgammaf": {
       "": {
        "duration": 3.30825e+09,
        "iterations": 5e+07,
        "max": 211.592,
        "min": 32.0325,
        "mean": 66.1649
       }
      }

With the initial GNU libc code it gave on cfarm26 (i686):

  "tgammaf": {
   "": {
    "duration": 3.70505e+09,
    "iterations": 6e+06,
    "max": 2420.23,
    "min": 243.154,
    "mean": 617.509
   }
  }

With the new code:

  "tgammaf": {
   "": {
    "duration": 3.24497e+09,
    "iterations": 1.8e+07,
    "max": 1238.15,
    "min": 101.155,
    "mean": 180.276
   }
  }

Signed-off-by: Alexei Sibidanov <sibid@uvic.ca>
Signed-off-by: Paul Zimmermann <Paul.Zimmermann@inria.fr>

Changes in v2:
    - include <math.h> (fix the linknamespace failures)
    - restored original benchtests/strcoll-inputs/filelist#en_US.UTF-8 file
    - restored original wrapper code (math/w_tgammaf_compat.c),
      except for the dealing with the sign
    - removed the tgammaf/float entries in all libm-test-ulps files
    - address other comments from Joseph Myers
      (https://sourceware.org/pipermail/libc-alpha/2024-July/158736.html)

Changes in v3:
    - pass NULL argument for signgam from w_tgammaf_compat.c
    - use of math_narrow_eval
    - added more comments

Changes in v4:
    - initialize local_signgam to 0 in math/w_tgamma_template.c
    - replace sysdeps/ieee754/dbl-64/gamma_productf.c by dummy file

Changes in v5:
    - do not mention local_signgam any more in math/w_tgammaf_compat.c
    - initialize local_signgam to 1 instead of 0 in w_tgamma_template.c
      and added comment

Changes in v6:
    - pass NULL as 2nd argument of __ieee754_gammaf_r in
      w_tgammaf_compat.c, and check for NULL in e_gammaf_r.c

Changes in v7:
    - added Signed-off-by line for Alexei Sibidanov (author of the code)

Changes in v8:
    - added Signed-off-by line for Paul Zimmermann (submitted of the patch)

Changes in v9:
    - address comments from review by Adhemerval Zanella
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2024-10-11 11:12:32 +02:00
..
Makefile
asincos.tbl Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
atnat.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
atnat2.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
branred.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
branred.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dbl2mpn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dla.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_acos.c
e_acosh.c
e_asin.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_atan2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_atanh.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_cosh.c
e_exp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_exp2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_exp10.c math: Fix exp10 undefined left shift 2024-06-04 15:33:26 +01:00
e_exp_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_fmod.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_gamma_r.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_hypot.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_ilogb.c
e_j0.c
e_j1.c
e_jn.c
e_lgamma_r.c
e_log.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_log2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_log2_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_log10.c
e_log_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_pow.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_pow_log_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_remainder.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_sinh.c
e_sqrt.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
gamma_product.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
gamma_productf.c replace tgammaf by the CORE-MATH implementation 2024-10-11 11:12:32 +02:00
k_rem_pio2.c Avoid maybe-uninitialized warning in __kernel_rem_pio2 2023-10-16 09:59:32 +02:00
k_tan.c
lgamma_neg.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
lgamma_product.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
math_config.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
math_err.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mpn2dbl.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mydefs.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
powtwo.tbl Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
root.tbl Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_asinh.c
s_atan.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_cbrt.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_ceil.c
s_copysign.c
s_cos.c
s_erf.c
s_expm1.c x86_64: Add expm1 with FMA 2023-08-14 08:14:19 -07:00
s_f32xaddf64.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_f32xdivf64.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_f32xfmaf64.c
s_f32xmulf64.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_f32xsqrtf64.c
s_f32xsubf64.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_fabs.c
s_fadd.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_fdiv.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_ffma.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_finite.c
s_floor.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_fma.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_fmaf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_fmul.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_fpclassify.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_frexp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_fromfp.c
s_fromfp_main.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_fromfpx.c
s_fsqrt.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_fsub.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_getpayload.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_isinf.c
s_isnan.c
s_issignaling.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_llrint.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_llround.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_log1p.c x86_64: Add log1p with FMA 2023-08-21 10:44:26 -07:00
s_logb.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_lrint.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_lround.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_modf.c
s_nearbyint.c nearbyint: Don't define alias when used in IFUNC [BZ #31759] 2024-05-20 05:21:41 -07:00
s_nexttoward.c
s_nextup.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_remquo.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_rint.c
s_round.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_roundeven.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_scalbln.c
s_scalbn.c
s_setpayload.c
s_setpayload_main.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_setpayloadsig.c
s_signbit.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_sin.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_sincos.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_tan.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_tanh.c
s_totalorder.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_totalordermag.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_trunc.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_ufromfp.c
s_ufromfpx.c
sincostab.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
uasncs.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
uatan.tbl Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
urem.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
usncs.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
utan.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
utan.tbl Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
w_exp.c
w_exp2.c
w_exp10.c math: remove exp10 wrappers 2024-01-12 16:02:12 +00:00
w_fmod.c
w_hypot.c
w_log.c
w_log2.c
w_pow.c
x2y2m1.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
x2y2m1f.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00