63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.7 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    BayesTree.cpp
 | 
						|
 * @brief   Bayes Tree is a tree of cliques of a Bayes Chain
 | 
						|
 * @author  Frank Dellaert
 | 
						|
 * @author  Michael Kaess
 | 
						|
 * @author  Viorela Ila
 | 
						|
 * @author  Richard Roberts
 | 
						|
 */
 | 
						|
 | 
						|
#include <gtsam/inference/BayesTree.h>
 | 
						|
 | 
						|
#include <iostream>
 | 
						|
 | 
						|
namespace gtsam {
 | 
						|
 | 
						|
/* ************************************************************************* */
 | 
						|
void BayesTreeCliqueStats::print(const std::string& s) const {
 | 
						|
  std::cout << s
 | 
						|
    << "avg Conditional Size: " << avgConditionalSize << std::endl
 | 
						|
    << "max Conditional Size: " << maxConditionalSize << std::endl
 | 
						|
    << "avg Separator Size: "   << avgSeparatorSize   << std::endl
 | 
						|
    << "max Separator Size: "   << maxSeparatorSize   << std::endl;
 | 
						|
}
 | 
						|
 | 
						|
/* ************************************************************************* */
 | 
						|
BayesTreeCliqueStats BayesTreeCliqueData::getStats() const
 | 
						|
{
 | 
						|
  BayesTreeCliqueStats stats;
 | 
						|
 | 
						|
  double sum = 0.0;
 | 
						|
  size_t max = 0;
 | 
						|
  for(size_t s: conditionalSizes) {
 | 
						|
    sum += (double)s;
 | 
						|
    if(s > max) max = s;
 | 
						|
  }
 | 
						|
  stats.avgConditionalSize = sum / (double)conditionalSizes.size();
 | 
						|
  stats.maxConditionalSize = max;
 | 
						|
 | 
						|
  sum = 0.0;
 | 
						|
  max = 1;
 | 
						|
  for(size_t s: separatorSizes) {
 | 
						|
    sum += (double)s;
 | 
						|
    if(s > max) max = s;
 | 
						|
  }
 | 
						|
  stats.avgSeparatorSize = sum / (double)separatorSizes.size();
 | 
						|
  stats.maxSeparatorSize = max;
 | 
						|
 | 
						|
  return stats;
 | 
						|
}
 | 
						|
 | 
						|
}
 |