randompartitioner.cpp
来自「dysii是一款非常出色的滤波函数库」· C++ 代码 · 共 46 行
CPP
46 行
#include "RandomPartitioner.hpp"using namespace indii::ml::aux;RandomPartitioner::~RandomPartitioner() { //}void RandomPartitioner::init(Partitioner::points& xws) { /* pre-condition */ assert (xws.size() >= 2); Partitioner::points::iterator iter, end; double lower, upper, x; const unsigned int N = xws.front()->x.size(); /* randomly select dimension */ this->index = static_cast<unsigned int>(Random::uniform(0, N)); /* split on midpoint of selected dimension */ iter = xws.begin(); end = xws.end(); lower = (*iter)->x(index); upper = lower; iter++; while (iter != end) { x = (*iter)->x(index); if (x < lower) { lower = x; } else if (x > upper) { upper = x; } iter++; } this->value = (lower + upper) / 2.0;}Partitioner::Partition RandomPartitioner::assign(const aux::vector& x) { if (x(index) <= value) { return Partitioner::LEFT; } else { return Partitioner::RIGHT; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?