Age | Commit message (Collapse) | Author |
|
ok jmc@ schwarze@
|
|
|
|
bcallah@ had same diff
ok guenther@
|
|
Subset of FreeBSD commit 4339c67c485f0b1f7699863fc29f6c06862d1dde:
Moved the optimization for tiny x from __kernel_{cos,sin}[f](x) to
{cos_sin}[f](x) so that x doesn't need to be reclassified in the
"kernel" functions to determine if it is tiny (it still needs to be
reclassified in the cosine case for other reasons that will go away).
...
Parts of the original change were applied separately before.
Suggested by kettenis@
OK mbuhl@, tested by mbuhl@ and phessler@
|
|
The same change was done by NetBSD some time back as:
Disable x87 implementations of sin, cos, tan.
The x87 hardware uses a bad approximation to pi for argument
reduction, and consequently yields bad answers for inputs near pi or
pi/2.
OK mbuhl@, tested by mbuhl@ and phessler@
|
|
The result passes more tests from msun suite. In particular,
testacc(cos, -0.34061437849088045332L, 0.94254960031831729956L,
ALL_STD_EXCEPT, FE_INEXACT);
matches instead of being 1e-16 off.
OK mbuhl@, tested by mbuhl@ and phessler@
|
|
the same implementation that we're already using for lrintl(3) and llrintl(3).
The old implementations were derived from code from NetBSD that didn't pass
the lib/libm/msun/lrint_test regress test. NetBSD replaced their
implementation with the FreeBSD implementation of this code which we were
already using for lrintl(3) and llrintl(3). This fixes the regress test.
ok bluhm@, millert@
|
|
|
|
mostly mechanical diff similar to what Emil Engler just sent for sqrt(3)
|
|
|
|
|
|
|
|
When converting a long or long long to a double, there may be loss
of precision and clang >= 10 warns about this unless there is a cast.
Add casts to silence this warning - the code is designed to handle
precisely this loss of precision, so this is harmless.
From CheriBSD via FreeBSD
ok millert
|
|
from unsigned long long to unsigned int.
ok kettenis@
|
|
|
|
ok kettenis@
|
|
-width ".Dv BOB" -> -width "BOB"
although they are not errors, they are misleading and probably should
not get pasted around
|
|
FP_ILOGBNAN which isn't the case for the amd64 and i386 assembly versions.
Drop these in favour of C implementations. Als reimplement ilogbl(3)
by providing separate ld80 and ld128 implementations that replace the
existing implementation which may hit an infinite loop when built for
quad-precision long double.
ok patrick@, gkoehler@
|
|
FP_ILOGBNAN which isn't the case for the amd64 and i386 assembly versions.
Drop these in favour of C implementations. Als reimplement ilogbl(3)
by providing separate ld80 and ld128 implementations that replace the
existing implementation which may hit an infinite loop when built for
quad-precision long double.
ok patrick@, gkoehler@
|
|
NaN and 0 arguments using FP_ILOGB0 and FP_ILOGBNAN.
|
|
Brings arm64 in line with all the other architectures.
ok millert@
|
|
|
|
|
|
Starting from "Combined Table of Contents" in Doug McIlroy's
"A Research UNIX Reader" a table of which edition manuals appeared in.
Checked against manuals from bitsavers/TUHS and source from TUHS where
available.
Ingo points out there are cases where something is included but not
documented until a later release.
bcd(6) v6 v7
printf(3) v2 v4
abort(3) v5 v6
system(3) v6 v7
fmod(3) v5 v6
ok schwarze@
|
|
This is inside !(defined(__amd64__) || defined(__i386__)),
while the file is only used on those two architectures.
"Free commit! No strings attached! No hidden tricks!" from miod
|
|
This became possible because copies of the original v1 manuals
have shown up on the Internet some time ago.
Reminded by Sevan Janiyan <venture37 at geeklan dot co dot uk>.
|
|
|
|
ok deraadt@
|
|
in libm since the rounding mode is in fpcr, not fpsr. Since both FPU
registers are 32-bit we can store them in the 64-bit fenv_t to make
handling the bits easier.
While there add FE_DENORMAL, which also exists on x86. Also make sure
that whenever we are being passed an exception mask, we only allow the
bits that are supported by hardware.
Found by regression tests
Debugged with Moritz Buhl
ok kettenis@
|
|
|
|
on non-IEEE platforms. Since the VAX port was discontinued, all
our remaining architectures use IEEE floating point, as will any
future ones.
ok millert@ tb@
|
|
ok deraadt
|
|
ok deraadt
|
|
|
|
floating-point exceptions, simplify the functions that control the exception
masks just like we did on armv7.
ok tom@
|
|
a cloning a non-standard, long double function which _is_ used from the
matching plain double function
build failured pointed out by deraadt@
|
|
'weak' in the static libm.a
ok deraadt@
|
|
|
|
ok deraadt@
|
|
extensions and modern compilers (such as clang) will use them to optimize
separate calculations of sine and cosine.
ok tom@, patrick@, deraadt@, jmc@
|
|
|
|
both the hardfloat (FPU registers) and softfloat (software) state. This
makes these functions work correctly when mixing hardfloat and softfloat
code. Disable trapping for softfloat since most (if not all) ARMv7 and
ARMv8 hardware that is on the market doesn't support trapping of
floating-point exceptions.
ok patrick@
|
|
|
|
|
|
be represented otherwise, use eqn(7).
Idea originally from bentley@, feedback and OK bentley@, OK tb@,
and no objection from jmc@.
|
|
don't bother with .text before ENTRY()
|
|
"warning:" rectification.
|
|
ok guenther@
|
|
to look and feel like our code.
|
|
Required if the compiler doesn't replace them with builtins (e.g. clang
on amd64).
ok kettenis@ guenther@
i386 sync requested by guenther@
|