Dieter Kaiser wrote:
> Hello Ray,
>
> Thank you very much for your work on the Exponential Integrals.
Thank you for doing the hard work of actually implementing these.
> You have posted:
>
>> This is probably why maxima compute log(-z) incorrectly. It does take the
>> phase term of -z modulo 2*%pi.
I see I made a mistake. It should say "doesn't take the phase term".
>
> I think the problem is more easy. With the default value for logexpand Maxima
> simplifies log(1/z) to -log(z) and we get 1/2*(log(z)-(log(1/z)) = 0 for all
> values. But we know that this is wrong for a negative real value.
I think maxima is doing what it's supposed to do, but the documentation
isn't clear if log(1/z) is supposed to be -log(z) if logexand is true.
Declaring z to be complex doesn't inhibit this transformation. Not sure
if it should or not.
But with logexpand:false, and z declared complex, we get
expand(rectform(1/2*(log(z)-log(1/z))-log(-z)));
-log(cabs(z))/2-log(1/cabs(z))/2-%i*%pi
Which isn't quite right. I think it's caused by
rectform(log(-z)) -> log(cabs(z)) + %i*(carg(z)+%pi).
This isn't the principal log.
Ray