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
 |