0
是否有可能计算一个双精度双精度uBLAS向量的元素乘积?下面的代码无法编译,因为它找不到重载操作符*。我希望它能起作用,因为将双精度乘以一个复数双精确定义。如何将倍数的Boost 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>’)
你如何定义(0,1,2)*(3 - 1)? – Nelfeal 2014-09-01 09:40:37