📄 densitytreeleaf.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -