| 
									
										
										
										
											2009-10-29 13:39:13 +08:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * SymbolicFactorGraph.cpp | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *  Created on: Oct 29, 2009 | 
					
						
							|  |  |  |  *      Author: Frank Dellaert | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <boost/foreach.hpp>
 | 
					
						
							| 
									
										
										
										
											2009-10-30 11:48:32 +08:00
										 |  |  | #include "Ordering.h"
 | 
					
						
							| 
									
										
										
										
											2009-10-29 13:39:13 +08:00
										 |  |  | #include "SymbolicFactorGraph.h"
 | 
					
						
							| 
									
										
										
										
											2009-11-01 03:53:20 +08:00
										 |  |  | #include "SymbolicBayesNet.h"
 | 
					
						
							| 
									
										
										
										
											2009-11-12 12:56:30 +08:00
										 |  |  | #include "inference-inl.h"
 | 
					
						
							| 
									
										
										
										
											2009-10-29 13:39:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | using namespace std; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace gtsam { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-30 13:45:22 +08:00
										 |  |  | 	// Explicitly instantiate so we don't have to include everywhere
 | 
					
						
							|  |  |  | 	template class FactorGraph<SymbolicFactor>; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 12:56:30 +08:00
										 |  |  | 	/* ************************************************************************* */ | 
					
						
							|  |  |  |   boost::shared_ptr<SymbolicConditional> | 
					
						
							|  |  |  |   SymbolicFactorGraph::eliminateOne(const std::string& key){ | 
					
						
							|  |  |  | 		return gtsam::eliminateOne<SymbolicFactor,SymbolicConditional>(*this, key); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-29 13:39:13 +08:00
										 |  |  | 	/* ************************************************************************* */ | 
					
						
							| 
									
										
										
										
											2009-11-09 15:04:26 +08:00
										 |  |  | 	SymbolicBayesNet | 
					
						
							| 
									
										
										
										
											2009-10-30 11:48:32 +08:00
										 |  |  | 	SymbolicFactorGraph::eliminate(const Ordering& ordering) | 
					
						
							| 
									
										
										
										
											2009-10-29 22:34:34 +08:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2009-11-09 15:04:26 +08:00
										 |  |  | 		SymbolicBayesNet bayesNet; | 
					
						
							| 
									
										
										
										
											2009-10-29 22:34:34 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-30 11:48:32 +08:00
										 |  |  | 		BOOST_FOREACH(string key, ordering) { | 
					
						
							| 
									
										
										
										
											2009-11-08 03:31:39 +08:00
										 |  |  | 			SymbolicConditional::shared_ptr conditional = | 
					
						
							| 
									
										
										
										
											2009-11-12 12:56:30 +08:00
										 |  |  | 					gtsam::eliminateOne<SymbolicFactor,SymbolicConditional>(*this,key); | 
					
						
							| 
									
										
										
										
											2009-11-09 15:04:26 +08:00
										 |  |  | 			bayesNet.push_back(conditional); | 
					
						
							| 
									
										
										
										
											2009-10-30 11:48:32 +08:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2009-11-02 11:50:30 +08:00
										 |  |  | 		return bayesNet; | 
					
						
							| 
									
										
										
										
											2009-10-29 22:34:34 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-29 13:39:13 +08:00
										 |  |  | 	/* ************************************************************************* */ | 
					
						
							|  |  |  | } |