C++ コードを C# コードに変換しています。たまたま、周波数領域の画像に対する高速フーリエ変換です。いくつかのコンテキストを提供するだけです。
C++ コードへのリンクは次のとおりです: fft.cc
私は Step と呼ばれるこの関数を持っています。そのシグネチャは C++ では次のとおりです。
void step ( int n, int mj, float a[], float b[], float c[], float d[], float w[], float sgn );
次のように呼び出されます。
step ( n, mj, &x[0*2+0], &x[(n/2)*2+0], &y[0*2+0], &y[mj*2+0], w, sgn );
これを C# に変換したいのですが、この関数は、順方向高速フーリエ変換か逆方向高速フーリエ変換かに応じて、Y または X 配列で動作します。(より多くのコンテキスト)
私が理解していないのは、C#ではx[0*2+0]
何もしないということです....最初に整数を角括弧に入れると、実際にはその配列内の位置に変数が必要になります。
しかし、C++ で何をしているのか&
、C# キーワードと同等であることはわかってref
います。これは、ポイントされている配列からコンテンツを取得することも言っていますが、このコンテキストではそれ以上の意味があると感じています。
では、C# でその関数をどのように呼び出すのでしょうか。明らかにこれは失敗します。
step(n, mj, x[0 * 2 + 0], x[(n / 2) * 2 + 0], y[0 * 2 + 0], y[mj * 2 + 0], w, sgn);