summaryrefslogtreecommitdiffstats
path: root/lib/libm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* remove, or replace Xr of ieee to either ilogb, nextafter or scalbnmartynas2009-08-039-29/+27
| | | | where appropriate. pointed out by jmc@
* now that the pages are split and we track separate HISTORY:martynas2009-07-294-13/+32
| | | | | | | double => 4.3BSD float => NetBSD 1.1 long double => OpenBSD 4.5 scalbln, scalblnf, scalblnl => OpenBSD 4.7
* ieee, and ieeef aren't real, and the amount of functions it documentsmartynas2009-07-295-90/+240
| | | | | is getting ridiculous. split them into groups of copysign, ilogb, nextafter, scalbn. discussed long ago with millert@
* ieee_test isn't real; rename header to logb, toomartynas2009-07-291-3/+3
|
* document scalbln, scalblnf, scalblnlmartynas2009-07-282-8/+30
|
* int is big enough to fully represent exponents of all supported fpmartynas2009-07-254-5/+80
| | | | | | | | 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@
* round, roundf, trunc, truncf for hppa; ok kettenis@martynas2009-07-155-2/+111
|
* fe_towardzero not on openbsd. ok millert@martynas2009-07-061-5/+3
|
* floor(3) should round towards -inf instead of towards zero.kettenis2009-06-302-6/+4
| | | | ok martynas@, deraadt@
* fix scalbn, scalbnf, frexpf on amd64. don't use double argmartynas2009-04-252-10/+16
| | | | | | | | | | 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@
* alias and give frexpf symbol external linkage to scalbnf; this wasmartynas2009-04-212-2/+8
| | | | | | | | 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@
* make ldexpf behavior consistent with the double and extended-precisionmartynas2009-04-194-72/+10
| | | | | | versions; spotted by kettenis@ while here also remove unused ldexp; it lives in libc ok kettenis@, "looks good" millert@
* in the old days compiler could not convert decimal constantsmartynas2009-04-1114-306/+82
| | | | | | | | | | 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@
* lrint, llrint, lrintf, llrintf for amd64. ok kettenis@, oga@martynas2009-04-105-1/+50
|
* missing rcs ids; spacingmartynas2009-04-084-18/+19
|
* remove i386/x86_64 ifdefs. i386 lives @ i387. miod@ agreesmartynas2009-04-0811-183/+10
| | | | object code matches so this got to be oki
* fix hexadecimal constant that was wrong; and confused with ieee. ok miod@martynas2009-04-081-2/+2
|
* implement and use sqrt, sqrtf & fabsf in hardware; since it'smartynas2009-04-054-1/+89
| | | | faster that way. tested by myself. discussed w/ & ok miod@, millert@
* const static -> static const; since it's deprecated per C99. ok millert@martynas2009-04-057-24/+24
|
* add C99-conformant nan, nanf, nanl for vax. always return zero,martynas2009-03-282-2/+31
| | | | | since its fp does not have distinguished values for qnans. tested by naddy@; fixes libnova. ok theo
* Let this compile with gcc 2.miod2008-12-221-4/+4
|
* spacemartynas2008-12-126-15/+14
|
* document and mlink long double functions. ok jmc@martynas2008-12-1215-61/+196
|
* remove an unneccessary addition to SEE ALSO: all the informationjmc2008-12-111-14/+2
| | | | | | is already there; ok martynas
* use sys/cdefs.h; pointed out by theomartynas2008-12-1031-47/+47
|
* pass CPPFLAGS+= -D__STDC__ for vax, to get the right definitionsmartynas2008-12-091-1/+2
| | | | from asm.h. discussed w/ millert@
* alias fabsl to fabs on these archsmartynas2008-12-096-33/+15
|
* - 80-bit and quad precision trigonometric and other mostmartynas2008-12-0983-304/+4004
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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@
* float math functions: copysignf and logbf. ok millert@martynas2008-11-201-1/+35
|
* - noieee_src: adapt complex versions of the functions it alreadymartynas2008-10-0729-229/+1794
| | | | | supports (which is all, except the float ones) ok millert@
* remove d_cbrt, dcbrt, d_sqrt. ok millert@martynas2008-09-162-16/+7
|
* typo: is -> if. ok millert@martynas2008-09-162-2/+2
|
* gc unused files, the functions are in libc. ok millert@martynas2008-09-165-126/+2
|
* remove z_abs. ok millert@martynas2008-09-132-16/+2
|
* since these got no ieee-specific code anymore, add fmin, fmax, fdim,martynas2008-09-116-2/+235
| | | | fminf, fmaxf, fdimf, fdiml for VAX. looks good to millert@
* - make much more readable: don't reimplement isnan, signbit eachmartynas2008-09-114-56/+32
| | | | | time we need them ok millert@
* sigh, gamma got lostmartynas2008-09-095-2/+124
|
* - replace dtoa w/ David's gdtoa, version 2008-03-15martynas2008-09-07193-3317/+3616
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* revertmartynas2008-08-081-2/+2
|
* make _digittoint staticmartynas2008-08-081-2/+2
|
* various markup/grammar fixes for previous, and a missing MLINKjmc2008-07-304-20/+17
| | | | for remquof.3;
* add descriptions for fpclassify, isfinite, isnormal, nan, remquo,martynas2008-07-291-3/+8
| | | | signbit
* - add man pages for nan and remainder, from freebsdmartynas2008-07-294-65/+257
| | | | | | | | - 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
* describe exp2, exp2f and mlink themmartynas2008-07-292-5/+24
|
* remove finite from ieee.3, and unmlink from makefilemartynas2008-07-292-36/+5
|
* - remove isinff, isnanf. this has been moved to libcmartynas2008-07-2413-125/+953
| | | | | | | | | | | - 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@
* remez -> Remes here, too. for consistencymartynas2008-07-224-6/+6
|
* NetBSD's C library supplies these functions -> OpenBSD's C librarymartynas2008-07-211-2/+2
| | | | supplies these functions. in comments
* rename lround.c lroundf.c llround.c llroundf.c to s_lround.cmartynas2008-07-215-8/+8
| | | | | s_lroundf.c s_llround.c s_llroundf.c, for naming consistency looks fine to millert@
* Reme algorithm -> Remes algorithm. in commentsmartynas2008-07-204-4/+4
|