※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。


行メジャー形式 Row-major Format


 fftw_plan_dftなどにわたされる多次元配列は、単一の連続するブロックに列メジャー順(C順序と呼ばれることもある)で格納されています。基本的には、これはメモリの隣の場所に移れば、最初の次元の添え字が最も遅く変化し、最後の次元の添え字がもっともはやく変化することを意味します。

 もっと具体的に言うと、rank dのn1 x n2 x n3 x・・・xndの配列を考えたとします。そして、配列の場所をゼロベースの添え字で特定すれば、(i1, i2, i3, ・・・,id)となります。もし、配列が行メジャー順であれば、この要素は、id + nd(id-1 + nd-1(・・・+n2i1))の場所に相当します。

 通常の複素離散フーリエ変換に対しては、配列の各要素は、fftw_complex型でなければなりません。つまり、数(double精度)のペア(実部、虚部)です。

 アドバンストFFTWインターフェイスでは、物理的次元nの添え字は、論理次元より大きく、別個に計算されます。これは、より大きな配列の一部を変換するためです。そして、アドバンストインターフェースでは、上記のものは実際の配列サイズを得るために、ストライド(stride)が掛っています。これは、多次元配列の各要素が実際のデータ構造になっていて、ひとつの場所だけ変換したい場合に便利です。これに対し、ベーシックインターフェースでは、ストライド(stride)は1になっています。