「FFTW」の版間の差分

提供: miniwiki
移動先:案内検索
(1版 をインポートしました)
(内容を「{{テンプレート:20180815sk}} __NOINDEX__」で置換)
(タグ: Replaced)
 
1行目: 1行目:
{{Infobox Software
+
{{テンプレート:20180815sk}} __NOINDEX__
| name = FFTW
 
| logo =
 
| screenshot =
 
| caption =
 
| author =
 
| developer = [[:en:Matteo Frigo|マテオ・フリゴ]] (Matteo Frigo)、スティーブン・ジョンソン (Steven G. Johnson)
 
| released = {{Start date|1997|03|24}}
 
| latest release version = 3.3.5
 
| latest release date = {{Start date and age|2016|07|31}}
 
<!--| latest preview version = 3.3-alpha1
 
| latest preview date = {{Start date and age|2008|11|15}}-->
 
| operating system =
 
| platform =
 
| language = [[C言語]]、[[Fortran]]、[[C++]]
 
| genre = [[数値計算]]
 
| license = [[GPL]], commercial
 
| website = [http://www.fftw.org www.fftw.org]
 
}}
 
'''FFTW''' ("'''Fastest Fourier Transform in the West'''") は[[離散フーリエ変換]] (DFT) を計算するための[[ライブラリ]]で、[[マサチューセッツ工科大学]] (MIT) のマテオ・フリゴ (Matteo Frigo) とスティーブン・ジョンソン (Steven G. Johnson) によって開発された<ref name="Frigo2005">{{cite journal |author=Frigo M, Johnson SG |url=http://www.fftw.org/fftw-paper-ieee.pdf |title=The design and implementation of FFTW3 |journal=Proceedings of the IEEE |volume=93 |issue2 |month=February |year=2005 |page=216-231 |doi=10.1109/JPROC.2004.840301}}</ref><ref name="Frigo1998">{{cite journal |author=Frigo M, Johnson SG |title=FFTW: an adaptive software architecture for the FFT |journal=Proceedings of the 1998 IEEE [[International Conference on Acoustics, Speech and Signal Processing]] |volume=3 |page=1381-1384 |year=1998 |url=http://ieeexplore.ieee.org/stamp/stamp.jsp&arnumber=681704&isnumber=14979 |doi=10.1109/ICASSP.1998.681704}}</ref>。[[オープンソース]]化された[[FFT]]ライブラリの中では、[[デファクトスタンダード]]的に用いられている。[[Unix系|UNIX系OS]]の[[パッケージ管理システム]]でも提供されている。
 
 
 
FFTW は、[[高速フーリエ変換]] (FFT) を実装した[[フリーソフトウェア]]の中ではもっとも高速である、とされている (ベンチマークテストによる<ref>FFTW ホームページの第2段落 [http://www.fftw.org/] とベンチマークのページ [http://www.fftw.org/benchfft/]</ref>)。任意のサイズの実数および複素数のデータ配列を、[[ランダウの記号|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]] にしたがった利用と配布ができる。また、[[MIT]] [http://web.mit.edu/tlo/www/industry/fftw-1.html] が販売しており、さらに商用ソフトウェアである [[MATLAB]] にも組み込まれている<ref>[http://www.mathworks.com/company/newsletters/news_notes/clevescorner/winter01_cleve.html Faster Finite Fourier Transforms: MATLAB 6 incorporates FFTW]</ref> (つまり MATLAB で FFT を計算するときには FFTW が使われる)。FFTW は[[C言語|ANSI C]]で書かれているが、[[FORTRAN]] や [[C++]]、その他の言語のインターフェイスもある。FFTW のライブラリ自体の  C 言語のコードは '<code>genfft</code>' というプログラムで生成されており (FFTW の配布パッケージに含まれている)、このツールは [[Objective Caml]] で書かれている<ref name="FFTW FAQ">[http://www.fftw.org/faq/section2.html#languages "FFTW FAQ"]</ref>。
 
 
 
また FFTW は1999年に [[J. H. Wilkinson Prize for Numerical Software]] を受賞した。
 
 
 
== 脚注 ==
 
<references/>
 
 
 
== 関連記事 ==
 
* [[FFTPACK]]
 
* [[フーリエ変換]]
 
* [[離散フーリエ変換]] (DFT)
 
* [[スペクトラムアナライザ]]
 
 
 
[[Category:数値解析ソフトウェア]]
 
[[Category:数値計算ライブラリー]]
 
[[Category:オープンソースソフトウェア]]
 
[[Category:数学に関する記事]]
 

2019/5/10/ (金) 22:42時点における最新版



楽天市場検索: