#
336767 |
|
27-Jul-2018 |
dim |
MFC r327400 (by eadler):
cacos(3): correct spelling of 'I'
In some cases we had 'i' instead of 'I'.
PR: 195517 Submitted by: stephen
MFC r329259 (by eadler):
msun: signed overflow in atan2
As a component of atan2(y, x), the case of x == 1.0 is farmed out to atan(y). The current implementation of this comparison is vulnerable to signed integer underflow (that is, undefined behavior), and it's performed in a somewhat more complicated way than it need be. Change it to not be quite so cute, rather directly comparing the high/low bits of x to the specific IEEE-754 bit pattern that encodes 1.0.
Note that while there are three different e_atan* files in the relevant directory, only this one needs fixing. e_atan2f.c already compares against the full bit pattern encoding 1.0f, while e_atan2l.cuses bitwise-ands/ors/nots and so doesn't require a change.
Closes #130
Submitted by: Jeff Walden (@jswalden github PR #130) Reviewed by: bde
MFC r334721 (by cem):
clog.3, complex.3: Fix typos and igor style issues
PR: 228783 Reported by: Karsten <freebsd-bugzilla AT kkoenig.net>
MFC r336299 (by mmacy):
msun: add ld80/ld128 powl, cpow, cpowf, cpowl from openbsd
This corresponds to the latest status (hasn't changed in 9+ years) from openbsd of ld80/ld128 powl, and source cpowf, cpow, cpowl (the complex power functions for float complex, double complex, and long double complex) which are required for C99 compliance and were missing from FreeBSD. Also required for some numerical codes using complex numbered Hamiltonians.
Thanks to jhb for tracking down the issue with making weak_reference compile on powerpc.
When asked to review, bde said "I don't like it" - but provided no actionable feedback or superior implementations.
Discussed with: jhb Submitted by: jmd Differential Revision: https://reviews.freebsd.org/D15919
MFC r336563:
Recommit r336497: Fix powl, cpow, cpowf, and cpowl imports from OpenBSD
This is a follow-up to r336299.
* lib/msun/Makefile: . Remove polevll.c
* lib/msun/ld80/e_powl.c: . Copy contents of polevll.c to here. This is the only consumer of these functions. Make functions 'static inline'. . Make reducl a 'static inline' function.
* lib/msun/man/exp.3: . Remove BUGS section that no longer applies.
* lib/msun/src/math_private.h: . Remove prototypes of __p1evll() and __polevll()
* lib/msun/src/s_cpow.c: * lib/msun/src/s_cpowf.c: * lib/msun/src/s_cpowl.c . Include math_private.h. . Use the CMPLX macro from either C99 or math_private.h (depends on compiler support) instead of the problematic use of complex I.
Submitted by: Steve Kargl <sgk@troutmask.apl.washington.edu> PR: 229876
|
#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
268593 |
|
13-Jul-2014 |
kargl |
* Makefile: . Add s_erfl.c to building libm. . Add MLINKS for erfl.3 and erfcl.3.
* Symbol.map: . Move erfl and erfcl to their proper location.
* ld128/s_erfl.c: . Implementations of erfl and erfcl in the IEEE 754 128-bit format.
* ld80/s_erfl.c: . Implementations of erfl and erfcl in the Intel 80-bit format.
* man/erf.3: . Document the new functions. . While here, remove an incomplete sentence.
* src/imprecise.c: . Remove the stupidity of mapping erfl and erfcl to erf and erfc.
* src/math.h: . Move the declarations of erfl and erfcl to their proper place.
* src/s_erf.c: . For architectures where double and long double are the same floating point format, use weak references to map erfl to erf and ercl to erfc.
Reviewed by: bde (many earlier versions)
|
#
260067 |
|
29-Dec-2013 |
kargl |
* Makefile: . Hook coshl, sinhl, and tanhl into libm. . Create symbolic links for corresponding manpages. . While here remove a nearby extraneous space.
* Symbol.map: * src/math.h: . Move coshl, sinhl, and tanhl to their proper locations.
* man/cosh.3: * man/sinh.3: * man/tanh.3: . Update the manpages.
* src/e_cosh.c: * src/e_sinh.c: * src/s_tanh.c: . Add weak reference for LBDL_MANT_DIG==53 targets.
* src/imprecise.c: . Remove the coshl, sinhl, and tanhl kludge.
* src/e_coshl.c: . ld80 and ld128 implementation of coshl().
* src/e_sinhl.c: . ld80 and ld128 implementation of sinhl().
* src/s_tanhl.c: . ld80 and ld128 implementation of tanhl().
Obtained from: bde (mostly), das and kargl
|
#
255294 |
|
06-Sep-2013 |
theraven |
Add stub implementations of the missing C++11 math functions. These are weak and so can be replaced by other versions in applications that choose to do so, and will give a linker warning when used so that applications that rely on the extra precision can avoid them.
Note that since the C/C++ specs only guarantee that long double has precision equal to double, code that actually relies on these functions having greater precision is unportable at best and broken at worst.
|