Date: Thu, 16 Aug 2012 01:39:48 +1000 (EST) From: Bruce Evans <brde@optusnet.com.au> To: Peter Jeremy <peter@rulingia.com> Cc: freebsd-numerics@freebsd.org Subject: Re: Status of expl logl Message-ID: <20120816012258.U2233@besplex.bde.org> In-Reply-To: <20120814235832.GC33399@server.rulingia.com> References: <502A8CCC.5080606@missouri.edu> <20120814175257.GA69865@troutmask.apl.washington.edu> <20120814183518.GA70092@troutmask.apl.washington.edu> <502AA971.4010403@missouri.edu> <20120814195659.GA70571@troutmask.apl.washington.edu> <20120815070807.B3431@besplex.bde.org> <20120814235832.GC33399@server.rulingia.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 15 Aug 2012, Peter Jeremy wrote: > On 2012-Aug-15 08:15:52 +1000, Bruce Evans <brde@optusnet.com.au> wrote: >> I hardly looked at e_pow.c before. It is apparently half about repeating >> e_log.c and e_exp.c, to get at their extra internal precision. > > I expect cpow() will similarly have to copy slabs of code from e_pow.c > to avoid losing precision or domain. Is it worth pulling some of this > "common" code out so that it can be shared amongst all the different > functions that need it? We already have kernels for exp and log, but it is difficult to find the right interfaces and internals, and these don't have them. There are also __exp__D() and __log__D(). My s_log*.c have yet another interface. With heavyweight inlining and optimization, it works OK to return internals in a big struct, with flags saying what was returned. However, the compiler never seems to do quite as well as manual inlining. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120816012258.U2233>