2段階FMT

FMTはFFTとほぼ同じ…とか考えていたら混乱しそうだったので自分なりにまとめ直し.
2段階FMTを,並列計算機(ノード内並列あり)で考え直す.

上位FMT

有限体FFTとかFFT(Fast Fermat Transform)など言われるもの.
1要素を64bit整数の配列に格納する.
回転子ωはビットシフトでできる.要素を超える大きさまでシフトされた分は下位桁へ負巡回.
FMTルーチンとしては4基底とか作る必要もなく2基底で十分.
FMTした後の,要素ごとの積は下位FMTを使う.

下位FMT

元の格納形式は上位と同じ64bit整数.1要素は1個の64bit整数.
積は 64bit整数1個→倍精度浮動小数4個に分割 をして要素数4倍にしてから
FFT(Real2Complex)→要素(Complex)ごとの積→逆FFT(Complex2Real)
で可能.
FFT以外の部分で加減算は行わないのでそれは考えない.