cblas_dcopy 和 dcopy 有什么区别?我主要使用 dcopy,因为它出现在 official manual from Intel 中。复制我的矩阵。
double* a = (double*)mkl_malloc(4 * 4 * sizeof(double), 64);
double* b = (double*)mkl_malloc(4 * 4 * sizeof(double), 64);
... calculations/operations ...
int one = 1;
int sxtn = 16;
dcopy(&sxtn, a, &one, b, &one);
这是错的吗?我最近在 online guide 中遇到了另一种方式形式:
cblas_dcopy(16, a, 1, b, 1);
有什么区别,如果我使用 C++,我应该使用哪一个?
最佳答案
dcopy() 是 Fortran 的函数原型(prototype),而 cblas_dcopy() 是 C 的函数原型(prototype),如 MLK ref manual 中所示。 .
由于 Fortran 和 C 的相似性,您可以通过提供每个参数的指针在 C 代码中调用 Fortran 函数,就像您所做的那样。
当然,使用 C 接口(interface)对 C++ 来说更好。
关于c++ - MKL 中的 cblas_dcopy 和 dcopy 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17432763/