Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
not reviewed yet, but it's better to track changes in cvs
|
|
|
|
Delivering FPE with non-masked exceptions doesn't work on Alpha; I
suspect there's a bug in the kernel trap handler.
FE_INEXACT is intentionally left out of FE_ALL_EXCEPT; since the
inexact exception is not being maintained. Otherwise it will lead
to the bogus results.
|
|
feedback & ok guenther@, matthew@
|
|
|
|
|
|
volatile; a similar hack was already being used in lrintf().
This will make rint and {,l}lrint family functions actually work;
i.e. on m68k rintf(8.6F) was 8.625.
|
|
therefore affected by the same bugs I've fixed a week ago.
The high part was being clipped for all exponents greater or equal
to 52. Fix this to use RESTYPE_BITS instead; also make the code
consistent.
|
|
|
|
|
|
Therefore, in nextafter() and nextafterf():
- if(x==y) return x; /* x=y, return x */
- if(x==y) return y; /* x=y, return y */
This matters for negative zero inputs of x or y.
|
|
bits, because "behavior is implementation defined in this case".
However, this is wrong; behavior is undefined if the right operand
is greater than or equal to the width of the promoted left operand.
This broke {,l}lrint{,f} (64-bit architectures), and llrint{,f}
(32-bit architectures) where results are actually 64-bit values.
The high part was clipped for all exponents greater or equal to 52.
Fix this to use RESTYPE_BITS instead; {,l}lrint{,f} are now able
to pass our regression tests, and I think are right now.
|
|
|
|
we round towards -inf or +inf.
|
|
OK kettenis@ jmc@
|
|
ok millert@
|
|
argument is a float. Eliminate a cast rendered superfluous as a result.
ok kettenis@, millert@
|
|
|
|
ok miod@
|
|
|
|
* do not use low-level roff macros like .if and .ds
* add the missing .Os to the preamble
* move unqualified text out of .Bl
ok jmc@
|
|
files or directories when applicable.
The inspiration and name of MACHINE_CPU come from NetBSD, although the way to
provide it to Makefiles is completely different.
ok kettenis@
|
|
ok pirofti@
|
|
ok otto@
|
|
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms
|
|
|
|
is defined on all architectures.
ok jmc@ (man pages) and martynas@
|
|
ok otto millert martynas
|
|
where appropriate. pointed out by jmc@
|
|
double => 4.3BSD
float => NetBSD 1.1
long double => OpenBSD 4.5
scalbln, scalblnf, scalblnl => OpenBSD 4.7
|
|
is getting ridiculous. split them into groups of copysign, ilogb,
nextafter, scalbn. discussed long ago with millert@
|
|
|
|
|
|
formats. which even for 80-bit & 128-bit long doubles is only 15
bits. therefore, scalbln, scalblnf, scalblnl are essentially the
same as scalbn, scalbnf, scalbnl with bounds checking so that
LONG_MIN..INT_MIN, and INT_MAX..LONG_MAX ranges properly raise
exceptions & yield correct values. looks good to millert@
|
|
|
|
|
|
ok martynas@, deraadt@
|
|
float/double prologue/epilogue, since the second argument is not
float/double. were never working properly (always returned inf).
actually, should help other math funcs (like pow) too, since they
use it internally
tested by kurt@; devel/boost fp regresses are working better now.
ok kurt@
|
|
overriden by md source. spotted by kurt@
actually; on amd64 scalbnf, scalbn (and therefore now frexpf) have
always been broken since second argument is not float. fix is under
reviewal / will be committed separately
ok kurt@, kettenis@, millert@. tested by kurt@
|
|
versions; spotted by kettenis@
while here also remove unused ldexp; it lives in libc
ok kettenis@, "looks good" millert@
|
|
accurately, hence the tricks in libm, using machine representation
of constants. remove kludges and switch to use decimal constants,
much simplifying the code. since, the compiler converts them
accurately. generated values match on vaxfp
discussed with millert@, and miod@
testing todd@, and myself
ok millert@
|
|
|
|
|
|
object code matches so this got to be oki
|
|
|