I would just remove the trancendental c implementation. It is not consistent
with the java one anyway on amd64:

You've got that backwards. The C implementation is actually the correct result as far as the spec goes and it's what is used by StrictMath.log. Math.log is allowed to produce less strict results but it's always correct to use the same implementation as StrictMath.log.



   http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6539464

It's been 2 years that this is has been open. I don't understand how come nobody else has hit this. My only guess is that people don't compare results
from successive runs.

This is actually a bug in hotspot. The interpreter is using the C implementation and compiled code is using the log instructions on x86 but the interpreter and compiler are required to use the same implementation so that Math.log is self consistent. The amd64 interpreter has the code to use the x86 instruction but some code in AbstractInterpreterGenerator::generate_method_entry keep it from getting used. Anyway, I've refiled this into hotspot and it should be fixed in an upcoming hotspot.

tom



christos

Reply via email to