variancepartitioner.cpp

来自「dysii is a C++ library for distributed p」· C++ 代码 · 共 43 行

CPP
43
字号
#include "VariancePartitioner.hpp"using namespace indii::ml::aux;VariancePartitioner::~VariancePartitioner() {  //}bool VariancePartitioner::init(DiracMixturePdf* p,      const std::vector<unsigned int>& is) {  /* pre-condition */  assert (is.size() >= 2);      unsigned int i;  double W = p->getTotalWeight();  vector& first = p->get(is[0]);  double w = p->getWeight(is[0]);  vector mu(w * first);  vector sigma(w * element_prod(first, first));  for (i = 1; i < is.size(); i++) {    vector& x(p->get(is[i]));    w = p->getWeight(is[i]);        noalias(mu) += w * x;    noalias(sigma) += w * element_prod(x,x);  }  noalias(sigma) -= element_prod(mu, mu);  mu /= W;  sigma /= W;  /* select dimension of highest variance */  this->index = index_norm_inf(sigma);    /* split on mean of given dimension */  this->value = mu(index);    return sigma(this->index) > 0.0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?