summaryrefslogtreecommitdiffstats
path: root/lib/msun
Commit message (Collapse)AuthorAgeFilesLines
* Fixed synopsis. Some float functions claimed to have the same name asbde1997-03-193-6/+6
| | | | the double version.
* Use __ieee754_sqrt() instead of sqrt() internally. Similarly for thebde1997-03-0912-33/+33
| | | | | | float versions. Using sqrt() was inefficient. Obtained from: NetBSD
* Include <machine/asm.h> instead of kernel-only <machine/asmacros.h>.bde1997-03-0924-48/+48
|
* Fixed wrong magic numbers in scaling. hypotf() was very broken for largebde1997-03-051-8/+8
| | | | | | | | | | and small values: hypotf(2.3819765e+38, 2.0416943e+38) was NaN instead of 3.1372484e+38 hypotf(-3.4028235e+38, 3.3886450e+38) was NaN instead of Inf hypotf(-2.8025969e-45, -2.8025969e-45) was 0 instead of 4.2038954e-45 Found by: ucbtest
* Revert $FreeBSD$ to $Id$peter1997-02-22215-215/+215
|
* Split up the Bessel function wrapper files so that most wrapper functionsbde1997-02-2013-177/+315
| | | | are in their own file.
* Removed misplaced duplicate of comment about implementation details.bde1997-02-201-22/+0
|
* Compute (1 - x^2) as ((1 - x) * (1 + x)) instead of as (1 - x * x) tobde1997-02-202-11/+23
| | | | | | | | | | | | | | | avoid easily avoidable loss of precision when |x| is nearly 1. Extended (64-bit) precision only moves the meaning of "nearly" here. This probably could be done better by splitting up the range into |x| <= 0.5 and |x| > 0.5 like the C version. However, ucbtest does't report any errors in this version. Perhaps the C version should be used anyway. It's only 25% slower now on a P5, provided the C version of sqrt() isn't used, and the C version could be optimized better. Errors checked by: ucbtest
* Select between the generic math functions and the i387-specific onesbde1997-02-1625-56/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | at runtime. etc/make.conf: Nuked HAVE_FPU option. lib/msun/Makefile: Always build the i387 objects. Copy the i387 source files at build time so that the i387 objects have different names. This is simpler than renaming the files in the cvs repository or repeating half of bsd.lib.mk to add explicit rules. lib/msun/src/*.c: Renamed all functions that have an i387-specific version by adding `__generic_' to their names. lib/msun/src/get_hw_float.c: New file for getting machdep.hw_float from the kernel. sys/i386/include/asmacros.h: Abuse the ENTRY() macro to generate jump vectors and associated code. This works much like PIC PLT dynamic initialization. The PIC case is messy. The old i387 entry points are renamed. Renaming is easier here because the names are given by macro expansions.
* Fixed the i87 version of exp(). It returned NaN for args +-Inf. It hadbde1997-02-161-0/+42
| | | | | | some small (one or two ULP) inaccuracies. Found by: ucbtest
* Put back .endif clobbered by the previous commit, breaking thejkh1997-02-151-0/+1
| | | | build.
* Disabled the i387 version if log1p(). It just evaluates log(1 + x).bde1997-02-151-2/+4
| | | | | | | | | This defeats the point of log1p(). ucbtest reports errors of +-5e+15 ULPs. A correct version would use the i387 fyl2xp1 instruction for small x and maybe scale to small x. The C version does the scaling reasonably efficiently, and fyl2px1 is slow (at least on P5s), so not much is lost by always using the C version (only 25% for small x even with the broken i387 version; 50% for large x).
* Sort cross references.wosch1997-01-2013-33/+33
|
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-14208-208/+208
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* Delete -D_POSIX_MODE and -D_MULTI_LIBM from CFLAGS. They never had any effectwollman1997-01-081-2/+2
| | | | | | | because _IEEE_LIBM always takes priority, so the definition just served to confuse. Reviewed by: bde
* comma typoswosch1996-12-231-3/+3
|
* Removed references to nonexistent functions log2() and log2f().bde1996-12-181-3/+1
|
* Fixed fiddling with the control word. Use the stack space reserved forbde1996-12-142-12/+12
| | | | that purpose instead of space below the stack.
* Clean up the FPU stack before returning. One stack slot was leaked onbde1996-12-142-2/+4
| | | | | every call. The damage was sometimes limited by other routines using and freeing stack slots that should have been empty to being with.
* consistancy fixuppeter1996-08-301-2/+2
| | | | Submitted by: "Philippe Charnier" <charnier@xp11.frmug.org>
* cmp -s || install -c ==> install -Cpeter1996-08-301-5/+3
|
* Made rintf() actually work. It was completely broken (when s_rint.cbde1996-08-282-6/+19
| | | | | | | | | | | was compiled with -O) by the precision bug in the i386 version of gcc (assignments and casts don't clip the precision). E.g., rintf(12.3456789) was 12.125. Avoid the same bug in rint(). It was only broken for the unusual case when the i387 precision is 64 bits. FreeBSD defaults to 53 bit precision to avoid problems like this, but the standard math emulator always uses 64 bit precision.
* Fix up the NAME lines forthe ceil and floor man pages to bempp1996-08-212-4/+4
| | | | | | | less confusing. Reviewed by: bde Partially obtained from: NetBSD-bugs
* General -Wall warning cleanup, part I.jkh1996-07-127-16/+16
| | | | Submitted-By: Kent Vander Velden <graphix@iastate.edu>
* Clean up the FP stack before returning. The i387 exp() leaked an FPbde1996-06-011-1/+2
| | | | | register on its first call. Subsequent calls reused the register so the leak didn't accumulate. Fixes PR 1275.
* Don't trash %ebp.bde1996-02-251-2/+2
| | | | Obtained from: NetBSD
* Fixed some minor formatting problems to silence manck some more.mpp1996-02-128-21/+13
| | | | | | | | | Corrected some bogus cross references to man pages that we don't/won't have and either deleted them, or found a more appropriate man page that we do have. Various other minor changes to silence manck. Manck is currently down to about 200 lines of errors, down from the 500 - 600+ when I started all this.
* Correct one small typo in previous commit.mpp1996-02-091-2/+2
|
* Added some missing MLINKS for section 3 man pages.mpp1996-02-091-12/+35
| | | | | | | Also corrected a few minor formatting errors, file location and cross references in some of the section 3 man pages. This shuts up a lot of the output from "manck" for section 3.
* Undo the the changes in the previous revision (MANSRC now works right again).bde1995-10-221-7/+8
| | | | Use ${INSTALL} instead of install.
* Fixed use of too many args for `.Em'.bde1995-10-221-10/+12
| | | | | | | | Fixed description of domain of y*(). Fixed description of error domain. (This description is still half redundant and half wrong, as in many other math man pages. fdlibm doesn't support the VAX or Tahoe.) Fixed capitalization of `Bessel'.
* Compress manual pages (if desired) in the obj directory ratherwollman1995-10-021-7/+6
| | | | | | than in the installation destination. Should make release-building substantially faster. The msun Makefile changes simple adapt to the new scheme.
* Remove trailing whitespace.rgrimes1995-05-30164-1064/+1064
|
* Submitted by: J.T. Conklin <jtc@wimsey.com>bde1995-04-076-10/+56
| | | | | | | Second part of update to fdlibm 5.2: speed up argument reduction for trig functions in the case pi/4 < |x| < 3pi/4. Remove unused static constants ("one").
* Submitted by: J.T. Conklin <jtc@wimsey.com>bde1995-04-072-4/+4
| | | | | First part of update to fdlibm 5.2: fix jn(n, x) and jnf(n, x). jn(-1, x) was too large by a factor of 3.
* Obtained from: NetBSDbde1995-03-081-2/+7
| | | | | Remove common sources from ${SRCS} when they are replaced by arch-specific sources.
* Additions from Thomas Graichen to mention each functions' floating pointjkh1995-03-0127-159/+440
| | | | | counterpart. Submitted by: Thomas Graichen <graichen@sirius.physik.fu-berlin.de>
* Add missing z_abs. In BSD tradition this is in libm.a.ljo1994-11-111-0/+7
|
* Install math.h.bde1994-09-081-1/+8
|
* Latest fix from jtc:jkh1994-08-191-2/+13
| | | | | | | | | | | | | The fyl2xp1 instruction has such a limited range: -(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1 it's not worth trying to use it. Also, I'm not sure fyl2xp1's extra precision will matter once the result is converted from extended real (80 bits) back to double real (64 bits). Reviewed by: jkh Submitted by: jtc
* Make this puppy actually compile now.jkh1994-08-191-3/+2
| | | | Submitted by: jkh
* Do all the includes: <machine/asm.h> -> <machine/asmacros.h>jkh1994-08-1923-46/+46
| | | | | Reviewed by: Submitted by:
* Change includes to reference <machine/asmacros.h>.jkh1994-08-191-2/+2
| | | | Submitted by: jkh
* This commit was generated by cvs2svn to compensate for changes in r2116,jkh1994-08-19214-0/+20438
|\ | | | | | | which included commits to RCS files with non-trunk default branches.
| * J.T. Conklin's latest version of the Sun math library.jkh1994-08-19214-0/+20438
| | | | | | | | | | | | | | | | | | | -- Begin comments from J.T. Conklin: The most significant improvement is the addition of "float" versions of the math functions that take float arguments, return floats, and do all operations in floating point. This doesn't help (performance) much on the i386, but they are still nice to have. The float versions were orginally done by Cygnus' Ian Taylor when fdlibm was integrated into the libm we support for embedded systems. I gave Ian a copy of my libm as a starting point since I had already fixed a lot of bugs & problems in Sun's original code. After he was done, I cleaned it up a bit and integrated the changes back into my libm. -- End comments Reviewed by: jkh Submitted by: jtc
* BSD 4.4 Lite Lib Sourcesrgrimes1994-05-274-0/+1123
OpenPOWER on IntegriCloud