Можно ли вычислить элементное произведение вектора uBLAS удвоений со сложным двойным? Следующий код не удается скомпилировать, поскольку он не может найти перегруженный оператор *. Я ожидаю, что это сработает, так как умножение двойника на сложный двойник хорошо определено.Как умножить вектор uBLAS Boost удваивается со сложным двойным фактором?
#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 и Повысьте 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