| 
									
										
										
										
											2010-10-14 12:54:38 +08:00
										 |  |  | /* ----------------------------------------------------------------------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  * 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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  * -------------------------------------------------------------------------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-09 11:09:54 +08:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-07-13 05:34:03 +08:00
										 |  |  |  * GaussianJunctionTree.h | 
					
						
							| 
									
										
										
										
											2010-07-14 06:03:18 +08:00
										 |  |  |  * Created on: Jul 12, 2010 | 
					
						
							|  |  |  |  * @author Kai Ni | 
					
						
							|  |  |  |  * @author Frank Dellaert | 
					
						
							|  |  |  |  * @brief: the Gaussian junction tree | 
					
						
							| 
									
										
										
										
											2010-07-13 05:34:03 +08:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-20 01:23:19 +08:00
										 |  |  | #include <gtsam/inference/JunctionTree.h>
 | 
					
						
							|  |  |  | #include <gtsam/linear/GaussianConditional.h>
 | 
					
						
							|  |  |  | #include <gtsam/linear/GaussianFactorGraph.h>
 | 
					
						
							| 
									
										
										
										
											2010-07-13 05:34:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace gtsam { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* ************************************************************************* */ | 
					
						
							|  |  |  | 	/**
 | 
					
						
							|  |  |  | 	 * GaussianJunctionTree that does the optimization | 
					
						
							|  |  |  | 	 */ | 
					
						
							| 
									
										
										
										
											2010-07-14 06:03:18 +08:00
										 |  |  | 	class GaussianJunctionTree: public JunctionTree<GaussianFactorGraph> { | 
					
						
							| 
									
										
										
										
											2010-07-13 05:34:03 +08:00
										 |  |  | 	public: | 
					
						
							| 
									
										
										
										
											2010-07-14 06:03:18 +08:00
										 |  |  | 		typedef JunctionTree<GaussianFactorGraph> Base; | 
					
						
							|  |  |  | 		typedef Base::sharedClique sharedClique; | 
					
						
							| 
									
										
										
										
											2010-07-13 05:34:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	protected: | 
					
						
							|  |  |  | 		// back-substitute in topological sort order (parents first)
 | 
					
						
							| 
									
										
										
										
											2010-10-09 11:09:58 +08:00
										 |  |  | 		void btreeBackSubstitute(const boost::shared_ptr<const BayesTree::Clique>& current, VectorValues& config) const; | 
					
						
							| 
									
										
										
										
											2010-07-13 05:34:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	public : | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		GaussianJunctionTree() : Base() {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// constructor
 | 
					
						
							| 
									
										
										
										
											2010-10-09 06:04:47 +08:00
										 |  |  | 		GaussianJunctionTree(const GaussianFactorGraph& fg) : Base(fg) {} | 
					
						
							| 
									
										
										
										
											2010-07-13 05:34:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// optimize the linear graph
 | 
					
						
							| 
									
										
										
										
											2010-10-09 11:09:58 +08:00
										 |  |  | 		VectorValues optimize() const; | 
					
						
							| 
									
										
										
										
											2010-07-13 05:34:03 +08:00
										 |  |  | 	}; // GaussianJunctionTree
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace gtsam
 |