0

FORTRAN で密行列を新しい列で展開する最も効率的な方法は何ですか?

Tはm×nの密行列であるとします

m × n+1 にしたいと思います。私が考えることができる1つの戦略:各ステップで再割り当てして最後の列を割り当てるか、前にスペースを割り当ててそれが十分かどうかを確認し、そうでない場合は再割り当てのようなものを行うなど、いくつかのより良い方法がありますか? 何か案は?

4

2 に答える 2

2

ある意味で非常に大きくないと仮定するmn、マトリックスがメモリに収まり、時間の経過とともにパフォーマンスが向上するため、大きなマトリックスを割り当てて実際のサイズを個別に保存します。これは、たとえば、BLAS ライブラリが「リーディング ディメンション」として使用するものです。次に、列を追加する必要がある場合は、実際のサイズがまだ最大サイズよりも小さいかどうかを確認し、必要に応じてメモリを再割り当てします。

于 2011-09-19T15:18:13.927 に答える
1

Fortran 2003 コンパイラをお持ちの場合は、move_alloc を利用できます: http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/fortran/lin/compiler_f/lref_for/source_files/rfmvallo. htm

于 2011-09-19T10:35:44.077 に答える