Responding to a message from Jonathan that got caught in the Yahoo SPAM filter :-) :
I found this when running Jim White's example:
Arg1: 0.166666666666667 0.000000000000000 Arg2: -5.000000000000000 0.000000000000000 Result: 1.132467200411351 -0.653830243005915 Arg1: 0.166666666666667 0.000000000000000 Arg2: -5.000000000000000 0.000000000000000 Result: 1.132467200411351 0.653830243005915
The problem could be the 0.166666666666667, and not the -5.0, since it does not have an exact representation in binary.
I wrote the entire 64 bit address space out in hexidecimal for both real and imaginary parts of the argument, and they were the same, though the Log function returned different results. I guess we are looking in the wrong place. We should look in the parser code that multiplies numbers. Something about the series of multiples leaves something different that causes the subsequent log() function to return a different value. Tim