是否可以计算双精度的 uBLAS 向量与复数双精度的元素乘积?以下代码无法编译,因为它找不到重载的运算符 *。我希望它能够工作,因为将双精度与复双精度相乘是明确定义的。
#include <complex>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/io.hpp>
int main(int argc, char **argv)
{
using namespace boost::numeric::ublas;
vector<double> v(3);
for (unsigned i = 0; i < v.size(); ++i)
{
v (i) = i;
}
vector<std::complex<double> > w = v * std::complex<double>(3.0, -1.0);
return 0;
}
使用 GCC 4.6 和 Boost 1.55.0 编译它会产生以下结果:
error: no match for ‘operator*’ (operand types are ‘boost::numeric::ublas::vector<double>’ and ‘std::complex<double>’)