Date: Wed, 27 Feb 2019 01:56:55 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 235413] [LIBM] optizimation for cexp and cexpf Message-ID: <bug-235413-227-sVnu1e1JjM@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-235413-227@https.bugs.freebsd.org/bugzilla/> References: <bug-235413-227@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235413 Steve Kargl <kargl@FreeBSD.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #201620|0 |1 is obsolete| | --- Comment #1 from Steve Kargl <kargl@FreeBSD.org> --- Created attachment 202398 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=202398&action=edit New patch with cexpl implementation included The new patch cexpl.diff supercedes the old path. It includes the changes in the old patch as well as implementations for long double complex cexpl(). This patch depends on https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236063 A suitable commit messages is * lib/msun/src/math_private.h: . Add an EXTRACT_LDBL80_WORDS2() macro to get access to the high and low word of a 64-bit significand as well as the expsign. . Add prototype for __ldexp_expl(). . Add prototype for __ldexp_cexpl(). * lib/msun/src/s_cexp.c: . A float.h to get LDBL_MANT_DIG. . Add c and s to declaration, and sort. . Move x = 0 case to be the first case tested. This is in preparation for fixing constanting folding in GCC. . Use sincos() instead of a call to sin() and to cos(). . A week_refrence for LDBL_MANT_DIG == 53. * lib/msun/src/s_cexpf.c: . Add c and s to declaration, and sort. . Move x = 0 case to be the first case tested. This is in preparation for fixing constanting folding in GCC. . Use sincosf() instead of a call to sinf() and to cosf(). * lib/msun/src/k_exp.c: . Add c and s to declaration, and sort. . Use sincos() instead of a call to sin() and to cos(). * lib/msun/src/k_expf.c . Add c and s to declaration, and sort. . Use sincosf() instead of a call to sinf() and to cosf(). * lib/msun/ld128/k_cexpl.c: . Copy src/k_exp.c to here. #if 0 ... #endif all code and have functions return NaN. These functions are currently unused, and await someone who cares. . Issue a compile-time warning about the sloppiness. * lib/msun/ld128/s_cexpl.c: . Copy src/s_cexp.c to here. . Convert "double complex" to "long double complex" without use of bit-twiddling. . Add compile-time warning about the sloppiness. . Add run-time warning about the sloppiness. * lib/msun/ld80/k_cexpl.c: . Copy src/k_exp.c to here. . Convert "double complex" to "long double complex". Use bit-twiddling. * lib/msun/ld80/s_cexpl.c: . Copy src/s_cexp.c to here. . Convert "double complex" to "long double complex". Use bit-twiddling where bits are grabbed with new EXTRACT_LDBL80_WORDS2() macro. * lib/msun/man/cexp.3: . Document the addtion of cexpl. * include/complex.h: . Add prototype for cexpl(). -- You are receiving this mail because: You are the assignee for the bug.help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-235413-227-sVnu1e1JjM>
