kdtree.h
Go to the documentation of this file.
1 /* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 /* ====================================================================
3  * Copyright (c) 2005 Carnegie Mellon University. All rights
4  * reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in
15  * the documentation and/or other materials provided with the
16  * distribution.
17  *
18  * This work was supported in part by funding from the Defense Advanced
19  * Research Projects Agency and the National Science Foundation of the
20  * United States of America, and the CMU Sphinx Speech Consortium.
21  *
22  * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND
23  * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
24  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
25  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY
26  * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33  *
34  * ====================================================================
35  *
36  */
37 /*********************************************************************
38  *
39  * File: kdtree.h
40  *
41  * Description: Cut-down kd-trees for Sphinx2 decoding
42  *
43  * Author: David Huggins-Daines <dhuggins@cs.cmu.edu>
44  *
45  *********************************************************************/
46 
47 #ifndef __KDTREE_H__
48 #define __KDTREE_H__
49 
50 #include "s3types.h"
51 
52 
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 #if 0
57 /* Fool Emacs. */
58 }
59 #endif
60 
63  uint8 *bbi; /* BBI list of intersecting Gaussians */
64  /* FIXME: Should be mfcc_t */
65  float32 split_plane;
66  uint16 n_bbi, split_comp;
67  uint16 left, right; /* Indices of left and right child nodes */
68 };
69 typedef struct kd_tree_s kd_tree_t;
70 struct kd_tree_s {
73 };
74 
75 int32 read_kd_trees(const char *infile, kd_tree_t ***out_trees, uint32 *out_n_trees,
76  uint32 maxdepth, int32 maxbbi);
77 void free_kd_tree(kd_tree_t *tree);
78 /* FIXME: Should be mfcc_t */
79 kd_tree_node_t *eval_kd_tree(kd_tree_t *tree, float32 *feat, uint32 maxdepth);
80 
81 #ifdef __cplusplus
82 }
83 #endif
84 
85 
86 #endif /* __KDTREE_H__ */
uint32 n_level
Definition: kdtree.h:71
void free_kd_tree(kd_tree_t *tree)
uint8 * bbi
Definition: kdtree.h:63
uint16 right
Definition: kdtree.h:67
Size definition of semantically units. Common for both s3 and s3.X decoder.
uint16 split_comp
Definition: kdtree.h:66
Definition: kdtree.h:62
kd_tree_node_t * eval_kd_tree(kd_tree_t *tree, float32 *feat, uint32 maxdepth)
int32 read_kd_trees(const char *infile, kd_tree_t ***out_trees, uint32 *out_n_trees, uint32 maxdepth, int32 maxbbi)
uint32 n_comp
Definition: kdtree.h:71
Definition: kdtree.h:70
kd_tree_node_t * nodes
Definition: kdtree.h:72
uint16 n_bbi
Definition: kdtree.h:66
uint16 left
Definition: kdtree.h:67
uint32 n_nodes
Definition: kdtree.h:71
float32 split_plane
Definition: kdtree.h:65