複雑な double を持つ double の uBLAS ベクトルの要素ごとの積を計算することは可能ですか? 次のコードは、オーバーロードされた演算子 * が見つからないため、コンパイルに失敗します。double と複雑な double の乗算は明確に定義されているため、機能することが期待されます。
#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>’)