summaryrefslogtreecommitdiffstats
path: root/lib/libm/shlib_version
AgeCommit message (Collapse)AuthorFilesLines
2018-03-10Implement sicos(3), sincosf(3) and sincosl(3). These functions are commonkettenis1-1/+1
extensions and modern compilers (such as clang) will use them to optimize separate calculations of sine and cosine. ok tom@, patrick@, deraadt@, jmc@
2016-09-12Reduce libm's exports and make internal calls go direct.guenther1-1/+1
All dependencies on libc are now via reserved/standardized names. ok kettenis@ millert@ deraadt@
2013-08-13Switch time_t, ino_t, clock_t, and struct kevent's ident and dataguenther1-1/+1
members to 64bit types. Assign new syscall numbers for (almost all) the syscalls that involve the affected types, including anything with time_t, timeval, itimerval, timespec, rusage, dirent, stat, or kevent arguments. Add a d_off member to struct dirent and replace getdirentries() with getdents(), thus immensely simplifying and accelerating telldir/seekdir. Build perl with -DBIG_TIME. Bump the major on every single base library: the compat bits included here are only good enough to make the transition; the T32 compat option will be burned as soon as we've reached the new world are are happy with the snapshots for all architectures. DANGER: ABI incompatibility. Updating to this kernel requires extra work or you won't be able to login: install a snapshot instead. Much assistance in fixing userland issues from deraadt@ and tedu@ and build assistance from todd@ and otto@
2013-03-28Switch libc and libm to use strong aliases rather than weak aliasesmartynas1-2/+2
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@.
2012-08-23Aliases for extended precision were missed on a few functions on hppa.martynas1-1/+1
Reported by Brad, thanks!
2011-07-08Revert (leaving the complex math part alone). Some stuff is dependingmartynas1-1/+1
on this historical behavior; so we're stuck in this stupid situation. No cookie for me.
2011-07-08Move fabs(3), frexp(3), and modf(3) to libm--nothing has been usingmartynas1-2/+2
them in libc for a very long time. OK guenther@.
2011-07-06Finalize work on the math library. It's time to do this monstermartynas1-1/+1
commit, and deal with problems (if any) in tree. Note that this adds the following functions. Ports with hacks might need adjustments. nexttoward(3), fma(3), nexttowardf(3), fmaf(3), acoshl(3), asinhl(3), atanhl(3), coshl(3), sinhl(3), tanhl(3), expl(3), expm1l(3), logl(3), log10l(3), log1pl(3), log2l(3), modfl(3), cbrtl(3), hypotl(3), powl(3), erfl(3), erfcl(3), lgammal(3), tgammal(3), ceill(3), floorl(3), lrintl(3), llrintl(3), roundl(3), lroundl(3), llroundl(3), truncl(3), fmodl(3), remainderl(3), remquol(3), nextafterl(3), nexttowardl(3), fmal(3). With this commit, our library implements all functionality required by C99. Documentation bits will follow.
2011-04-28- enable fenvmartynas1-1/+1
- add nearbyint, nearbyintf and nearbyintl implemented using fenv
2009-10-26Add man pages for the fdim/fmin/fmax family of functions and make sure fdimlkettenis1-1/+1
is defined on all architectures. ok jmc@ (man pages) and martynas@
2009-07-25int is big enough to fully represent exponents of all supported fpmartynas1-1/+1
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@
2008-12-09- 80-bit and quad precision trigonometric and other mostmartynas1-1/+1
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@
2008-09-07- replace dtoa w/ David's gdtoa, version 2008-03-15martynas1-1/+1
- 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
2008-07-24- remove isinff, isnanf. this has been moved to libcmartynas1-2/+2
- 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@
2008-06-11- on non-ieee, rename gamma to tgamma, the 'true' gammamartynas1-1/+1
- 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@
2006-07-12add some more C99 functions: round(3) and roundf(3).brad1-1/+1
By Steven G. Kargl <kargl at troutmask dot apl dot washington.edu> From FreeBSD
2006-03-18add some more C99 functions: trunc(3) and truncf(3).brad1-1/+1
From FreeBSD ok deraadt@ millert@ otto@ jmc@
2005-11-17Introduce a few c99 functions: {l,ll}{rint,round}{,f}. From NetBSD viaotto1-1/+1
jason@. Man page fixes by jmc@, prodding by jsg@. ok mickey@
2004-07-13errno changes, lib major version bumps, and general flag daymarc1-1/+1
To build you must: cd /usr/src && make obj && make includes cd lib/libc && make depend && make && NOMAN=1 sudo make install cd /usr/src && make build
2002-12-03Crank all library major numbers. Needed due to the fact that wemillert1-2/+2
now build libraries with propolice enabled. Without this, existing binaries (such as ports/packages) that link with any system library other than libc will fail with an undefined symbol of "___guard" (__guard on ELF). Pointed out by markus@ and discussed with deraadt@
1995-10-18initial import of NetBSD treederaadt1-0/+2