「Fixed-size Arrays in C」の編集履歴(バックアップ)一覧はこちら

Fixed-size Arrays in C」(2008/10/20 (月) 14:08:53) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

[[FFTWマニュアル]] - [[その他重要なこと>Other Important Topics]] - [[多次元配列のフォーマット>Multi-dimensional Array Format]] - [[C言語における固定配列>Fixed-size Arrays in C]] * C言語における固定配列 Fixed-size Arrays in C  C言語でコンパイル時にサイズが宣言されている多次元配列は、すでに列メジャーオーダーになっています。したがって、何も特別なことをする必要はありません。以下に例を示します、 { fftw_complex data[NX][NY][NZ]; fftw_plan plan; ・・・ plan = fftw_plan_dft_3d( NX, NY, NZ, &data[0][0][0], FFTW_FORWARD, FFTW_ESTIMATE ); ・・・ }  
[[FFTWマニュアル]] - [[その他重要なこと>Other Important Topics]] - [[多次元配列のフォーマット>Multi-dimensional Array Format]] - [[C言語における固定配列>Fixed-size Arrays in C]] * C言語における固定配列 Fixed-size Arrays in C  C言語でコンパイル時にサイズが宣言されている多次元配列は、すでに列メジャーオーダーになっています。したがって、何も特別なことをする必要はありません。以下に例を示します、 { fftw_complex data[NX][NY][NZ]; fftw_plan plan; ・・・ plan = fftw_plan_dft_3d( NX, NY, NZ, &data[0][0][0], FFTW_FORWARD, FFTW_ESTIMATE ); ・・・ }  これは、NXxNyxNzの入出力が同じである、インプレース変換のプランです。プランナーにわたす引数を、ゼロ番目の要素のアドレスを取得している方法に注意してください(型変換も使いました)。  しかし、ユーザーはこのように配列を宣言することで、以下の二つの理由でがっかりさせてしまうでしょう。  第1に、配列はスタックに確保されます(”自動”格納)。これはほとんどのOSで大きさが非常に制限されてしまいます(数千を超える要素を持つ配列を宣言すると、クラッシュすることもしばしばです)。(これらの制限は、配列をstaticかglobal宣言をすることで、多くのOSで避けることができますが、それには新たな問題が付随します)  第2に、FFTWのSIMDに適したメモリ配置になるとはかぎらないことです。これらの代わりに、fftw_mallocを次に示すような方法で使うことを推奨します。

表示オプション

横に並べて表示:
変化行の前後のみ表示: