| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
unwanted underflow exceptions.
Pointed out by: das
|
|
|
|
| |
with long double addition on sparc64.
|
|
|
|
|
|
| |
argument.
Noticed by: das
|
| |
|
| |
|
|
|
|
| |
This only matters for efficiency, not for correctness.
|
| |
|
|
|
|
|
|
| |
tanf() was called with big arguments close to multiples of pi/2.
Reported by: ucbtest via bde
|
| |
|
| |
|
|
|
|
| |
remove the XXX comments, which no longer apply.
|
|
|
|
| |
comment.
|
|
|
|
|
|
|
|
| |
particularly good reason to do this, except that __strong_reference
does type checking, whereas __weak_reference does not.
On Alpha, the compiler won't accept a 'long double' parameter in
place of a 'double' parameter even thought the two types are
identical.
|
| |
|
|
|
|
|
|
|
| |
an invalid exception and return an NaN.
- If a long double has 113 bits of precision, implement fma in terms
of simple long double arithmetic instead of complicated double arithmetic.
- If a long double is the same as a double, alias fma as fmal.
|
|
|
|
|
|
| |
identical to scalbnf, which is now aliased as ldexpf. Note that the
old implementations made the mistake of setting errno and were the
only libm routines to do so.
|
|
|
|
|
|
|
| |
sparc64's 128-bit long doubles.
- Define FP_FAST_FMAL for ia64.
- Prototypes for fmal, frexpl, ldexpl, nextafterl, nexttoward{,f,l},
scalblnl, and scalbnl.
|
|
|
|
| |
the same as double.
|
|
|
|
|
|
| |
- In scalbln and scalblnf, check the bounds of the second argument.
This is probably unnecessary, but strictly speaking, we should
report an error if someone tries to compute scalbln(x, INT_MAX + 1ll).
|
|
|
|
| |
exponents and platforms with 15-bit exponents for long doubles.
|
|
|
|
|
|
|
|
|
|
|
| |
nexttowardl. These are not needed on machines where long doubles
look like IEEE-754 doubles, so the implementation only supports
the usual long double formats with 15-bit exponents.
Anything bizarre, such as machines where floating-point and integer
data have different endianness, will cause problems. This is the case
with big endian ia64 according to libc/ia64/_fpmath.h. Please contact
me if you managed to get a machine running this way.
|
|
|
|
|
|
| |
that are intended to raise underflow and inexact exceptions.
- On systems where long double is the same as double, nextafter
should be aliased as nexttoward, nexttowardl, and nextafterl.
|
| |
|
|
|
|
| |
a double.
|
| |
|
| |
|
|
|
|
| |
floating-point formats.
|
|
|
|
|
|
|
|
|
| |
inputs. The trouble with replacing two floats with a double is that
the latter has 6 extra bits of precision, which actually hurts
accuracy in many cases. All of the constants are optimal when float
arithmetic is used, and would need to be recomputed to do this right.
Noticed by: bde (ucbtest)
|
|
|
|
|
|
|
| |
results in a performance gain on the order of 10% for amd64 (sledge),
ia64 (pluto1), i386+SSE (Pentium 4), and sparc64 (panther), and a
negligible improvement for i386 without SSE. (The i386 port still
uses the hardware instruction, though.)
|
| |
|
| |
|
|
|
|
|
|
|
| |
C90, and other arcana. Most of these features were never fully
supported or enabled by default.
Ok: bde, stefanf
|
|
|
|
| |
Noticed by: ceri
|
|
|
|
| |
nextafter(+0.0, -0.0) returns -0.0 and nextafter(-0.0, +0.0) returns +0.0.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
flags, so they are not pure. Remove the __pure2 annotation from them.
I believe that the following routines and their float and long double
counterparts are the only ones here that can be __pure2:
copysign is* fabs finite fmax fmin fpclassify ilogb nan signbit
When gcc supports FENV_ACCESS, perhaps there will be a new annotation
that allows the other functions to be considered pure when FENV_ACCESS
is off.
Discussed with: bde
|
|
|
|
| |
Pointy hat to: das
|
|
|
|
|
|
| |
basically support this, subject to gcc's lack of FENV_ACCESS support.
In any case, the previous setting of math_errhandling to 0 is not
allowed by POSIX.
|
| |
|
|
|
|
|
|
| |
round correctly.
Noticed by: stefanf
|
| |
|
| |
|
| |
|
|
|
|
| |
Discussed with: bde
|
| |
|
|
|
|
|
|
| |
Also be prepared for FP_ILOGBNAN != INT_MAX.
Reviewed by: md5
|
|
|
|
|
|
|
| |
- Simplify the logic by using __GNUC_PREREQ__.
Suggested by stefanf.
- Make math.h compile with old (pre-8.0) versions of icc.
Submitted by sf [sic].
|
|
|
|
|
|
|
| |
libc. The externally-visible effect of this is to add __isnanl() to
libm, which means that libm.so.2 can once again link against libc.so.4
when LD_BIND_NOW is set. This was broken by the addition of fdiml(),
which calls __isnanl().
|
| |
|
| |
|