branch cut fixup for atanh(bfloat(x))



>>>>> "Robert" == Robert Dodier <robert.dodier at gmail.com> writes:

    Robert> Barton,
    >> (4) sbcl, clispm and cmucl users are going to be
    >> disappointed when they discover that atanh evaluates
    >> using (log(1 + x) - log(1 - x)) / 2;

    Robert> We can easily fix this by punting to cl:atanh for any input
    Robert> not on a branch cut.

f(x) := (log(1+x)-log(1-x))/2$
realpart(f(1d5));
1.0000000000509601e-5
:lisp (realpart (cl:atanh 1d5))
1.0000000000333332e-5

Assuming I did this right f(x) should be about log(1+2/(x-1))/2 for
large x.  This produces an answer similar to Lisp's answer.

Close, but we should do better than this.

Ray