git: libm: Sync with FreeBSD (~50 math functions added)

看板DFBSD_commit作者時間14年前 (2011/12/28 02:05), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 1a3b704c5cf3ce3034c25a0318f2ceaaf0eea361 Author: John Marino <draco@marino.st> Date: Wed Dec 21 18:10:04 2011 +0100 libm: Sync with FreeBSD (~50 math functions added) The main purpose of syncing with FreeBSD is to obtain numerous "long double" functions which are required for C99 compliance. There are still many functions missing. According to g++ testsuite, the following 10 functions still must be implemented at least: coshl logl expl sinhl log2l expm1l acoshl log10l asinhl log1pl Also known missing are nexttowardl, tgammal, and the long double version of most of several complex functions. A few years ago the freebsd-based math library was thrown out in favor of the NetBSD version. It may be time to reverse that and sync the entire libm with FreeBSD. Right now the DragonFly libm is a mixture between the two and it doesn't divide nicely. All the rounding and rint functions from NetBSD had to be thrown out as well as the "kernel" functions. For the short term this is okay, but in the long term it would be a good idea to start tracking FreeBSD again. They are maintaining this library more frequently and adding more functions more rapidly than NetBSD, so it would be good to piggy-back on that effort. The man page will be committed separately. Summary of changes: include/complex.h | 3 + include/math.h | 76 +++++-- lib/libm/arch/i386/Makefile.inc | 9 +- lib/libm/arch/i386/e_remainderl.S | 61 +++++ lib/libm/arch/i386/e_sqrtl.S | 50 ++++ lib/libm/arch/i386/lrint.S | 26 -- lib/libm/arch/i386/s_lrint.S | 44 ++++ lib/libm/arch/i386/s_lrintf.S | 44 ++++ lib/libm/arch/i386/s_lrintl.S | 47 ++++ lib/libm/arch/i386/s_remquol.S | 97 ++++++++ lib/libm/arch/i386/s_scalbnf.S | 3 + lib/libm/arch/i386/s_scalbnl.S | 3 + lib/libm/complex/Makefile.inc | 26 ++- lib/libm/complex/s_cargl.c | 37 +++ lib/libm/complex/s_csqrtl.c | 109 +++++++++ lib/libm/complex/w_cabsl.c | 19 ++ lib/libm/src/Makefile.inc | 23 ++- lib/libm/src/b_exp.c | 130 ++++++++++ lib/libm/src/b_log.c | 471 +++++++++++++++++++++++++++++++++++++ lib/libm/src/b_tgamma.c | 316 +++++++++++++++++++++++++ lib/libm/src/e_acosl.c | 84 +++++++ lib/libm/src/e_asinl.c | 74 ++++++ lib/libm/src/e_atan2l.c | 117 +++++++++ lib/libm/src/e_fmodl.c | 148 ++++++++++++ lib/libm/src/e_hypotl.c | 123 ++++++++++ lib/libm/src/e_lgamma_r.c | 23 +- lib/libm/src/e_lgammaf_r.c | 21 +- lib/libm/src/e_log2.c | 14 +- lib/libm/src/e_log2f.c | 4 +- lib/libm/src/e_rem_pio2.c | 146 ++++++------ lib/libm/src/e_rem_pio2f.c | 180 ++++----------- lib/libm/src/e_rem_pio2l.h | 147 ++++++++++++ lib/libm/src/e_remainderl.c | 37 +++ lib/libm/src/e_sqrtl.c | 160 +++++++++++++ lib/libm/src/invtrig.c | 79 ++++++ lib/libm/src/invtrig.h | 114 +++++++++ lib/libm/src/k_cosf.c | 52 ++--- lib/libm/src/k_cosl.c | 76 ++++++ lib/libm/src/k_rem_pio2.c | 172 ++++++++++++-- lib/libm/src/k_sinf.c | 43 ++-- lib/libm/src/k_sinl.c | 60 +++++ lib/libm/src/k_tanf.c | 107 +++------ lib/libm/src/k_tanl.c | 122 ++++++++++ lib/libm/src/llrint.c | 14 - lib/libm/src/llrintf.c | 14 - lib/libm/src/llround.c | 14 - lib/libm/src/llroundf.c | 14 - lib/libm/src/lrint.c | 92 ------- lib/libm/src/lrintf.c | 91 ------- lib/libm/src/lround.c | 85 ------- lib/libm/src/lroundf.c | 80 ------- lib/libm/src/math_private.h | 84 ++++++-- lib/libm/src/mathimpl.h | 73 ++++++ lib/libm/src/s_atanl.c | 82 +++++++ lib/libm/src/s_cbrtl.c | 142 +++++++++++ lib/libm/src/s_ceill.c | 99 ++++++++ lib/libm/src/s_copysignl.c | 2 +- lib/libm/src/s_cosf.c | 64 ++++- lib/libm/src/s_cosl.c | 81 +++++++ lib/libm/src/s_exp2.c | 2 +- lib/libm/src/s_exp2f.c | 4 +- lib/libm/src/s_exp2l.c | 293 +++++++++++++++++++++++ lib/libm/src/s_fabs.c | 29 +++ lib/libm/src/s_floorl.c | 99 ++++++++ lib/libm/src/s_fma.c | 283 ++++++++++++++++++++++ lib/libm/src/s_fmaf.c | 67 ++++++ lib/libm/src/s_fmal.c | 267 +++++++++++++++++++++ lib/libm/src/s_ldexpf.c | 29 --- lib/libm/src/s_llrint.c | 10 + lib/libm/src/s_llrintf.c | 10 + lib/libm/src/s_llrintl.c | 10 + lib/libm/src/s_llround.c | 12 + lib/libm/src/s_llroundf.c | 12 + lib/libm/src/s_llroundl.c | 12 + lib/libm/src/s_lrint.c | 58 +++++ lib/libm/src/s_lrintf.c | 10 + lib/libm/src/s_lrintl.c | 10 + lib/libm/src/s_lround.c | 66 +++++ lib/libm/src/s_lroundf.c | 12 + lib/libm/src/s_lroundl.c | 12 + lib/libm/src/s_modf.c | 77 ++++++ lib/libm/src/s_modfl.c | 101 ++++++++ lib/libm/src/s_nearbyint.c | 5 +- lib/libm/src/s_nexttowardf.c | 58 +++++ lib/libm/src/s_remquo.c | 6 +- lib/libm/src/s_remquof.c | 2 +- lib/libm/src/s_remquol.c | 175 ++++++++++++++ lib/libm/src/s_rintl.c | 83 +++++++ lib/libm/src/s_round.c | 13 +- lib/libm/src/s_roundf.c | 13 +- lib/libm/src/s_roundl.c | 50 ++++ lib/libm/src/s_scalbln.c | 75 ++++++ lib/libm/src/s_sinf.c | 62 ++++- lib/libm/src/s_sinl.c | 79 ++++++ lib/libm/src/s_tanf.c | 53 +++- lib/libm/src/s_tanl.c | 83 +++++++ lib/libm/src/s_tgammaf.c | 42 ++++ lib/libm/src/s_truncl.c | 66 +++++ 98 files changed, 6118 insertions(+), 960 deletions(-) create mode 100644 lib/libm/arch/i386/e_remainderl.S create mode 100644 lib/libm/arch/i386/e_sqrtl.S delete mode 100644 lib/libm/arch/i386/lrint.S create mode 100644 lib/libm/arch/i386/s_lrint.S create mode 100644 lib/libm/arch/i386/s_lrintf.S create mode 100644 lib/libm/arch/i386/s_lrintl.S create mode 100644 lib/libm/arch/i386/s_remquol.S create mode 100644 lib/libm/complex/s_cargl.c create mode 100644 lib/libm/complex/s_csqrtl.c create mode 100644 lib/libm/complex/w_cabsl.c create mode 100644 lib/libm/src/b_exp.c create mode 100644 lib/libm/src/b_log.c create mode 100644 lib/libm/src/b_tgamma.c create mode 100644 lib/libm/src/e_acosl.c create mode 100644 lib/libm/src/e_asinl.c create mode 100644 lib/libm/src/e_atan2l.c create mode 100644 lib/libm/src/e_fmodl.c create mode 100644 lib/libm/src/e_hypotl.c create mode 100644 lib/libm/src/e_rem_pio2l.h create mode 100644 lib/libm/src/e_remainderl.c create mode 100644 lib/libm/src/e_sqrtl.c create mode 100644 lib/libm/src/invtrig.c create mode 100644 lib/libm/src/invtrig.h create mode 100644 lib/libm/src/k_cosl.c create mode 100644 lib/libm/src/k_sinl.c create mode 100644 lib/libm/src/k_tanl.c delete mode 100644 lib/libm/src/llrint.c delete mode 100644 lib/libm/src/llrintf.c delete mode 100644 lib/libm/src/llround.c delete mode 100644 lib/libm/src/llroundf.c delete mode 100644 lib/libm/src/lrint.c delete mode 100644 lib/libm/src/lrintf.c delete mode 100644 lib/libm/src/lround.c delete mode 100644 lib/libm/src/lroundf.c create mode 100644 lib/libm/src/mathimpl.h create mode 100644 lib/libm/src/s_atanl.c create mode 100644 lib/libm/src/s_cbrtl.c create mode 100644 lib/libm/src/s_ceill.c create mode 100644 lib/libm/src/s_cosl.c create mode 100644 lib/libm/src/s_exp2l.c create mode 100644 lib/libm/src/s_fabs.c create mode 100644 lib/libm/src/s_floorl.c create mode 100644 lib/libm/src/s_fma.c create mode 100644 lib/libm/src/s_fmaf.c create mode 100644 lib/libm/src/s_fmal.c delete mode 100644 lib/libm/src/s_ldexpf.c create mode 100644 lib/libm/src/s_llrint.c create mode 100644 lib/libm/src/s_llrintf.c create mode 100644 lib/libm/src/s_llrintl.c create mode 100644 lib/libm/src/s_llround.c create mode 100644 lib/libm/src/s_llroundf.c create mode 100644 lib/libm/src/s_llroundl.c create mode 100644 lib/libm/src/s_lrint.c create mode 100644 lib/libm/src/s_lrintf.c create mode 100644 lib/libm/src/s_lrintl.c create mode 100644 lib/libm/src/s_lround.c create mode 100644 lib/libm/src/s_lroundf.c create mode 100644 lib/libm/src/s_lroundl.c create mode 100644 lib/libm/src/s_modf.c create mode 100644 lib/libm/src/s_modfl.c create mode 100644 lib/libm/src/s_nexttowardf.c create mode 100644 lib/libm/src/s_remquol.c create mode 100644 lib/libm/src/s_rintl.c create mode 100644 lib/libm/src/s_roundl.c create mode 100644 lib/libm/src/s_scalbln.c create mode 100644 lib/libm/src/s_sinl.c create mode 100644 lib/libm/src/s_tanl.c create mode 100644 lib/libm/src/s_tgammaf.c create mode 100644 lib/libm/src/s_truncl.c http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/1a3b704c5cf3ce3034c25a0318f2ceaaf0eea361 -- DragonFly BSD source repository
文章代碼(AID): #1E-WZgbn (DFBSD_commit)