gtsam/inference/ISAM.h

55 lines
1.2 KiB
C++

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