parent
							
								
									32b6bc0a37
								
							
						
					
					
						commit
						38563da342
					
				|  | @ -169,6 +169,9 @@ namespace gtsam { | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /// Convert into a decision tree
 | ||||||
|  |     DecisionTreeFactor toDecisionTreeFactor() const override { return *this; } | ||||||
|  | 
 | ||||||
|     /// Create new factor by summing all values with the same separator values
 |     /// Create new factor by summing all values with the same separator values
 | ||||||
|     DiscreteFactor::shared_ptr sum(size_t nrFrontals) const override { |     DiscreteFactor::shared_ptr sum(size_t nrFrontals) const override { | ||||||
|       return combine(nrFrontals, ADT::Ring::add); |       return combine(nrFrontals, ADT::Ring::add); | ||||||
|  |  | ||||||
|  | @ -113,6 +113,8 @@ class GTSAM_EXPORT DiscreteFactor : public Factor { | ||||||
|   virtual DiscreteFactor::shared_ptr operator*( |   virtual DiscreteFactor::shared_ptr operator*( | ||||||
|       const DiscreteFactor::shared_ptr&) const = 0; |       const DiscreteFactor::shared_ptr&) const = 0; | ||||||
| 
 | 
 | ||||||
|  |   virtual DecisionTreeFactor toDecisionTreeFactor() const = 0; | ||||||
|  | 
 | ||||||
|   /// Create new factor by summing all values with the same separator values
 |   /// Create new factor by summing all values with the same separator values
 | ||||||
|   virtual DiscreteFactor::shared_ptr sum(size_t nrFrontals) const = 0; |   virtual DiscreteFactor::shared_ptr sum(size_t nrFrontals) const = 0; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -180,6 +180,20 @@ DiscreteFactor::shared_ptr TableFactor::operator*( | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /* ************************************************************************ */ | ||||||
|  | DecisionTreeFactor TableFactor::toDecisionTreeFactor() const { | ||||||
|  |   DiscreteKeys dkeys = discreteKeys(); | ||||||
|  |   std::vector<double> table; | ||||||
|  |   for (auto i = 0; i < sparse_table_.size(); i++) { | ||||||
|  |     table.push_back(sparse_table_.coeff(i)); | ||||||
|  |   } | ||||||
|  |   gttic_(toDecisionTreeFactor_Constructor); | ||||||
|  |   // NOTE(Varun): This constructor is really expensive!!
 | ||||||
|  |   DecisionTreeFactor f(dkeys, table); | ||||||
|  |   gttoc_(toDecisionTreeFactor_Constructor); | ||||||
|  |   return f; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| /* ************************************************************************ */ | /* ************************************************************************ */ | ||||||
| TableFactor TableFactor::choose(const DiscreteValues parent_assign, | TableFactor TableFactor::choose(const DiscreteValues parent_assign, | ||||||
|                                 DiscreteKeys parent_keys) const { |                                 DiscreteKeys parent_keys) const { | ||||||
|  |  | ||||||
|  | @ -207,6 +207,9 @@ class GTSAM_EXPORT TableFactor : public DiscreteFactor { | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   /// Convert into a decisiontree
 | ||||||
|  |   DecisionTreeFactor toDecisionTreeFactor() const override; | ||||||
|  | 
 | ||||||
|   /// Create a TableFactor that is a subset of this TableFactor
 |   /// Create a TableFactor that is a subset of this TableFactor
 | ||||||
|   TableFactor choose(const DiscreteValues assignments, |   TableFactor choose(const DiscreteValues assignments, | ||||||
|                      DiscreteKeys parent_keys) const; |                      DiscreteKeys parent_keys) const; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue