74 int numMeasurements = 10;
75 double noiseLimit = sqrt(12.);
76 double noiseSigma = noiseLimit * noiseLimit / 12.0;
78 for (
int i = 0; i < numMeasurements; i++) {
79 Vector3d measurement =
95 cout <<
"truePoint=\n" << truePoint << endl;
96 cerr <<
"computed estimate=\n"
106 cout <<
"covariance\n" << spinv << endl;
107 cout << spinv.
block(0, 0) << endl;
virtual void setMeasurement(const Measurement &m)
void setInformation(const InformationType &information)
Implementation of a solver operating on the blocks of the Hessian.
void setVertex(size_t i, Vertex *v)
const VertexIDMap & vertices() const
linear solver which uses the sparse Cholesky solver from Eigen
virtual void setId(int id)
Implementation of the Gauss Newton Algorithm.
Sparse matrix which uses blocks.
SparseMatrixBlock * block(int r, int c, bool alloc=false)
int optimize(int iterations, bool online=false)
void setVerbose(bool verbose)
virtual bool initializeOptimization(HyperGraph::EdgeSet &eset)
void setAlgorithm(OptimizationAlgorithm *algorithm)
bool computeMarginals(SparseBlockMatrix< MatrixX > &spinv, const std::vector< std::pair< int, int > > &blockIndices)
double sampleUniform(double min, double max, std::mt19937 *generator)
virtual bool addEdge(HyperGraph::Edge *e)
virtual bool addVertex(HyperGraph::Vertex *v, Data *userData)