branch cut fixup for atanh(bfloat(x))



I believe the continuity requirements given in the various CL standards 
for 
the inverse trig functions are too complicated for symbolic computing. For
floating point evaluation, I propose that we define the inverse trig 
functions by
their   logarc forms (using log(-1)  = i %pi).  As far as I know, this is 
what Maxima has 
always done. Presumably,  all simplifications in Maxima are consistent 
with this choice.

 Proposed:

(1) For double floating point evaluation, we write functions 
maxima-branch-atanh, and
etc .  For an input that is on a branch cut, these functions would return 
a value that is
consistent  with the logarc form of the function. They should, however, 
use a numerically 
friendly version of the logarc form.   For inputs off the branches, just 
use the cl functions. 
All lisps would use this scheme. A Lisp that gives bad values off a branch
cuts is just plain unworthy.  Maybe this is what Robert suggested the 
other day.

(2) I'm not so familiar with big floats, but I think basically the same 
scheme should be
used: maxima-branch-big-atanh and etc.  The CL compliant atanh Ray wrote 
should
be restored --- that way Ray's  atanh function  and the cl:atanh function 
would
agree everywhere for compliant. Lisps.  The functions maxima-branch-atanh 
and maxima-branch-big-atanh  would mostly be identical.

Barton