35 class SlidingWindowVectorMedian;
43 std::vector<float> data;
49 windowSize(windowSize),
50 vectorSize(vectorSize),
51 data(vectorSize * windowSize, 0),
60 if (entry.size() != vectorSize)
62 throw LocalException(
"Vector of wrong size added. Execting: ")
63 << vectorSize <<
"; Actual: " << entry.size();
66 for (
size_t i = 0; i < entry.size(); i++)
68 data.at(i + currentIndex * vectorSize) = entry.at(i);
71 currentIndex = (currentIndex + 1) % windowSize;
72 fullCycle = fullCycle || currentIndex == 0;
78 std::vector<float> median;
80 for (
size_t i = 0; i < vectorSize; i++)
82 std::vector<float> samples;
84 for (
size_t n = 0; n < windowSize; n++)
86 samples.push_back(
data.at(i + n * vectorSize));
89 std::sort(samples.begin(), samples.end());