00001 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 #ifndef __SENT_GAUSSIAN_PRUNE__
00030 #define __SENT_GAUSSIAN_PRUNE__
00031 
00042 enum{GPRUNE_SEL_UNDEF, GPRUNE_SEL_NONE, GPRUNE_SEL_SAFE, GPRUNE_SEL_HEURISTIC, GPRUNE_SEL_BEAM};
00043 
00045 typedef struct {
00046   LOGPROB score;                
00047   unsigned short id;            
00048 } MIXCACHE;
00049 
00057 #define TMBEAMWIDTH 5.0
00058 
00059 
00060 int cache_push(int id, LOGPROB score, int len);
00061 
00062 LOGPROB compute_g_base(HTK_HMM_Dens *binfo);
00063 boolean gprune_none_init();
00064 void gprune_none_free();
00065 void gprune_none(HTK_HMM_Dens **g, int num, int *last_id);
00066 
00067 LOGPROB compute_g_safe(HTK_HMM_Dens *binfo, LOGPROB thres);
00068 boolean gprune_safe_init();
00069 void gprune_safe_free();
00070 void gprune_safe(HTK_HMM_Dens **g, int gnum, int *last_id);
00071 
00072 boolean gprune_heu_init();
00073 void gprune_heu_free();
00074 void gprune_heu(HTK_HMM_Dens **g, int gnum, int *last_id);
00075 
00076 boolean gprune_beam_init();
00077 void gprune_beam_free();
00078 void gprune_beam(HTK_HMM_Dens **g, int gnum, int *last_id);
00079 
00080 
00081 #endif