54 void n_nearest(
const std::vector<double>& qv,
const unsigned int nn,
55 std::vector<KDTreeResult>& result)
const;
65 const unsigned int ndecorrel,
66 const unsigned int nn,
67 std::vector<KDTreeResult>& result)
const;
74 void r_nearest(
const std::vector<double>& qv,
const double r2,
75 std::vector<KDTreeResult>& result)
const;
80 const unsigned int ndecorrel,
const double r2,
81 std::vector<KDTreeResult>& result)
const;
89 std::vector<size_t> m_ind;
91 static constexpr int bucketsize = 12;
95 int select_on_coordinate_value(
int c,
double alpha,
int l,
int u);
96 std::array<double, 2> spread_in_coordinate(
const int c,
const int l,
const int u)
const;
115 double cut_val_left = 0.;
116 double cut_val_right = 0.;
121 std::vector<std::array<double, 2> > box;
128 void search_n(
const int idx0,
const int nd,
129 const unsigned int nn,
double& r2,
130 const std::vector<double>& qv,
const KDTree& tree,
131 std::priority_queue<KDTreeResult>& res)
const;
132 void search_r(
const int idx0,
const int nd,
const double r2,
133 const std::vector<double>& qv,
const KDTree& tree,
134 std::vector<KDTreeResult>& res)
const;
138 bool box_in_search_range(
const double r2,
139 const std::vector<double>& qv)
const;
142 void process_terminal_node_n(
const int idx0,
const int nd,
143 const unsigned int nn,
double& r2,
144 const std::vector<double>& qv,
146 std::priority_queue<KDTreeResult>& res)
const;
147 void process_terminal_node_r(
const int idx0,
const int nd,
149 const std::vector<double>& qv,
151 std::vector<KDTreeResult>& res)
const;
const KDTreeArray & m_data
void n_nearest_around_point(const unsigned int idx, const unsigned int ndecorrel, const unsigned int nn, std::vector< KDTreeResult > &result) const
void r_nearest(const std::vector< double > &qv, const double r2, std::vector< KDTreeResult > &result) const
void n_nearest(const std::vector< double > &qv, const unsigned int nn, std::vector< KDTreeResult > &result) const
void r_nearest_around_point(const unsigned int idx, const unsigned int ndecorrel, const double r2, std::vector< KDTreeResult > &result) const
std::vector< std::vector< double > > KDTreeArray