aboutsummaryrefslogtreecommitdiff
path: root/libm/upstream-freebsd
AgeCommit message (Collapse)Author
2021-01-26Sync libm with upstream FreeBSD.Elliott Hughes
Upstream SHA 78599c32efed3247d165302a1fbe8d9203e38974. Test: treehugger Change-Id: Ib103d211315e320df89a6f0bcb30cd8ba67dd603
2020-01-30Fully disable clang format where needed.Christopher Ferris
Even with formatting off, clang still tries to rearrange the include files or the using statements, so disable that too. Test: Verified that the include directories are not rearranged. Change-Id: I991a1b2bfa94a8202c5a486664658d654f1c7811
2020-01-29Link .clang-format file to system/core one.Christopher Ferris
Use the .clang-format-2 found in system/core instead of this which is not actually being used. Also, enable clang-format running by default. All upstream directories are marked as ignoring formatting so that their source files are not modified. Test: NA Change-Id: Icee6030f373fa5f072df162f97e6f34320e3d89a
2019-10-24libm: sync with upstream FreeBSD.Elliott Hughes
Bug: http://b/143311272 Test: ran tests Change-Id: I0fbf94fb5cd13e64a55957d0f951757746d0367a
2019-02-04libm: sync with upstream FreeBSD.Elliott Hughes
Test: ran tests Change-Id: I16b5930b0dc652ceac60d8ed1d57c6126c74699c
2018-07-24Update to FreeBSD libm r336665.Elliott Hughes
This reverts commit 253a8306316cedfd6fd3e3a169fbffe4cac04035 and moves us forward to a revision that contains fixes for the problem with the previous attempt. This also makes sincos(3)/sincosf(3)/sincosl(3) available to `_BSD_SOURCE` as well as `_GNU_SOURCE`. The new FreeBSD libm code requires the FreeBSD `__CONCAT` macro, and all our existing callers are FreeBSD too, so update that. There's also an assumption that <complex.h> drags in <math.h> which isn't true for us, so work around that with `-include` in the makefile. This then causes clang to recognize a bug -- returning from a void function -- in our fake (LP32) sincosl(3), so fix that too. Bug: http://b/111710419 Change-Id: I84703ad844f8afde6ec6b11604ab3c096ccb62c3 Test: ran tests
2018-07-21Revert "Update to FreeBSD libm r336523."Andreas Gampe
This reverts commit f86ee10278116d211cfb08679416444e0e714cb5. Incorrect result for fmodf(3.0f, 0f) = 1.0f breaks ART tests. Bug: 111710419 Test: art/test/testrunner/testrunner.py -b -t 436-rem-float --target Change-Id: I7eae68fb92740db33415d16418447bcbbd98ecba
2018-07-19Update to FreeBSD libm r336523.Elliott Hughes
This includes an ld128 powl, plus the clog* and cpow* families. Also teach the NOTICE generator to strip SPDX-License-Identifier lines. Bug: N/A Test: ran tests Change-Id: Ic8289d1253666a19468a4088884cf7540f1ec66d
2018-05-09Switch to FreeBSD's actual sincos.Elliott Hughes
Before: BM_math_sin_fast 48 ns 48 ns 14693053 BM_math_sincos 61 ns 61 ns 11470219 After: BM_math_sin_fast 48 ns 48 ns 14725120 BM_math_sincos 43 ns 43 ns 16329843 Bug: N/A Test: ran tests, benchmarks Change-Id: I8693c64135233c0641af5302c38748f47ac76737
2018-05-09Switch to FreeBSD catrigl.c for complex arc trig functions.Elliott Hughes
Bug: N/A Test: ran tests Change-Id: I9efbc23bc101fcf04a01334748461f5467dcf85e
2018-05-09Update libm from upstream.Elliott Hughes
Bug: N/A Test: ran tests Change-Id: Ifa03eb36d412a2776208cd2921936be4724e5547
2017-07-13libm symbol cleanup.Elliott Hughes
Some of this code is used in the NDK libandroid_support now, as a static library, so just being HIDDEN in the ELF sense isn't sufficient. Rename digittoint to __libm_digittoint so we don't trample anyone's toes. Also remove imprecise_powl and imprecise_tgammal. It turns out (to my surprise) that we don't even have ld128 implementations of powl and tgammal, so even LP64 was just using the "fake_long_double.c" hack in effect. Since that's the case, let's *actually* do that because then we're not polluting with the internal names in addition to the aliases. Bug: N/A Test: readelf Change-Id: I273cc8fdc7ce53f9b8dfd4ef7796e358fe901837
2016-05-02Move <machine/endian.h> somewhere more private.Elliott Hughes
Bug: http://b/28519060 Change-Id: I1c7811f95f46c65d4152bcf509b6e048c45bc28b
2015-08-28Sync with upstream FreeBSD libm.Elliott Hughes
Change-Id: I97e9b23903f1d993d84825806065e85626007d31
2015-08-24Revert "Revert "Use compiler builtins for fabs.""Elliott Hughes
Don't enable the inlines when building libm itself. Otherwise clang gets upset by seeing both an inline and a non-inline definition. This reverts commit c5deb0f883cbdca7e5ab75f92f82c31d21367f49. Change-Id: If7abdb351f5a5549d6a331b33af408e8fcfa9868
2015-08-24Revert "Use compiler builtins for fabs."Elliott Hughes
Use of "extern inline" breaks clang build. This reverts commit d76f16973a9d06765fb1f482239b9559f893ffd0. Change-Id: I995d0d38c3776f5c50b060f16770741c92a2acac
2015-08-24Use compiler builtins for fabs.Elliott Hughes
Change-Id: Id3bf761d6dfc187f218b5215c53d76bddc83d50b
2014-11-06Fix our <complex.h> support.Elliott Hughes
We build libm with -fvisibility=hidden, so we weren't exporting any of the <complex.h> functions. We also weren't building many of the functions anyway. We were also missing the complex inverse trigonometric functions. And because we didn't even have perfunctory "call each function once" tests, we didn't notice that we weren't exporting any symbols, so this patch adds at least that level of testing. Change-Id: Ibcf2843f507126c51d134cc5fc8d67747e033a0d
2014-10-10Catch up on upstream's round/roundf/roundl.Elliott Hughes
Not sure how we missed these, but better late than never... Change-Id: Ib08d1bb6e340a1907cbeb1cbe220e33f70642bdc
2014-10-09Sync libm with upstream.Elliott Hughes
Change-Id: I3b4e2c9c6ce6c5934f270a51ce5eb9154c5805d5
2014-09-18Fix lgamma_r/lgammaf_r/lgammal_r for -0.Elliott Hughes
Upstream has implemented lgammal/lgammal_r for ld128, and fixed the sign problem we reported with all the lgamma*_r functions and -0. Bug: 17471883 Change-Id: Ibb175d9cab67efae75f1010796fd44c9ba6ce4fc
2014-09-12Get new coshl, sinhl, and tanhl implementations from upstream.Elliott Hughes
Change-Id: I92f9cd53d12efb2e0f4f8a9590b9fe42398233f6
2014-09-12Sync libm with upstream.Elliott Hughes
Change-Id: I8ac8ee52122ee19a2e423c3211092023cb4896eb
2014-04-23Clean-up _fpmath and fake_long_doublesCalin Juravle
- promoted IEEEld2bits to fpmath since most of the where the same for diffrent archs - removed _fpmath - reinstated weak_references - moved isfinite and isnormal to libc - clean up fake_long_doubles - clean up some useless ifdefs - added missing nexttoward* tests Bug: 14134235 Change-Id: I95639c4885653fe47fd7dc0570ee5bb3389bbc6b
2014-04-14Reimplement isinf/isnan/fpclassify.Elliott Hughes
Also move isinf and isnan into libc like everyone else. Also move fpclassify to libc like the BSDs (but unlike glibc). We need this to be able to upgrade our float/double/long double parsing to gdtoa. Also add some missing aliases. We now have all of: isnan, __isnan, isnanf, __isnanf, isnanl, __isnanl, isinf, __isinf, isinff, __isinff, isinfl, __isinfl, __fpclassify, __fpclassifyd, __fpclassifyf, __fpclassifyl. Bug: 13469877 Change-Id: I407ffbac06c765a6c5fffda8106c37d7db04f27d
2014-04-02Emit warnings when linking against imprecise math functionsCalin Juravle
Change-Id: I3da7b8396a64d7899fcb89452c879806a8a511ff
2014-03-24Fix LP64 libm for 128-bit long doublesCalin Juravle
* reworked amd64/_fpmath.h and arm64/_fpmath.h to support 128-bit long doubles. * improved tests to cover long double cases * made modfl an alias for LP32 Tests pass on x86, x86_64, arm, arm64 and mips. Bug: 12921273 Change-Id: Ibe39acde57972447a8950fa45b1e702acc68ebeb
2014-03-13Update libm to the upstream head (2014.03.13)Calin Juravle
The most relevant changes are the ones in s_erff.c which should improve the overall speed of exececution and the maximum error in ULP. Change-Id: I7bd867f902db418db67f02cd58578624357b1ee8
2013-06-12Take upstream libm changes.Elliott Hughes
Mostly workarounds for GCC and Clang bugs. Change-Id: I4ef428a42d4ac6d622659053711a8cc416925727
2013-02-01Upgrade libm.Elliott Hughes
This brings us up to date with FreeBSD HEAD, fixes various bugs, unifies the set of functions we support on ARM, MIPS, and x86, fixes "long double", adds ISO C99 support, and adds basic unit tests. It turns out that our "long double" functions have always been broken for non-normal numbers. This patch fixes that by not using the upstream implementations and just forwarding to the regular "double" implementation instead (since "long double" on Android is just "double" anyway, which is what BSD doesn't support). All the tests pass on ARM, MIPS, and x86, plus glibc on x86-64. Bug: 3169850 Bug: 8012787 Bug: https://code.google.com/p/android/issues/detail?id=6697 Change-Id: If0c343030959c24bfc50d4d21c9530052c581837