50 bool useSchur =
false;
51 for (OptimizableGraph::VertexContainer::const_iterator it =
53 it !=
_optimizer->activeVertices().end(); ++it) {
72 const std::vector<std::pair<int, int> >& blockIndices) {
73 return _solver.computeMarginals(spinv, blockIndices);
77 return _solver.buildStructure();
85 const std::vector<HyperGraph::Vertex*>& vset,
87 return _solver.updateStructure(vset, edges);
std::set< Edge * > EdgeSet
A general case Vertex for optimization.
bool marginalized() const
true => this node is marginalized out during the optimization
Solver & solver()
return the underlying solver used to solve the linear system
virtual void updateLinearSystem()
virtual void setWriteDebug(bool writeDebug)
Property< bool > * _writeDebug
virtual ~OptimizationAlgorithmWithHessian()
virtual bool updateStructure(const std::vector< HyperGraph::Vertex * > &vset, const HyperGraph::EdgeSet &edges)
virtual bool buildLinearStructure()
OptimizationAlgorithmWithHessian(Solver &solver)
virtual bool computeMarginals(SparseBlockMatrix< MatrixX > &spinv, const std::vector< std::pair< int, int > > &blockIndices)
virtual bool init(bool online=false)
virtual bool writeDebug() const
SparseOptimizer * _optimizer
the optimizer the solver is working on
Generic interface for a sparse solver operating on a graph which solves one iteration of the lineariz...
Sparse matrix which uses blocks.