7.63 Bug in evalc in Maple V.4 (21.2.97)

7.63.1 luca ciotti

I think I found a bug in MapleV.4(00f).



I get

a:=(I/2) (exp(I) Ei(1,I) - exp(-I) Ei(1,-I))


evalf(a) = 0.6214496240....

On the contrary,

evalf(evalc(a))= -1.0759... + I 2.643559

which is obviously wrong.

I suspect the bug is in the evalc() command.

In fact,


evalc(Ei(1,I))    = - Ci(1) + I (Si(1) - 1/2 Pi) 
evalc(Ei(1,-I))   = - Ci(1) - I (Si(1) - 1/2 Pi)


evalc(Ei(1,I))    = - Ci(1) + I (Si(1) - 1/2 Pi) 
evalc(Ei(1,-I))   = - Ci(1) - I (Si(1) + 3/2 Pi) 

The bug is removed with Maple V Release 5. (U. Klein)

7.63.2 Sjoerd W. Rienstra

Continuing on this theme of Lucca Ciotti (sorry to say it, but Maple is a goldmine if it comes down to errors in branch cuts of complex functions):

The integral of a real function like: log(sin(x)) is of course determined up to a constant. If the integral happens to be explicitly available, this constant may be appear to be complex, and I can understand that if one of the occurring functions is multivalued (and has branches, branch cuts, etc) this constant may jump from one value to another along the x-interval. (This is why it is always tricky to accept a result from int(f(x),x=a..b) straightaway.)

However, the imaginary part of the integral of log(sin(x)) is not piecewise constant on 0..Pi!

Between 0 and Pi/2 it is constant, but it decays linearly between Pi/2 and Pi. (Then along Pi..2 Pi it also grows linearly, but this is how it should, because sin(x)<0, and log(sin(x)) an imaginary constant.)

So there is something more fishy going on ....