27#ifndef G2O_GRAPH_OPTIMIZER_CHOL_H_
28#define G2O_GRAPH_OPTIMIZER_CHOL_H_
123 int optimize(
int iterations,
bool online =
false);
133 const std::vector<std::pair<int, int> >& blockIndices);
173 void setVerbose(
bool verbose);
179 void setForceStopFlag(
bool* flag);
204 VertexContainer::const_iterator findActiveVertex(
210 EdgeContainer::const_iterator findActiveEdge(
243 virtual void clear();
248 void computeActiveErrors();
263 void update(
const double* update);
276 void setComputeBatchStatistics(
bool computeBatchStatistics);
cost for traversing along active edges in the optimizer
Abstract action that operates on an entire graph.
abstract Vertex, your types must derive from that one
std::set< Edge * > EdgeSet
std::set< Vertex * > VertexSet
std::vector< Vertex * > VertexContainer
const VertexIDMap & vertices() const
A general case Vertex for optimization.
Generic interface for a non-linear solver operating on a graph.
Sparse matrix which uses blocks.
int optimize(int iterations, bool online=false)
const EdgeContainer & activeEdges() const
the edges active in the current optimization
const OptimizationAlgorithm * algorithm() const
the solver used by the optimizer
BatchStatisticsContainer _batchStatistics
EdgeContainer _activeEdges
sorted according to EdgeIDCompare
bool _computeBatchStatistics
G2O_ATTRIBUTE_DEPRECATED(void linearizeSystem())
virtual bool initializeOptimization(HyperGraph::EdgeSet &eset)
virtual void computeInitialGuess()
const BatchStatisticsContainer & batchStatistics() const
OptimizationAlgorithm * _algorithm
VertexContainer _activeVertices
sorted according to VertexIDCompare
BatchStatisticsContainer & batchStatistics()
void sortVectorContainers()
bool buildIndexMapping(SparseOptimizer::VertexContainer &vlist)
bool verbose() const
verbose information during optimization
double activeRobustChi2() const
bool * forceStopFlag() const
virtual Vertex * findGauge()
finds a gauge in the graph to remove the undefined dof.
const VertexContainer & indexMapping() const
the index mapping of the vertices
double activeChi2() const
const VertexContainer & activeVertices() const
the vertices active in the current optimization
virtual void setToOrigin()
bool computeBatchStatistics() const
OptimizationAlgorithm * solver()
bool terminate()
if external stop flag is given, return its state. False otherwise
virtual bool updateInitialization(HyperGraph::VertexSet &vset, HyperGraph::EdgeSet &eset)
bool computeMarginals(SparseBlockMatrix< MatrixX > &spinv, const std::vector< std::pair< int, int > > &blockIndices)
friend class ActivePathCostFunction
std::vector< G2OBatchStatistics > BatchStatisticsContainer
std::vector< OptimizableGraph::Edge * > EdgeContainer
vector container for edges
virtual void discardTop()
std::vector< OptimizableGraph::Vertex * > VertexContainer
vector container for vertices
OptimizableGraph()
empty constructor
Vertex * vertex(int id)
returns the vertex number id appropriately casted