SHOGUN
v3.2.0
|
Go to the source code of this file.
Classes | |
struct | node< P > |
struct | ds_node< P > |
struct | d_node< P > |
Defines | |
#define | NDEBUG |
Functions | |
float | dist_of_scale (int s) |
int | get_scale (float d) |
template<class P > | |
node< P > | new_node (const P &p) |
template<class P > | |
node< P > | new_leaf (const P &p) |
template<class P > | |
float | max_set (v_array< ds_node< P > > &v) |
void | print_space (int s) |
template<class P > | |
void | print (int depth, node< P > &top_node) |
template<class P > | |
void | split (v_array< ds_node< P > > &point_set, v_array< ds_node< P > > &far_set, int max_scale) |
template<class P > | |
void | dist_split (v_array< ds_node< P > > &point_set, v_array< ds_node< P > > &new_point_set, P new_point, int max_scale) |
template<class P > | |
node< P > | batch_insert (const P &p, int max_scale, int top_scale, v_array< ds_node< P > > &point_set, v_array< ds_node< P > > &consumed_set, v_array< v_array< ds_node< P > > > &stack) |
template<class P > | |
node< P > | batch_create (v_array< P > points) |
void | add_height (int d, v_array< int > &heights) |
template<class P > | |
int | height_dist (const node< P > top_node, v_array< int > &heights) |
template<class P > | |
void | depth_dist (int top_scale, const node< P > top_node, v_array< int > &depths) |
template<class P > | |
void | breadth_dist (const node< P > top_node, v_array< int > &breadths) |
template<class P > | |
float | compare (const d_node< P > *p1, const d_node< P > *p2) |
template<class P > | |
void | halfsort (v_array< d_node< P > > cover_set) |
template<class P > | |
v_array< v_array< d_node< P > > > | get_cover_sets (v_array< v_array< v_array< d_node< P > > > > &spare_cover_sets) |
bool | shell (float parent_query_dist, float child_parent_dist, float upper_bound) |
void | update_k (float *k_upper_bound, float upper_bound) |
float * | alloc_k () |
void | set_k (float *begin, float max) |
void | update_epsilon (float *upper_bound, float new_dist) |
float * | alloc_epsilon () |
void | set_epsilon (float *begin, float max) |
void | update_unequal (float *upper_bound, float new_dist) |
void | set_unequal (float *begin, float max) |
template<class P > | |
void | copy_zero_set (node< P > *query_chi, float *new_upper_bound, v_array< d_node< P > > &zero_set, v_array< d_node< P > > &new_zero_set) |
template<class P > | |
void | copy_cover_sets (node< P > *query_chi, float *new_upper_bound, v_array< v_array< d_node< P > > > &cover_sets, v_array< v_array< d_node< P > > > &new_cover_sets, int current_scale, int max_scale) |
template<class P > | |
void | print_query (const node< P > *top_node) |
template<class P > | |
void | print_cover_sets (v_array< v_array< d_node< P > > > &cover_sets, v_array< d_node< P > > &zero_set, int current_scale, int max_scale) |
template<class P > | |
void | descend (const node< P > *query, float *upper_bound, int current_scale, int &max_scale, v_array< v_array< d_node< P > > > &cover_sets, v_array< d_node< P > > &zero_set) |
template<class P > | |
void | brute_nearest (const node< P > *query, v_array< d_node< P > > zero_set, float *upper_bound, v_array< v_array< P > > &results, v_array< v_array< d_node< P > > > &spare_zero_sets) |
template<class P > | |
void | internal_batch_nearest_neighbor (const node< P > *query, v_array< v_array< d_node< P > > > &cover_sets, v_array< d_node< P > > &zero_set, int current_scale, int max_scale, float *upper_bound, v_array< v_array< P > > &results, v_array< v_array< v_array< d_node< P > > > > &spare_cover_sets, v_array< v_array< d_node< P > > > &spare_zero_sets) |
template<class P > | |
void | batch_nearest_neighbor (const node< P > &top_node, const node< P > &query, v_array< v_array< P > > &results) |
template<class P > | |
void | k_nearest_neighbor (const node< P > &top_node, const node< P > &query, v_array< v_array< P > > &results, int k) |
template<class P > | |
void | epsilon_nearest_neighbor (const node< P > &top_node, const node< P > &query, v_array< v_array< P > > &results, float epsilon) |
template<class P > | |
void | unequal_nearest_neighbor (const node< P > &top_node, const node< P > &query, v_array< v_array< P > > &results) |
Variables | |
static float | base = 1.3 |
static float | il2 = 1. / log(base) |
int | internal_k = 1 |
float | internal_epsilon = 0. |
float *(* | alloc_unequal )() = alloc_epsilon |
void(* | update )(float *foo, float bar) = update_k |
void(* | setter )(float *foo, float bar) = set_k |
float *(* | alloc_upper )() = alloc_k |
#define NDEBUG |
Definition at line 9 of file JLCoverTree.h.
void add_height | ( | int | d, |
v_array< int > & | heights | ||
) |
Definition at line 325 of file JLCoverTree.h.
float* alloc_epsilon | ( | ) |
Definition at line 506 of file JLCoverTree.h.
float* alloc_k | ( | ) |
Definition at line 494 of file JLCoverTree.h.
node<P> batch_create | ( | v_array< P > | points | ) |
Definition at line 292 of file JLCoverTree.h.
node<P> batch_insert | ( | const P & | p, |
int | max_scale, | ||
int | top_scale, | ||
v_array< ds_node< P > > & | point_set, | ||
v_array< ds_node< P > > & | consumed_set, | ||
v_array< v_array< ds_node< P > > > & | stack | ||
) |
Definition at line 195 of file JLCoverTree.h.
void batch_nearest_neighbor | ( | const node< P > & | top_node, |
const node< P > & | query, | ||
v_array< v_array< P > > & | results | ||
) |
Definition at line 784 of file JLCoverTree.h.
void breadth_dist | ( | const node< P > | top_node, |
v_array< int > & | breadths | ||
) |
Definition at line 367 of file JLCoverTree.h.
void brute_nearest | ( | const node< P > * | query, |
v_array< d_node< P > > | zero_set, | ||
float * | upper_bound, | ||
v_array< v_array< P > > & | results, | ||
v_array< v_array< d_node< P > > > & | spare_zero_sets | ||
) |
Definition at line 696 of file JLCoverTree.h.
Definition at line 393 of file JLCoverTree.h.
void copy_cover_sets | ( | node< P > * | query_chi, |
float * | new_upper_bound, | ||
v_array< v_array< d_node< P > > > & | cover_sets, | ||
v_array< v_array< d_node< P > > > & | new_cover_sets, | ||
int | current_scale, | ||
int | max_scale | ||
) |
Definition at line 555 of file JLCoverTree.h.
void copy_zero_set | ( | node< P > * | query_chi, |
float * | new_upper_bound, | ||
v_array< d_node< P > > & | zero_set, | ||
v_array< d_node< P > > & | new_zero_set | ||
) |
Definition at line 531 of file JLCoverTree.h.
void depth_dist | ( | int | top_scale, |
const node< P > | top_node, | ||
v_array< int > & | depths | ||
) |
Definition at line 356 of file JLCoverTree.h.
void descend | ( | const node< P > * | query, |
float * | upper_bound, | ||
int | current_scale, | ||
int & | max_scale, | ||
v_array< v_array< d_node< P > > > & | cover_sets, | ||
v_array< d_node< P > > & | zero_set | ||
) |
Definition at line 636 of file JLCoverTree.h.
float dist_of_scale | ( | int | s | ) |
Definition at line 87 of file JLCoverTree.h.
void dist_split | ( | v_array< ds_node< P > > & | point_set, |
v_array< ds_node< P > > & | new_point_set, | ||
P | new_point, | ||
int | max_scale | ||
) |
Definition at line 164 of file JLCoverTree.h.
void epsilon_nearest_neighbor | ( | const node< P > & | top_node, |
const node< P > & | query, | ||
v_array< v_array< P > > & | results, | ||
float | epsilon | ||
) |
Definition at line 837 of file JLCoverTree.h.
v_array<v_array<d_node<P> > > get_cover_sets | ( | v_array< v_array< v_array< d_node< P > > > > & | spare_cover_sets | ) |
Definition at line 460 of file JLCoverTree.h.
int get_scale | ( | float | d | ) |
Definition at line 92 of file JLCoverTree.h.
Definition at line 399 of file JLCoverTree.h.
int height_dist | ( | const node< P > | top_node, |
v_array< int > & | heights | ||
) |
Definition at line 334 of file JLCoverTree.h.
void internal_batch_nearest_neighbor | ( | const node< P > * | query, |
v_array< v_array< d_node< P > > > & | cover_sets, | ||
v_array< d_node< P > > & | zero_set, | ||
int | current_scale, | ||
int | max_scale, | ||
float * | upper_bound, | ||
v_array< v_array< P > > & | results, | ||
v_array< v_array< v_array< d_node< P > > > > & | spare_cover_sets, | ||
v_array< v_array< d_node< P > > > & | spare_zero_sets | ||
) |
Definition at line 732 of file JLCoverTree.h.
void k_nearest_neighbor | ( | const node< P > & | top_node, |
const node< P > & | query, | ||
v_array< v_array< P > > & | results, | ||
int | k | ||
) |
Definition at line 825 of file JLCoverTree.h.
Definition at line 113 of file JLCoverTree.h.
Definition at line 106 of file JLCoverTree.h.
Definition at line 98 of file JLCoverTree.h.
Definition at line 129 of file JLCoverTree.h.
void print_cover_sets | ( | v_array< v_array< d_node< P > > > & | cover_sets, |
v_array< d_node< P > > & | zero_set, | ||
int | current_scale, | ||
int | max_scale | ||
) |
Definition at line 596 of file JLCoverTree.h.
void print_query | ( | const node< P > * | top_node | ) |
Definition at line 584 of file JLCoverTree.h.
void print_space | ( | int | s | ) |
Definition at line 122 of file JLCoverTree.h.
void set_epsilon | ( | float * | begin, |
float | max | ||
) |
Definition at line 510 of file JLCoverTree.h.
void set_k | ( | float * | begin, |
float | max | ||
) |
Definition at line 498 of file JLCoverTree.h.
void set_unequal | ( | float * | begin, |
float | max | ||
) |
Definition at line 521 of file JLCoverTree.h.
bool shell | ( | float | parent_query_dist, |
float | child_parent_dist, | ||
float | upper_bound | ||
) |
Definition at line 471 of file JLCoverTree.h.
void split | ( | v_array< ds_node< P > > & | point_set, |
v_array< ds_node< P > > & | far_set, | ||
int | max_scale | ||
) |
Definition at line 147 of file JLCoverTree.h.
void unequal_nearest_neighbor | ( | const node< P > & | top_node, |
const node< P > & | query, | ||
v_array< v_array< P > > & | results | ||
) |
Definition at line 849 of file JLCoverTree.h.
void update_epsilon | ( | float * | upper_bound, |
float | new_dist | ||
) |
Definition at line 505 of file JLCoverTree.h.
void update_k | ( | float * | k_upper_bound, |
float | upper_bound | ||
) |
Definition at line 478 of file JLCoverTree.h.
void update_unequal | ( | float * | upper_bound, |
float | new_dist | ||
) |
Definition at line 515 of file JLCoverTree.h.
float*(* alloc_unequal)() = alloc_epsilon |
Definition at line 520 of file JLCoverTree.h.
float*(* alloc_upper)() = alloc_k |
Definition at line 528 of file JLCoverTree.h.
float base = 1.3 [static] |
Definition at line 82 of file JLCoverTree.h.
Definition at line 85 of file JLCoverTree.h.
float internal_epsilon = 0. |
Definition at line 504 of file JLCoverTree.h.
int internal_k = 1 |
Definition at line 477 of file JLCoverTree.h.
Definition at line 527 of file JLCoverTree.h.
Definition at line 526 of file JLCoverTree.h.