1

Microsoft Accelerator でかなり単純な除算操作を実行したいと思います。

X = P / (1 + K * O')

ここで、P、K、および O はベクトルであり、K * O' は内積演算を実行します。

を試しPA.Divide(P, 1 + PA.Sum(PA.Multiply(K, O)))ましたが、除算コマンドに指定された行列の次元が異なるというエラーが表示されるため、これは機能しません。これは、2 番目の引数がスカラーでなければならないため意味があります。

2 番目の引数を配列に変換してから最初の要素を使用することでこれを回避しましたが、これにより計算が大幅に遅くなります。

最初に配列に変換せずにこの操作を実行するにはどうすればよいですか?

4

1 に答える 1

1

Accelerator で乗法反転がどれだけコストがかかるかはわかりませんが、式を次のように書き直せば、スカラー乗算を使用できます。

X = P * (1 / (1 + K * O'))

は、既に計算しているスカラーの乗法逆数1 / (1 + K + O')です。

これは、スカラー乗算が利用可能であることを前提としています (そうあるべきです - これは基本的な操作です)。もちろん、私はアクセラレータに精通していません。私はベクトル数学の観点から話しているだけです。

于 2010-03-16T12:08:09.530 に答える