【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?

こんにちは。
現在、Fortran 90でプログラムを作成しています。
その中で、整数の倍精度実数への型変換についての疑問がわきましたので、質問させていただきます。

以下の2つのプログラムで、計算がより速く、より精度よくできるのはAとBどちらなのでしょうか。
実際は下記のプログラムが、ループの中に入っているので少しでも計算時間を短くしたいのです。

よろしくお願いいたします。


program A(毎回dxを足す)
-----------------------------
real(8) :: pi, dx
real(8), dimension(1000) :: x
integer i, j

pi=atan(1d0)*4d0
dx=pi/5000d0

x=0d0
j=1

do i=1, 1000
x(i)=x(j)+dx
j=i
write(*,*)x(i)
end do
-----------------------------

program B(毎回dx*ループ回数を計算する)
-----------------------------
real(8) :: pi, dx
real(8), dimension(1000) :: x
integer i, j

pi=atan(1d0)*4d0
dx=pi/5000d0

x=0d0

do i=1, 1000
x(i)=dx*dble(i)
write(*,*)x(i)
end do
-----------------------------

A 回答 (1件)

速度は難しいけど A の方が速そう.


精度は B の方が上.

dx が固定値なら B を選ぶね.
    • good
    • 0
この回答へのお礼

お礼が遅くなって申し訳ありません。
ありがとうございました。
助かりました。

結局精度を重視してBを選択しました。

お礼日時:2011/09/14 13:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報