Skip to content
Snippets Groups Projects
Commit 27013108 authored by Dmitriy Morozov's avatar Dmitriy Morozov
Browse files

Don't pick the boundaries as split points in kdtree

parent 05fe0b2e
No related merge requests found
...@@ -445,15 +445,18 @@ enqueue_exchange(Block* b, const diy::ReduceProxy& srp, int dim, const Histogram ...@@ -445,15 +445,18 @@ enqueue_exchange(Block* b, const diy::ReduceProxy& srp, int dim, const Histogram
size_t cur = 0; size_t cur = 0;
float width = (link->core().max[dim] - link->core().min[dim])/bins_; float width = (link->core().max[dim] - link->core().min[dim])/bins_;
float split = 0; float split = 0;
for (size_t i = 0; i < histogram.size(); ++i) size_t i = 0;
for (; i < histogram.size(); ++i)
{ {
if (cur + histogram[i] > total/2) if (cur + histogram[i] > total/2)
{
split = link->core().min[dim] + width*i;
break; break;
}
cur += histogram[i]; cur += histogram[i];
} }
if (i == 0)
++i;
else if (i >= histogram.size() - 1)
i = histogram.size() - 2;
split = link->core().min[dim] + width*i;
log->trace("Found split: {} (dim={}) in {} - {}", split, dim, link->core().min[dim], link->core().max[dim]); log->trace("Found split: {} (dim={}) in {} - {}", split, dim, link->core().min[dim], link->core().max[dim]);
// subset and enqueue // subset and enqueue
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment