64 lines
1.6 KiB
C++
64 lines
1.6 KiB
C++
/* ----------------------------------------------------------------------------
|
|
|
|
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
|
|
* Atlanta, Georgia 30332-0415
|
|
* All Rights Reserved
|
|
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
|
|
|
|
* See LICENSE for the license information
|
|
|
|
* -------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @file ISAM.h
|
|
* @brief Incremental update functionality (iSAM) for BayesTree.
|
|
* @author Michael Kaess
|
|
*/
|
|
|
|
// \callgraph
|
|
|
|
#pragma once
|
|
|
|
#include <map>
|
|
#include <list>
|
|
#include <vector>
|
|
#include <deque>
|
|
//#include <boost/serialization/map.hpp>
|
|
//#include <boost/serialization/list.hpp>
|
|
#include <boost/pool/pool_alloc.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);
|
|
|
|
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 FACTORGRAPH>
|
|
void update_internal(const FACTORGRAPH& newFactors, Cliques& orphans);
|
|
template<class FACTORGRAPH>
|
|
void update(const FACTORGRAPH& newFactors);
|
|
|
|
}; // ISAM
|
|
|
|
} /// namespace gtsam
|