Commit Graph

6 Commits

Author SHA1 Message Date
Szabolcs Nagy e5791079c6 New log implementation
The new implementations are provided under !__OBSOLETE_MATH, it uses
ISO C99 code.  With default settings the worst case error in nearest
rounding mode is 0.519 ULP with inlined fma and fma contraction.  It uses
a 2 KB lookup table, on aarch64 .text+.rodata size of libm.a is increased
by 1703 bytes.  The w_log.c wrapper is disabled since error handling is
inline in the new code.

New __HAVE_FAST_FMA and __HAVE_FAST_FMA_DEFAULT feature macros were
added to enable selecting between the code path that uses fma and the
one that does not.  Targets supposed to set __HAVE_FAST_FMA_DEFAULT
if they have single instruction fma and the compiler can actually
inline it (gcc has __FP_FAST_FMA macro but that does not guarantee
inlining with -fno-builtin-fma).

Improvements on Cortex-A72:
latency: 1.9x
thruput: 2.3x
2018-06-27 15:40:49 +02:00
Yaakov Selkowitz ec4c079f4b math: remove TRAD_SYNOPSIS
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2017-12-01 03:41:53 -06:00
Jeff Johnston 70317d8506 2007-10-17 Jeff Johnston <jjohnstn@redhat.com>
* libm/mathfp/s_logarithm.c: Fix error introduced by previous
        fix when handling negative input values.  Make function
        consistent with math directory and glibc version such that
        inf and nan values return inf and nan respectively with no
        errno setting.
        * libm/mathfp/sf_logarithm.c: Ditto.
        * libm/math/w_log.c: Set errno to ERANGE when input is 0.0.
        * libm/math/wf_log.c: Ditto.
        * libm/math/w_log10.c: Ditto.
        * libm/math/wf_log10.c: Ditto.
2007-10-18 00:03:32 +00:00
Jeff Johnston 2babeb3d94 2007-05-01 Cary R. <cygcary <at> yahoo.com>
* libm/math/e_pow.c: Fix to be consistent with glibc with regards
        to treatment of NaN and +-inf arguments.
        * libm/math/ef_pow.c: Ditto.
        * libm/math/w_pow.c: Ditto.
        * libm/math/wf_pow.c: Ditto.
        * libm/math/w_acos.c: Fix domain errors to return NaN.
        * libm/math/w_asin.c: Ditto.
        * libm/math/wf_acos.c: Ditto.
        * libm/math/wf_asin.c: Ditto.
        * libm/math/w_log.c: Fix to return NaN for negative number inputs.
        * libm/math/wf_log.c: Ditto.
        * libm/math/wf_log10.c: Ditto.
        * libm/math/w_log10.c: Ditto.
2007-05-01 18:42:15 +00:00
Jeff Johnston 239c2bf93e 2005-10-28 Bob Wilson <bob.wilson@acm.org>
* libc/misc/unctrl.c: Replace FUNCTION description.
        * libc/signal/signal.c: Remove documentation for raise and  _raise_r.
        * libc/stdio/getdelim.c: Fix spelling errors.
        * libc/stdio/getw.c: Put RETURNS on a separate line.  Fix  punctuation.
        * libc/stdio/putw.c: Likewise.
        * libc/stdlib/a64l.c: Fix formatting, spelling and  punctuation in
        documentation.
        * libc/stdlib/assert.c: Do not capitalize FUNCTION description.
        * libc/stdlib/efgcvt.c: Add spaces to FUNCTION description.
        * libc/stdlib/envlock.c: Use em-dash in FUNCTION description.
        * libc/stdlib/mlock.c: Likewise.
        * libc/stdlib/mstats.c: Likewise.
        * libc/time/tzlock.c: Likewise.
        * libc/stdlib/rand.c: Use "multi-threaded" and "thread-safe"  in NOTES.
        * libc/stdlib/rand48.c: Remove extra space in FUNCTION  description
        and hyphenate "pseudo-random".
        * libc/string/bcmp.c: Remove extra blank lines in  documentation.
        * libc/string/strncat.c: Likewise.
        * libc/string/memchr.c: Remove extra ">" character in  documentation.
        * libc/string/strcspn.c: Use "characters" instead of "chars".
        * libc/string/strpbrk.c: Likewise.
        * libc/string/strerror_r.c: Capitalize "GNU".
        * libc/string/strnlen.c: Likewise.
        * libc/string/strtok.c: Fix formatting, spelling and  punctuation in
        documentation.  Use "multi-threaded" and "thread-safe" in  NOTES.
        * libc/string/wcscat.c: Split PORTABILITY into two paragraphs.
        * libc/string/wcschr.c: Likewise.
        * libc/string/wcscmp.c: Likewise.
        * libc/string/wcscpy.c: Likewise.
        * libc/string/wcscspn.c: Likewise.
        * libc/string/wcslen.c: Likewise.
        * libc/string/wcsncat.c: Likewise.
        * libc/string/wcsncmp.c: Likewise.
        * libc/string/wcsncpy.c: Likewise.
        * libc/string/wcsnlen.c: Likewise.
        * libc/string/wcspbrk.c: Likewise.
        * libc/string/wcsrchr.c: Likewise.
        * libc/string/wcsspn.c: Likewise.
        * libc/string/wmemchr.c: Likewise.
        * libc/string/wmemcmp.c: Likewise.
        * libc/string/wmemcpy.c: Likewise.
        * libc/string/wmemset.c: Likewise.
        * libc/string/wmemmove.c: Likewise.  Also fix FUNCTION  description.
        * libc/string/wcswidth.c: Formatting and punctuation in  documentation.
        * libc/string/wcwidth.c: Likewise.
        * libm/common/s_modf.c: Remove extra period from documentation.
        * libm/math/s_isnan.c: Fix formatting, grammar and  punctuation in
        documentation.
        * libm/mathfp/s_isnan.c: Likewise.
        * libm/math/s_ldexp.c: Fix punctuation.
        * libm/mathfp/s_ldexp.c: Likewise.
        * libm/math/w_log.c: Likewise.
        * libm/mathfp/s_logarithm.c: Likewise.
        * libm/math/w_j0.c: Add spaces to FUNCTION description.
        * libm/mathfp/w_jn.c: Likewise.
2005-10-28 21:21:08 +00:00
Christopher Faylor 8a0efa53e4 import newlib-2000-02-17 snapshot 2000-02-17 19:39:52 +00:00