• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:最速化するにはどうしたらいいでしょうか?)

pow関数を使わずに最速化する方法

このQ&Aのポイント
  • pow関数を使用せずに、プログラムの実行速度を向上させる方法を教えてください。
  • このプログラムは、pow関数を使用していて、実行速度が遅いです。pow関数を使わずに、もっと速く実行する方法を教えてください。
  • pow関数を使わずに、このプログラムを最速化する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

使う値が決まっているのだから、先に計算して変数に入れておく。 > #include <time.h> double pow_2_53 ; double pow_2_1022 ; double pow_2_1074 ; /* とでもしておいて */ > double abssucc(double x){ return x / (1 - pow_2_53); /* と使う */ > int main(){ pow_2_53 = pow(2,-53); pow_2_1022 = pow(2,-1022); pow_2_1074 = pow(2,-1074); /*とmainの最初の方で代入 */ ....って、2の-1074って、doubleの範囲外にならないですか? doubleは64ビットでIEEE754準拠だとアンダーフローになると思うのですが。

arsenal_4
質問者

お礼

ありがとうございます!これで試してみます。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

あっと、見落してた。質問には直接関係ないけど > abs(x) このプログラムがC言語なら、int abs(int) です。 doubleに使うならfabsです。

arsenal_4
質問者

お礼

そうなんですか。無知ですみません><直してみます!

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

nextafter とか nexttoward は?

arsenal_4
質問者

お礼

そうですね!それも一つの方法だと思うので、試してみます。

関連するQ&A