46 lines
		
	
	
		
			886 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			886 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#ifndef BP_COUNTING_BP_H
							 | 
						||
| 
								 | 
							
								#define BP_COUNTING_BP_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "SPSolver.h"
							 | 
						||
| 
								 | 
							
								#include "LiftedFG.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Factor;
							 | 
						||
| 
								 | 
							
								class FgVarNode;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class CountingBPLink : public Link
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  public:
							 | 
						||
| 
								 | 
							
								    CountingBPLink (Factor* f, FgVarNode* v, unsigned c) : Link (f, v)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      edgeCount_ = c;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    unsigned getNumberOfEdges (void) const { return edgeCount_; }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  private:
							 | 
						||
| 
								 | 
							
								    unsigned edgeCount_;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class CountingBP : public SPSolver
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  public:
							 | 
						||
| 
								 | 
							
								    CountingBP (FactorGraph& fg) : SPSolver (fg) { }
							 | 
						||
| 
								 | 
							
								   ~CountingBP (void);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ParamSet        getPosterioriOf (Vid) const;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   private:
							 | 
						||
| 
								 | 
							
								     void           initializeSolver (void);
							 | 
						||
| 
								 | 
							
								     void           createLinks (void);
							 | 
						||
| 
								 | 
							
								     void           deleteJunction (Factor*, FgVarNode*);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								     void           maxResidualSchedule (void);
							 | 
						||
| 
								 | 
							
								     ParamSet       getVar2FactorMsg (const Link*) const;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								     LiftedFG*      lfg_;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // BP_COUNTING_BP_H
							 | 
						||
| 
								 | 
							
								
							 |