# [Maxima] branch cut strangeness

Raymond Toy raymond.toy at ericsson.com
Wed Feb 22 10:57:25 CST 2006

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

Robert> Hello,
Robert> So far as I can tell, failed tests in rtest_trig appear to be
Robert> due entirely to different choices of branch cuts.

Robert> Tested versions: Clisp 2.34 compiled w/ gcc 3.3.2
Robert> GCL 2.6.7, SBCL 0.9.9, CMUCL 19a

Try cmucl 19c from common-lisp.net.

Robert> (1) acos and asin: CLHS says
Robert> (http://www.lispworks.com/documentation/HyperSpec/Body/f_asin_.htm)
Robert> that the branch cut on [1, \infty) is continuous w/ 4th quadrant
Robert> and on (-\infty, -1] is continuous w/ 2nd quadrant.

Robert> Clisp and GCL: conform to spec
Robert> SBCL and CMUCL: continuous w/ 1st and 2nd quadrants respectively

CMUCL should have the correct branch cuts.

Robert> (2) atanh: CLHS says
Robert> (http://www.lispworks.com/documentation/HyperSpec/Body/f_sinh_.htm)
Robert> that the branch cut on [1, \infty) is continuous w/  1st quadrant
Robert> and on (-\infty, -1] is continuous w/ 3rd quadrant.

Robert> Clisp and GCL: continuous w/ 4th and 2nd quadrants respectively
Robert> SBCL CMUCL: continuous w/ 1st and 2nd respectively

CMUCL should have the correct branch cuts.

Robert> I don't know if this accounts for all the observed failures in rtest_trig.
Robert> It would be a good idea to review branch cuts for all math functions
Robert> but I didn't do that.

Also note that the bigfloat version should be implementing the correct
branch cuts.

I do not know how to reconcile all of this with rectform.

And not all lisps have signed (floating-point) zeroes, so I'm not sure
how all of this fits together.

Ray