53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			53 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 <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
 |