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