У меня есть кусок кода, который отлично работает в Eigen 3.2, но больше не действует в Eigen 3.3.4.Вот код:
// Temporary Eigen blocks
Eigen::Block<const Eigen::SparseMatrix<double> >
tmpAPotentialBlock(A.block(startPotential, startPotential, sizePotential,sizePotential)),
tmpAFlowBlock(A.block(startFlow, startPotential, sizeFlow, sizePotential));
for (Eigen::SparseMatrix<double>::Index k=0; k<sizePotential; ++k) {
// Iterator to the first term of the column k of the potential block and the flow block.
Eigen::Block<const Eigen::SparseMatrix<double> >::InnerIterator itAPotential(tmpAPotentialBlock,k),
itAFlow(tmpAFlowBlock,k);
...
}
В основном проблема в том, что InnerIterator
больше не определяется для блоков или, по крайней мере, разреженных блоков.
Я понимаю, что теперь вам нужно использовать evaluator
чтобы определить это.Кто-нибудь знает, каким будет новый синтаксис?