Test suite failures with cvs version?



Raymond Toy wrote:
> If you haven't figure it out already, the complex term comes from
> expintegral_ei(-1/2).  The other parts in %o36 actually come out to
> 1/4/sqrt(%e), both symbolically and numerically.
> 
> The issue is the expression
> 
> (- (* 0.5 (- (log z) (log (/ 1 z)))) (log (- z)))
> 
> in expintegral-ei.
> 
> If z is -0.5, this is 0.  If z is #c(-0.5 0), it is #c(0 3.14159).
> 
> I'll have to think some more about which is correct....

Here's the issue.  With cmucl, I get:

(log (/ -0.5)) -> #C(0.6931471805599453 3.141592653589793)
(log (/ #c(-0.5 0)) -> #C(0.6931471805599453 -3.141592653589793)

This happens because (/ #c(-0.5 0)) -> #c(-2.0 -0.0).  Hence, it is
below the negative axis and gets -pi*%i.

I'm guessing, but I think sbcl would have the same issue.  I think clisp
doesn't really deal with signed zeroes.  Ecl currently doesn't, but I
think it tries to in the CVS version.

Ray