Source code
DO NOT CHECK OUT THESE FILES FROM GITHUB UNLESS YOU KNOW WHAT YOU ARE DOING. (See below.) This is the git repository for the FFTW library for computing Fourier transforms (version 3.x), maintained by the FFTW authors. Unlike most other programs, most of the FFTW source code (in C) is generated automatically. This repository contains the generator and it does not contain the generated code . YOU WILL BE UNABLE TO COMPILE CODE FROM THIS REPOSITORY unless you have special tools and know what you are doing. In particular, do not expect things to work by simply executing configure; make or cmake . Most users should ignore this repository, and should instead download official tarballs from which contain the generated code, do not require any special tools or knowledge, and can be compiled on any system with a C compiler. Advanced users and FFTW maintainers may obtain code from github and run the generation process themselves. See README for details.
Excerpt from the source-code README · 1,005 chars · not written by Vinony
Wikidata facts
- Instance of
- free and open-source software
- Official website
- www.fftw.org
- Has use
- numerical analysis
Show 8 more facts
- programmed in
- C
- source code repository URL
- github.com/FFTW/fftw3
- inception
- 1997-03-24
- copyright license
- GNU General Public License, version 2.0
- software version identifier
- 3.3.11
- operating system
- cross-platform
- publication date
- 1997-03-24
- implementation of
- fast Fourier transform
via Wikidata · CC0
Article · 日本語
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言語のコードは 'genfft' というプログラムで生成されており(FFTW の配布パッケージに含まれている)、このツールはObjective Camlで書かれている。 FFTWは1999年にJ. H. Wilkinson Prize for Numerical Softwareを受賞した。
Abstract from DBpedia / Wikipedia · CC BY-SA