void clear_trans_all(Trans *trans) { int size = trans->size; set_trans(trans->trans, 0, size, FALSE); set_pi(trans->pi, 0, size, FALSE); set_gamma(trans->gamma, 0, size, FALSE); }
void init_good_turing_trans(Trans *trans) { /* Set up transitions as if we had seen one of each transition already */ int size = trans->size; set_trans(trans->trans, 1, size, FALSE); set_pi(trans->pi, 1, size, FALSE); set_gamma(trans->gamma, size, size, FALSE); }
static int read_idx_dict(const char *idx_filename, dict_t *d) { FILE *fp; head_t h; int i, j, len, tnum; char key[WLEN]; char trans_line[BUF_SIZE]; char *p; int tlen; if(d == NULL) return FALSE; fp = fopen(idx_filename, "r"); if(fp == NULL) return FALSE; fread(&h, sizeof(h), 1, fp); //DEBUG_PRINT0(h.header); printf("bin %d\n", h.nword); d->nword = h.nword; d->dict = (ditem_t *)malloc(sizeof(ditem_t) * d->nword); if(d->dict == NULL) return FALSE; for(i = 0; i < d->nword; i++){ fread(&len, sizeof(len), 1, fp); fread(key, sizeof(char), len, fp); key[len] = '\0'; set_key_word(&d->dict[i], key); fread(&tnum, sizeof(tnum), 1, fp); d->dict[i].trans_num = tnum; p = trans_line; tlen = 0; for(j = 0; j < tnum; j++){ fread(&len, sizeof(len), 1, fp); fread(p, sizeof(char), len, fp); p[len] = '@'; p += len; tlen += len; } trans_line[tlen] = '\0'; set_trans(&d->dict[i], trans_line); } fclose(fp); return TRUE; }