diff options
author | graehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-07-09 15:12:46 +0000 |
---|---|---|
committer | graehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-07-09 15:12:46 +0000 |
commit | 31d21ec50cb9689a73ee58617d282741396ca510 (patch) | |
tree | 403fcb8f0832a3098d1ca4334c3a57b71476a385 | |
parent | f4baa1d18527bdec27a4f122a9c52c1596332ca2 (diff) |
exhaustive rather than cube, if ModelSet is stateless
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@195 ec762483-ff6d-05da-a07a-a48fb63a330f
-rw-r--r-- | decoder/apply_models.cc | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/decoder/apply_models.cc b/decoder/apply_models.cc index 0b667de0..78f37e68 100644 --- a/decoder/apply_models.cc +++ b/decoder/apply_models.cc @@ -408,18 +408,17 @@ void ApplyModelSet(const Hypergraph& in, const ModelSet& models, const IntersectionConfiguration& config, Hypergraph* out) { - // TODO special handling when all models are stateless - if (config.algorithm == 1) { + if (models.stateless() && config.algorithm == 0) { + NoPruningRescorer ma(models, smeta, in, out); // avoid overhead of best-first when no state + ma.Apply(); + } else if (config.algorithm == 1) { int pl = config.pop_limit; if (pl > 100 && in.nodes_.size() > 80000) { - cerr << " Note: reducing pop_limit to " << pl << " for very large forest\n"; pl = 30; + cerr << " Note: reducing pop_limit to " << pl << " for very large forest\n"; } CubePruningRescorer ma(models, smeta, in, pl, out); ma.Apply(); - } else if (config.algorithm == 0) { - NoPruningRescorer ma(models, smeta, in, out); - ma.Apply(); } else { cerr << "Don't understand intersection algorithm " << config.algorithm << endl; exit(1); |