📄 lengthpartitioner.cpp
字号:
#include "LengthPartitioner.hpp"using namespace indii::ml::aux;LengthPartitioner::~LengthPartitioner() { //}void LengthPartitioner::init(Partitioner::points& xws) { /* pre-condition */ assert (xws.size() >= 2); const unsigned int N = xws[0]->x.getDimensions(); unsigned int i; double x; vector lower(N), upper(N), length(N); Partitioner::points::iterator iter, end; /* calculate bounds */ iter = xws.begin(); end = xws.end(); assert (iter != end); noalias(lower) = (*iter)->x; noalias(upper) = lower; iter++; while (iter != end) { for (i = 0; i < N; i++) { x = (*iter)->x(i); if (x < lower(i)) { lower(i) = x; } else if (x > upper(i)) { upper(i) = x; } } iter++; } /* select longest dimension */ this->index = index_norm_inf(upper - lower); /* split on midpoint of selected dimension */ this->value = (lower(index) + upper(index)) / 2.0;}Partitioner::Partition LengthPartitioner::assign(const vector& x) { if (x(index) <= value) { return Partitioner::LEFT; } else { return Partitioner::RIGHT; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -