27#ifndef G2O_OPTIMIZATION_ALGORITHM_H
28#define G2O_OPTIMIZATION_ALGORITHM_H
50 virtual ~OptimizationAlgorithm();
55 virtual bool init(
bool online =
false) = 0;
62 virtual SolverResult
solve(
int iteration,
bool online =
false) = 0;
71 const std::vector<std::pair<int, int> >& blockIndices) = 0;
101 bool updatePropertiesFromString(
const std::string& propString);
106 void printProperties(std::ostream& os)
const;
std::set< Edge * > EdgeSet
Generic interface for a non-linear solver operating on a graph.
virtual bool computeMarginals(SparseBlockMatrix< MatrixX > &spinv, const std::vector< std::pair< int, int > > &blockIndices)=0
SparseOptimizer * optimizer()
const PropertyMap & properties() const
return the properties of the solver
SparseOptimizer * _optimizer
the optimizer the solver is working on
virtual void printVerbose(std::ostream &os) const
virtual bool updateStructure(const std::vector< HyperGraph::Vertex * > &vset, const HyperGraph::EdgeSet &edges)=0
OptimizationAlgorithm & operator=(const OptimizationAlgorithm &)
virtual SolverResult solve(int iteration, bool online=false)=0
const SparseOptimizer * optimizer() const
return the optimizer operating on
OptimizationAlgorithm(const OptimizationAlgorithm &)
virtual bool init(bool online=false)=0
a collection of properties mapping from name to the property itself
Sparse matrix which uses blocks.
class G2O_CORE_API OptimizationAlgorithm