Thanks for the quick response. The two sides of the equality are
definately different. Here's what I'm seeing
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
pi - log(exp(pi*1i)) / 1i
Mod(pi - log(exp(pi*1i)) / 1i)
Mod(pi - log(exp(pi*1i)) / 1i) < .Machine$double.eps
[1] FALSE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
I get the same thing from R 1.6.2, which I compiled about six months
ago. Is there anything I can/should do to fix this?
Not really. It seems that your platform just has slightly less
accurate complex log/exp routines than the most common ones (Linux and
Sparc/Solaris both give exact zero). Probably the check is simply
overly stringent.
You might want to change the check to say ... < 3*.Machine$double.eps
or so and rerun, to check whether the rest of the checks pass.