(Translated by https://www.hiragana.jp/)
FFTW - Wikipedia コンテンツにスキップ

FFTW

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

2024ねん5がつ25にち (土) 20:16; C8uyPqgR (会話かいわ | 投稿とうこう記録きろく) によるはん日時にちじ個人こじん設定せってい設定せっていならUTC

(差分さぶん) ふるはん | 最新さいしんばん (差分さぶん) | あたらしいはん → (差分さぶん)
FFTW
作者さくしゃ マテオ・フリゴ (Matteo Frigo)、スティーブン・ジョンソン (Steven G. Johnson)
開発元かいはつもと マサチュまさちゅセッツ工科大学せっつこうかだいがく[1]
初版しょはん 1997ねん3がつ24にち (27ねんまえ) (1997-03-24)
最新さいしんばん
3.3.10 / 2021ねん9がつ15にち (2ねんまえ) (2021-09-15)
リポジトリ ウィキデータを編集
プログラミング
言語げんご
C言語げんごFortranC++
種別しゅべつ 数値すうち計算けいさん
ライセンス GPL v2 以降いこう、もしくは、GPL回避かいひできる商用しょうようライセンス[1]
公式こうしきサイト www.fftw.org ウィキデータを編集
テンプレートを表示ひょうじ

FFTW ("Fastest Fourier Transform in the West") は離散りさんフーリエ変換へんかん (DFT) を計算けいさんするためのライブラリで、マサチュまさちゅセッツ工科大学せっつこうかだいがく (MIT) のマテオ・フリゴ (Matteo Frigo) とスティーブン・ジョンソン (Steven G. Johnson) によって開発かいはつされた[2][3]

オープンソースされたFFTライブラリのなかでは、デファクトスタンダードてきもちいられている。おおくのUNIXけいOSパッケージ管理かんりシステムでも提供ていきょうされている。ただし、ライセンスはGPL制限せいげんきびしく、GPLのオープンソースソフトウェアからの利用りよう禁止きんしされていて、たとえばGPLではないNumPySciPyではFFTPACKから派生はせいしたPocketFFTを使用しようしている[4][5]

概要がいよう

[編集へんしゅう]

FFTWは、2006ねん時点じてんでは高速こうそくフーリエ変換へんかん (FFT) を実装じっそうしたフリーソフトウェアなかではもっとも高速こうそくである、と開発かいはつしゃ主張しゅちょうしている(ベンチマークテストによる[6])。任意にんいのサイズの実数じっすうおよび複素数ふくそすうのデータ配列はいれつを、O(n log n) のオーダーの時間じかん計算けいさんすることができる。

FFTWの特徴とくちょうは、ヒューリスティックな方法ほうほうまたは状況じょうきょうわせた最適さいてき尺度しゃくどで、適切てきせつなアルゴリズムをえらぶことで、高速こうそく演算えんざん実現じつげんしていることである。おおくの任意にんいちょうデータにたいするFFTアルゴリズムと同様どうように、データ配列はいれつながさがちいさな素数そすうせきとなっているときに高速こうそくで、2のべきじょうとき最高さいこうそくであり、おおきな素数そすうとなっているときにもっともおそくなるという性質せいしつがある。

おなじサイズのデータのFFTをなんかえしするとき、そのデータサイズと実行じっこうちゅうのプラットフォームの種類しゅるいからFFTWはもっともてきしたアルゴリズムをえらぶことで、もっとも高速こうそく演算えんざんおこなえる。どのアルゴリズムを選択せんたくしたかをファイルに保存ほぞんして、それ以降いこう利用りようすることもできる。

FFTWはguruばれるインターフェイスをち、これにより、そのインターフェイスのうしろにあるFFTWの柔軟じゅうなんせいをいかんなく発揮はっきできるようにしている。これを使つかうとデータをメモリじょう順序じゅんじょ調整ちょうせいすることで、多次元たじげんデータや複数ふくすうのデータセットのFFTを1かい関数かんすうしでおこなうことができる。

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

FFTWは1999ねんジェームズ・H・ウィルキンソンしょう受賞じゅしょうした。

ライセンス

[編集へんしゅう]

FFTWはGNU General Public License v2 以降いこうもしくは商用しょうようライセンスにしたがった利用りよう配布はいふができる[1]LGPLではなくGPLを選択せんたくしているため、商用しょうようライセンスでない場合ばあいは、FFTWを使用しようしているソフトウェアもGPLでなければならない[7]Apache LicenseなどのGPLのオープンソースソフトウェアからは利用りよう不可能ふかのうであることに注意ちゅうい必要ひつようである。FAQによるとFFTWの所有しょゆうしゃマサチュまさちゅセッツ工科大学せっつこうかだいがくで、マサチュまさちゅセッツ工科大学せっつこうかだいがくがGPL以外いがい採用さいようみとめず、LGPLにすることはできなかった[8]

マサチュまさちゅセッツ工科大学せっつこうかだいがくから商用しょうようライセンスを購入こうにゅうした場合ばあいGPLソフトウェアでも利用りよう可能かのうである。商用しょうようソフトウェアであるMATLABにもまれている[9](つまりMATLABでFFTを計算けいさんするときにはFFTWが使つかわれる)。

APIと言語げんごバインディング

[編集へんしゅう]

FFTWはANSI Cかれていて、APIはC言語げんご提供ていきょうされている。FORTRANC++など、その言語げんごのインターフェイスもある。

FFTWのライブラリ自体じたいのC言語げんごのコードは 'genfft' というプログラムで生成せいせいされており(FFTW の配布はいふパッケージにふくまれている)、このツールはObjective Camlかれている[10]

名称めいしょう

[編集へんしゅう]

名称めいしょうちゅうの「West(西にし西洋せいよう)」は「東洋とうよう秘術ひじゅつ」(アセンブラ使つかったアクロバティックなテクニックのようなもの)を使つかわずにもっとも高速こうそく実行じっこうできるコードを目指めざしていることをあらわしている[11]公式こうしきサイトのFAQでは、「西にし? MITは東部とうぶにあるとおもうけど」との質問しつもんたいして「イタリアじん開発かいはつしゃのフリゴはイタリア出身しゅっしん)にとってはそうではない」と回答かいとうされている[12]

