/** * @file ISAM.h * @brief Incremental update functionality (iSAM) for BayesTree. * @author Michael Kaess */ // \callgraph #pragma once #include #include #include #include #include #include #include "Testable.h" #include "FactorGraph.h" #include "BayesNet.h" #include "BayesTree.h" #include "VectorConfig.h" #include "NonlinearFactorGraph.h" namespace gtsam { template class ISAM: public BayesTree { public: /** Create an empty Bayes Tree */ ISAM(); /** Create a Bayes Tree from a Bayes Net */ ISAM(const BayesNet& bayesNet); /** Destructor */ virtual ~ISAM() { } typedef typename BayesTree::sharedClique sharedClique; typedef typename BayesTree::Cliques Cliques; /** * iSAM. (update_internal provides access to list of orphans for drawing purposes) */ template void update_internal(const FactorGraph& newFactors, Cliques& orphans); template void update(const FactorGraph& newFactors); }; // ISAM } /// namespace gtsam