¿alguien puede dar un ejemplo de cómo usar el producto uBLAS para multiplicar las cosas? O si hay una biblioteca de matriz de C++ más agradable que puedas recomendar, también me gustaría recibirla. Esto se está convirtiendo en un gran dolor de cabeza.Boost uBLAS matriz/producto vectorial
Aquí está mi código:
vector<double> myVec(scalar_vector<double>(3));
matrix<double> myMat(scalar_matrix<double>(3,3,1));
matrix<double> temp = prod(myVec, myMat);
Aquí está el error:
cannot convert from 'boost::numeric::ublas::matrix_vector_binary1<E1,E2,F>' to 'boost::numeric::ublas::matrix<T>'
he agotado mi búsqueda. Stackoverflow tiene una pregunta sobre este here. La documentación de Boost tiene un ejemplo here. He copiado el código del ejemplo, pero no me sirve porque la magia de la plantilla que funciona para stdout me resulta inútil.
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
int main() {
using namespace boost::numeric::ublas;
matrix<double> m (3, 3);
vector<double> 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;
}
Gracias, voy a echar un vistazo. Guau. Realmente me gusta esto hasta ahora. Pasé un tiempo buscando en Google la biblioteca de matriz, pero esto no surgió. Por lo general, obtienes LAPACK ++ MTL en los resultados y en otros. A veces no tienen licencia abierta. A veces no son elegantes. – Budric