0

補間を行うアプリケーションのプロファイリングを開始したばかりですが、呼び出しや相互の内部でlog linear何か奇妙なことに気づきました。動作は次のように再現できます。Math.logMath.exp

public class TestLogExp {
public static void main(String[] args) {
    Double thisdouble = 0d;
    thisdouble = Math.log(Math.exp(10));
    System.out.println(thisdouble);
    }
}

Math.logこれで、それがはっきりとわかり、Math.expこのmainメソッド内で呼び出されます。ただし、Math.expMath.log(の呼び出しにすぎませんStrictMath native statics)の両方にブレークポイントを設定すると、実行はで中断されMath.exp、では中断されませんMath.log

java今、静的メソッドからの呼び出し内の呼び出しをデバッグしない可能性があると思いましたが、呼び出すとMath.exp(Math.log(10))(その逆)、同じ動作が観察され、ログではなくexpでのみ停止します...

これを再現できる人はいますか?なぜこうなった?

編集: Math.log関数をまったくデバッグしていないようです。thisdouble = Math.log(Math.exp(10));行をに置き換えthisdouble = Math.log(10);ますが、Math.classにブレークポイントがありますが、デバッグモードでは停止しません。

4

1 に答える 1

0

It does go into both the methods if you try it this way:

    Double thisdouble = 0d;
    double temp = Math.exp(10);
    thisdouble = Math.log(temp);
    System.out.println(thisdouble);

I am using Netbeans v7.3

于 2013-02-22T08:36:01.090 に答える