我想在我的C代碼中使用一些BLAS例程來進行實驗,並且出於某種原因我出現了一些問題,我不明白。這裏是我的代碼從C中調用daxpy。出了什麼問題?
#include<stdio.h>
#define N 100000
void daxpy_(int* n, double* alpha,
double* x, int *incx,
double* y, int *incy);
int main(){
static double x[N], y[N];
double a = 0;
int i;
for (i = 0; i < N; i++){
x[i] = 1;
y[i] = 1;
}
int n = N;
int incx = 1;
int incy = 1;
daxpy_(&n, &a, x, &incx, y, &incy);
for (i = 0;i < 10;i++){
printf ("%d ",x[i]);
}
}
要檢查答案是否正確,我打印y的前幾個條目。我意識到我設置了a = 0,所以y向量應該不變,因爲結果應該是ax + y。請參閱http://www.mathkeisan.com/usersguide/man/daxpy.html。然而,結果給了我所有的零。另外,當我改變一個不同的時候,我得到完全隨機的結果,例如設置a = 0.2我得到的結果是一個只包含858993459的向量。我可能錯過了一些非常微不足道的東西。我正在編譯使用Cygwin和打字
gcc -o daxpy daxpy.c -lblas
我認爲應該罰款。任何幫助將不勝感激!
編輯:我已經將N等於5,這裏是輸出,當我運行它
0 0 0 0 0
此外,當我改變= 0.2輸出給
858993459 858993459 858993459 858993459 858993459
感謝您的提示,但它似乎並沒有工作。當我這樣做時,我實際上根本沒有輸出... – Slugger 2015-03-02 16:27:33