>>>>> "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