| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
on anything earlier than this. This should fix the armeb and arm builds
when using gcc.
|
|
|
|
| |
incorrect assembly file that doesn't allow for vfp instructions.
|
|
|
|
| |
set the floating-point environment.
|
|
|
|
| |
warning.
|
|
|
|
| |
lib/msun/src/e_sqrtl.c uses an unsupported STDC FENV_ACCESS pragma.
|
|
|
|
| |
* Correctly shift the mask when masking/unmasking exceptions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* msun/man/sinh.3:
* msun/man/tanh.3:
. Fix grammar.
* msun/src/e_coshl.c:
* msun/src/e_sinhl.c:
. Fix comment.
* msun/src/s_tanhl.c:
. Remove unused variables.
. Fix location/indentation of comments.
. Use comparison involving ints instead of long double.
. Re-order polynomial evaluation on ld128 for |x| < 0.25.
For now, retain the older order in an "#if 0 ... #else" block.
. Use int comparison to short-circuit the |x| < 1.5 condition.
Requested by: bde
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
. Hook coshl, sinhl, and tanhl into libm.
. Create symbolic links for corresponding manpages.
. While here remove a nearby extraneous space.
* Symbol.map:
* src/math.h:
. Move coshl, sinhl, and tanhl to their proper locations.
* man/cosh.3:
* man/sinh.3:
* man/tanh.3:
. Update the manpages.
* src/e_cosh.c:
* src/e_sinh.c:
* src/s_tanh.c:
. Add weak reference for LBDL_MANT_DIG==53 targets.
* src/imprecise.c:
. Remove the coshl, sinhl, and tanhl kludge.
* src/e_coshl.c:
. ld80 and ld128 implementation of coshl().
* src/e_sinhl.c:
. ld80 and ld128 implementation of sinhl().
* src/s_tanhl.c:
. ld80 and ld128 implementation of tanhl().
Obtained from: bde (mostly), das and kargl
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ld128/k_expl.h:
. Split out a computational kernel,__k_expl(x, &hi, &lo, &k) from expl(x).
x must be finite and not tiny or huge. The kernel returns hi and lo
values for extra precision and an exponent k for a 2**k scale factor.
. Define additional kernels k_hexpl() and hexpl() that include a 1/2
scaling and are used by the hyperbolic functions.
* ld80/s_expl.c:
* ld128/s_expl.c:
. Use the __k_expl() kernel.
Obtained from: bde
|
|
|
|
|
|
| |
changes in s_roundl.c to use bit twiddling.
Reported by: ian
|
|
|
|
| |
Reported by: ian
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use bit twiddling. This requires inclusion of math_private.h
and inclusion of float.h in s_roundl.c. Raise invalid exception.
* Use literal integer constants where possible. Let the compiler
do the appropriate conversion.
* In s_roundf.c, use an F suffix on float constants instead of
promoting float to double and then converting the result back
to float. In s_roundl.c, use an L suffix.
* In s_roundl.c, use the ENTERI and RETURNI macros. This requires
the inclusion of fpmath.h and on __i386__ class hardware ieeefp.h.
Reviewed by: bde
|
|
|
|
| |
Any other floating-point unit is unsupported on ARM.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
preprocessor) gives the following error:
--- Version.map ---
<stdin>:287:4: error: invalid preprocessing directive
# Implemented as weak aliases for imprecise versions
^
1 error generated.
Change the comment to a C-style one, to prevent this error.
Approved by: re (hrs)
|
|
|
|
|
|
| |
endian the CPU is in, i.e. little-endian on most ARM cores.
This allows ARMv4 and ARMv5 boards to boot with the ARM EABI.
|
|
|
|
|
|
|
|
|
|
| |
These are weak and so can be replaced by other versions in applications
that choose to do so, and will give a linker warning when used so that
applications that rely on the extra precision can avoid them.
Note that since the C/C++ specs only guarantee that long double has
precision equal to double, code that actually relies on these functions
having greater precision is unportable at best and broken at worst.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
. Use integer literal constants instead of double literal constants.
* s_erff.c:
. Use integer literal constants instead of casting double literal
constants to float.
. Update the threshold values from those carried over from erf() to
values appropriate for float.
. New sets of polynomial coefficients for the rational approximations.
These coefficients have little, but positive, effect on the maximum
error in ULP in the four intervals, but do improve the overall
speed of execution.
. Remove redundant GET_FLOAT_WORD(ix,x) as hx already contained the
contents that is packed into ix.
. Update the mask that is used to zero-out lower-order bits in x in
the intervals [1.25, 2.857143] and [2.857143, 12]. In tests on
amd64, this change improves the maximum error in ULP from 6.27739
and 63.8095 to 3.16774 and 2.92095 on these intervals for erffc().
Reviewed by: bde
|
| |
|
|
|
|
| |
SUSv2 mode.
|
|
|
|
| |
Submitted by: Pasi Parviainen
|
|
|
|
| |
tgmath.h contains the same bugs and so should be fixed in the same way.
|
| |
|
| |
|
|
|
|
|
| |
Reviewed by: bde
MFC after: 3 days
|
|
|
|
|
|
|
| |
Tested with md5 sum of object code
Reported by: swildner@DragonFlyBSD.org
Submitted by: bde
|
|
|
|
| |
merge of the work done by bde and myself.
|
|
|
|
| |
Submitted by: bde
|
| |
|
|
|
|
|
|
| |
Remove a blank line that crept into the declarations.
Fix a comment to show a sign on a NaN.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
as a fairly faithful implementation of the algorithm found in
PTP Tang, "Table-driven implementation of the Expm1 function
in IEEE floating-point arithmetic," ACM Trans. Math. Soft., 18,
211-222 (1992).
Over the last 18-24 months, the code has under gone significant
optimization and testing.
Reviewed by: bde
Obtained from: bde (most of the optimizations)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use integral numerical constants, and let the compiler do the
conversion to long double.
ld128/s_expl.c:
* Use integral numerical constants, and let the compiler do the
conversion to long double.
* Use the ENTERI/RETURNI macros, which are no-ops on ld128. This
however makes the ld80 and ld128 identical.
Reviewed by: bde (as part of larger diff)
|
|
|
|
|
|
| |
on a literal constant.
Obtained from: bde
|
|
|
|
| |
of the optimizations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* In the special case x = -Inf or -NaN, use a micro-optimization
to eliminate the need to access u.xbits.man.
* Fix an off-by-one for small arguments |x| < 0x1p-65.
ld128/s_expl.c:
* In the special case x = -Inf or -NaN, use a micro-optimization
to eliminate the need to access u.xbits.manh and u.xbits.manl.
* Fix an off-by-one for small arguments |x| < 0x1p-114.
Obtained from: bde
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Update the evaluation of the polynomial. This allows the removal
of the now unused variables t23 and t45.
ld128/s_expl.c:
* Update the evaluation of the polynomial and the intermediate
result t. This update allows several numerical constants to be
written as double rather than long double constants. Update
the constants as appropriate.
Obtained from: bde
|
|
|
|
| |
my previous commit.
|
|
|
|
| |
an interval instead of a midpoint.
|
|
|
|
|
|
|
| |
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
|