私は小さな問題がありますが、解決方法はわかりません。リファレンスでEigen :: Matrixを使用する方法
始めましょう: マルチスレッドを使用して大きなEigen Matrixで作業する必要があります。 各スレッドは行列にアクセスする必要があります。ディメンションはプログラムの実行中に指定されるので、main()内で宣言し、グローバルではなく宣言する必要があります。私は成功せずにさまざまなソリューションを試しました。私は "参照渡し"のようなものを検索しますが、このメソッドは固有行列では機能しません。 ここには小さな例があります。誰かが私にこの問題を解決する方法を教えてもらえますか?プログラムは高速でなければならないので、次のようなものが必要です: - 行列をファイルに保存し、各スレッドでファイルを読み込み、行列で作業し、行列をファイルに保存し、ファイルを再度読み込みます最善の方法、私は思う...;)誰かがより良い解決策を知っていますか? ありがとうございました!
void calc() {
// work on the Matrix
}
int main() {
Eigen::Matrix<bool, a, b> Mat;
// Start some thread(calc);
cout << Mat;
}
だけで、それは 'マトリックスをタイプを使用している'参照してcalc'に 'Mat'を渡します& '。また、グローバルに宣言して 'Mat.resize(rows、cols); 'を呼び出すこともできますが、それは醜いです。 –
ggael