FFTW
FFTW ("Fastest Fourier Transform in the West") は離散フーリエ変換 (DFT) を計算するためのライブラリで、マサチューセッツ工科大学 (MIT) のマテオ・フリゴ (Matteo Frigo) とスティーブン・ジョンソン (Steven G. Johnson) によって開発された。オープンソース化されたFFTライブラリの中では、デファクトスタンダード的に用いられている。多くのUNIX系OSのパッケージ管理システムでも提供されている。

名称中の「West（西、西洋）」は「東洋の秘術」（アセンブラを使ったアクロバティックなテクニックのようなもの）を使わずにもっとも高速で実行できるコードを目指していることを表わしている。公式サイトのFAQでは、「西? MITは東部にあると思うけど」との質問に対して「イタリア人（開発者のフリゴはイタリア出身）にとってはそうではない」と回答されている。

FFTWは、高速フーリエ変換 (FFT) を実装したフリーソフトウェアの中ではもっとも高速である、とされている（ベンチマークテストによる）。任意のサイズの実数および複素数のデータ配列を、O(n log n) のオーダーの時間で計算することができる。

FFTWの特徴は、ヒューリスティックな方法または状況に合わせた最適な尺度で、適切なアルゴリズムを選ぶことで、高速な演算を実現していることである。他の多くの任意長データに対するFFTアルゴリズムと同様に、データ配列の長さが小さな素数の積となっているときに高速で、2のべき乗の時が最高速であり、大きな素数となっているときにもっとも遅くなるという性質がある。

同じサイズのデータのFFTを何度も繰り返しするとき、そのデータサイズと実行中のプラットフォームの種類からFFTWはもっとも適したアルゴリズムを選ぶことで、もっとも高速な演算が行える。どのアルゴリズムを選択したかをファイルに保存して、それ以降に利用することもできる。

FFTWはguruと呼ばれるインターフェイスを持ち、これにより、そのインターフェイスの後ろにあるFFTWの柔軟性をいかんなく発揮できるようにしている。これを使うとデータをメモリ上に置く順序を調整することで、多次元データや複数のデータセットのFFTを1回の関数呼び出しで行うことができる。

FFTWはMPI (Message Passing Interface) を使った「非順序変換」を部分的にサポートしている。クーリーとテューキーのFFTアルゴリズムでのデータ配置では、任意サイズのデータに対するin-place変換のときに、オーバーヘッドを避けるのは簡単なことではない。

FFTWはGNU General Public Licenseにしたがった利用と配布ができる。商用ソフトウェアであるMATLABにも組み込まれている（つまりMATLABでFFTを計算するときにはFFTWが使われる）。FFTWはANSI Cで書かれているが、FORTRANやC++、その他の言語のインターフェイスもある。FFTWのライブラリ自体の C言語のコードは 'codice_1' というプログラムで生成されており（FFTW の配布パッケージに含まれている）、このツールはObjective Camlで書かれている。

FFTWは1999年にJ. H. Wilkinson Prize for Numerical Softwareを受賞した。
Q2878
離散フーリエ変換
Concept
Q188860
ライブラリ
Concept
Q49108
マサチューセッツ工科大学
ORG
Q39162
オープンソース
Concept
Q363530
FFT
UNK
Q385853
デファクトスタンダード
Concept
Q14656
UNIX系OS
MISC
Q891055
パッケージ管理システム
Concept
Q740566
アセンブラ
UNK
Q189293
FAQ
Concept
Q623950
高速フーリエ変換
Concept
Q341
フリーソフトウェア
Concept
Q269878
O
Concept
Q49008
素数
Concept
Q250219
MPI
UNK
Q7603
GNU General Public License
MEDIA
Q169478
MATLAB
MEDIA
Q15777
ANSI C
Concept
Q83303
FORTRAN
ORG
Q2407
C++
MEDIA
Q212587
Objective Caml
MEDIA
Q6105922
J. H. Wilkinson Prize for Numerical Software
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
Q2251820
FFTW
MEDIA
2020-02-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
2
DATE
2020-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
1
DATE
2020-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
1
DATE
21-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
1999年
DATE
+2^^http://www.w3.org/2001/XMLSchema#decimal
2
NUMBER
+1^^http://www.w3.org/2001/XMLSchema#decimal
1
NUMBER
+1^^http://www.w3.org/2001/XMLSchema#decimal
1
NUMBER
instance of
programming language
programming language
programming language
programming language
programming language
programming language
programming language
programming language
programming language
programming language
programming language
programming language
programming language
programming language