corpus_count_t n_1){
/* Note: re-check this, to see if we can remove if statement. */
/* Please consider B_2 is no less than 2 in paper. */
+#if 0
if ( 0 == T - n_1 && 0 == N - n_0 - n_1 )
return 2;
+#endif
parameter_t B = (T - n_1 ) / (parameter_t) (N - n_0 - n_1);
return B;
return alpha * (1 - gamma);
if ( k > 1 ) {
- return alpha * gamma / (B - 1) * pow((1 - 1 / (B - 1)) , k - 2);
+ return (alpha * gamma / (B - 1)) * pow((1 - 1 / (B - 1)) , k - 2);
}
assert(false);
item->m_item.m_n_1);
}
+ if ( fabs(remained_poss) < DBL_EPSILON )
+ remained_poss = 0.;
+
/* wrong remained possibility. */
if (remained_poss < 0) {
- fprintf(stderr, "wrong remained possibility is found.\n");
+ fprintf(stderr, "wrong remained possibility is found:%f.\n",
+ remained_poss);
fprintf(stderr, "k:%d N:%d WC:%d n_0:%d n_1:%d\n",
g_prune_k, magic_header->m_N, item->m_item.m_WC,
magic_header->m_N - item->m_item.m_N_n_0,