• Main Page
  • Related Pages
  • Data Structures
  • Files
  • File List
  • Globals

src/libpocketsphinx/kdtree.h

00001 /* ====================================================================
00002  * Copyright (c) 2005 Carnegie Mellon University.  All rights 
00003  * reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * 1. Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer. 
00011  *
00012  * 2. Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in
00014  *    the documentation and/or other materials provided with the
00015  *    distribution.
00016  *
00017  * This work was supported in part by funding from the Defense Advanced 
00018  * Research Projects Agency and the National Science Foundation of the 
00019  * United States of America, and the CMU Sphinx Speech Consortium.
00020  *
00021  * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND 
00022  * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
00023  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00024  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY
00025  * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00026  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
00027  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
00028  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
00029  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
00030  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
00031  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00032  *
00033  * ====================================================================
00034  *
00035  */
00036 /*********************************************************************
00037  *
00038  * File: kdtree.h
00039  * 
00040  * Description: Cut-down kd-trees for Sphinx2 decoding
00041  * 
00042  * Author: David Huggins-Daines <dhuggins@cs.cmu.edu>
00043  * 
00044  *********************************************************************/
00045 
00046 #ifndef __KDTREE_H__
00047 #define __KDTREE_H__
00048 
00049 /* SphinxBase headers. */
00050 #include <fixpoint.h>
00051 #include <fe.h>
00052 #include <prim_type.h>
00053 
00054 /* Local headers.  */
00055 #include "vector.h"
00056 
00057 typedef struct kd_tree_node_s kd_tree_node_t;
00058 struct kd_tree_node_s {
00059         uint8 *bbi; /* BBI list of intersecting Gaussians */
00060         mfcc_t split_plane;
00061         uint16 n_bbi, split_comp;
00062         uint16 left, right; /* Indices of left and right child nodes */
00063 };
00064 typedef struct kd_tree_s kd_tree_t;
00065 struct kd_tree_s {
00066         uint32 n_nodes, n_level, n_comp;
00067         kd_tree_node_t *nodes;
00068 };
00069 
00070 int32 read_kd_trees(const char *infile, kd_tree_t ***out_trees, uint32 *out_n_trees,
00071                     uint32 maxdepth, int32 maxbbi);
00072 void free_kd_tree(kd_tree_t *tree);
00073 kd_tree_node_t *eval_kd_tree(kd_tree_t *tree, mfcc_t *feat, uint32 maxdepth);
00074 
00075 #endif /* __KDTREE_H__ */

Generated on Thu Jan 27 2011 for PocketSphinx by  doxygen 1.7.1