Age | Commit message (Collapse) | Author |
|
|
|
|
|
ok martynas@, deraadt@
|
|
float/double prologue/epilogue, since the second argument is not
float/double. were never working properly (always returned inf).
actually, should help other math funcs (like pow) too, since they
use it internally
tested by kurt@; devel/boost fp regresses are working better now.
ok kurt@
|
|
overriden by md source. spotted by kurt@
actually; on amd64 scalbnf, scalbn (and therefore now frexpf) have
always been broken since second argument is not float. fix is under
reviewal / will be committed separately
ok kurt@, kettenis@, millert@. tested by kurt@
|
|
versions; spotted by kettenis@
while here also remove unused ldexp; it lives in libc
ok kettenis@, "looks good" millert@
|
|
accurately, hence the tricks in libm, using machine representation
of constants. remove kludges and switch to use decimal constants,
much simplifying the code. since, the compiler converts them
accurately. generated values match on vaxfp
discussed with millert@, and miod@
testing todd@, and myself
ok millert@
|
|
|
|
|
|
object code matches so this got to be oki
|
|
|
|
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
|
|
|
|
|
|
|
|
is already there;
ok martynas
|
|
|
|
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@
|
|
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
|
|
|
|
|
|
for remquof.3;
|
|
signbit
|
|
- 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@
|
|
|
|
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@
|
|
- actually raise inexacts for expm1, and support
- __exp__E always returns, because inexact check always succeeds.
add NOTREACHED
- some cases in lgamma FALLTHROUGH, as intended
ok millert@
|
|
|
|
ok millert@
|
|
ok millert@
|