diff options
author | Chris Dyer <redpony@gmail.com> | 2009-12-26 13:24:36 -0600 |
---|---|---|
committer | Chris Dyer <redpony@gmail.com> | 2009-12-26 13:24:36 -0600 |
commit | 9620eba30344f9f50f3a836cb3a736a9268e76f8 (patch) | |
tree | d213203f9b970f5ed456a419731c98fa81a0d00d | |
parent | 3f01c8ed777aec011181dc515d9d28aa81e8530b (diff) |
minor fix for fast intersection code
-rw-r--r-- | decoder/hg_intersect.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/decoder/hg_intersect.cc b/decoder/hg_intersect.cc index e414fc19..e0e70856 100644 --- a/decoder/hg_intersect.cc +++ b/decoder/hg_intersect.cc @@ -50,10 +50,11 @@ struct RuleFilter { }; static bool FastLinearIntersect(const Lattice& target, Hypergraph* hg) { + cerr << " Fast linear-chain intersection...\n"; vector<bool> prune(hg->edges_.size(), false); set<int> cov; for (int i = 0; i < prune.size(); ++i) { - const Hypergraph::Edge& edge = hg->edges_[i]; + Hypergraph::Edge& edge = hg->edges_[i]; if (edge.Arity() == 0) { const int trg_index = edge.prev_i_; const WordID trg = target[trg_index][0].label; @@ -61,6 +62,8 @@ static bool FastLinearIntersect(const Lattice& target, Hypergraph* hg) { prune[i] = (edge.rule_->e_[0] != trg); if (!prune[i]) { cov.insert(trg_index); + swap(edge.prev_i_, edge.i_); + swap(edge.prev_j_, edge.j_); } } } |