Кто-нибудь может привести пример того, как использовать продукт uBLAS для умножения вещей? Или, если есть более хорошая матричная библиотека C ++, которую вы можете порекомендовать, я тоже приветствую это. Это превращается в одну большую головную боль.
Вот мой код:
vector myVec(scalar_vector(3));
matrix myMat(scalar_matrix(3,3,1));
matrix temp = prod(myVec, myMat);
Вот ошибка:
cannot convert from 'boost::numeric::ublas::matrix_vector_binary1' to 'boost::numeric::ublas::matrix'
Я исчерпал свои поиски. У Stackoverflow есть вопрос по этому поводу здесь . В документации по Boost есть пример здесь . Я скопировал код из примера, но он мне бесполезен, потому что магия шаблонов, которая работает для stdout, для меня бесполезна.
#include
#include
int main () {
using namespace boost::numeric::ublas;
matrix m (3, 3);
vector v (3);
for (unsigned i = 0; i < std::min (m.size1 (), v.size ()); ++ i) {
for (unsigned j = 0; j < m.size2 (); ++ j)
m (i, j) = 3 * i + j;
v (i) = i;
}
std::cout << prod (m, v) << std::endl;
std::cout << prod (v, m) << std::endl;
}