1

したがって、2 つの行列があります。それぞれが 100x100 です。

M3[i]=sqrt(M1[i]^2 + M2[i]^2) のような 3 番目の行列を計算しようとしています。

私は明らかにForLoopsを実行できますが、もっと速いものがあると確信しています。

加速フレームワークを掘り下げてLinpackの世界に迷い込んだ

私を正しい軌道に乗せるための助け...

ありがとう

4

2 に答える 2

1

Accelerate フレームワークは良いアイデアです。

vDSP_vsqのような関数を使用して、一度に行列の 1 列を操作し、結果を M3 の対応する列に配置できます。2 つの結果行列 (1 つは M1^2、もう 1 つは M2^2) を作成し、それらを追加して、vDSP_vaddへの呼び出しで列を追加することにより、正しい M3 結果行列を形成する必要がある場合があります。一度に 1 つの列を操作できます。

サンプル コード (2 つのベクトルを追加する方法などを示す)は、こちらの Apple 開発者ページにあります

于 2013-01-30T02:09:47.310 に答える
0

私は最速の方法は使用することだと思います

vDSP_vpythg ベクトル ピタゴラス。単精度。

A からベクトル C を減算して差を 2 乗し、B からベクトル D を減算して差を 2 乗し、2 組の 2 乗差を加算してから、合計の平方根をベクトル E に書き込みます。

明らかに C と D の ZERO ベクトルを渡します。

于 2013-02-20T17:55:07.363 に答える