27#ifndef G2O_GRAPH_OPTIMIZER_CHOL_H_
28#define G2O_GRAPH_OPTIMIZER_CHOL_H_
40class EstimatePropagatorCost;
45 AT_COMPUTEACTIVERROR = OptimizableGraph::AT_NUM_ELEMENTS,
49 friend class ActivePathCostFunction;
88 virtual bool initializeOptimization(
int level = 0);
106 virtual void computeInitialGuess();
116 virtual void setToOrigin();
123 int optimize(
int iterations,
bool online =
false);
133 const std::vector<std::pair<int, int> >& blockIndices);
158 virtual Vertex* findGauge();
163 double activeChi2()
const;
169 double activeRobustChi2()
const;
173 void setVerbose(
bool verbose);
179 void setForceStopFlag(
bool* flag);
183 bool terminate() {
return _forceStopFlag ? (*_forceStopFlag) :
false; }
204 VertexContainer::const_iterator findActiveVertex(
210 EdgeContainer::const_iterator findActiveEdge(
236 using OptimizableGraph::discardTop;
243 virtual void clear();
248 void computeActiveErrors();
263 void update(
const double* update);
269 return _batchStatistics;
276 void setComputeBatchStatistics(
bool computeBatchStatistics);
295 void sortVectorContainers();
304 void clearIndexMapping();
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
A general case Vertex for optimization.
Generic interface for a non-linear solver operating on a graph.
Sparse matrix which uses blocks.
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())
const BatchStatisticsContainer & batchStatistics() const
OptimizationAlgorithm * _algorithm
VertexContainer _activeVertices
sorted according to VertexIDCompare
BatchStatisticsContainer & batchStatistics()
bool verbose() const
verbose information during optimization
bool * forceStopFlag() const
const VertexContainer & indexMapping() const
the index mapping of the vertices
const VertexContainer & activeVertices() const
the vertices active in the current optimization
bool computeBatchStatistics() const
OptimizationAlgorithm * solver()
bool terminate()
if external stop flag is given, return its state. False otherwise
class G2O_CORE_API OptimizationAlgorithm
std::vector< G2OBatchStatistics > BatchStatisticsContainer
std::vector< OptimizableGraph::Edge * > EdgeContainer
vector container for edges
std::vector< OptimizableGraph::Vertex * > VertexContainer
vector container for vertices