SHOGUN
4.2.0
|
Go to the source code of this file.
Classes | |
struct | node< P > |
struct | ds_node< P > |
struct | d_node< P > |
Macros | |
#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 12 of file JLCoverTree.h.
void add_height | ( | int | d, |
v_array< int > & | heights | ||
) |
Definition at line 328 of file JLCoverTree.h.
float* alloc_epsilon | ( | ) |
Definition at line 509 of file JLCoverTree.h.
float* alloc_k | ( | ) |
Definition at line 497 of file JLCoverTree.h.
Definition at line 295 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 198 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 787 of file JLCoverTree.h.
Definition at line 370 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 699 of file JLCoverTree.h.
Definition at line 396 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 558 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 534 of file JLCoverTree.h.
Definition at line 359 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 639 of file JLCoverTree.h.
float dist_of_scale | ( | int | s | ) |
Definition at line 90 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 167 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 840 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 463 of file JLCoverTree.h.
int get_scale | ( | float | d | ) |
Definition at line 95 of file JLCoverTree.h.
Definition at line 402 of file JLCoverTree.h.
Definition at line 337 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 735 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 828 of file JLCoverTree.h.
Definition at line 116 of file JLCoverTree.h.
node<P> new_leaf | ( | const P & | p | ) |
Definition at line 109 of file JLCoverTree.h.
node<P> new_node | ( | const P & | p | ) |
Definition at line 101 of file JLCoverTree.h.
void print | ( | int | depth, |
node< P > & | top_node | ||
) |
Definition at line 132 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 599 of file JLCoverTree.h.
void print_query | ( | const node< P > * | top_node | ) |
Definition at line 587 of file JLCoverTree.h.
void print_space | ( | int | s | ) |
Definition at line 125 of file JLCoverTree.h.
void set_epsilon | ( | float * | begin, |
float | max | ||
) |
Definition at line 513 of file JLCoverTree.h.
void set_k | ( | float * | begin, |
float | max | ||
) |
Definition at line 501 of file JLCoverTree.h.
void set_unequal | ( | float * | begin, |
float | max | ||
) |
Definition at line 524 of file JLCoverTree.h.
bool shell | ( | float | parent_query_dist, |
float | child_parent_dist, | ||
float | upper_bound | ||
) |
Definition at line 474 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 150 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 852 of file JLCoverTree.h.
void update_epsilon | ( | float * | upper_bound, |
float | new_dist | ||
) |
Definition at line 508 of file JLCoverTree.h.
void update_k | ( | float * | k_upper_bound, |
float | upper_bound | ||
) |
Definition at line 481 of file JLCoverTree.h.
void update_unequal | ( | float * | upper_bound, |
float | new_dist | ||
) |
Definition at line 518 of file JLCoverTree.h.
float*(* alloc_unequal)() = alloc_epsilon |
Definition at line 523 of file JLCoverTree.h.
float*(* alloc_upper)() = alloc_k |
Definition at line 531 of file JLCoverTree.h.
|
static |
Definition at line 85 of file JLCoverTree.h.
|
static |
Definition at line 88 of file JLCoverTree.h.
float internal_epsilon =0. |
Definition at line 507 of file JLCoverTree.h.
int internal_k =1 |
Definition at line 480 of file JLCoverTree.h.
void(* setter)(float *foo, float bar) = set_k |
Definition at line 530 of file JLCoverTree.h.
void(* update)(float *foo, float bar) = update_k |
Definition at line 529 of file JLCoverTree.h.