ブロック行列代数のライブラリが必要です。ブロック行列は、密行列 (ブロック) への参照 (ポインターまたはラッパー/インターフェイス) のみを格納する疎行列です。ブロックのサイズ (行と列) は可変です。できれば遅延評価を使用して、これらのブロック行列に対して代数を定義したいと思います。基本的に、次のようなものが必要です。
Eigen::SparseMatrix<Eigen::MatrixXd> bm1;
また
Eigen::SparseMatrix<std::shared_ptr<Eigen::MatrixXd>> bm2;
私の現在のアプローチは、次を使用することです。
Eigen::SparseMatrix<Eigen::MatrixXd*> bm3;
しかし、ブロックの存続期間を処理するクラスが必要です。Eigen::MatrixXd*
また、バックグラウンドでの暗黙的なキャストにあまり満足していませんlong
-それが起こっていると思います。
Eigenカスタマイズの説明に基づくと、これが実現可能かどうかは明確ではありません。Eigen::SparseMatrixBase は非スカラー型を優先しません。
質問: Eigen を問題へのアプローチと見なす必要がありますか? はいの場合、非スカラー行列要素型の問題を回避するにはどうすればよいですか?
どんなコメントでも大歓迎です!