From 3aebcbddf91c2f5732bb92f349b1fd422b82eed0 Mon Sep 17 00:00:00 2001 From: Dongryeol Lee Date: Tue, 1 Jan 2008 20:49:24 +0000 Subject: [PATCH] quick fix to account for dataset permutation --- fastlib/u/dongryel/range_search/main.cc | 2 +- .../range_search/ortho_range_search.h | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/fastlib/u/dongryel/range_search/main.cc b/fastlib/u/dongryel/range_search/main.cc index c103d47d02..7ef3fd4ee7 100644 --- a/fastlib/u/dongryel/range_search/main.cc +++ b/fastlib/u/dongryel/range_search/main.cc @@ -19,7 +19,7 @@ int main(int argc, char *argv[]) { // if naive option is specified, do naive algorithm if(do_naive) { NaiveOrthoRangeSearch search; - search.Init(fast_search.get_data(), fast_search.get_range()); + search.Init(); search.Compute(); ArrayList naive_search_results = search.get_results(); bool flag = true; diff --git a/fastlib/u/dongryel/range_search/ortho_range_search.h b/fastlib/u/dongryel/range_search/ortho_range_search.h index 329c938758..24b22545c3 100644 --- a/fastlib/u/dongryel/range_search/ortho_range_search.h +++ b/fastlib/u/dongryel/range_search/ortho_range_search.h @@ -57,17 +57,6 @@ class NaiveOrthoRangeSearch { } } - void Init(const Matrix &data, const ArrayList &range) { - data_.Alias(data); - range_.Copy(range); - - // re-initialize boolean flag - in_range_.Init(data_.n_cols()); - for(index_t i = 0; i < data_.n_cols(); i++) { - in_range_[i] = false; - } - } - /** the main computation of naive orthogonal range search */ void Compute() { @@ -140,6 +129,17 @@ class OrthoRangeSearch { fx_timer_start(NULL, "tree_range_search"); ortho_range_search(root_, 0); fx_timer_stop(NULL, "tree_range_search"); + + // reshuffle the results to account for shuffling during tree construction + ArrayList tmp_results; + tmp_results.Init(candidate_points_.size()); + + for(index_t i = 0; i < candidate_points_.size(); i++) { + tmp_results[old_from_new_[i]] = candidate_points_[i]; + } + for(index_t i = 0; i < candidate_points_.size(); i++) { + candidate_points_[i] = tmp_results[i]; + } } void SaveTree() {