densitytreeleaf.cpp

来自「dysii是一款非常出色的滤波函数库」· C++ 代码 · 共 56 行

CPP
56
字号
#include "DensityTreeLeaf.hpp"#include "Random.hpp"using namespace indii::ml::aux;DensityTreeLeaf::DensityTreeLeaf() {  //}DensityTreeLeaf::DensityTreeLeaf(const vector& lower, const vector& upper,    const double weight, const double volume) :    DensityTreeNode(lower, upper, weight, volume) {  //}DensityTreeLeaf::~DensityTreeLeaf() {  //}vector DensityTreeLeaf::sumExpectation() {  return getWeight() * (getLower() + getUpper()) / 2.0;}symmetric_matrix DensityTreeLeaf::sumCovariance() {  vector diff(getUpper() - getLower());  vector mu((getLower() + getUpper()) / 2.0);    return getWeight() * (outer_prod(diff, diff) / 12.0  + outer_prod(mu, mu));}vector DensityTreeLeaf::sample(const double u) {  /* pre-condition */  assert (u >= 0.0 && u <= getWeight());  const vector& lower = getLower();  const vector& upper = getUpper();  const unsigned int N = lower.size();  vector s(N);  unsigned int i;    for (i = 0; i < N; i++) {    s(i) = Random::uniform(lower(i), upper(i));  }  return s;}double DensityTreeLeaf::densityAt(const vector& x) {  /* pre-condition */  assert (x.size() == getLower().size());  return getDensity();}

⌨️ 快捷键说明

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