java.lang.Math.log substituído por chamada intrínseca, porque não java.lang.Math.exp ()?
Estou fazendo uma pergunta que tinha pouca atenção:
Por que esse código simples (simplesmente uma chamada paraMath.log()
):
Double thisdouble = Math.log(10);
Com um ponto de interrupção na linha 275 do Math.class do jdk1.7.0_11:
274 public static double log(double a) {
275 return StrictMath.log(a); // default impl. delegates to StrictMath
276 }
Não interrompe a execução no modo de depuração? Alguém pode tentar isso em sua própria máquina (estou usando o Eclipse)?
ChamandoMath.exp()
e depurando oMath.exp
(linha 254) a função funciona ...
EDITAR: A resposta para o acima é queMath.log
é substituído por uma chamada intrínseca pela VM do Hotspot para que o código na classe Math nunca seja alcançado. A questão que permanece agora é por queMath.exp
não é substituído por um intrínseco ... FWIW estou em um Core i5 M520 (Arrandale), mas eu seriamente duvido que esse processador tem suporte para log e não para exp ...