38 OptimizationAlgorithmWithHessian::OptimizationAlgorithmWithHessian(
Solver* solver) :
53 assert(
_solver &&
"Solver not set");
virtual bool updateStructure(const std::vector< HyperGraph::Vertex * > &vset, const HyperGraph::EdgeSet &edges)=0
virtual void setWriteDebug(bool writeDebug)
virtual bool updateStructure(const std::vector< HyperGraph::Vertex * > &vset, const HyperGraph::EdgeSet &edges)
virtual bool computeMarginals(SparseBlockMatrix< MatrixXD > &spinv, const std::vector< std::pair< int, int > > &blockIndices)=0
virtual bool init(bool online=false)
PropertyMap _properties
the properties of your solver, use this to store the parameters of your solver
std::set< Edge * > EdgeSet
P * makeProperty(const std::string &name_, const typename P::ValueType &v)
virtual ~OptimizationAlgorithmWithHessian()
void setValue(const T &v)
virtual bool supportsSchur()
Generic interface for a sparse solver operating on a graph which solves one iteration of the lineariz...
virtual bool computeMarginals(SparseBlockMatrix< MatrixXD > &spinv, const std::vector< std::pair< int, int > > &blockIndices)
SparseOptimizer * _optimizer
the optimizer the solver is working on
bool marginalized() const
true => this node is marginalized out during the optimization
virtual bool buildLinearStructure()
A general case Vertex for optimization.
const VertexContainer & activeVertices() const
the vertices active in the current optimization
virtual bool buildSystem()=0
Property< bool > * _writeDebug
virtual void setWriteDebug(bool)=0
Generic interface for a non-linear solver operating on a graph.
virtual bool writeDebug() const
virtual bool init(SparseOptimizer *optimizer, bool online=false)=0
Sparse matrix which uses blocks.
virtual void updateLinearSystem()
virtual void setSchur(bool s)=0
virtual bool buildStructure(bool zeroBlocks=false)=0