c++ - MKL 中的 cblas_dcopy 和 dcopy 之间的区别?

标签 c++ visual-c++ matrix intel-mkl

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/

相关文章:

c++ - C++ 实现中 "invalid pointer value"转换的文档

visual-c++ - Visual C++ 的 Autoconf

windows - 使用 Windows SDK 构建 GTK

c++ - 如何将二维数组传递给函数以便代码可以编译

opengl - 无法识别矩阵计算中的错误?

c++ - 在c++中构造围绕中心元素的镜像 vector

c++ - 如果我想关闭之前打开的窗口,则 X11-Window-ID 无效。 (C/C++)

c++ - 按值传递时谁调用拷贝构造函数?

c++ - 项目中c++源文件改函数后重新编译

javascript - 查找元素在矩阵中的位置