Age | Commit message (Collapse) | Author |
|
files or directories when applicable.
The inspiration and name of MACHINE_CPU come from NetBSD, although the way to
provide it to Makefiles is completely different.
ok kettenis@
|
|
ok pirofti@
|
|
ok otto@
|
|
is defined on all architectures.
ok jmc@ (man pages) and martynas@
|
|
ok otto millert martynas
|
|
is getting ridiculous. split them into groups of copysign, ilogb,
nextafter, scalbn. discussed long ago with millert@
|
|
|
|
formats. which even for 80-bit & 128-bit long doubles is only 15
bits. therefore, scalbln, scalblnf, scalblnl are essentially the
same as scalbn, scalbnf, scalbnl with bounds checking so that
LONG_MIN..INT_MIN, and INT_MAX..LONG_MAX ranges properly raise
exceptions & yield correct values. looks good to millert@
|
|
|
|
versions; spotted by kettenis@
while here also remove unused ldexp; it lives in libc
ok kettenis@, "looks good" millert@
|
|
|
|
faster that way. tested by myself. discussed w/ & ok miod@, millert@
|
|
since its fp does not have distinguished values for qnans. tested
by naddy@; fixes libnova. ok theo
|
|
|
|
|
|
from asm.h. discussed w/ millert@
|
|
important functions: acosl, asinl, atanl, atan2l, cosl,
sinl, tanl, exp2l, frexpl, ilogbl, ldexpl, logbl, scalbnl,
fabsl, hypotl, powl, sqrtl, rintl, copysignl, nanl, fdiml,
fmaxl, fminl. mostly taken from freebsd, needed alot of
changes to adapt. note, these are all c versions; and are
quite slow when architectures have, e.g. sqrt. assembly
versions will be added afterwards
- make them .weak/__weak_alias to the double precision
versions on other archs
- no need to have two finites. finite() and finitef() are
non-standard 3BSD obsolete versions of isfinite. remove
from libm. make them weak_alias in libc to __isfinite and
__isfinitef instead. similarly make 3BSD obsolete versions
of isinf, isinff, isnan, isnanf weak_aliases to C99's
__isinf, __isinff, __isnan, __isnanf
- remove unused infinity.c. the c library has infinities
for each supported platform
- use STRICT_ASSIGN cast hack for _kernel_rem_pio2, so that
the double version has a chance of working on i386 with
extra precision
- avoid storing multiple copies of the pi/2 array, since
it won't vary
- bump major due to removed finite/finitef. although they
will be in libc, which anything is linked to, minor bump
might be enough
ok millert@. tested by sthen@, jsg@, ajacoutot@, kili@, naddy@
|
|
supports (which is all, except the float ones)
ok millert@
|
|
|
|
fminf, fmaxf, fdimf, fdiml for VAX. looks good to millert@
|
|
|
|
- provide proper dtoa locks
- use the real strtof implementation
- add strtold, __hdtoa, __hldtoa
- add %a/%A support
- don't lose precision in printf, don't round to double anymore
- implement extended-precision versions of libc functions: fpclassify,
isnan, isinf, signbit, isnormal, isfinite, now that the ieee.h is
fixed
- separate vax versions of strtof, and __hdtoa
- add complex math support. added functions: cacos, casin, catan,
ccos, csin, ctan, cacosh, casinh, catanh, ccosh, csinh, ctanh, cexp,
clog, cabs, cpow, csqrt, carg, cimag, conj, cproj, creal, cacosf,
casinf, catanf, ccosf, csinf, ctanf, cacoshf, casinhf, catanhf,
ccoshf, csinhf, ctanhf, cexpf, clogf, cabsf, cpowf, csqrtf, cargf,
cimagf, conjf, cprojf, crealf
- add fdim, fmax, fmin
- add log2. (adapted implementation e_log.c. could be more acruate
& faster, but it's good enough for now)
- remove wrappers & cruft in libm, supposed to work-around mistakes
in SVID, etc.; use ieee versions. fixes issues in python 2.6 for
djm@
- make _digittoint static
- proper definitions for i386, and amd64 in ieee.h
- sh, powerpc don't really have extended-precision
- add missing definitions for mips64 (quad), m{6,8}k (96-bit) float.h
for LDBL_*
- merge lead to frac for m{6,8}k, for gdtoa to work properly
- add FRAC*BITS & EXT_TO_ARRAY32 definitions in ieee.h, for hdtoa&ldtoa
to use
- add EXT_IMPLICIT_NBIT definition, which indicates implicit
normalization bit
- add regression tests for libc: fpclassify and printf
- arith.h & gd_qnan.h definitions
- update ieee.h: hppa doesn't have quad-precision, hppa64 does
- add missing prototypes to gdtoaimp
- on 64-bit platforms make sure gdtoa doesn't use a long when it
really wants an int
- etc., what i may have forgotten...
- bump libm major, due to removed&changed symbols
- no libc bump, since this is riding on djm's libc major crank from
a day ago
discussed with / requested by / testing theo, sthen@, djm@, jsg@,
merdely@, jsing@, tedu@, brad@, jakemsr@, and others.
looks good to millert@
parts of the diff ok kettenis@
this commit does not include:
- man page changes
|
|
for remquof.3;
|
|
- mlink drem, dremf, remainderf to remainder; nanf to nan
- describe that drem and dremf are obsolete aliases
- remove descriptions for remainder and remainderf from ieee
looked over by jmc@, but it's easier for him to work on when they
are in tree
|
|
|
|
|
|
- remove never-enabled signbit. libc has is now
- add C99 implementations, from freebsd, for nan(), nanf() (needed
to write _digittoint for it), exp2(), exp2f(), remquo(), remquof(),
needed STRICT_ASSIGN macro for math_private.h
- bump major
man pages will follow
exp2{,f} has been requested by chl@
ok millert@
|
|
supplies these functions. in comments
|
|
s_lroundf.c s_llround.c s_llroundf.c, for naming consistency
looks fine to millert@
|
|
ok millert@
|
|
lgamma.3: fix STANDARDS and HISTORY
|
|
- make gamma an alias of lgamma
- on ieee, add tgamma, based on gamma from non-ieee
- fixes for tgamma/lgamma/exp/log, esp. special cases (some from
freebsd); properly raise invalid fp operations on vax
- also some general cleanup, ansification, man page (which was ok
jmc@)
- bump minor
this makes some ports using tgamma possible; also consistifies
behavior across openbsd/ieee and openbsd/non-ieee, and other operating
systems
much thanks sthen@, johan@, steven@, Simon Kuhnle, Wiktor Izdebski
for testing
ok millert@
|
|
- document and mlink drem{,f}
- drem->remainder on noieee, and make drem an alias
- finite returns integer, n_support.c
- general n_support.c ansification and cleanup
- drem is now an ALTENTRY for remainder, in n_support.S
help with man page from jmc@ and millert@
ok millert@
|
|
ok millert@
|
|
s_lrint.c and s_lrintf.c, and add i387-specific assembler versions.
ok deraadt@, otto@
|
|
By Steven G. Kargl <kargl at troutmask dot apl dot washington.edu>
From FreeBSD
|
|
tested by steven@, ok otto@
|
|
From FreeBSD
ok deraadt@ millert@ otto@ jmc@
|
|
comes up with a correct asm version, use the C version of exp(3).
ok steven@ kettenis@
|
|
|
|
jason@. Man page fixes by jmc@, prodding by jsg@. ok mickey@
|
|
ok deraadt@
|
|
|
|
reasons for this, quite a few of them technical, and not all of them
in response to Intel's broken ia32e crud. The gcc toolchain stays at
x86_64 for now.
|
|
Instead of mixing the i387 & xmm register components, we decide to
explicitly seperate them. libm is already confusing enough as it is,
thank you very much
|
|
instead.
|
|
|
|
|
|
|
|
From NetBSD; ok millert@
|