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 + -
显示快捷键?