Date: Tue, 14 Aug 2012 10:52:57 -0700 From: Steve Kargl <sgk@troutmask.apl.washington.edu> To: Stephen Montgomery-Smith <stephen@missouri.edu> Cc: freebsd-numerics@freebsd.org Subject: Re: Status of expl logl Message-ID: <20120814175257.GA69865@troutmask.apl.washington.edu> In-Reply-To: <502A8CCC.5080606@missouri.edu> References: <502A8CCC.5080606@missouri.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 14, 2012 at 12:37:16PM -0500, Stephen Montgomery-Smith wrote:
> Are people working on expl, logl and log1pl?
>
Yes. I have expl and expm1l written. Need to fix a few issues
that Bruce pointed out, and need to write an ld128/expm1l.
Bruce has multiple versions of logl and log1pl. I have a copy
of one of his ld80/logl, which I've been testing/using for a
a few years.
> I was trying to brainstorm ideas. If one had an expl, one could create
> a logl as follows:
>
> long double logl(long double x)
> {
> long double y;
>
> y = log(x);
> y -= 1 - x*expl(-y);
> }
>
> Of course you would need prechecks to make sure log(x) doesn't overflow,
> etc.
>
> But my thinking is this. Use log(x) as a starting value for Newton's
> Method. Since Newton's Method roughly doubles the number digits of
> precision, only one iteration is needed.
>
> It doesn't work so well if 1/e < x < e.
>
> Anyway, just throwing out an idea.
>
It is much easier to read Tang's papers, and implement his
algorithms. Then, you send the code to Bruce and watch
the optimization machine churn over the code. :-)
PTP Tang, "Table-Driven Implementation of the Expml Function In IEEE
Floating-Point Arithmetic," ACM Trans. Math. Soft., 18, 1992,
211-222.
PTP Tang, "Table-Driven Implementation of the Exponential Function
in IEEE Floating-Point Arithmetic," ACM Trans. Math. Soft., 15, 1989,
144-157.
PTP Tang, "Table-Driven Implementation of the Logarithm Function in IEEE
Floating-Point Arithmetic," ACM Trans. Math. Soft., 16, 1990, 378-400.
--
Steve
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120814175257.GA69865>
