15 #include <boost/multi_array.hpp>
16 #include <boost/array.hpp>
108 int r_count(std::vector<double>& qv,
double r2);
157 std::vector<interval>
box;
161 void search(SearchRecord& sr);
boost::multi_array< double, 2 > KDTreeArray
friend class SearchRecord
void r_nearest_around_point(int idxin, int correltime, double r2, KDTreeResultVector &result)
KDTree(KDTreeArray &data_in, bool rearrange_in=true, int dim_in=-1)
KDTreeNode * build_tree_for_range(int l, int u, KDTreeNode *parent)
void n_nearest_brute_force(std::vector< double > &qv, int nn, KDTreeResultVector &result)
void n_nearest(std::vector< double > &qv, int nn, KDTreeResultVector &result)
KDTreeArray rearranged_data
void check_query_in_bound(SearchRecord &sr)
void spread_in_coordinate(int c, int l, int u, interval &interv)
double replace_maxpri_elt_return_new_maxpri(KDTreeResult &)
bool box_in_search_range(SearchRecord &sr)
const KDTreeArray & the_data
int r_count_around_point(int idxin, int correltime, double r2)
void select_on_coordinate(int c, int k, int l, int u)
void set_data(KDTreeArray &din)
static const int bucketsize
void push_element_and_heapify(KDTreeResult &)
void search(SearchRecord &sr)
void n_nearest_around_point(int idxin, int correltime, int nn, KDTreeResultVector &result)
void process_terminal_node(SearchRecord &sr)
int select_on_coordinate_value(int c, double alpha, int l, int u)
void r_nearest(std::vector< double > &qv, double r2, KDTreeResultVector &result)
void process_terminal_node_fixedball(SearchRecord &sr)
int r_count(std::vector< double > &qv, double r2)
boost::const_multi_array_ref< double, 2 > KDTreeROArray
std::vector< interval > box