History log of /bionic/libm/fake_long_double.c
Revision Date Author Comments
1abc9ff6a5b5f8a9925f1b8d9d333bc5bc7d407f 17-Apr-2014 Calin Juravle <calin@google.com> Clean-up _fpmath and fake_long_doubles

- 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
02c78a386739a8a2b3007efeb00a9ca04132100a 12-Apr-2014 Elliott Hughes <enh@google.com> Reimplement isinf/isnan/fpclassify.

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
f723b70fe0d0c49dd764e72b01501c8a211545e4 01-Apr-2014 Calin Juravle <calin@google.com> Emit warnings when linking against imprecise math functions

Change-Id: I3da7b8396a64d7899fcb89452c879806a8a511ff
4d77c1151c40010d137e4a2fa8629bff4bea72b0 14-Mar-2014 Calin Juravle <calin@google.com> Fix LP64 libm for 128-bit long doubles

* 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
28ddd91c494ae2e061032ba7072ae24d0098aeb4 20-Dec-2013 Elliott Hughes <enh@google.com> Fix __isnanl on aarch64.

This fixes the math.__isnanl, math.powl, and math.fdiml tests.

Change-Id: I0086e4a1a82d0e2708fa07cf580a6d9778c548f2
20adf52cf2d6542df0dcf1513c26f4c8c773a6d6 19-Dec-2013 Elliott Hughes <enh@google.com> We actually have modfl.

Change-Id: I22bb4d14f99a418819f2941c2dfec49094807c5f
241608e9ce734021ce570c02210e12881582b60f 19-Dec-2013 Elliott Hughes <enh@google.com> Don't use weak aliases in libm.

The aarch64 toolchain doesn't support them, and we were already implementing
most of the fake long-double functions differently anyway.

Change-Id: I4a2f2df81972ee9c34ddfe96cec81b126506d881
170dbe25d6e372ff63172f6dc3c2a59e2369a8f1 08-Feb-2013 Elliott Hughes <enh@google.com> Add a few more missing libm long double stubs.

Change-Id: I6c44b9f3eee730253a958d6cefdac99e6f79da3e
926a307ce17f13c179cf900e6a317d7fbf645490 07-Feb-2013 Elliott Hughes <enh@google.com> Add a missing logbl stub.

This doesn't usually matter because there's a weak reference; you'd
miss this if you stopped using s_logb.c though.

Change-Id: I912fceae327a378031cd24a64aefa9dfd84f7f90
a0ee07829a9ba7e99ef68e8c12551301cc797f0f 31-Jan-2013 Elliott Hughes <enh@google.com> Upgrade libm.

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