したがって、2 つの行列があります。それぞれが 100x100 です。
M3[i]=sqrt(M1[i]^2 + M2[i]^2) のような 3 番目の行列を計算しようとしています。
私は明らかにForLoopsを実行できますが、もっと速いものがあると確信しています。
加速フレームワークを掘り下げてLinpackの世界に迷い込んだ
私を正しい軌道に乗せるための助け...
ありがとう
したがって、2 つの行列があります。それぞれが 100x100 です。
M3[i]=sqrt(M1[i]^2 + M2[i]^2) のような 3 番目の行列を計算しようとしています。
私は明らかにForLoopsを実行できますが、もっと速いものがあると確信しています。
加速フレームワークを掘り下げてLinpackの世界に迷い込んだ
私を正しい軌道に乗せるための助け...
ありがとう
Accelerate フレームワークは良いアイデアです。
vDSP_vsqのような関数を使用して、一度に行列の 1 列を操作し、結果を M3 の対応する列に配置できます。2 つの結果行列 (1 つは M1^2、もう 1 つは M2^2) を作成し、それらを追加して、vDSP_vaddへの呼び出しで列を追加することにより、正しい M3 結果行列を形成する必要がある場合があります。一度に 1 つの列を操作できます。
サンプル コード (2 つのベクトルを追加する方法などを示す)は、こちらの Apple 開発者ページにあります。
私は最速の方法は使用することだと思います
vDSP_vpythg ベクトル ピタゴラス。単精度。
A からベクトル C を減算して差を 2 乗し、B からベクトル D を減算して差を 2 乗し、2 組の 2 乗差を加算してから、合計の平方根をベクトル E に書き込みます。
明らかに C と D の ZERO ベクトルを渡します。