Собственный loadMarket не компилируется - PullRequest
0 голосов
/ 08 ноября 2019

В Windows MSVS2017

#include <Eigen/Sparse>
#include <unsupported/Eigen/SparseExtra>

// other code

SparseMatrix<double> A; // with `MatrixXd A;` it displays the same error
VectorXd b;

loadMarket(A, "A.txt");
loadMarket(b, "b.txt");

не компилируется с ошибкой:

Ошибка C2039 «резерв»: не участвует в сканирующем тесте «Eigen :: Matrix» C:\ Users \ wurmd \ Work \ scan2 \ build_deps \ eigen-src \ unsupported \ Eigen \ src \ SparseExtra \ MarketIO.h 170

Примечание:

SparseMatrix<double> A;
VectorXd b;
// some processing
saveMarket(A, "A.txt");
saveMarket(b, "b.txt");

Компилирует, запускает и сохраняет матрицу и вектор в удобочитаемой форме.

Кто-нибудь знает обходной путь? (в настоящее время ожидает аккаунт на https://eigen.tuxfamily.org/bz/, чтобы сообщить об этой ошибке)

1 Ответ

0 голосов
/ 09 ноября 2019

Вы не должны использовать saveMarket или loadMarket с векторами. Вы должны использовать saveMarketVector и loadMarketVector

SparseMatrix<double> A;
VectorXd b;
// some processing
saveMarket(A, "A.txt");
saveMarketVector(b, "b.txt");

...

SparseMatrix<double> Ain; 
VectorXd bin;

loadMarket(Ain, "A.txt");
loadMarketVector(bin, "b.txt");

делает работу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...