- if (si->entries[i].rank_flag && (lu = si->entries[i].local_occur))
- score += (2+log2_int (lu)) * si->entries[i].global_inv;
- logf (LOG_DEBUG, " dividend=%d", 60*score);
- logf (LOG_DEBUG, " divisor=%d", si->no_rank_entries * log2_int (4+si->last_pos));
- score = (60 * score)/(si->no_rank_entries * log2_int (4+si->last_pos));
+ if (si->entries[i].rank_flag && (lo = si->entries[i].local_occur))
+ score += (8+log2_int (lo)) * si->entries[i].global_inv;
+ score *= 34;
+ divisor = si->no_rank_entries * (8+log2_int (si->last_pos/si->no_entries));
+ score = score / divisor;
+ if (score > 1000)
+ score = 1000;