| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
the double version.
|
|
|
|
|
|
| |
float versions. Using sqrt() was inefficient.
Obtained from: NetBSD
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
are in their own file.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
some small (one or two ULP) inaccuracies.
Found by: ucbtest
|
|
|
|
| |
build.
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
because _IEEE_LIBM always takes priority, so the definition just served
to confuse.
Reviewed by: bde
|
| |
|
| |
|
|
|
|
| |
that purpose instead of space below the stack.
|
|
|
|
|
| |
every call. The damage was sometimes limited by other routines using
and freeing stack slots that should have been empty to being with.
|
|
|
|
| |
Submitted by: "Philippe Charnier" <charnier@xp11.frmug.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
less confusing.
Reviewed by: bde
Partially obtained from: NetBSD-bugs
|
|
|
|
| |
Submitted-By: Kent Vander Velden <graphix@iastate.edu>
|
|
|
|
|
| |
register on its first call. Subsequent calls reused the register so
the leak didn't accumulate. Fixes PR 1275.
|
|
|
|
| |
Obtained from: NetBSD
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Use ${INSTALL} instead of install.
|
|
|
|
|
|
|
|
| |
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'.
|
|
|
|
|
|
| |
than in the installation destination. Should make release-building
substantially faster. The msun Makefile changes simple adapt to the new
scheme.
|
| |
|
|
|
|
|
|
|
| |
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").
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Remove common sources from ${SRCS} when they are replaced by arch-specific
sources.
|
|
|
|
|
| |
counterpart.
Submitted by: Thomas Graichen <graichen@sirius.physik.fu-berlin.de>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Submitted by: jkh
|
|
|
|
|
| |
Reviewed by:
Submitted by:
|
|
|
|
| |
Submitted by: jkh
|
|\
| |
| |
| | |
which included commits to RCS files with non-trunk default branches.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-- 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
|
|
|