Я хочу сделать некоторые вычисления и передать результирующую матрицу Якобиана NxN и вектор правой стороны (n), чтобы увеличить ublas и, в конечном итоге, ViennaCL.
С вектором проблем не возникло при использовании copy(), однако матрица оказалась сложной. Любая помощь будет принята с благодарностью
// Global Variables
vector< vector<float> > Jacobian(0, vector<float>(0)); //Jacobian matrix
vector<float> delta_PQ; //rhs
//
// Set up some ublas objects
//
ublas::vector<ScalarType> rhs;
ublas::vector<ScalarType> result;
ublas::compressed_matrix<ScalarType> ublas_matrix;
using namespace boost::numeric;
typedef float ScalarType;
// Resize RHS from main program
resize_vector(rhs2, j_dimension);
ublas_matrix2.resize(j_dimension, j_dimension);
//copy content to GPU vector (recommended initialization)
copy(delta_PQ.begin(), delta_PQ.end(), rhs.begin()); //works
copy(Jacobian.begin(), Jacobian.end(), ublas_matrix); //won't compile
Я пробовал множество вариантов и просматривал документацию:
Кроме того, пример ViennaCL у меня не работает:
http://viennacl.sourceforge.net/viennacl-examples-sparse-matrix.html
После нескольких часов гугления я решил опубликовать здесь в надежде, что кто-то еще сможет взломать его, и следующему человеку будет легче его найти.