在BLAS库中调用DDOT函数

我通过包含BLAS库在我的代码中调用BLAS函数,并且我的代码显然是错误的,因为编译器吐出错误: “ddot未在此范围内声明。”

#include  #include  #include  int main() { double m[10],n[10]; int i; int result; printf("Enter the elements into first vector.\n"); for(i=0;i<10;i++) scanf("%lf",&m[i]); printf("Enter the elements into second vector.\n"); for(i=0;i<10;i++) scanf("%lf",&n[i]); result = ddot(m,n); printf("The result is %d\n",result); return 0; } 

关于如何正确修复此代码的任何想法?

从C调用时,函数名必须是cblas_ddot() (C调用约定)或ddot_ (fortran调用约定;请注意尾随下划线。)

你缺少一些函数参数。 尝试

 result = cblas_ddot(10, m, 1, n, 1); 

或者等价的

 int len = 10, incm = 1, incn = 1; // ... result = ddot_(&len, m, &incm, n, &incn); 

此外,ddot返回一个double,但您将结果分配给int。