00001 00017 #ifndef KDTREE_H 00018 #define KDTREE_H 00019 00020 #ifndef HUGE 00021 #define HUGE 1.7e308 00022 #endif 00023 00041 typedef struct kdnode 00042 { 00043 int bucket ; 00044 int cutdim ; 00045 double cutval ; 00046 struct kdnode* loson ; 00047 struct kdnode* hison ; 00048 int lopt ; 00049 int hipt ; 00050 } kdnode; 00051 00061 typedef struct infokdnode 00062 { 00063 int cutdim ; 00064 double cutval ; 00065 int lopt_l ; 00066 int hipt_l ; 00067 int lopt_h ; 00068 int hipt_h ; 00069 } infokdnode; 00070 00079 typedef struct kdtree 00080 { 00081 double** y ; 00082 int n ; 00083 int k ; 00084 int* perm ; 00085 kdnode* root ; 00086 } kdtree; 00087 00088 // PUBLIC FUNCTIONS DECLARATION. 00089 extern kdtree* newtdkdtree(); 00090 extern int tdnn(); 00091 extern void destroytdkdtree(); 00092 #endif