本文整理汇总了C++中DFA::score_from_mask_increments方法的典型用法代码示例。如果您正苦于以下问题:C++ DFA::score_from_mask_increments方法的具体用法?C++ DFA::score_from_mask_increments怎么用?C++ DFA::score_from_mask_increments使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DFA
的用法示例。
在下文中一共展示了DFA::score_from_mask_increments方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Translate
Status Translate(int cmd, const DFA &dfa) const {
Status s = MakeInvalid(dfa);
for (int i = 0; i < by_state.size(); i++) {
if (by_state[i].score == NEG_INF)
continue;
for (int ch = cmd * 6; ch < (cmd + 1) * 6; ch++) {
int j = dfa.transitions[i][ch];
unsigned novelty_mask = (unsigned)dfa.mask_increments[j] & ~by_state[i].first_seen_mask;
int novelty_score = 300 * __builtin_popcount(novelty_mask);
int new_score =
by_state[i].score +
dfa.score_from_mask_increments(dfa.mask_increments[j]) +
novelty_score;
if (new_score > s.by_state[j].score) {
s.by_state[j].score = new_score;
s.by_state[j].first_seen_mask =
(unsigned)dfa.mask_increments[j] | by_state[i].first_seen_mask;
s.by_state[j].best = AppendToChain(by_state[i].best, ch);
}
}
}
return s;
}