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(HTK_HMM_Dens **g, int num, int *last_id);
00065 
00066 LOGPROB compute_g_safe(HTK_HMM_Dens *binfo, LOGPROB thres);
00067 boolean gprune_safe_init();
00068 void gprune_safe(HTK_HMM_Dens **g, int gnum, int *last_id);
00069 
00070 boolean gprune_heu_init();
00071 void gprune_heu(HTK_HMM_Dens **g, int gnum, int *last_id);
00072 
00073 boolean gprune_beam_init();
00074 void gprune_beam(HTK_HMM_Dens **g, int gnum, int *last_id);
00075 
00076 
00077 #endif