summaryrefslogtreecommitdiffstats
path: root/lib/libm/noieee_src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove the unused leftovers of the 4.4BSD libm, which was only usednaddy2018-07-1833-6183/+0
| | | | | | | on non-IEEE platforms. Since the VAX port was discontinued, all our remaining architectures use IEEE floating point, as will any future ones. ok millert@ tb@
* Reduce libm's exports and make internal calls go direct.guenther2016-09-1212-48/+61
| | | | | | All dependencies on libc are now via reserved/standardized names. ok kettenis@ millert@ deraadt@
* Per fpclassify(3): isinff(), isnanf(), finite(), and finitef() are deprecatedguenther2016-09-1219-68/+68
| | | | | | in favor of isinf(), isnan(), and isfinite(). ok tb@ martynas@
* simple inaccurate implementation of lrint* functions on vax, just soespie2013-08-071-0/+56
| | | | | we have them. Compiles on vax. okay martynas@
* use some generic code on vax, to do round/roundf/scalbln...espie2013-07-152-78/+0
| | | | | | | | suggested by martynas@ okay miod@ (just rearranges the !vax makefile, no compile change there)
* use atan2f to add atanfespie2013-07-151-1/+8
| | | | okay martynas@
* bring reference C code that's not compiled in synch with asm codeespie2013-07-156-6/+50
| | | | okay martynas@
* ... and gain rintf by using the same technique, along with aliases forespie2013-07-051-1/+24
| | | | | | ceill/floorl okay martynas@, checked for build by miod@ as well. (note that these don't require bumps, as vax has no shared libraries...)
* implement floorf and ceilf: same technique as floor and ceil, just withespie2013-07-051-2/+34
| | | | | | | appropriate constant to the mantissa size (and document what L is along the way). okay martynas@, tested by miod@ for results
* reorganize NOIEEE_SRCS so that files not compiled on vax becauseespie2013-07-032-68/+0
| | | | | | | | of assembly version are obvious. Move cproj/cprojf to the PURE club, as the asm support code provides copysignf okay martynas@
* with DBL vs LDBL fixed, tedu some source in noieee which is actually theespie2013-07-0329-1756/+0
| | | | | | same as code in generic src. introduce PURE_SRCS for completely MI math code. okau martynas@
* Switch libc and libm to use strong aliases rather than weak aliasesmartynas2013-03-289-23/+23
| | | | | | | | | | | where appropriate. Among other things makes the symbols consistent across all architectures (notably where ldbl mantissa is 53 bits). While at it, kill unused LINTLIBRARY/PROTOLIB1 cruft which was there to trick lint into recording the right prototypes for aliased functions. Most of the work done at the awesome n2k13 hackathon. Agreed by kettenis@, guenther@, matthew@.
* Get rid of the very ugly lint workarounds: LINTLIBRARY, PROTOLIB,martynas2013-01-1310-114/+11
| | | | and a few empty files for lint to chew on.
* Remove excessive sys/cdefs.h inclusionderaadt2012-12-0511-22/+12
| | | | ok guenther millert kettenis
* Revert (leaving the complex math part alone). Some stuff is dependingmartynas2011-07-081-69/+0
| | | | | on this historical behavior; so we're stuck in this stupid situation. No cookie for me.
* Move fabs(3), frexp(3), and modf(3) to libm--nothing has been usingmartynas2011-07-081-0/+69
| | | | them in libc for a very long time. OK guenther@.
* Trick lint into recording the right prototypes in the llib-lm.lnmartynas2011-05-3010-36/+113
| | | | | | | database on platforms without extended-precision floating-point support. Seems like a reasonable approach to millert@.
* Fix the cproj family to not return garbage on finite arguments.guenther2010-07-192-2/+6
| | | | ok millert@
* rcsid[] and sccsid[] and copyright[] are essentially unmaintained (andderaadt2009-10-2730-150/+30
| | | | | | | unmaintainable). these days, people use source. these id's do not provide any benefit, and do hurt the small install media (the 33,000 line diff is essentially mechanical) ok with the idea millert, ok dms
* int is big enough to fully represent exponents of all supported fpmartynas2009-07-251-0/+31
| | | | | | | | 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@
* 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@
* fix hexadecimal constant that was wrong; and confused with ieee. ok miod@martynas2009-04-081-2/+2
|
* const static -> static const; since it's deprecated per C99. ok millert@martynas2009-04-056-13/+13
|
* add C99-conformant nan, nanf, nanl for vax. always return zero,martynas2009-03-281-0/+29
| | | | | since its fp does not have distinguished values for qnans. tested by naddy@; fixes libnova. ok theo
* use sys/cdefs.h; pointed out by theomartynas2008-12-1010-20/+20
|
* - 80-bit and quad precision trigonometric and other mostmartynas2008-12-0910-30/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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@
* - noieee_src: adapt complex versions of the functions it alreadymartynas2008-10-0727-215/+1778
| | | | | supports (which is all, except the float ones) ok millert@
* remove z_abs. ok millert@martynas2008-09-131-7/+1
|
* since these got no ieee-specific code anymore, add fmin, fmax, fdim,martynas2008-09-115-0/+232
| | | | fminf, fmaxf, fdimf, fdiml for VAX. looks good to millert@
* - remove isinff, isnanf. this has been moved to libcmartynas2008-07-241-25/+1
| | | | | | | | | | | - 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-222-4/+4
|
* fix cases, found by lint:martynas2008-07-184-15/+19
| | | | | | | | - 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@
* properly raise inexact; ok millert@martynas2008-07-175-22/+32
|
* some archaic 'n = a(b), c(d)' use that confused lintmartynas2008-07-163-15/+33
| | | | ok millert@
* - expressions such as x != x and x == x are prone to errors andmartynas2008-06-258-37/+37
| | | | | | | | | 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@
* cleaning up, no functional changesmartynas2008-06-2131-249/+179
| | | | | | | - no support for National 32000, removing ns32000/national ifdefs maze - remove tahoe defs - ansify looks fine to millert@; who also noticed rint removal
* fix some errors found by lint, e.g. declaration w/o types, makemartynas2008-06-164-21/+32
| | | | | zero const. also do the same fix as was found for ieee's trunc by lint; ok millert@. tested on VAX
* spacing, add rcs ids, no binary changemartynas2008-06-1227-243/+270
|
* some cleanup for noieee_src, as asked by millert@: remove fictionalmartynas2008-06-1223-13/+37
| | | | | includes, include math.h where needed and remove redundant declarations ok millert@
* - no need for ifdef dance (21), we have isnan, finite for vaxmartynas2008-06-1214-131/+48
| | | | | | - TEST_FMOD doesn't belong here, remove - remove ifdef _ANSI_SOURCE and assume it's default ok millert@
* - on non-ieee, rename gamma to tgamma, the 'true' gammamartynas2008-06-114-83/+123
| | | | | | | | | | | | | | | | - 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@
* drem{,f} are aliases for remainder{,f}, so:martynas2008-06-111-79/+86
| | | | | | | | | | - 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@
* add C99 round(), based on ieee_src, for noieee_src. tested on VAXmartynas2008-06-111-0/+47
| | | | ok millert@
* add __signbit/__signbitf/__signbitl; nothing uses this file, it's justjason2007-05-311-0/+24
| | | | for completeness.
* Remove the advertising clause in the UCB license which Berkeleymillert2003-06-0231-155/+31
| | | | rescinded 22 July 1999. Proofed by myself and Theo.
* scalb() in vax libm is in fact scalbn(), so change the symbol name.miod2002-10-119-34/+34
| | | | | | Only affects vax, which has no shared libraries, so no version change needed for libm. Someone with enough math skills ought to code a real scalb() on a rainy day...
* We live in an ANSI C world. Remove lots of gratuitous #ifdef __STDC__ cruft.millert2002-02-191-6/+2
|
* Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.millert2002-02-164-9/+9
|
* ^vax^__vax__hugh2000-10-1028-114/+114
|
* initial import of NetBSD treederaadt1995-10-1831-0/+6474