脚注きゃくちゅう

[編集へんしゅう]
  1. ^ a b c License and Copyright (FFTW 3.3.10)”. fftw.org. 2024ねん5がつ25にち閲覧えつらん
  2. ^ Frigo M, Johnson SG (February 2005). “The design and implementation of FFTW3”. Proceedings of the IEEE 93: 216-231. doi:10.1109/JPROC.2004.840301. http://www.fftw.org/fftw-paper-ieee.pdf. 
  3. ^ Frigo M, Johnson SG (1998). “FFTW: an adaptive software architecture for the FFT”. Proceedings of the 1998 IEEE International Conference on Acoustics, Speech and Signal Processing 3: 1381-1384. doi:10.1109/ICASSP.1998.681704. http://ieeexplore.ieee.org/stamp/stamp.jsp&arnumber=681704&isnumber=14979. 
  4. ^ numpy/numpy/fft at v1.26.5 · numpy/numpy”. 2024ねん5がつ25にち閲覧えつらん
  5. ^ scipy/scipy/fft at v1.13.1 · scipy/scipy”. 2024ねん5がつ25にち閲覧えつらん
  6. ^ FFTW ホームページのだい2段落だんらく [1] とベンチマークのページ [2]
  7. ^ (GPLの)およ作品さくひんたいし、静的せいてき vs 動的どうてきにリンクされたモジュールについて、GPLにはことなる要求ようきゅうがありますか? - GNUライセンスにかんしてよくかれる質問しつもん - GNUプロジェクト - フリーソフトウェアファウンデーション”. gnu.org. 2024ねん5がつ25にち閲覧えつらん
  8. ^ Question 1.4. What is this about non-free licenses? - FFTW FAQ - Section 1”. fftw.org. 2024ねん5がつ25にち閲覧えつらん
  9. ^ fft - ヘルプセンター”. The MathWorks, Inc.. 2020ねん3がつ8にち閲覧えつらん
  10. ^ "FFTW FAQ"
  11. ^ 数値すうち計算けいさんライブラリ”. 地球ちきゅう流体りゅうたい電脳でんのう倶楽部くらぶ. 2020ねん3がつ8にち閲覧えつらん
  12. ^ Matteo Frigo and Steven G. Johnson (2014ねん3がつ4にち). “FFTW FAQ - Section 1”. 2020ねん3がつ8にち閲覧えつらん

関連かんれん記事きじ

[編集へんしゅう]