lengthpartitioner.cpp

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

CPP
53
字号
#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 + =
减小字号Ctrl + -
显示快捷键?