branch cut strangeness



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

    Robert> On 2/22/06, Raymond Toy <raymond.toy at ericsson.com> wrote:
    >> Try cmucl 19c from common-lisp.net.

    Robert> If you have a working 19c, can you try it please?

I did already (well, for the 2006-02 snapshot).  Here are the answers
from your little test script.  Based on these, I think cmucl is
continuous with the correct quadrants for these functions.

#C(1.566432 1.5668098)
#C(1.5707964 -1.5667993)
#C(1.566432 -1.5668098)

#C(-1.566432 1.5668098)
#C(-1.5707964 1.5667993)
#C(-1.566432 -1.5668098)

#C(0.004364322 -1.5668098)
#C(0.0 1.5667993)
#C(0.004364322 1.5668098)

#C(3.1372283 -1.5668098)
#C(3.1415927 -1.5667993)
#C(3.1372283 1.5668098)

#C(0.42363986 1.5688916)
#C(0.42364892 1.5707964)
#C(0.42363986 -1.5688916)

#C(-0.42363986 1.5688916)
#C(-0.42364892 -1.5707964)
#C(-0.42363986 -1.5688916)

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

    Robert> I don't see what signed zero has to do with this problem.

I was thinking about how the bfloat code works without signed zeroes,
since they're written for IEEE FP with signed zeroes.  Signed zeroes
sometimes makes the choice of branch cuts easier because you have the
sign available.

Ray