I have a piece of code that works fine in Eigen 3.2 but is not valid in Eigen 3.3.4 anymore. Here is the code:
// 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);
...
}
Basically the problem is that InnerIterator
is no longer defined for blocks or at least sparse blocks.
I understand that you now need to use an evaluator
to define this. Does anyone know what the new syntax would be ?