| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
and one under lib/msun/amd64. This avoids adding the identifiers to the
.text section, and moves them to the .comment section instead.
Suggested by: bde
Approved by: rpaulo (mentor)
|
| |
|
| |
|
|
|
|
| |
code made obsolete in the same commit.
|
|
|
|
|
| |
Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.
|
|
|
|
|
|
| |
translating these manual pages. Minor corrections by me.
Submitted by: Nobuyuki Koganemaru <n-kogane@syd.odn.ne.jp>
|
|
|
|
| |
code on both architectures.
|
|
|
|
|
|
|
|
|
|
|
| |
macro expand to __isnanf() instead of isnanf() for float arguments.
This change is needed because isnanf() isn't declared in strict POSIX
or C99 mode.
Compatibility note: Apps using isnan(float) that are compiled after
this change won't link against an older libm.
Reported by: Florian Forster <octo@verplant.org>
|
|
|
|
|
| |
It is referred to as "theta" later in the document anyway,
so stop being fancy.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This pertains mostly to FILES, HISTORY, EXIT STATUS and AUTHORS sections.
Found by: mdocml lint run
Reviewed by: ru
|
|
|
|
|
|
|
|
|
|
|
| |
bottom of the manpages and order them consistently.
GNU groff doesn't care about the ordering, and doesn't even mention
CAVEATS and SECURITY CONSIDERATIONS as common sections and where to put
them.
Found by: mdocml lint run
Reviewed by: ru
|
|
|
|
|
|
| |
Found by: make manlint
Reviewed by: ru
Approved by: philip (mentor)
|
|
|
|
|
|
|
|
|
| |
argument for fnstsw. Explicitely specify sizes for the XMM control and
status word and X87 control and status words.
Reviewed by: das
Tested by: avg
MFC after: 2 weeks
|
|
|
|
|
|
|
|
| |
The amd64-specific bits of msun use an undocumented constraint, which is
less likely to be supported by other compilers (such as Clang). Change
the code to use a more common machine constraint.
Obtained from: /projects/clangbsd/
|
|
|
|
|
| |
Because we use ISO C99 nowadays, we can just get rid of enforcing
GNU89-style inlining.
|
|
|
|
|
|
|
|
|
| |
In this specific case, Valgrind won't get confused when analyzing such
functions.
Sponsored by: Sandvine Incorporated
Tested by: emaste
MFC: 3 days
|
| |
|
| |
|
|
|
|
| |
defined at all. See also: defect report #223.
|
|
|
|
|
|
| |
of gcc, where the meaning of 'inline' was changed to match C99.
Noticed by: rdivacky
|
|
|
|
|
|
|
|
| |
should both be floats, not doubles.
PR: 127795
Submitted by: Christoph Mallon
MFC after: 2 weeks
|
|
|
|
|
|
|
|
|
| |
FPA floating-point format is identical to the VFP format,
but is always stored in big-endian.
Introduce _IEEE_WORD_ORDER to describe the byte-order of
the FP representation.
Obtained from: Juniper Networks, Inc
|
|
|
|
| |
Reported by: Intel C Compiler
|
|
|
|
|
|
|
| |
#pragma STDC CX_LIMITED_RANGE ON
the "ON" needs to be in caps. gcc doesn't understand this pragma
anyway and assumes it is always on in any case, but icc supports
it and cares about the case.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
conj() instead of using expressions like z * I. The latter is bad for
several reasons:
1. It is implemented using arithmetic, which is unnecessary, and can
generate floating point exceptions, contrary to the requirements on
these functions.
2. gcc implements complex multiplication using a formula that breaks
down for infinities, e.g., it gives INFINITY * I == nan + inf I.
|
| |
|
|
|
|
|
|
|
| |
- Improve the order of some tests.
- Fix style.
Submitted by: bde
|
|
|
|
|
|
|
| |
- When y/x is huge, it's faster and more accurate to return pi/2
instead of pi - pi/2.
- There's no need for 3 lines of bit fiddling to compute -z.
- Fix a comment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
at compile time regardless of the dynamic precision, and there's
no way to disable this misfeature at compile time. Hence, it's
impossible to generate the appropriate tables of constants for the
long double inverse trig functions in a straightforward way on i386;
this change hacks around the problem by encoding the underlying bits
in the table.
Note that these functions won't pass the regression test on i386,
even with the FPU set to extended precision, because the regression
test is similarly damaged by gcc. However, the tests all pass when
compiled with a modified version of gcc.
Reported by: bde
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Adjust several constants for float precision. Some thresholds
that were appropriate for double precision were never changed
when these routines were converted to float precision. This
has an impact on performance but not accuracy. (Submitted by bde.)
- Reduce the degrees of the polynomials used. A smaller degree
suffices for float precision.
- In asinf(), use double arithmetic in part of the calculation to
avoid a corner case and some complicated arithmetic involving a
division and some buggy constants. This improves performance and
accuracy.
Max error (ulps):
asinf acosf atanf
before 0.925 0.782 0.852
after 0.743 0.804 0.852
As bde points out, it's cheaper for asin*() and acos*() to use
polynomials instead of rational functions, but that's a task for
another day.
|
|
|
|
|
|
|
| |
and cargl().
Reviewed by: bde
sparc64 testing resources from: remko
|
|
|
|
|
| |
I believe I've committed all the bits necessary to make this compile
on all supported architectures. :crosses fingers:
|
| |
|
|
|
|
|
|
| |
spurious optimizations. gcc doesn't support FENV_ACCESS, so when it
folds constants, it assumes that the rounding mode is always the
default and floating point exceptions never matter.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. architecture-specific files
2. long double format-specific files
3. bsdsrc
4. src
5. man
The original order was virtually the opposite of this.
This should not cause any functional changes at this time. The
difference is only significant when one wants to override, say, a
generic foo.c with a more specialized foo.c (as opposed to foo.S).
|
| |
|
|
|
|
| |
Document fmodl and fix some errors in the fmod manpage.
|
|
|
|
| |
Approved by: cognet (mentor)
|
| |
|
|
|
|
|
|
|
|
|
| |
- fma(x, y, z) returns z, not NaN, if z is infinite, x and y are finite,
x*y overflows, and x*y and z have opposite signs.
- fma(x, y, z) doesn't generate an overflow, underflow, or inexact exception
if z is NaN or infinite, as per IEEE 754R.
- If the rounding mode is set to FE_DOWNWARD, fma(1.0, 0.0, -0.0) is -0.0,
not +0.0.
|
| |
|
| |
|
| |
|
|
|
|
| |
remquol() performs to compute the quotient is negligible.
|
| |
|
| |
|
| |
|