| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
and use macros to access the e component of the unions. This allows
the portions of the code in ld80 to be identical to the ld128 code.
Obtained from: bde
|
|
|
|
|
|
|
| |
Use the macroi as a micro-optimization to convert a subtraction and
division to a shift.
Obtained from: bde
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The names now coincide with the name used in PTP Tang's paper.
* Rename the variable from s to tbl to better reflect that
this is a table, and to be consistent with the naming scheme
in s_exp2l.c
Reviewed by: bde (as part of larger diff)
|
|
|
|
| |
Reviewed by: bde (as part of larger diff)
|
|
|
|
|
|
|
|
|
|
|
| |
* Update Copyright years to include 2013.
ld128/s_expl.c:
* Correct and update Copyright years. This code originated from
the ld80 version, so it should reflect the same time period.
Reviewed by: bde (as part of larger diff)
|
|
|
|
| |
Submitted by: bde
|
|
|
|
|
|
|
|
| |
cacosh, casin, casinh, catan, and catanh. Thanks to stephen@ and bde@
for working on these.
Submitted by: stephen@
Reviewed by: bde
|
|
|
|
|
| |
Approved by: das (implicit)
Reported by: jh
|
|
|
|
|
|
|
|
| |
* Use ENTERI/RETURNI to allow the use of FP_PE on i386 target.
Reviewed by: das (and bde a long time ago)
Approved by: das (mentor)
Obtained from: bde (polynomial coefficients)
|
|
|
|
|
|
|
|
|
|
| |
are workarounds for various symptoms of the problem described in clang
bugs 3929, 8100, 8241, 10409, and 12958.
The regression tests did their job: they failed, someone brought it
up on the mailing lists, and then the issue got ignored for 6 months.
Oops. There may still be some regressions for functions we don't have
test coverage for yet.
|
|
|
|
|
|
|
| |
compilations which use fenv.h work.
Reviewed by: tjil
Sponsored by: The FreeBSD Foundation
|
|
|
|
|
|
|
|
|
|
|
| |
libc.a and libc_p.a. In addition, define isnan in libm.a and libm_p.a,
but not in libm.so.
This makes it possible to statically link executables using both isnan
and isnanf with libc and libm.
Tested by: kargl
MFC after: 1 week
|
| |
|
| |
|
| |
|
|
|
|
| |
changes to reflect differences in computation between the two.
|
|
|
|
|
| |
double version, with adaptations for the differences between it and
the float version.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
table and the requirement on trailing zero bits.
* Remove the __aligned() compiler directives as these were found
to have a negative effect on the produced code.
Submitted by: bde
Approved by: das (mentor)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
. Change the API for the LD80C by removing the explicit passing
of the sign bit. The sign can be determined from the last
parameter of the macro.
. On i386, load long double by bit manipulations to work around
at least a gcc compiler issue. On non-i386 ld80 architectures,
use a simple assignment.
* ld80/s_expl.c:
. Update the only consumer of LD80C.
Submitted by: bde
Approved by: das (mentor)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
. Fix the threshold for expl(x) where |x| is small.
. Also update the previously incorrect comment to match the
new threshold.
* ld128/s_expl.c:
. Re-order logic in exceptional cases to match the logic used in
other long double functions.
. Fix the threshold for expl(x) where is |x| is small.
. Also update the previously incorrect comment to match the
new threshold.
Submitted by: bde
Approved by: das (mentor)
|
|
|
|
| |
Approved by: das (mentor, implicit)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
. Guard a comment from reformatting by indent(1).
. Re-order variables in declarations to alphabetical order.
. Remove a banal comment.
* ld128/s_expl.c:
. Add a comment to point to ld80/s_expl.c for implementation details.
. Move the #define of INTERVAL to reduce the diff with ld80/s_expl.c.
. twom10000 does not need to be volatile, so move its declaration.
. Re-order variables in declarations to alphabetical order.
. Add a comment that describes the argument reduction.
. Remove the same banal comment found in ld80/s_expl.c.
Reviewed by: bde
Approved by: das (mentor)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also, update the comment to describe the choice of using
a high and low decomposition of 2^(i/INTERNVAL) for
0 <= i <= INTERVAL in preparation for an implementation of
expm1l.
* Move the #define of INTERVAL above the comment, because the
comment refers to INTERVAL.
Reviewed by: bde
Approved by: das (mentor)
|
|
|
|
|
|
|
|
|
| |
necessary, so that cosl(), sinl() and tanl() work on i386 even
for naive callers.
Suggested by: bde
Reviewed by: bde
Approved by: das (mentor)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
only affects i386. The double case was intentionally left broken
as an optimization, but we are getting closer to supporting
applications and/or kernels that change the (FreeBSD i386) default
rounding precision from FP_PD to FP_PE and never change it back,
and this requires the STRICT_ALIGN()s that were added to support
FP_PE to actually work in all precisions.
* Remove an extraneous semicolon at the end of a macro that was
supposed to be function-like.
Submitted by: bde
Approved by: das (mentor)
|
|
|
|
| |
"sahf \ jp", "fprem1" with "fprem" and "fstsw %ax" with "fnstsw %ax".
|
| |
|
|
|
|
|
|
|
| |
since some older versions of gcc refuse to inline these otherwise.
Requested by: bde
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
| |
they need to refer to static constants, which C99 does not allow for
extern inline functions.
While here, change a comment in e_rem_pio2f.c to mention the correct
number of bits.
Reviewed by: bde
MFC after: 1 week
|
|
|
|
|
| |
Submitted by: bde
Approved by: das (pre-approved)
|
|
|
|
|
| |
Submitted by: bde
Approved by: das (pre-approved)
|
|
|
|
|
|
|
|
|
|
|
| |
compatibility with the INTERVALS macro used in the soon-to-be-commmitted
expm1l() and someday-to-be-committed log*l() functions.
Add a comment into ld128/s_expl.c noting at gcc issue that was
deleted when rewriting ld80/e_expl.c as ld128/s_expl.c.
Requested by: bde
Approved by: das (mentor)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
. Remove a few #ifdefs that should have been removed in the initial
commit.
. Sort fpmath.h to its rightful place.
* ld128/s_expl.c:
. Replace EXPMASK with its actual value.
. Sort fpmath.h to its rightful place.
Requested by: bde
Approved by: das (mentor)
|
|
|
|
|
|
|
|
| |
class hardware with the ENTERI and RETURNI macros, which
are now available in math_private.h.
Suggested by: bde
Approved by: das (mentor)
|
|
|
|
|
| |
PR: standards/152415
Approved by: das (mentor)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
format. These implementations are based on
PTP Tang, "Table-driven implementation of the exponential function
in IEEE floating-point arithmetic," ACM Trans. Math. Soft., 15,
144-157 (1989).
PR: standards/152415
Submitted by: kargl
Reviewed by: bde, das
Approved by: das (mentor)
|
|
|
|
|
|
| |
Submitted by: Yamaya Takashi
Reviewed by: das
MFC after: 1 week
|
|
|
|
|
|
| |
PR: 167734
Submitted by: Nobuyuki Koganemaru (kogane!jp.freebsd.org)
MFC after: 3 days
|
| |
|
|
|
|
|
|
|
| |
quotation. Also make sure we have the same amount of columns in each row as
the number of columns we specify in the head arguments.
Reviewed by: brueffer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
correct sign when the remainder was 0.
Fix a separate bug in remquo alone, in which the remainder and
quotient were both off by a bit in certain cases involving subnormal
remainders.
The bugs affected all platforms except amd64 and i386, on which the
routines are implemented in assembly.
PR: 166463
Submitted by: Ilya Burylov
MFC after: 2 weeks
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
the function bodies require only 2 to 10 instructions. However, it
leads to application binaries that refer to a private ABI, namely, the
softfloat innards in libc. This could complicate future changes in
the implementation of the floating-point emulation layer, so it seems
best to have programs refer to the official fe* entry points in libm.
|
|
|
|
|
|
|
| |
use softfloat.
Thanks to Ian Lepore for testing and debugging this patch. The fenv
regression tests pass (at least for Ian's arm chip) with this change.
|
| |
|
|
|
|
|
|
|
| |
C++'s <cmath> to work without the compiler complaining that the C++ versions are calling implicitly-declared functions. You will still get a linker error when they are called. OpenBSD 5.0 claims to fully implement the C99 <math.h> stuff, so might be worth investigating...
Reviewed by: das
Approved by: dim (mentor)
|