特定のn次元配列で離散フーリエ変換を実行するのにかかる時間を予測するコードを少し書き込もうとしていますが、n次元FFTの計算の複雑さに頭を悩ませています。
私が理解しているように:
長さのベクトルの1DFFTは、次のように
N
なりますk*(N*log(N))
。ここで、k
はタイミング定数です。行列の場合
M*N
、2DFFTは次のようになります。N*(k*M*log(M)) + M*(k*N*log(N)) = k*M*N*(log(M)+log(N))
各行と列で1DFFTを取得する必要があるため
これはどのようにNDの場合に一般化されますか?それはそうあるべきだということになるのk*prod(dimensions)*sum(log(dimensions))
でしょうか?