23

私のプログラムは、関数で CPU 時間の 90% を費やしていstd::pow(double,int)ます。ここでは精度は主な関心事ではないので、より速い代替手段があるかどうか疑問に思っていました. 私がしようと思っていたことの1つは、floatにキャストし、操作を実行してからdoubleに戻すことです(これはまだ試していません)。私は、これがパフォーマンスを改善する移植可能な方法ではないことを懸念しています (とにかく、ほとんどの CPU は本質的に double で動作しませんか?)

乾杯

4

4 に答える 4

12

何をする必要があるかによって、ログ ドメインでの操作が機能する場合があります。つまり、すべての値を対数に置き換えます。掛け算は足し算、割り算は引き算、べき乗は掛け算になります。しかし現在、足し算と引き算はコストが高く、エラーが発生しやすい操作になっています。

于 2013-05-28T01:59:06.283 に答える