/** * @file GaussianISAM * @brief Full non-linear ISAM. * @author Michael Kaess */ // \callgraph #pragma once #include #include #include #include #include namespace gtsam { typedef ISAM2 GaussianISAM2; typedef ISAM2 GaussianISAM2_P; // optimize the BayesTree, starting from the root boost::shared_ptr optimize2(const GaussianISAM2::sharedClique& root); // optimize the BayesTree, starting from the root; "replaced" needs to contain // all variables that are contained in the top of the Bayes tree that has been // redone; "delta" is the current solution, an offset from the linearization // point; "threshold" is the maximum change against the PREVIOUS delta for // non-replaced variables that can be ignored, ie. the old delta entry is kept // and recursive backsubstitution might eventually stop if none of the changed // variables are contained in the subtree. // returns the number of variables that were solved for int optimize2(const GaussianISAM2::sharedClique& root, double threshold, const std::set& replaced, VectorConfig& delta); // calculate the number of non-zero entries for the tree starting at clique (use root for complete matrix) int calculate_nnz(const GaussianISAM2::sharedClique& clique); }/// namespace gtsam