0

我正在为 C++ 赋值编写代码。我是 OpenBlas 库的新手,想要一些关于如何应用它的指导。我检查了相关文档(https://software.intel.com/en-us/node/520736#A2C46A8C-343B-401D-88B6-9A6B88A4FA47),有趣的是,如果我尝试以下代码行我明白了

std::complex<double> res = cblas_zdotc(fpowa_d.size(), fpowa_d.data(), 1, fpowa_p.data(), 1);

func.cc:42:93: error: ‘cblas_zdotc’ was not declared in this scope

但是,如果我在文档中尝试 ddot 或其他函数,它们就会被声明。看:

func.cc:42:78: error: cannot convert ‘ra::rarray<std::complex<double>, 1>’ to ‘const double*’ for argument ‘2’ to ‘double cblas_ddot(int, const double*, int, const double*, int)’

这是预期的。我包括的库是:

#include <iostream>
#include <complex>
#include <fftw3.h>
#include <cmath>
#include <cblas.h>

我不确定为什么要声明 cblas_ddot 而不是 cblas_zdotc。我也尝试过非共轭版本,它也失败了。有关如何解决此问题的任何想法?

4

0 回答 0