FORTRAN III
■ このスレッドは過去ログ倉庫に格納されています
0831デフォルトの名無しさん
2006/04/09(日) 21:59:16nを数千万と想定
do i = 1, n
j = mmm(i)
if( j.lt.0 ) then
vc = a*vn
else
vc = vn
endif
(中略)
enddo
というような処理があるのですがnが大きいため、if文を省けないか検討しています。
要約すると、ループ内で条件にあうものはaを乗算し、あわないものは何もかけない、という処理です。
何かよい方法はないでしょうか?
real*8 b(n)を用意して条件にあうときはb(i)=a、あわないときはb(i)=1.0d0という配列をあらかじめ準備して、
vc=b(i)*vnとすればif文は省けるのですが
これだけのために大量のメモリを使いたくありません。
整数1byte*nの参照配列を作る程度で何かいい方法はないでしょうか?無論メモリを使わない方法があれば、そのほうがよりうれしいです。
読みにくくてすいません。
■ このスレッドは過去ログ倉庫に格納されています