私はvecLibフレームワークを使って、Mac OS X 10.7で集中的な行列 - ベクトル乗算を行うプログラムを作成し始めました。私はこのような簡単なプログラムを作った。行列aにベクトルxを掛け、その結果をベクトルyに加算する。Mac OS X 10.7のvecLibフレームワークで行列とベクトルを掛ける問題
#include <vecLib/vectorOps.h>
#include <stdio.h>
float a[8][4] = // the matrix to be multiplied
{
{1.0f, 0.0f, 0.0f, 0.0f},
{0.0f, 1.0f, 0.0f, 0.0f},
{1.0f, 1.0f, 0.0f, 0.0f},
{0.0f, 0.0f, 1.0f, 1.0f},
{1.0f, 0.0f, 1.0f, 0.0f},
{1.0f, 0.0f, 1.0f, 0.0f},
{1.0f, 1.0f, 1.0f, 0.0f},
{0.0f, 0.0f, 0.0f, 1.0f},
};
float x[4] = {1.0f, 2.0f, 4.0f, 8.0f}; // the vector to be multiplied
float y[8] = {0.f, 0.f, 0.f, 0.f, // the result vector
0.f, 0.f, 0.f, 0.f};
int main() {
int i;
vSgemv('n', 8, 4, 1.0f, (const vFloat *)a, (const vFloat *)x, 1.0f, (vFloat *)y);
for (i = 0; i < 8; i++) {
printf("%.4f\n", y[i]);
}
return 0;
}
私がコンパイルされ、コンソール
gcc -framework vecLib -o test test.c && ./test
上でプログラムを実行しましたが、結果はこのようなものでした。操作は行われず、結果ベクトルはまだ空です。
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
vecLibフレームワークで行列とベクトル関数を実行するための初期化がありませんか?
Woot、私の0x200thの答えを! –
ありがとう、本当に役に立ちました。しかし、Accelerate framework [here](http://developer.apple.com/library/mac/#documentation/Accelerate/Reference/AccelerateFWRef/_index.html)のリファレンスページに不正確な情報が含まれている理由を理解できません私に間違ったコードを書くようになった情報 – araste
+1 - 素晴らしい応答。 – duffymo