fftw_flags fftプランナアルゴリズム選択用手法を設定する

## 呼び出し手順

    [a,[S]]=fftw_flags(flag)

## 引数

flag

  文字列または整数. プランナアルゴリズムを指定. 下記参照.

a

  整数. プランナコード.下記参照.

S

  文字列行列. プランナ名.

## 説明

この関数により,fftwプランナアルゴリズムを定義する際に 使用されるアルゴリズムを選択できます. プランナはfftを計算する効率的な手法を定義する 際に使用されます.

警告: デフォルト値 "FFTW_ESTIMATE" は通常かなり効率的な プランです. fft効率が実際に重要で 類似のコールを数多く行う場合にのみ変更を検討ください.

以下のエントリを指定可能です :

- {FFTW_ESTIMATE} または 64. これを指定すると, 他のアルゴリズムで使用される 実際の観測量の代わりに, (おそらく準最適の)プランを簡単に選択できる 簡単な経験則が使用されます. このフラグを指定すると, 入力/出力配列はプランニングの間は上書きされません. これがデフォルト値です.

- FFTW_MEASURE または 0. 実際に計算した複数回のFFTとそれらの実行時間 の計測値から最適なプランをみつけるようFFTWに指示します. 実行する計算機に依存した時間がかかります(通常は数秒).

- FFTW_PATIENT または 32. "FFTW_MEASURE"と似ていますが, より広範なアルゴリズムを検討し,しばしば "より最適な"プランを出力します (特に大規模な変換の場合). しかし,プランニング時間は数倍かかります (特に大規模な変換の場合).

- FFTW_EXHAUSTIVE または 8. "FFTW_PATIENT"に似ていますが, 高速と思われないようなものを多く含む さらにより広範なアルゴリズムを検討します. 最も最適なプランを出力しますが, プランニング時間は著しく増加します.

注意 : FFTW_MEASURE/FFTW_PATIENT/FFTW_EXHAUSTIVE を使用する時, fftwを2回コールする必要があります. (最初のコールは初期化用, 2回目以降は計算用)

## 例

    A=rand(1, 2^9 + 2^15);
    fftw_forget_wisdom();
    fftw_flags("FFTW_ESTIMATE");
    timer(); y=fft(A); timer()//最初のコールでプランを定義
    timer(); y=fft(A); timer() //同じコールを続ける
    fftw_flags("FFTW_MEASURE");
    fftw_forget_wisdom();
    timer(); y=fft(A); timer()//最初のコールでプランを定義, 5分ほどかかる
    timer(); y=fft(A); timer() //同じコールを続ける

## 参考

- fft
- set_fftw_wisdom
- get_fftw_wisdom
- fftw_forget_wisdom