summaryrefslogtreecommitdiffstats
path: root/lib/msun
Commit message (Collapse)AuthorAgeFilesLines
* Use the \*(If string provided by mdoc(7), to represent infinity.ru2005-01-162-18/+11
|
* Removed redundant .br call.ru2005-01-161-1/+0
|
* amd64 assembly versions of sqrt(), lrint(), and llrint() using SSE2.das2005-01-154-0/+77
|
* Most libm routines depend on the rounding mode and/or set exceptiondas2005-01-151-31/+29
| | | | | | | | | | | | | | 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
* Braino. Revert rev 1.50.das2005-01-151-0/+7
| | | | Pointy hat to: das
* Remove numerous references to VAX floating-point and the setting ofdas2005-01-1412-204/+44
| | | | | | errno, replacing them with a discussion of IEEE exceptions where appropriate. Cross-reference fenv(3) whenever exceptions are mentioned.
* Set math_errhandling to MATH_ERREXCEPT. Now that we have fenv.h, wedas2005-01-141-1/+1
| | | | | | 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.
* Remove some #if 0'd code.das2005-01-141-7/+0
|
* Tiny markup nits.ru2005-01-144-22/+23
|
* Mark all inline asms that read the floating-point control or statusdas2005-01-147-11/+11
| | | | | | | registers as volatile. Instructions that *wrote* to FP state were already marked volatile, but apparently gcc has license to move non-volatile asms past volatile asms. This broke amd64's feupdateenv at -O2 due to a WAR conflict between fnstsw and fldenv there.
* Fixed too many of "the", and enclose multi-word argument in double quotes.stefanf2005-01-131-4/+3
| | | | Obtained from: ru
* Import the subset of J.T. Conklin's single-precision x86-optimizeddas2005-01-1317-2/+280
| | | | | | | math routines that appear to be (a) correct and (b) faster than their MI counterparts on my Pentium 4. Obtained from: NetBSD
* The isnormal() in rev 1.2 should have been isfinite() so subnormalsdas2005-01-132-2/+2
| | | | | | round correctly. Noticed by: stefanf
* Things that are broken, unneeded, and unused since 1997 belong in the attic.das2005-01-131-55/+0
|
* Markup nits.ru2005-01-133-33/+27
|
* Fixed too many of "the", and enclose multi-word argument in double quotes.ru2005-01-131-4/+3
|
* Implement and document ceill().stefanf2005-01-134-8/+117
|
* Bump .Dd for the last commit.stefanf2005-01-131-1/+1
|
* Hook up and document floorl().stefanf2005-01-122-5/+16
|
* Implement floorl().stefanf2005-01-122-1/+98
|
* Whitespace nit.stefanf2005-01-121-1/+1
|
* Add MI implementations of [l]lrint[f]() and [l]lround[f]().das2005-01-1110-4/+200
| | | | Discussed with: bde
* Document [l]lrint[f]() and [l]lround[f]().das2005-01-115-5/+197
|
* Faster lrint() and llrint() implementations for x86.das2005-01-112-0/+71
|
* Mark inline stmxcsr instructions as volatile, since this appears to bedas2005-01-111-1/+1
| | | | | the only way to convince gcc that they read the MXCSR. The volatile annotation may be needed elsewhere as well.
* Scheduled mdoc(7) sweep.ru2005-01-114-6/+8
|
* Sanitize the markup, as prompted.ru2005-01-111-182/+173
|
* GC unused declarationdas2004-12-161-1/+0
|
* Cosmetic changes only:das2004-12-163-45/+15
| | | | | | | | - style - remove unused variables - de-support VAX Inspired by: bin/42388
* More updates for math(3):das2004-10-111-30/+40
| | | | | | | | | | - Make some minor rearrangements in the introduction. - Mention the problem with argument reduction on i386. - Add recently-implemented functions to the table. - Un-document the error bounds that only apply to the old 4BSD math library, and fill in the correct values where I know them. No attempt has been made to document bounds lower than 1 ulp, although smaller bounds are usually achievable in round-to-nearest mode.
* Add and document ilogbl(), a long double version of ilogb().stefanf2004-10-114-4/+65
|
* Use the FP_ILOG macros from <math.h> rather than hardcoded return values.stefanf2004-10-092-6/+13
| | | | | | Also be prepared for FP_ILOGBNAN != INT_MAX. Reviewed by: md5
* Bump the library version numbers for the following libraries:kensmith2004-10-011-0/+1
| | | | | | | | | | | /lib/{libm,libreadline} /usr/lib/{libhistory,libopie,libpcap} in preparation for doing the same thing to RELENG_5. HUGE amounts of help for determining what to bump provided by kris. Discussed on: freebsd-current Approved by: re (not required for commit but something like this should be)
* Further refine some #ifs:das2004-09-171-2/+2
| | | | | | | - 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].
* Add man pages for the cimag(), conj() and creal() functions.stefanf2004-08-072-2/+107
|
* Only use rfs and wfs if ARM_HARD_FLOAT is defined, and use stubs if it is not,cognet2004-08-051-2/+7
| | | | | | in order to unbreak arm make world. The right way to do it with soft floats will be figured out later. Discussed with: das
* Replace s_isnan.c and s_isnanf.c with the more compact s_isnan.c fromdas2004-08-053-67/+53
| | | | | | | 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().
* Use isnormal() instead of fpclassify() to avoid dependency on libc.so.5.das2004-08-052-6/+2
|
* Work around known GCC 3.4.x problem and use ANSI prototype for dremf().kan2004-07-281-2/+2
|
* Fix two bugs in the signbit() macro, which was implemented last year:das2004-07-194-4/+124
| | | | | | | | - It was added to libc instead of libm. Hopefully no programs rely on this mistake. - It didn't work properly on large long doubles because its argument was converted to type double, resulting in undefined behavior.
* Fix minor namespace pollution: The prototypes for f{dim,max,min}(),stefanf2004-07-171-6/+6
| | | | | nearbyint(), round() and trunc() shouldn't be visible when compiling with -D_XOPEN_SOURCE=500.
* Tweak the conditions under which certain gcc builtins are used:das2004-07-161-2/+2
| | | | | | | | | | | | - Unlike the builtin relational operators, builtin floating-point constants were not available until gcc 3.3, so account for this.[1] - Apparently some versions of the Intel C Compiler fallaciously define __GNUC__ without actually being compatible with the claimed gcc version. Account for this, too.[2] [1] Noticed by: Christian Hiris <4711@chello.at> [2] Submitted by: Alexander Leidinger <Alexander@Leidinger.net>
* Remove the declaration of isnan() from this file. It is no longerdas2004-07-092-6/+0
| | | | needed as of math.h v1.40, and its prototype is incorrect here.
* Implement the classification macros isfinite(), isinf(), isnan(), anddas2004-07-094-7/+146
| | | | | | | | | | | | | | | | | | | | | isnormal() the hard way, rather than relying on fpclassify(). This is a lose in the sense that we need a total of 12 functions, but it is necessary for binary compatibility because we have never bumped libm's major version number. In particular, isinf(), isnan(), and isnanf() were BSD libc functions before they were C99 macros, so we can't reimplement them in terms of fpclassify() without adding a dependency on libc.so.5. I have tried to arrange things so that programs that could be compiled in FreeBSD 4.X will generate the same external references when compiled in 5.X. At the same time, the new macros should remain C99-compliant. The isinf() and isnan() functions remain in libc for historical reasons; however, I have moved the functions that implement the macros isfinite() and isnormal() to libm where they belong. Moreover, half a dozen MD versions of isinf() and isnan() have been replaced with MI versions that work equally well. Prodded by: kris
* Define the following macros in terms of [gi]cc builtins when thedas2004-07-091-0/+29
| | | | | | | | | | | | | | | | | | builtins are available: HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, and NAN. These macros now expand to floating-point constant expressions rather than external references, as required by C99. Other compilers will retain the historical behavior. Note that it is not possible say, e.g. #define HUGE_VAL 1.0e9999 because the above may result in diagnostics at translation time and spurious exceptions at runtime. Hence the need for compiler support for these features. Also use builtins to implement the macros isgreater(), isgreaterequal(), isless(), islessequal(), islessgreater(), and isunordered() when such builtins are available. Although the old macros are correct, the builtin versions are much faster, and they avoid double-expansion problems.
* Add C99's nearbyint{,f}() functions as wrappers around rint().das2004-07-064-6/+94
| | | | | | | These trivial implementations are about 25 times slower than rint{,f}() on x86 due to the FP environment save/restore. They should eventually be redone in terms of fegetround() and bit fiddling.
* Eliminate double whitespace.ru2004-07-033-7/+7
|
* Mechanically kill hard sentence breaks.ru2004-07-024-6/+11
|
* Markup, grammar, punctuation.ru2004-07-013-10/+10
|
* Implement and document fdim{,f,l}, fmax{,f,l}, and fmin{,f,l}.das2004-06-3011-7/+570
|
OpenPOWER on IntegriCloud