float(%e^%e)



>>>>> "Raymond" == Raymond Toy <toy@rtp.ericsson.se> writes:

    Raymond> I noticed that bfloat of sin(2)^%pi seems to hang too.  It seems to be
    Raymond> a problem with computing log(sin(2)).  In fact, it seems that log has
    Raymond> problems whenever the arg is less than 1: log(.9b0), log(.5b0),
    Raymond> log(.1b0) all seem to take way too long.

I isolated the problem a bit further.  FPLOG computes the log using
the series expansion (why isn't this documented!?!) 

log(1+x) = 2 * sum 1/(2*n+1)*(x/(2+x))^(2*n+1), n = 0, 1, 2, ...

For the problematic cases, the partial sum is negative and the terms
being added are also negative.  For some reason, even when the term is
orders of magnitude smaller than the partial sum, the partial sum
decreases by a bit or two.  Thus, the series never terminates because
the termination condition is if the previous sum is exactly equal to
the current sum.

A bug in FPPLUS perhaps?  However, the code for float.lisp hasn't
changed between 5.5 and 5.9rc1, and this isn't a problem with 5.5.

Ugh.

Ray