bufferkdtree (C sources)
C source code for the Python bufferkdtree implementation
 All Classes Files Functions Variables Typedefs Macros
kdtree.h
Go to the documentation of this file.
1 /*
2  * kdtree.h
3  *
4  * Copyright (C) 2013-2016 Fabian Gieseke <fabian.gieseke@di.ku.dk>
5  * License: GPL v2
6  *
7  */
8 
9 #ifndef NEIGHBORS_KDTREE_INCLUDE_KDTREE_H_
10 #define NEIGHBORS_KDTREE_INCLUDE_KDTREE_H_
11 
12 #include <stdlib.h>
13 #include <assert.h>
14 #include <math.h>
15 #include <stdio.h>
16 
17 #include "global.h"
18 #include "util.h"
19 
20 #include "../../../include/util.h"
21 
22 
33  int kd_tree_depth,
34  FLOAT_TYPE *Xtrain,
35  int nXtrain,
36  int dXtrain);
37 
44 
52  KD_TREE_PARAMETERS *params);
53 
65  KD_TREE_PARAMETERS *params,
66  int left,
67  int right,
68  int idx,
69  int depth);
70 
80 void kd_tree_query_tree_sequential(FLOAT_TYPE *test_pattern,
81  FLOAT_TYPE *d_min,
82  int *idx_min,
83  int K,
84  KD_TREE_RECORD *record);
85 
99 void kd_tree_brute_force_leaf(void *XI,
100  int dim,
101  int fr_idx,
102  int to_idx,
103  FLOAT_TYPE *test_pattern,
104  FLOAT_TYPE *d_min,
105  int *idx_min,
106  int K);
107 
117 int kd_tree_find_best_split(int depth,
118  int left,
119  int right,
121  KD_TREE_PARAMETERS *params);
122 
130 
142  int left,
143  int right,
144  int axis,
145  int dim);
146 
158 void kd_tree_insert(FLOAT_TYPE pattern_dist,
159  int pattern_idx,
160  FLOAT_TYPE *nearest_dist,
161  int *nearest_idx,
162  int K);
163 
164 #endif /* NEIGHBORS_KDTREE_INCLUDE_KDTREE_H_ */
void kd_tree_insert(FLOAT_TYPE pattern_dist, int pattern_idx, FLOAT_TYPE *nearest_dist, int *nearest_idx, int K)
Definition: kdtree.c:415
Definition: global.h:37
void kd_tree_free_tree_record(KD_TREE_RECORD *record)
Definition: kdtree.c:42
INT_TYPE kd_tree_split_training_patterns_via_pivot(void *XI, INT_TYPE left, INT_TYPE right, INT_TYPE axis, INT_TYPE dim)
Definition: kdtree.c:189
void kd_tree_generate_training_patterns_indices(void *XI, FLOAT_TYPE *X, INT_TYPE n, INT_TYPE dim)
Definition: kdtree.c:158
Definition: global.h:18
void kd_tree_find_best_split(int depth, int left, int right, TREE_RECORD *tree_record, TREE_PARAMETERS *params, int *axis, int *pivot_idx, FLOAT_TYPE *splitting_value)
Definition: kdtree.c:37
void kd_tree_build_recursive(TREE_RECORD *tree_record, TREE_PARAMETERS *params, INT_TYPE left, INT_TYPE right, INT_TYPE idx, INT_TYPE depth)
Definition: kdtree.c:120
void kd_tree_init_tree_record(KD_TREE_RECORD *record, int kd_tree_depth, FLOAT_TYPE *Xtrain, int nXtrain, int dXtrain)
Definition: kdtree.c:20
#define FLOAT_TYPE
Definition: float.h:17
void kd_tree_brute_force_leaf(void *XI, int dim, int fr_idx, int to_idx, FLOAT_TYPE *test_pattern, FLOAT_TYPE *d_min, int *idx_min, int K)
Definition: kdtree.c:250
void kd_tree_build_tree(TREE_RECORD *tree_record, TREE_PARAMETERS *params)
Definition: kdtree.c:18
void kd_tree_query_tree_sequential(FLOAT_TYPE *test_pattern, FLOAT_TYPE *d_min, int *idx_min, int K, KD_TREE_RECORD *record)
Definition: kdtree.c:116