| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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@
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
| |
|
| |
|
|
|
|
|
| |
time we need them
ok 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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- 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@
|
| |
|
|
|
|
|
| |
s_lroundf.c s_llround.c s_llroundf.c, for naming consistency
looks fine to millert@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
powf, the float version of it
> 1. e_pow.c incorrect results when
> x is very close to -1.0 and y is very large, e.g.
> pow(-1.0000000000000002e+00,4.5035996273704970e+15) = 0
> pow(-9.9999999999999978e-01,4.5035996273704970e+15) = 0
> Correct results are close to -e and -1/e.
while here merge more changes for pow, fixes sign in oflow/uflow
cases
ok millert@
|
|
|
|
|
|
|
|
| |
> 2. k_tan.c error was > 1 ulp target for FDLIBM
> 5.2: Worst error at least 1.45 ulp at
> tan(1.7765241907548024E+269) = 1.7733884462610958E+16
> 5.3: Worst error 0.96 ulp
ok millert@
|
|
|
|
| |
ok millert@
|
|
|
|
|
|
|
|
|
| |
ugly, when we have isnan and isinf
- no need to check for _IEEE, when checking for not-a-number
- remove some impossible checks
- while here, drem->remainder, as drem is just an obsolete alias
now
ok millert@
|
|
|
|
|
|
|
| |
- no support for National 32000, removing ns32000/national ifdefs maze
- remove tahoe defs
- ansify
looks fine to millert@; who also noticed rint removal
|
|
|
|
| |
ok millert@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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@
|
| |
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
thought up the names of the bessel functions deserves a beating.
ok deraadt@
|
|
|
|
| |
i can only agree
|
| |
|
|
|
|
|
|
| |
From FreeBSD
ok deraadt@ millert@ otto@ jmc@
|
| |
|
|
|
|
|
| |
when compiling, and use the .S file instead
if someone has a better solution, show it..
|
|
|
|
| |
inspired by FreeBSD. ok biorn@ millert@ deraadt@
|
|
|
|
| |
jason@. Man page fixes by jmc@, prodding by jsg@. ok mickey@
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
`math.h'. The one in libm is more up to date but the one in the
include dir is what gets installed.
|
| |
|
|
|
|
|
|
| |
conflicts with gcc's exception handling stuff. This should really
only be visible when building libm I think, and I will do that
once I confer with others. Required for libg++ 2.8.0.
|
| |
|
|
|
|
| |
the ARM port runs little-endian, but it's fp is still big-endian!
|
|
|
|
|
|
|
| |
Changed w_gamma.c, w_gamma_r.c, w_gammaf.c, w_gammaf_r.c to call
__ieee754_lgamma_r or __ieee754_lgammaf_r.
Removed e_gamma.c, e_gamma_r.c, e_gammaf.c, e_gammaf_r.c, e_lgamma.c,
e_lgamma_f.c.
|
| |
|