私は実際のデータの3D配列を持っています。これは、ある軸に沿ったDSTまたはDCTと、他の2つの軸に沿った通常のDFTで変換したいものです。結果は、この変換の係数を保持する3Dの複雑な配列でなければなりません。カスタム3D(パラレル)FFTW変換は可能ですか?
FFTW3パッケージがこのようなルーチンを並行して提供するかどうかは分かりますか? FFTW3は、3つの方向すべてにおいて単純な3D DFTのためのそのようなルーチンを提供する。
もしそうでなければ、それをC/C++で最良の方法で達成する方法についてのヒントがありますか?
私の素朴なアイデア:DST/DCTのアセンブリに続いて、折り返しルーチン内の第1軸に沿った2D実数から複素数への変換が続きます。そして、並列性を達成するために1D分解を考えることができる。 2Dはより良いはずですが、はるかに機能します。
PS: この変換は、Navier-Stokes方程式を解くためのスペクトル法で使用されます。
あなたは[FFTPACK](http://www.netlib.org/fftpack/)を見ましたか(これは古いFortranライブラリであり、まだ古いと思います)。 –
ありがとうあなたの助けに。はい、私はそうしました。しかし、FFTPACKはFFTWより少し遅いです。また、FFTWは、必要な変換のためのすべてのビルディングブロックを既に提供しているため、組み立てる方法だけです。 – mrdy
@DavidBowling十分に古いものはどういう意味ですか? http://www.2decomp.org/ https://github.com/sdsc/p3dfft ... –