Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | test LDBL_MANT_DIG == DBL_MANT_DIG instead of hardcoding 53. | 2013-07-03 | 1 | -3/+3 | |
| | | | | | | -> test becomes meaningful on vax No actual change, no bump okay martynas@ | ||||
* | Switch libc and libm to use strong aliases rather than weak aliases | 2013-03-28 | 1 | -2/+2 | |
| | | | | | | | | | | | where appropriate. Among other things makes the symbols consistent across all architectures (notably where ldbl mantissa is 53 bits). While at it, kill unused LINTLIBRARY/PROTOLIB1 cruft which was there to trick lint into recording the right prototypes for aliased functions. Most of the work done at the awesome n2k13 hackathon. Agreed by kettenis@, guenther@, matthew@. | ||||
* | Get rid of the very ugly lint workarounds: LINTLIBRARY, PROTOLIB, | 2013-01-13 | 1 | -8/+1 | |
| | | | | and a few empty files for lint to chew on. | ||||
* | Finalize work on the math library. It's time to do this monster | 2011-07-06 | 1 | -1/+14 | |
| | | | | | | | | | | | | | | | | | | commit, and deal with problems (if any) in tree. Note that this adds the following functions. Ports with hacks might need adjustments. nexttoward(3), fma(3), nexttowardf(3), fmaf(3), acoshl(3), asinhl(3), atanhl(3), coshl(3), sinhl(3), tanhl(3), expl(3), expm1l(3), logl(3), log10l(3), log1pl(3), log2l(3), modfl(3), cbrtl(3), hypotl(3), powl(3), erfl(3), erfcl(3), lgammal(3), tgammal(3), ceill(3), floorl(3), lrintl(3), llrintl(3), roundl(3), lroundl(3), llroundl(3), truncl(3), fmodl(3), remainderl(3), remquol(3), nextafterl(3), nexttowardl(3), fmal(3). With this commit, our library implements all functionality required by C99. Documentation bits will follow. | ||||
* | Trick GCC optimizer into clipping any extra precision by making w | 2011-04-20 | 1 | -3/+5 | |
| | | | | | | | 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. | ||||
* | The {,l}lround{,f} implementations are based on {,l}lrint{,f}, | 2011-04-17 | 1 | -3/+3 | |
| | | | | | | | | 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. | ||||
* | The {,l}lrint{,f} functions avoid to shift results by more than 31 | 2011-04-10 | 1 | -5/+5 | |
| | | | | | | | | | | | | | 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. | ||||
* | 20 -> DBL_FRACHBITS | 2011-04-10 | 1 | -4/+4 | |
| | |||||
* | The assumption that |1.0 * 2^exp| = 0, exp < -1 cannot be made when | 2011-04-10 | 1 | -4/+4 | |
| | | | | we round towards -inf or +inf. | ||||
* | Move llrint.c, llrintf.c, lrint.c and lrintf.c to s_llrint.c, s_llrintf.c, | 2006-09-25 | 1 | -0/+95 | |
s_lrint.c and s_lrintf.c, and add i387-specific assembler versions. ok deraadt@, otto@ |