diff options
Diffstat (limited to 'python/cdec')
| -rw-r--r-- | python/cdec/_cdec.cpp | 5937 | ||||
| -rw-r--r-- | python/cdec/_cdec.pyx | 2 | ||||
| -rw-r--r-- | python/cdec/grammar.pxd | 1 | ||||
| -rw-r--r-- | python/cdec/grammar.pxi | 18 | ||||
| -rw-r--r-- | python/cdec/hypergraph.pxi | 66 | ||||
| -rw-r--r-- | python/cdec/kbest.pxd | 8 | ||||
| -rw-r--r-- | python/cdec/mteval.pxi | 3 | ||||
| -rw-r--r-- | python/cdec/sa/_sa.cpp | 12230 | ||||
| -rw-r--r-- | python/cdec/sa/extract.py | 56 | ||||
| -rw-r--r-- | python/cdec/sa/features.py | 12 | ||||
| -rw-r--r-- | python/cdec/sa/online.py | 14 | ||||
| -rw-r--r-- | python/cdec/sa/rulefactory.pxi | 19 | 
12 files changed, 9967 insertions, 8399 deletions
diff --git a/python/cdec/_cdec.cpp b/python/cdec/_cdec.cpp index ef203fd9..03b22bb1 100644 --- a/python/cdec/_cdec.cpp +++ b/python/cdec/_cdec.cpp @@ -1,4 +1,4 @@ -/* Generated by Cython 0.19.1 on Fri Nov 15 21:03:05 2013 */ +/* Generated by Cython 0.19.1 on Sat May 17 14:41:25 2014 */  #define PY_SSIZE_T_CLEAN  #ifndef CYTHON_USE_PYLONG_INTERNALS @@ -529,54 +529,57 @@ static const char *__pyx_f[] = {  };  /*--- Type declarations ---*/ +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__;  struct __pyx_obj_4cdec_2sa_3_sa_FeatureVector; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__;  struct __pyx_obj_4cdec_5_cdec_DenseVector;  struct __pyx_obj_4cdec_5_cdec_SufficientStats; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines;  struct __pyx_obj_4cdec_5_cdec_TRule;  struct __pyx_obj_4cdec_5_cdec_MRule; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__;  struct __pyx_obj_4cdec_5_cdec_Metric; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest;  struct __pyx_obj_4cdec_2sa_3_sa_IntList;  struct __pyx_obj_4cdec_5_cdec_SparseVector; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config;  struct __pyx_obj_4cdec_5_cdec_NT;  struct __pyx_obj_4cdec_5_cdec_Lattice; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees;  struct __pyx_obj_4cdec_5_cdec_HypergraphEdge;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_2__phrase; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__;  struct __pyx_obj_4cdec_2sa_3_sa_Rule; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines;  struct __pyx_obj_4cdec_5_cdec_Scorer;  struct __pyx_obj_4cdec_5_cdec_HypergraphNode;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_10_kbest_features;  struct __pyx_obj_4cdec_5_cdec_NTRef;  struct __pyx_obj_4cdec_5_cdec_Grammar;  struct __pyx_obj_4cdec_5_cdec_Hypergraph; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__;  struct __pyx_obj_4cdec_5_cdec_CandidateSet;  struct __pyx_obj_4cdec_2sa_3_sa_FloatList; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_5___str__;  struct __pyx_obj_4cdec_5_cdec_SegmentEvaluator;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_8_kbest; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__;  struct __pyx_obj_4cdec_2sa_3_sa_Phrase; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_7___iter__; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__;  struct __pyx_obj_4cdec_5_cdec_TextGrammar; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__;  struct __pyx_obj_4cdec_5_cdec_Decoder;  struct __pyx_obj_4cdec_5_cdec_Candidate; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct____iter__;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_6_genexpr; -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees; +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_4___get__;  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_1___iter__;  struct __pyx_opt_args_4cdec_5_cdec_as_str; @@ -593,6 +596,23 @@ struct __pyx_opt_args_4cdec_5_cdec_as_str {    char *error_msg;  }; +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":44 + *         return self.stats.size() + *  + *     def __iter__(self):             # <<<<<<<<<<<<<< + *         for i in range(len(self)): + *             yield self[i] + */ +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ { +  PyObject_HEAD +  PyObject *__pyx_v_i; +  struct __pyx_obj_4cdec_5_cdec_SufficientStats *__pyx_v_self; +  Py_ssize_t __pyx_t_0; +  PyObject *__pyx_t_1; +  PyObject *(*__pyx_t_2)(PyObject *); +}; + +  /* "cdec/sa/_sa.pxd":25   *     cdef void read_handle(self, FILE* f)   *  @@ -607,23 +627,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_FeatureVector {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":90 - *         return candidate - *  - *     def __iter__(self):             # <<<<<<<<<<<<<< - *         cdef unsigned i - *         for i in range(len(self)): - */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ { -  PyObject_HEAD -  unsigned int __pyx_v_i; -  struct __pyx_obj_4cdec_5_cdec_CandidateSet *__pyx_v_self; -  Py_ssize_t __pyx_t_0; -  unsigned int __pyx_t_1; -}; - - -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":3 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":3   * from cython.operator cimport preincrement as pinc   *    * cdef class DenseVector:             # <<<<<<<<<<<<<< @@ -637,7 +641,7 @@ struct __pyx_obj_4cdec_5_cdec_DenseVector {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":26 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":26   *             return fmap   *    * cdef class SufficientStats:             # <<<<<<<<<<<<<< @@ -651,7 +655,30 @@ struct __pyx_obj_4cdec_5_cdec_SufficientStats {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":49 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":63 + *     def todot(self): + *         """lattice.todot() -> Representation of the lattice in GraphViz dot format.""" + *         def lines():             # <<<<<<<<<<<<<< + *             yield 'digraph lattice {' + *             yield 'rankdir = LR;' + */ +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines { +  PyObject_HEAD +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *__pyx_outer_scope; +  PyObject *__pyx_v_delta; +  PyObject *__pyx_v_i; +  PyObject *__pyx_v_label; +  PyObject *__pyx_v_weight; +  Py_ssize_t __pyx_t_0; +  PyObject *__pyx_t_1; +  PyObject *(*__pyx_t_2)(PyObject *); +  PyObject *__pyx_t_3; +  Py_ssize_t __pyx_t_4; +  PyObject *(*__pyx_t_5)(PyObject *); +}; + + +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":49   *     return TRule(lhs, f, e, scores, a)   *    * cdef class TRule:             # <<<<<<<<<<<<<< @@ -664,7 +691,7 @@ struct __pyx_obj_4cdec_5_cdec_TRule {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":177 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":183   *                 _phrase(self.f), _phrase(self.e), scores)   *    * cdef class MRule(TRule):             # <<<<<<<<<<<<<< @@ -676,24 +703,36 @@ struct __pyx_obj_4cdec_5_cdec_MRule {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":44 - *         return self.stats.size() +/* "cdec/_cdec.pyx":47 + *     cdef DenseVector weights + *  + *     def __init__(self, config_str=None, **config):             # <<<<<<<<<<<<<< + *         """Decoder('formalism = scfg') -> initialize from configuration string + *         Decoder(formalism='scfg') -> initialize from named parameters + */ +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ { +  PyObject_HEAD +  PyObject *__pyx_v_config; +}; + + +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":56 + *         return unicode(str(self), 'utf8')   *    *     def __iter__(self):             # <<<<<<<<<<<<<< + *         cdef unsigned i   *         for i in range(len(self)): - *             yield self[i]   */  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ {    PyObject_HEAD -  PyObject *__pyx_v_i; -  struct __pyx_obj_4cdec_5_cdec_SufficientStats *__pyx_v_self; +  unsigned int __pyx_v_i; +  struct __pyx_obj_4cdec_5_cdec_Lattice *__pyx_v_self;    Py_ssize_t __pyx_t_0; -  PyObject *__pyx_t_1; -  PyObject *(*__pyx_t_2)(PyObject *); +  unsigned int __pyx_t_1;  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":176 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":176   *         out.fields[i] = ss[i]   *    * cdef class Metric:             # <<<<<<<<<<<<<< @@ -706,6 +745,25 @@ struct __pyx_obj_4cdec_5_cdec_Metric {  }; +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":97 + *             del derivations + *  + *     def unique_kbest(self, size):             # <<<<<<<<<<<<<< + *         """hg.kbest(size) -> List of unique k-best hypotheses in the hypergraph.""" + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.FilterUnique]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.FilterUnique](self.hg[0], size) + */ +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest { +  PyObject_HEAD +  KBest::KBestDerivations<std::vector<WordID>,ESentenceTraversal,KBest::FilterUnique>::Derivation *__pyx_v_derivation; +  KBest::KBestDerivations<std::vector<WordID>,ESentenceTraversal,KBest::FilterUnique> *__pyx_v_derivations; +  unsigned int __pyx_v_k; +  struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self; +  PyObject *__pyx_v_size; +  unsigned int __pyx_t_0; +  long __pyx_t_1; +}; + +  /* "cdec/sa/_sa.pxd":12   *     cdef void read_handle(self, FILE* f)   *  @@ -723,7 +781,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_IntList {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":48 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":48   *         return sparse   *    * cdef class SparseVector:             # <<<<<<<<<<<<<< @@ -736,23 +794,30 @@ struct __pyx_obj_4cdec_5_cdec_SparseVector {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":216 +/* "cdec/_cdec.pyx":32 + *     SetSilent(yn)   *  - *     property tail_nodes: - *         def __get__(self):             # <<<<<<<<<<<<<< - *             cdef unsigned i - *             for i in range(self.edge.tail_nodes_.size()): + * def _make_config(config):             # <<<<<<<<<<<<<< + *     for key, value in config.items(): + *         if isinstance(value, dict):   */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ { +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config {    PyObject_HEAD -  unsigned int __pyx_v_i; -  struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *__pyx_v_self; -  unsigned int __pyx_t_0; -  unsigned int __pyx_t_1; +  PyObject *__pyx_v_config; +  PyObject *__pyx_v_info; +  PyObject *__pyx_v_key; +  PyObject *__pyx_v_name; +  PyObject *__pyx_v_value; +  PyObject *__pyx_t_0; +  PyObject *__pyx_t_1; +  Py_ssize_t __pyx_t_2; +  PyObject *(*__pyx_t_3)(PyObject *); +  Py_ssize_t __pyx_t_4; +  PyObject *(*__pyx_t_5)(PyObject *);  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":8 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":8   *     return ' '.join(w.encode('utf8') if isinstance(w, unicode) else str(w) for w in phrase)   *    * cdef class NT:             # <<<<<<<<<<<<<< @@ -766,7 +831,7 @@ struct __pyx_obj_4cdec_5_cdec_NT {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":3 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":3   * cimport lattice   *    * cdef class Lattice:             # <<<<<<<<<<<<<< @@ -779,30 +844,25 @@ struct __pyx_obj_4cdec_5_cdec_Lattice {  }; -/* "cdec/_cdec.pyx":32 - *     SetSilent(yn) +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":156 + *             del hypos   *  - * def _make_config(config):             # <<<<<<<<<<<<<< - *     for key, value in config.items(): - *         if isinstance(value, dict): + *     def sample_trees(self, unsigned n):             # <<<<<<<<<<<<<< + *        """hg.sample_trees(n) -> Sample of n trees from the hypergraph.""" + *        cdef vector[string]* trees = new vector[string]()   */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config { +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees {    PyObject_HEAD -  PyObject *__pyx_v_config; -  PyObject *__pyx_v_info; -  PyObject *__pyx_v_key; -  PyObject *__pyx_v_name; -  PyObject *__pyx_v_value; -  PyObject *__pyx_t_0; -  PyObject *__pyx_t_1; -  Py_ssize_t __pyx_t_2; -  PyObject *(*__pyx_t_3)(PyObject *); -  Py_ssize_t __pyx_t_4; -  PyObject *(*__pyx_t_5)(PyObject *); +  unsigned int __pyx_v_k; +  unsigned int __pyx_v_n; +  struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self; +  std::vector<std::string> *__pyx_v_trees; +  size_t __pyx_t_0; +  unsigned int __pyx_t_1;  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":196 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":244   *         return vector   *    * cdef class HypergraphEdge:             # <<<<<<<<<<<<<< @@ -818,7 +878,7 @@ struct __pyx_obj_4cdec_5_cdec_HypergraphEdge {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":5 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":5   * import cdec.sa._sa as _sa   *    * def _phrase(phrase):             # <<<<<<<<<<<<<< @@ -831,22 +891,6 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_2__phrase {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":161 - *  - *     property edges: - *         def __get__(self):             # <<<<<<<<<<<<<< - *             cdef unsigned i - *             for i in range(self.hg.edges_.size()): - */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ { -  PyObject_HEAD -  unsigned int __pyx_v_i; -  struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self; -  size_t __pyx_t_0; -  unsigned int __pyx_t_1; -}; - -  /* "cdec/sa/_sa.pxd":35   *     cdef public int chunklen(self, int k)   *  @@ -865,30 +909,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_Rule {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":63 - *     def todot(self): - *         """lattice.todot() -> Representation of the lattice in GraphViz dot format.""" - *         def lines():             # <<<<<<<<<<<<<< - *             yield 'digraph lattice {' - *             yield 'rankdir = LR;' - */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines { -  PyObject_HEAD -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *__pyx_outer_scope; -  PyObject *__pyx_v_delta; -  PyObject *__pyx_v_i; -  PyObject *__pyx_v_label; -  PyObject *__pyx_v_weight; -  Py_ssize_t __pyx_t_0; -  PyObject *__pyx_t_1; -  PyObject *(*__pyx_t_2)(PyObject *); -  PyObject *__pyx_t_3; -  Py_ssize_t __pyx_t_4; -  PyObject *(*__pyx_t_5)(PyObject *); -}; - - -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":121 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":121   *         return CandidateSet(self)   *    * cdef class Scorer:             # <<<<<<<<<<<<<< @@ -902,7 +923,7 @@ struct __pyx_obj_4cdec_5_cdec_Scorer {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":246 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":294   *         raise NotImplemented('comparison not implemented for HypergraphEdge')   *    * cdef class HypergraphNode:             # <<<<<<<<<<<<<< @@ -917,17 +938,17 @@ struct __pyx_obj_4cdec_5_cdec_HypergraphNode {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":81 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":81   *             del e_derivations   *    *     def kbest_features(self, size):             # <<<<<<<<<<<<<<   *         """hg.kbest_trees(size) -> List of k-best feature vectors in the hypergraph.""" - *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal](self.hg[0], size) + *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]](self.hg[0], size)   */  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_10_kbest_features {    PyObject_HEAD -  KBest::KBestDerivations<FastSparseVector<weight_t>,FeatureVectorTraversal>::Derivation *__pyx_v_derivation; -  KBest::KBestDerivations<FastSparseVector<weight_t>,FeatureVectorTraversal> *__pyx_v_derivations; +  KBest::KBestDerivations<FastSparseVector<weight_t>,FeatureVectorTraversal,KBest::NoFilter<FastSparseVector<double> > >::Derivation *__pyx_v_derivation; +  KBest::KBestDerivations<FastSparseVector<weight_t>,FeatureVectorTraversal,KBest::NoFilter<FastSparseVector<double> > > *__pyx_v_derivations;    struct __pyx_obj_4cdec_5_cdec_SparseVector *__pyx_v_fmap;    unsigned int __pyx_v_k;    struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self; @@ -937,7 +958,7 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_10_kbest_features {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":21 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":21   *         return '[%s]' % self.cat   *    * cdef class NTRef:             # <<<<<<<<<<<<<< @@ -950,7 +971,7 @@ struct __pyx_obj_4cdec_5_cdec_NTRef {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":193 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":199   *         super(MRule, self).__init__(lhs, rhs, e, scores, None)   *    * cdef class Grammar:             # <<<<<<<<<<<<<< @@ -963,7 +984,7 @@ struct __pyx_obj_4cdec_5_cdec_Grammar {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":4 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":4   * cimport kbest   *    * cdef class Hypergraph:             # <<<<<<<<<<<<<< @@ -978,20 +999,7 @@ struct __pyx_obj_4cdec_5_cdec_Hypergraph {  }; -/* "cdec/_cdec.pyx":47 - *     cdef DenseVector weights - *  - *     def __init__(self, config_str=None, **config):             # <<<<<<<<<<<<<< - *         """Decoder('formalism = scfg') -> initialize from configuration string - *         Decoder(formalism='scfg') -> initialize from named parameters - */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ { -  PyObject_HEAD -  PyObject *__pyx_v_config; -}; - - -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":65 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":65   *         return result   *    * cdef class CandidateSet:             # <<<<<<<<<<<<<< @@ -1023,20 +1031,33 @@ struct __pyx_obj_4cdec_2sa_3_sa_FloatList {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":62 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":61 + *             yield self[i] + *  + *     def todot(self):             # <<<<<<<<<<<<<< + *         """lattice.todot() -> Representation of the lattice in GraphViz dot format.""" + *         def lines(): + */ +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot { +  PyObject_HEAD +  struct __pyx_obj_4cdec_5_cdec_Lattice *__pyx_v_self; +}; + + +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":62   *             del derivations   *    *     def kbest_trees(self, size):             # <<<<<<<<<<<<<< - *         """hg.kbest_trees(size) -> List of k-best trees in the hypergraph.""" - *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal](self.hg[0], size) + *         """hg.kbest_trees(size) -> List of k-best trees in the hypergrapt.NoFilter.""" + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size)   */  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees {    PyObject_HEAD -  KBest::KBestDerivations<std::vector<WordID>,ETreeTraversal>::Derivation *__pyx_v_e_derivation; -  KBest::KBestDerivations<std::vector<WordID>,ETreeTraversal> *__pyx_v_e_derivations; +  KBest::KBestDerivations<std::vector<WordID>,ETreeTraversal,KBest::NoFilter<std::vector<int> > >::Derivation *__pyx_v_e_derivation; +  KBest::KBestDerivations<std::vector<WordID>,ETreeTraversal,KBest::NoFilter<std::vector<int> > > *__pyx_v_e_derivations;    PyObject *__pyx_v_e_tree; -  KBest::KBestDerivations<std::vector<WordID>,FTreeTraversal>::Derivation *__pyx_v_f_derivation; -  KBest::KBestDerivations<std::vector<WordID>,FTreeTraversal> *__pyx_v_f_derivations; +  KBest::KBestDerivations<std::vector<WordID>,FTreeTraversal,KBest::NoFilter<std::vector<int> > >::Derivation *__pyx_v_f_derivation; +  KBest::KBestDerivations<std::vector<WordID>,FTreeTraversal,KBest::NoFilter<std::vector<int> > > *__pyx_v_f_derivations;    PyObject *__pyx_v_f_tree;    unsigned int __pyx_v_k;    struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self; @@ -1046,20 +1067,7 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":61 - *             yield self[i] - *  - *     def todot(self):             # <<<<<<<<<<<<<< - *         """lattice.todot() -> Representation of the lattice in GraphViz dot format.""" - *         def lines(): - */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot { -  PyObject_HEAD -  struct __pyx_obj_4cdec_5_cdec_Lattice *__pyx_v_self; -}; - - -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":172 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":178   *             self.rule.get().lhs_ = -TDConvert((<NT> lhs).cat)   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -1072,7 +1080,7 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_5___str__ {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":100 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":100   *         self.cs.AddKBestCandidates(hypergraph.hg[0], k, self.scorer.get())   *    * cdef class SegmentEvaluator:             # <<<<<<<<<<<<<< @@ -1086,22 +1094,58 @@ struct __pyx_obj_4cdec_5_cdec_SegmentEvaluator {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":260 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":209   *  - *     property in_edges: + *     property edges:   *         def __get__(self):             # <<<<<<<<<<<<<<   *             cdef unsigned i - *             for i in range(self.node.in_edges_.size()): + *             for i in range(self.hg.edges_.size()):   */  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ {    PyObject_HEAD    unsigned int __pyx_v_i; +  struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self; +  size_t __pyx_t_0; +  unsigned int __pyx_t_1; +}; + + +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":314 + *  + *     property out_edges: + *         def __get__(self):             # <<<<<<<<<<<<<< + *             cdef unsigned i + *             for i in range(self.node.out_edges_.size()): + */ +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ { +  PyObject_HEAD +  unsigned int __pyx_v_i;    struct __pyx_obj_4cdec_5_cdec_HypergraphNode *__pyx_v_self;    size_t __pyx_t_0;    unsigned int __pyx_t_1;  }; +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":129 + *             del e_derivations + *  + *     def unique_kbest_features(self, size):             # <<<<<<<<<<<<<< + *         """hg.kbest_trees(size) -> List of unique k-best feature vectors in the hypergraph.""" + *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]](self.hg[0], size) + */ +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features { +  PyObject_HEAD +  KBest::KBestDerivations<FastSparseVector<weight_t>,FeatureVectorTraversal,KBest::NoFilter<FastSparseVector<double> > >::Derivation *__pyx_v_derivation; +  KBest::KBestDerivations<FastSparseVector<weight_t>,FeatureVectorTraversal,KBest::NoFilter<FastSparseVector<double> > > *__pyx_v_derivations; +  struct __pyx_obj_4cdec_5_cdec_SparseVector *__pyx_v_fmap; +  unsigned int __pyx_v_k; +  struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self; +  PyObject *__pyx_v_size; +  unsigned int __pyx_t_0; +  long __pyx_t_1; +}; + +  /* "cdec/_cdec.pyx":56   *                     'csplit', 'tagger', 'lexalign'):   *                 raise InvalidConfig('formalism "%s" unknown' % formalism) @@ -1109,9 +1153,9 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ {   *         cdef istringstream* config_stream = new istringstream(config_str)   *         self.dec = new decoder.Decoder(config_stream)   */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr { +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr {    PyObject_HEAD -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *__pyx_outer_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *__pyx_outer_scope;    PyObject *__pyx_v_kv;    PyObject *__pyx_t_0;    Py_ssize_t __pyx_t_1; @@ -1119,7 +1163,7 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":6 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":6   *    * def _phrase(phrase):   *     return ' '.join(w.encode('utf8') if isinstance(w, unicode) else str(w) for w in phrase)             # <<<<<<<<<<<<<< @@ -1136,35 +1180,17 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":97 - *             del derivations - *  - *     def sample(self, unsigned n):             # <<<<<<<<<<<<<< - *         """hg.sample(n) -> Sample of n hypotheses from the hypergraph.""" - *         cdef vector[hypergraph.Hypothesis]* hypos = new vector[hypergraph.Hypothesis]() - */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample { -  PyObject_HEAD -  std::vector<HypergraphSampler::Hypothesis> *__pyx_v_hypos; -  unsigned int __pyx_v_k; -  unsigned int __pyx_v_n; -  struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self; -  size_t __pyx_t_0; -  unsigned int __pyx_t_1; -}; - - -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":49 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":49   *         return unicode(hypergraph.JoshuaVisualizationString(self.hg[0]).c_str(), 'utf8')   *    *     def kbest(self, size):             # <<<<<<<<<<<<<<   *         """hg.kbest(size) -> List of k-best hypotheses in the hypergraph.""" - *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal](self.hg[0], size) + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.NoFilter[vector[int]]]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size)   */  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_8_kbest {    PyObject_HEAD -  KBest::KBestDerivations<std::vector<WordID>,ESentenceTraversal>::Derivation *__pyx_v_derivation; -  KBest::KBestDerivations<std::vector<WordID>,ESentenceTraversal> *__pyx_v_derivations; +  KBest::KBestDerivations<std::vector<WordID>,ESentenceTraversal,KBest::NoFilter<std::vector<int> > >::Derivation *__pyx_v_derivation; +  KBest::KBestDerivations<std::vector<WordID>,ESentenceTraversal,KBest::NoFilter<std::vector<int> > > *__pyx_v_derivations;    unsigned int __pyx_v_k;    struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self;    PyObject *__pyx_v_size; @@ -1173,22 +1199,6 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_8_kbest {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":167 - *  - *     property nodes: - *         def __get__(self):             # <<<<<<<<<<<<<< - *             cdef unsigned i - *             for i in range(self.hg.nodes_.size()): - */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ { -  PyObject_HEAD -  unsigned int __pyx_v_i; -  struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self; -  size_t __pyx_t_0; -  unsigned int __pyx_t_1; -}; - -  /* "cdec/sa/_sa.pxd":29   *     cdef FloatList values   *  @@ -1206,7 +1216,23 @@ struct __pyx_obj_4cdec_2sa_3_sa_Phrase {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":199 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":264 + *  + *     property tail_nodes: + *         def __get__(self):             # <<<<<<<<<<<<<< + *             cdef unsigned i + *             for i in range(self.edge.tail_nodes_.size()): + */ +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ { +  PyObject_HEAD +  unsigned int __pyx_v_i; +  struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *__pyx_v_self; +  unsigned int __pyx_t_0; +  unsigned int __pyx_t_1; +}; + + +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":205   *         del self.grammar   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -1225,7 +1251,23 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_7___iter__ {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":217 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":308 + *  + *     property in_edges: + *         def __get__(self):             # <<<<<<<<<<<<<< + *             cdef unsigned i + *             for i in range(self.node.in_edges_.size()): + */ +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ { +  PyObject_HEAD +  unsigned int __pyx_v_i; +  struct __pyx_obj_4cdec_5_cdec_HypergraphNode *__pyx_v_self; +  size_t __pyx_t_0; +  unsigned int __pyx_t_1; +}; + + +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":223   *             self.grammar.get().SetGrammarName(name)   *    * cdef class TextGrammar(Grammar):             # <<<<<<<<<<<<<< @@ -1237,6 +1279,22 @@ struct __pyx_obj_4cdec_5_cdec_TextGrammar {  }; +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":90 + *         return candidate + *  + *     def __iter__(self):             # <<<<<<<<<<<<<< + *         cdef unsigned i + *         for i in range(len(self)): + */ +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ { +  PyObject_HEAD +  unsigned int __pyx_v_i; +  struct __pyx_obj_4cdec_5_cdec_CandidateSet *__pyx_v_self; +  Py_ssize_t __pyx_t_0; +  unsigned int __pyx_t_1; +}; + +  /* "cdec/_cdec.pyx":43   *             yield key, str(value)   *  @@ -1251,7 +1309,7 @@ struct __pyx_obj_4cdec_5_cdec_Decoder {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":12 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":12   *         return stats   *    * cdef class Candidate:             # <<<<<<<<<<<<<< @@ -1265,39 +1323,41 @@ struct __pyx_obj_4cdec_5_cdec_Candidate {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":266 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":145 + *             del derivations   *  - *     property out_edges: - *         def __get__(self):             # <<<<<<<<<<<<<< - *             cdef unsigned i - *             for i in range(self.node.out_edges_.size()): + *     def sample(self, unsigned n):             # <<<<<<<<<<<<<< + *         """hg.sample(n) -> Sample of n hypotheses from the hypergraph.""" + *         cdef vector[hypergraph.Hypothesis]* hypos = new vector[hypergraph.Hypothesis]()   */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ { +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample {    PyObject_HEAD -  unsigned int __pyx_v_i; -  struct __pyx_obj_4cdec_5_cdec_HypergraphNode *__pyx_v_self; +  std::vector<HypergraphSampler::Hypothesis> *__pyx_v_hypos; +  unsigned int __pyx_v_k; +  unsigned int __pyx_v_n; +  struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self;    size_t __pyx_t_0;    unsigned int __pyx_t_1;  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":56 - *         return unicode(str(self), 'utf8') +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":215   *  - *     def __iter__(self):             # <<<<<<<<<<<<<< - *         cdef unsigned i - *         for i in range(len(self)): + *     property nodes: + *         def __get__(self):             # <<<<<<<<<<<<<< + *             cdef unsigned i + *             for i in range(self.hg.nodes_.size()):   */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ { +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ {    PyObject_HEAD    unsigned int __pyx_v_i; -  struct __pyx_obj_4cdec_5_cdec_Lattice *__pyx_v_self; -  Py_ssize_t __pyx_t_0; +  struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self; +  size_t __pyx_t_0;    unsigned int __pyx_t_1;  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":32 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":32   *         self.vector[0][fid] = value   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -1313,7 +1373,7 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct____iter__ {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":173 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":179   *    *     def __str__(self):   *         scores = ' '.join('%s=%s' % feat for feat in self.scores)             # <<<<<<<<<<<<<< @@ -1330,25 +1390,30 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_6_genexpr {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":108 - *             del hypos +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":110 + *             del derivations   *  - *     def sample_trees(self, unsigned n):             # <<<<<<<<<<<<<< - *        """hg.sample_trees(n) -> Sample of n trees from the hypergraph.""" - *        cdef vector[string]* trees = new vector[string]() + *     def unique_kbest_trees(self, size):             # <<<<<<<<<<<<<< + *         """hg.kbest_trees(size) -> List of unique k-best trees in the hypergraph.""" + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique](self.hg[0], size)   */ -struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees { +struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees {    PyObject_HEAD +  KBest::KBestDerivations<std::vector<WordID>,ETreeTraversal,KBest::FilterUnique>::Derivation *__pyx_v_e_derivation; +  KBest::KBestDerivations<std::vector<WordID>,ETreeTraversal,KBest::FilterUnique> *__pyx_v_e_derivations; +  PyObject *__pyx_v_e_tree; +  KBest::KBestDerivations<std::vector<WordID>,FTreeTraversal,KBest::FilterUnique>::Derivation *__pyx_v_f_derivation; +  KBest::KBestDerivations<std::vector<WordID>,FTreeTraversal,KBest::FilterUnique> *__pyx_v_f_derivations; +  PyObject *__pyx_v_f_tree;    unsigned int __pyx_v_k; -  unsigned int __pyx_v_n;    struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self; -  std::vector<std::string> *__pyx_v_trees; -  size_t __pyx_t_0; -  unsigned int __pyx_t_1; +  PyObject *__pyx_v_size; +  unsigned int __pyx_t_0; +  long __pyx_t_1;  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":131 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":137   *    *     property a:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -1365,7 +1430,7 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_4___get__ {  }; -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":72 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":72   *         self.vector.set_value(fid, value)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -1383,7 +1448,7 @@ struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_1___iter__ { -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":246 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":294   *         raise NotImplemented('comparison not implemented for HypergraphEdge')   *    * cdef class HypergraphNode:             # <<<<<<<<<<<<<< @@ -1397,7 +1462,7 @@ struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphNode {  static struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphNode *__pyx_vtabptr_4cdec_5_cdec_HypergraphNode; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":196 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":244   *         return vector   *    * cdef class HypergraphEdge:             # <<<<<<<<<<<<<< @@ -1462,7 +1527,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_Phrase {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_Phrase *__pyx_vtabptr_4cdec_2sa_3_sa_Phrase; -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":4 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":4   * cimport kbest   *    * cdef class Hypergraph:             # <<<<<<<<<<<<<< @@ -1923,49 +1988,52 @@ static int (*__pyx_f_4cdec_2sa_3_sa_sym_getindex)(int); /*proto*/  /* Module declarations from 'cdec.mteval' */  /* Module declarations from 'cdec._cdec' */ +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_24___iter__ = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_TRule = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_MRule = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_22___iter__ = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_DenseVector = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_SufficientStats = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_23_lines = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_27___init__ = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_21___iter__ = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_Metric = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_Candidate = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_SparseVector = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_15___get__ = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_26__make_config = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_NT = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_Lattice = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_23__make_config = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_15_sample_trees = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_HypergraphEdge = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_2__phrase = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_13___get__ = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_20_lines = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_Scorer = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_HypergraphNode = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_10_kbest_features = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_NTRef = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_Grammar = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_Hypergraph = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_24___init__ = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_CandidateSet = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_22_todot = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_19_todot = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_5___str__ = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_SegmentEvaluator = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_16___get__ = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_25_genexpr = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_20___get__ = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_28_genexpr = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_3_genexpr = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_11_sample = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_8_kbest = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_14___get__ = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_18___get__ = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_7___iter__ = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_19___get__ = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_TextGrammar = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_25___iter__ = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec_Decoder = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct____iter__ = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_14_sample = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_17___get__ = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_18___iter__ = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_6_genexpr = 0; -static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_12_sample_trees = 0; +static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_4___get__ = 0;  static PyTypeObject *__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_1___iter__ = 0;  static PyObject *__pyx_f_4cdec_5_cdec_as_str(PyObject *, struct __pyx_opt_args_4cdec_5_cdec_as_str *__pyx_optional_args); /*proto*/ @@ -2033,7 +2101,7 @@ static int __pyx_pf_4cdec_5_cdec_5NTRef___init__(struct __pyx_obj_4cdec_5_cdec_N  static PyObject *__pyx_pf_4cdec_5_cdec_5NTRef_2__str__(struct __pyx_obj_4cdec_5_cdec_NTRef *__pyx_v_self); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_5NTRef_3ref___get__(struct __pyx_obj_4cdec_5_cdec_NTRef *__pyx_v_self); /* proto */  static int __pyx_pf_4cdec_5_cdec_5NTRef_3ref_2__set__(struct __pyx_obj_4cdec_5_cdec_NTRef *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ -static int __pyx_pf_4cdec_5_cdec_5TRule___init__(struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_v_self, PyObject *__pyx_v_lhs, PyObject *__pyx_v_f, PyObject *__pyx_v_e, PyObject *__pyx_v_scores, PyObject *__pyx_v_a); /* proto */ +static int __pyx_pf_4cdec_5_cdec_5TRule___init__(struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_v_self, PyObject *__pyx_v_lhs, PyObject *__pyx_v_f, PyObject *__pyx_v_e, PyObject *__pyx_v_scores, PyObject *__pyx_v_a, PyObject *__pyx_v_text); /* proto */  static void __pyx_pf_4cdec_5_cdec_5TRule_2__dealloc__(CYTHON_UNUSED struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_v_self); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_5arity___get__(struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_v_self); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1f___get__(struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_v_self); /* proto */ @@ -2063,18 +2131,21 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_10viterbi_joshua(struct __py  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_12kbest(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_15kbest_trees(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_18kbest_features(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size); /* proto */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_21sample(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, unsigned int __pyx_v_n); /* proto */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_24sample_trees(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, unsigned int __pyx_v_n); /* proto */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_27intersect(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_inp); /* proto */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_29prune(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_beam_alpha, PyObject *__pyx_v_density, PyObject *__pyx_v_kwargs); /* proto */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_31lattice(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_33plf(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_35reweight(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_weights); /* proto */ +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_21unique_kbest(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size); /* proto */ +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_24unique_kbest_trees(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size); /* proto */ +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_27unique_kbest_features(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size); /* proto */ +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_30sample(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, unsigned int __pyx_v_n); /* proto */ +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_33sample_trees(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, unsigned int __pyx_v_n); /* proto */ +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_36intersect(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_inp); /* proto */ +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_38prune(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_beam_alpha, PyObject *__pyx_v_density, PyObject *__pyx_v_kwargs); /* proto */ +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_40lattice(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_42plf(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_44reweight(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_weights); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_5edges___get__(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_5nodes___get__(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_4goal___get__(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_6npaths___get__(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_46inside_outside(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self); /* proto */  static Py_ssize_t __pyx_pf_4cdec_5_cdec_14HypergraphEdge___len__(struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *__pyx_v_self); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_9head_node___get__(struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *__pyx_v_self); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_10tail_nodes___get__(struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *__pyx_v_self); /* proto */ @@ -2143,49 +2214,52 @@ static int __pyx_pf_4cdec_5_cdec_7Decoder_7weights_2__set__(struct __pyx_obj_4cd  static PyObject *__pyx_pf_4cdec_5_cdec_7Decoder_9formalism___get__(struct __pyx_obj_4cdec_5_cdec_Decoder *__pyx_v_self); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_7Decoder_4read_weights(struct __pyx_obj_4cdec_5_cdec_Decoder *__pyx_v_self, PyObject *__pyx_v_weights); /* proto */  static PyObject *__pyx_pf_4cdec_5_cdec_7Decoder_6translate(struct __pyx_obj_4cdec_5_cdec_Decoder *__pyx_v_self, PyObject *__pyx_v_sentence, PyObject *__pyx_v_grammar); /* proto */ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_24___iter__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_TRule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_MRule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_22___iter__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_DenseVector(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_SufficientStats(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_23_lines(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_27___init__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_21___iter__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_Metric(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_Candidate(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_SparseVector(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_15___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_26__make_config(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_NT(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_Lattice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_23__make_config(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_15_sample_trees(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_HypergraphEdge(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_2__phrase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_13___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_20_lines(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_Scorer(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_HypergraphNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_10_kbest_features(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_NTRef(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_Grammar(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_Hypergraph(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_24___init__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_CandidateSet(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_22_todot(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_19_todot(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_5___str__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_SegmentEvaluator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_16___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_25_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_20___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_28_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_3_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_11_sample(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_8_kbest(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_14___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_18___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_7___iter__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_19___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_TextGrammar(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_25___iter__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec_Decoder(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct____iter__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_14_sample(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_17___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_18___iter__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_6_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_12_sample_trees(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_4___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_1___iter__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/  static char __pyx_k_1[] = "Cannot convert type %s to str"; @@ -2213,7 +2287,7 @@ static char __pyx_k_26[] = "digraph lattice {";    static char __pyx_k_31[] = "\\\"";    static char __pyx_k_33[] = "%d [shape=doublecircle]";  static char __pyx_k_34[] = "}"; -static char __pyx_k_37[] = "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi"; +static char __pyx_k_37[] = "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi";  static char __pyx_k_38[] = "Lattice.todot.<locals>.lines";  static char __pyx_k_39[] = "cdec._cdec";  static char __pyx_k_40[] = "\n"; @@ -2227,8 +2301,8 @@ static char __pyx_k_50[] = "#";  static char __pyx_k_53[] = "Cannot translate input type %s";  static char __pyx_k_54[] = "cdec.sa._sa";  static char __pyx_k_55[] = "*"; -static char __pyx_k_58[] = "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi"; -static char __pyx_k_66[] = "/home/pks/src/cdec-dtrain/python/cdec/_cdec.pyx"; +static char __pyx_k_58[] = "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi"; +static char __pyx_k_66[] = "/usr0/home/austinma/git/cdec/python/cdec/_cdec.pyx";  static char __pyx_k__a[] = "a";  static char __pyx_k__e[] = "e";  static char __pyx_k__f[] = "f"; @@ -2264,6 +2338,7 @@ static char __pyx_k__scfg[] = "scfg";  static char __pyx_k__self[] = "self";  static char __pyx_k__send[] = "send";  static char __pyx_k__span[] = "span"; +static char __pyx_k__text[] = "text";  static char __pyx_k__utf8[] = "utf8";  static char __pyx_k__close[] = "close";  static char __pyx_k__delta[] = "delta"; @@ -2468,6 +2543,7 @@ static PyObject *__pyx_n_s__startswith;  static PyObject *__pyx_n_s__strip;  static PyObject *__pyx_n_s__super;  static PyObject *__pyx_n_s__tagger; +static PyObject *__pyx_n_s__text;  static PyObject *__pyx_n_s__throw;  static PyObject *__pyx_n_s__utf8;  static PyObject *__pyx_n_s__value; @@ -2665,7 +2741,7 @@ static int __pyx_pw_4cdec_5_cdec_11DenseVector_1__init__(PyObject *__pyx_v_self,    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":7 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":7   *     cdef bint owned # if True, do not manage memory   *    *     def __init__(self):             # <<<<<<<<<<<<<< @@ -2682,7 +2758,7 @@ static int __pyx_pf_4cdec_5_cdec_11DenseVector___init__(struct __pyx_obj_4cdec_5    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__init__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":9 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":9   *     def __init__(self):   *         """DenseVector() -> Dense weight/feature vector."""   *         self.vector = new vector[weight_t]()             # <<<<<<<<<<<<<< @@ -2697,7 +2773,7 @@ static int __pyx_pf_4cdec_5_cdec_11DenseVector___init__(struct __pyx_obj_4cdec_5    }    __pyx_v_self->vector = __pyx_t_1; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":10 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":10   *         """DenseVector() -> Dense weight/feature vector."""   *         self.vector = new vector[weight_t]()   *         self.owned = False             # <<<<<<<<<<<<<< @@ -2725,7 +2801,7 @@ static void __pyx_pw_4cdec_5_cdec_11DenseVector_3__dealloc__(PyObject *__pyx_v_s    __Pyx_RefNannyFinishContext();  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":12 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":12   *         self.owned = False   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -2738,7 +2814,7 @@ static void __pyx_pf_4cdec_5_cdec_11DenseVector_2__dealloc__(struct __pyx_obj_4c    int __pyx_t_1;    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":13 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":13   *    *     def __dealloc__(self):   *         if not self.owned:             # <<<<<<<<<<<<<< @@ -2748,7 +2824,7 @@ static void __pyx_pf_4cdec_5_cdec_11DenseVector_2__dealloc__(struct __pyx_obj_4c    __pyx_t_1 = ((!(__pyx_v_self->owned != 0)) != 0);    if (__pyx_t_1) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":14 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":14   *     def __dealloc__(self):   *         if not self.owned:   *             del self.vector             # <<<<<<<<<<<<<< @@ -2774,7 +2850,7 @@ static Py_ssize_t __pyx_pw_4cdec_5_cdec_11DenseVector_5__len__(PyObject *__pyx_v    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":16 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":16   *             del self.vector   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -2787,7 +2863,7 @@ static Py_ssize_t __pyx_pf_4cdec_5_cdec_11DenseVector_4__len__(struct __pyx_obj_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":17 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":17   *    *     def __len__(self):   *         return self.vector.size()             # <<<<<<<<<<<<<< @@ -2827,7 +2903,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_11DenseVector_7__getitem__(PyObject *__py    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":19 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":19   *         return self.vector.size()   *    *     def __getitem__(self, char* fname):             # <<<<<<<<<<<<<< @@ -2848,7 +2924,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_11DenseVector_6__getitem__(struct __pyx_o    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__getitem__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":20 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":20   *    *     def __getitem__(self, char* fname):   *         cdef int fid = FDConvert(fname)             # <<<<<<<<<<<<<< @@ -2857,7 +2933,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_11DenseVector_6__getitem__(struct __pyx_o   */    __pyx_v_fid = FD::Convert(__pyx_v_fname); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":21 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":21   *     def __getitem__(self, char* fname):   *         cdef int fid = FDConvert(fname)   *         if 0 <= fid < self.vector.size():             # <<<<<<<<<<<<<< @@ -2871,7 +2947,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_11DenseVector_6__getitem__(struct __pyx_o    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":22 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":22   *         cdef int fid = FDConvert(fname)   *         if 0 <= fid < self.vector.size():   *             return self.vector[0][fid]             # <<<<<<<<<<<<<< @@ -2888,7 +2964,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_11DenseVector_6__getitem__(struct __pyx_o    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":23 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":23   *         if 0 <= fid < self.vector.size():   *             return self.vector[0][fid]   *         raise KeyError(fname)             # <<<<<<<<<<<<<< @@ -2950,7 +3026,7 @@ static int __pyx_pw_4cdec_5_cdec_11DenseVector_9__setitem__(PyObject *__pyx_v_se    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":25 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":25   *         raise KeyError(fname)   *    *     def __setitem__(self, char* fname, float value):             # <<<<<<<<<<<<<< @@ -2970,7 +3046,7 @@ static int __pyx_pf_4cdec_5_cdec_11DenseVector_8__setitem__(struct __pyx_obj_4cd    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__setitem__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":26 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":26   *    *     def __setitem__(self, char* fname, float value):   *         cdef int fid = FDConvert(fname)             # <<<<<<<<<<<<<< @@ -2979,7 +3055,7 @@ static int __pyx_pf_4cdec_5_cdec_11DenseVector_8__setitem__(struct __pyx_obj_4cd   */    __pyx_v_fid = FD::Convert(__pyx_v_fname); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":27 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":27   *     def __setitem__(self, char* fname, float value):   *         cdef int fid = FDConvert(fname)   *         if fid < 0: raise KeyError(fname)             # <<<<<<<<<<<<<< @@ -3005,7 +3081,7 @@ static int __pyx_pf_4cdec_5_cdec_11DenseVector_8__setitem__(struct __pyx_obj_4cd    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":28 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":28   *         cdef int fid = FDConvert(fname)   *         if fid < 0: raise KeyError(fname)   *         if self.vector.size() <= fid:             # <<<<<<<<<<<<<< @@ -3015,7 +3091,7 @@ static int __pyx_pf_4cdec_5_cdec_11DenseVector_8__setitem__(struct __pyx_obj_4cd    __pyx_t_1 = ((__pyx_v_self->vector->size() <= __pyx_v_fid) != 0);    if (__pyx_t_1) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":29 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":29   *         if fid < 0: raise KeyError(fname)   *         if self.vector.size() <= fid:   *             self.vector.resize(fid + 1)             # <<<<<<<<<<<<<< @@ -3027,7 +3103,7 @@ static int __pyx_pf_4cdec_5_cdec_11DenseVector_8__setitem__(struct __pyx_obj_4cd    }    __pyx_L4:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":30 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":30   *         if self.vector.size() <= fid:   *             self.vector.resize(fid + 1)   *         self.vector[0][fid] = value             # <<<<<<<<<<<<<< @@ -3060,7 +3136,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_11DenseVector_11__iter__(PyObject *__pyx_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":32 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":32   *         self.vector[0][fid] = value   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -3128,7 +3204,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_11DenseVector_12generator(__pyx_Generator    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":34 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":34   *     def __iter__(self):   *         cdef unsigned fid   *         for fid in range(1, self.vector.size()):             # <<<<<<<<<<<<<< @@ -3139,7 +3215,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_11DenseVector_12generator(__pyx_Generator    for (__pyx_t_2 = 1; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_fid = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":35 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":35   *         cdef unsigned fid   *         for fid in range(1, self.vector.size()):   *             yield str(FDConvert(fid).c_str()), self.vector[0][fid]             # <<<<<<<<<<<<<< @@ -3215,7 +3291,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_11DenseVector_14dot(PyObject *__pyx_v_sel    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":37 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":37   *             yield str(FDConvert(fid).c_str()), self.vector[0][fid]   *    *     def dot(self, SparseVector other):             # <<<<<<<<<<<<<< @@ -3234,7 +3310,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_11DenseVector_13dot(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("dot", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":39 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":39   *     def dot(self, SparseVector other):   *         """vector.dot(SparseVector other) -> Dot product of the two vectors."""   *         return other.dot(self)             # <<<<<<<<<<<<<< @@ -3283,7 +3359,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_11DenseVector_16tosparse(PyObject *__pyx_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":41 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":41   *         return other.dot(self)   *    *     def tosparse(self):             # <<<<<<<<<<<<<< @@ -3301,7 +3377,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_11DenseVector_15tosparse(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("tosparse", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":43 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":43   *     def tosparse(self):   *         """vector.tosparse() -> Equivalent SparseVector."""   *         cdef SparseVector sparse = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<< @@ -3314,7 +3390,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_11DenseVector_15tosparse(struct __pyx_obj    __pyx_v_sparse = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":44 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":44   *         """vector.tosparse() -> Equivalent SparseVector."""   *         cdef SparseVector sparse = SparseVector.__new__(SparseVector)   *         sparse.vector = new FastSparseVector[weight_t]()             # <<<<<<<<<<<<<< @@ -3323,7 +3399,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_11DenseVector_15tosparse(struct __pyx_obj   */    __pyx_v_sparse->vector = new FastSparseVector<weight_t>(); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":45 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":45   *         cdef SparseVector sparse = SparseVector.__new__(SparseVector)   *         sparse.vector = new FastSparseVector[weight_t]()   *         InitSparseVector(self.vector[0], sparse.vector)             # <<<<<<<<<<<<<< @@ -3332,7 +3408,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_11DenseVector_15tosparse(struct __pyx_obj   */    Weights::InitSparseVector((__pyx_v_self->vector[0]), __pyx_v_sparse->vector); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":46 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":46   *         sparse.vector = new FastSparseVector[weight_t]()   *         InitSparseVector(self.vector[0], sparse.vector)   *         return sparse             # <<<<<<<<<<<<<< @@ -3375,7 +3451,7 @@ static int __pyx_pw_4cdec_5_cdec_12SparseVector_1__init__(PyObject *__pyx_v_self    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":51 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":51   *     cdef FastSparseVector[weight_t]* vector   *    *     def __init__(self):             # <<<<<<<<<<<<<< @@ -3388,7 +3464,7 @@ static int __pyx_pf_4cdec_5_cdec_12SparseVector___init__(struct __pyx_obj_4cdec_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__init__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":53 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":53   *     def __init__(self):   *         """SparseVector() -> Sparse feature/weight vector."""   *         self.vector = new FastSparseVector[weight_t]()             # <<<<<<<<<<<<<< @@ -3411,7 +3487,7 @@ static void __pyx_pw_4cdec_5_cdec_12SparseVector_3__dealloc__(PyObject *__pyx_v_    __Pyx_RefNannyFinishContext();  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":55 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":55   *         self.vector = new FastSparseVector[weight_t]()   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -3423,7 +3499,7 @@ static void __pyx_pf_4cdec_5_cdec_12SparseVector_2__dealloc__(CYTHON_UNUSED stru    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":56 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":56   *    *     def __dealloc__(self):   *         del self.vector             # <<<<<<<<<<<<<< @@ -3447,7 +3523,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_5copy(PyObject *__pyx_v_se    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":58 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":58   *         del self.vector   *    *     def copy(self):             # <<<<<<<<<<<<<< @@ -3464,7 +3540,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_4copy(struct __pyx_obj_4cd    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("copy", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":60 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":60   *     def copy(self):   *         """vector.copy() -> SparseVector copy."""   *         return self * 1             # <<<<<<<<<<<<<< @@ -3514,7 +3590,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_7__getitem__(PyObject *__p    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":62 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":62   *         return self * 1   *    *     def __getitem__(self, char* fname):             # <<<<<<<<<<<<<< @@ -3534,7 +3610,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_6__getitem__(struct __pyx_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__getitem__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":63 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":63   *    *     def __getitem__(self, char* fname):   *         cdef int fid = FDConvert(fname)             # <<<<<<<<<<<<<< @@ -3543,7 +3619,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_6__getitem__(struct __pyx_   */    __pyx_v_fid = FD::Convert(__pyx_v_fname); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":64 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":64   *     def __getitem__(self, char* fname):   *         cdef int fid = FDConvert(fname)   *         if fid < 0: raise KeyError(fname)             # <<<<<<<<<<<<<< @@ -3569,7 +3645,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_6__getitem__(struct __pyx_    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":65 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":65   *         cdef int fid = FDConvert(fname)   *         if fid < 0: raise KeyError(fname)   *         return self.vector.value(fid)             # <<<<<<<<<<<<<< @@ -3624,7 +3700,7 @@ static int __pyx_pw_4cdec_5_cdec_12SparseVector_9__setitem__(PyObject *__pyx_v_s    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":67 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":67   *         return self.vector.value(fid)   *    *     def __setitem__(self, char* fname, float value):             # <<<<<<<<<<<<<< @@ -3644,7 +3720,7 @@ static int __pyx_pf_4cdec_5_cdec_12SparseVector_8__setitem__(struct __pyx_obj_4c    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__setitem__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":68 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":68   *    *     def __setitem__(self, char* fname, float value):   *         cdef int fid = FDConvert(fname)             # <<<<<<<<<<<<<< @@ -3653,7 +3729,7 @@ static int __pyx_pf_4cdec_5_cdec_12SparseVector_8__setitem__(struct __pyx_obj_4c   */    __pyx_v_fid = FD::Convert(__pyx_v_fname); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":69 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":69   *     def __setitem__(self, char* fname, float value):   *         cdef int fid = FDConvert(fname)   *         if fid < 0: raise KeyError(fname)             # <<<<<<<<<<<<<< @@ -3679,7 +3755,7 @@ static int __pyx_pf_4cdec_5_cdec_12SparseVector_8__setitem__(struct __pyx_obj_4c    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":70 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":70   *         cdef int fid = FDConvert(fname)   *         if fid < 0: raise KeyError(fname)   *         self.vector.set_value(fid, value)             # <<<<<<<<<<<<<< @@ -3712,7 +3788,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_11__iter__(PyObject *__pyx    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":72 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":72   *         self.vector.set_value(fid, value)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -3780,7 +3856,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_12SparseVector_12generator1(__pyx_Generat    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":73 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":73   *    *     def __iter__(self):   *         cdef FastSparseVector[weight_t].const_iterator* it = new FastSparseVector[weight_t].const_iterator(self.vector[0], False)             # <<<<<<<<<<<<<< @@ -3789,7 +3865,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_12SparseVector_12generator1(__pyx_Generat   */    __pyx_cur_scope->__pyx_v_it = new FastSparseVector<weight_t>::const_iterator((__pyx_cur_scope->__pyx_v_self->vector[0]), 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":75 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":75   *         cdef FastSparseVector[weight_t].const_iterator* it = new FastSparseVector[weight_t].const_iterator(self.vector[0], False)   *         cdef unsigned i   *         try:             # <<<<<<<<<<<<<< @@ -3798,7 +3874,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_12SparseVector_12generator1(__pyx_Generat   */    /*try:*/ { -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":76 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":76   *         cdef unsigned i   *         try:   *             for i in range(self.vector.size()):             # <<<<<<<<<<<<<< @@ -3809,7 +3885,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_12SparseVector_12generator1(__pyx_Generat      for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {        __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -      /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":77 +      /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":77   *         try:   *             for i in range(self.vector.size()):   *                 yield (str(FDConvert(it[0].ptr().first).c_str()), it[0].ptr().second)             # <<<<<<<<<<<<<< @@ -3850,7 +3926,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_12SparseVector_12generator1(__pyx_Generat        __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;        if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L5;} -      /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":78 +      /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":78   *             for i in range(self.vector.size()):   *                 yield (str(FDConvert(it[0].ptr().first).c_str()), it[0].ptr().second)   *                 pinc(it[0]) # ++it             # <<<<<<<<<<<<<< @@ -3861,7 +3937,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_12SparseVector_12generator1(__pyx_Generat      }    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":80 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":80   *                 pinc(it[0]) # ++it   *         finally:   *             del it             # <<<<<<<<<<<<<< @@ -3923,7 +3999,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_14dot(PyObject *__pyx_v_se    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":82 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":82   *             del it   *    *     def dot(self, other):             # <<<<<<<<<<<<<< @@ -3943,7 +4019,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_13dot(struct __pyx_obj_4cd    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("dot", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":84 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":84   *     def dot(self, other):   *         """vector.dot(SparseVector/DenseVector other) -> Dot product of the two vectors."""   *         if isinstance(other, DenseVector):             # <<<<<<<<<<<<<< @@ -3954,7 +4030,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_13dot(struct __pyx_obj_4cd    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":85 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":85   *         """vector.dot(SparseVector/DenseVector other) -> Dot product of the two vectors."""   *         if isinstance(other, DenseVector):   *             return self.vector.dot((<DenseVector> other).vector[0])             # <<<<<<<<<<<<<< @@ -3970,7 +4046,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_13dot(struct __pyx_obj_4cd      goto __pyx_L3;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":86 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":86   *         if isinstance(other, DenseVector):   *             return self.vector.dot((<DenseVector> other).vector[0])   *         elif isinstance(other, SparseVector):             # <<<<<<<<<<<<<< @@ -3981,7 +4057,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_13dot(struct __pyx_obj_4cd    __pyx_t_1 = (__pyx_t_2 != 0);    if (__pyx_t_1) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":87 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":87   *             return self.vector.dot((<DenseVector> other).vector[0])   *         elif isinstance(other, SparseVector):   *             return self.vector.dot((<SparseVector> other).vector[0])             # <<<<<<<<<<<<<< @@ -3998,7 +4074,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_13dot(struct __pyx_obj_4cd    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":88 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":88   *         elif isinstance(other, SparseVector):   *             return self.vector.dot((<SparseVector> other).vector[0])   *         raise TypeError('cannot take the dot product of %s and SparseVector' % type(other))             # <<<<<<<<<<<<<< @@ -4052,7 +4128,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_16__richcmp__(PyObject *__    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":90 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":90   *         raise TypeError('cannot take the dot product of %s and SparseVector' % type(other))   *    *     def __richcmp__(SparseVector x, SparseVector y, int op):             # <<<<<<<<<<<<<< @@ -4070,7 +4146,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_15__richcmp__(struct __pyx    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__richcmp__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":93 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":93   *         if op == 2: # ==   *             return x.vector[0] == y.vector[0]   *         elif op == 3: # !=             # <<<<<<<<<<<<<< @@ -4079,7 +4155,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_15__richcmp__(struct __pyx   */    switch (__pyx_v_op) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":91 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":91   *    *     def __richcmp__(SparseVector x, SparseVector y, int op):   *         if op == 2: # ==             # <<<<<<<<<<<<<< @@ -4088,7 +4164,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_15__richcmp__(struct __pyx   */      case 2: -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":92 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":92   *     def __richcmp__(SparseVector x, SparseVector y, int op):   *         if op == 2: # ==   *             return x.vector[0] == y.vector[0]             # <<<<<<<<<<<<<< @@ -4103,7 +4179,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_15__richcmp__(struct __pyx      goto __pyx_L0;      break; -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":93 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":93   *         if op == 2: # ==   *             return x.vector[0] == y.vector[0]   *         elif op == 3: # !=             # <<<<<<<<<<<<<< @@ -4112,7 +4188,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_15__richcmp__(struct __pyx   */      case 3: -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":94 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":94   *             return x.vector[0] == y.vector[0]   *         elif op == 3: # !=   *             return not (x == y)             # <<<<<<<<<<<<<< @@ -4131,7 +4207,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_15__richcmp__(struct __pyx      break;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":95 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":95   *         elif op == 3: # !=   *             return not (x == y)   *         raise NotImplemented('comparison not implemented for SparseVector')             # <<<<<<<<<<<<<< @@ -4167,7 +4243,7 @@ static Py_ssize_t __pyx_pw_4cdec_5_cdec_12SparseVector_18__len__(PyObject *__pyx    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":97 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":97   *         raise NotImplemented('comparison not implemented for SparseVector')   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -4180,7 +4256,7 @@ static Py_ssize_t __pyx_pf_4cdec_5_cdec_12SparseVector_17__len__(struct __pyx_ob    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":98 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":98   *    *     def __len__(self):   *         return self.vector.size()             # <<<<<<<<<<<<<< @@ -4220,7 +4296,7 @@ static int __pyx_pw_4cdec_5_cdec_12SparseVector_20__contains__(PyObject *__pyx_v    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":100 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":100   *         return self.vector.size()   *    *     def __contains__(self, char* fname):             # <<<<<<<<<<<<<< @@ -4233,7 +4309,7 @@ static int __pyx_pf_4cdec_5_cdec_12SparseVector_19__contains__(struct __pyx_obj_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__contains__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":101 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":101   *    *     def __contains__(self, char* fname):   *         return self.vector.nonzero(FDConvert(fname))             # <<<<<<<<<<<<<< @@ -4260,7 +4336,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_22__neg__(PyObject *__pyx_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":103 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":103   *         return self.vector.nonzero(FDConvert(fname))   *    *     def __neg__(self):             # <<<<<<<<<<<<<< @@ -4278,7 +4354,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_21__neg__(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__neg__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":104 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":104   *    *     def __neg__(self):   *         cdef SparseVector result = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<< @@ -4291,7 +4367,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_21__neg__(struct __pyx_obj    __pyx_v_result = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":105 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":105   *     def __neg__(self):   *         cdef SparseVector result = SparseVector.__new__(SparseVector)   *         result.vector = new FastSparseVector[weight_t](self.vector[0])             # <<<<<<<<<<<<<< @@ -4300,7 +4376,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_21__neg__(struct __pyx_obj   */    __pyx_v_result->vector = new FastSparseVector<weight_t>((__pyx_v_self->vector[0])); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":106 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":106   *         cdef SparseVector result = SparseVector.__new__(SparseVector)   *         result.vector = new FastSparseVector[weight_t](self.vector[0])   *         result.vector[0] *= -1.0             # <<<<<<<<<<<<<< @@ -4309,7 +4385,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_21__neg__(struct __pyx_obj   */    (__pyx_v_result->vector[0]) *= -1.0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":107 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":107   *         result.vector = new FastSparseVector[weight_t](self.vector[0])   *         result.vector[0] *= -1.0   *         return result             # <<<<<<<<<<<<<< @@ -4353,7 +4429,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_24__iadd__(PyObject *__pyx    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":109 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":109   *         return result   *    *     def __iadd__(SparseVector self, SparseVector other):             # <<<<<<<<<<<<<< @@ -4366,7 +4442,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_23__iadd__(struct __pyx_ob    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__iadd__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":110 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":110   *    *     def __iadd__(SparseVector self, SparseVector other):   *         self.vector[0] += other.vector[0]             # <<<<<<<<<<<<<< @@ -4375,7 +4451,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_23__iadd__(struct __pyx_ob   */    (__pyx_v_self->vector[0]) += (__pyx_v_other->vector[0]); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":111 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":111   *     def __iadd__(SparseVector self, SparseVector other):   *         self.vector[0] += other.vector[0]   *         return self             # <<<<<<<<<<<<<< @@ -4413,7 +4489,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_26__isub__(PyObject *__pyx    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":113 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":113   *         return self   *    *     def __isub__(SparseVector self, SparseVector other):             # <<<<<<<<<<<<<< @@ -4426,7 +4502,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_25__isub__(struct __pyx_ob    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__isub__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":114 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":114   *    *     def __isub__(SparseVector self, SparseVector other):   *         self.vector[0] -= other.vector[0]             # <<<<<<<<<<<<<< @@ -4435,7 +4511,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_25__isub__(struct __pyx_ob   */    (__pyx_v_self->vector[0]) -= (__pyx_v_other->vector[0]); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":115 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":115   *     def __isub__(SparseVector self, SparseVector other):   *         self.vector[0] -= other.vector[0]   *         return self             # <<<<<<<<<<<<<< @@ -4478,7 +4554,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_28__imul__(PyObject *__pyx    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":117 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":117   *         return self   *    *     def __imul__(SparseVector self, float scalar):             # <<<<<<<<<<<<<< @@ -4491,7 +4567,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_27__imul__(struct __pyx_ob    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__imul__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":118 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":118   *    *     def __imul__(SparseVector self, float scalar):   *         self.vector[0] *= scalar             # <<<<<<<<<<<<<< @@ -4500,7 +4576,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_27__imul__(struct __pyx_ob   */    (__pyx_v_self->vector[0]) *= __pyx_v_scalar; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":119 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":119   *     def __imul__(SparseVector self, float scalar):   *         self.vector[0] *= scalar   *         return self             # <<<<<<<<<<<<<< @@ -4545,7 +4621,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_30__idiv__(PyObject *__pyx  }  #endif /*!(#if PY_MAJOR_VERSION < 3)*/ -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":121 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":121   *         return self   *    *     def __idiv__(SparseVector self, float scalar):             # <<<<<<<<<<<<<< @@ -4559,7 +4635,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_29__idiv__(struct __pyx_ob    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__idiv__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":122 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":122   *    *     def __idiv__(SparseVector self, float scalar):   *         self.vector[0] /= scalar             # <<<<<<<<<<<<<< @@ -4568,7 +4644,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_29__idiv__(struct __pyx_ob   */    (__pyx_v_self->vector[0]) /= __pyx_v_scalar; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":123 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":123   *     def __idiv__(SparseVector self, float scalar):   *         self.vector[0] /= scalar   *         return self             # <<<<<<<<<<<<<< @@ -4608,7 +4684,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_32__add__(PyObject *__pyx_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":125 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":125   *         return self   *    *     def __add__(SparseVector x, SparseVector y):             # <<<<<<<<<<<<<< @@ -4626,7 +4702,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_31__add__(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__add__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":126 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":126   *    *     def __add__(SparseVector x, SparseVector y):   *         cdef SparseVector result = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<< @@ -4639,7 +4715,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_31__add__(struct __pyx_obj    __pyx_v_result = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":127 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":127   *     def __add__(SparseVector x, SparseVector y):   *         cdef SparseVector result = SparseVector.__new__(SparseVector)   *         result.vector = new FastSparseVector[weight_t](x.vector[0] + y.vector[0])             # <<<<<<<<<<<<<< @@ -4648,7 +4724,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_31__add__(struct __pyx_obj   */    __pyx_v_result->vector = new FastSparseVector<weight_t>(((__pyx_v_x->vector[0]) + (__pyx_v_y->vector[0]))); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":128 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":128   *         cdef SparseVector result = SparseVector.__new__(SparseVector)   *         result.vector = new FastSparseVector[weight_t](x.vector[0] + y.vector[0])   *         return result             # <<<<<<<<<<<<<< @@ -4693,7 +4769,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_34__sub__(PyObject *__pyx_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":130 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":130   *         return result   *    *     def __sub__(SparseVector x, SparseVector y):             # <<<<<<<<<<<<<< @@ -4711,7 +4787,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_33__sub__(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__sub__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":131 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":131   *    *     def __sub__(SparseVector x, SparseVector y):   *         cdef SparseVector result = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<< @@ -4724,7 +4800,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_33__sub__(struct __pyx_obj    __pyx_v_result = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":132 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":132   *     def __sub__(SparseVector x, SparseVector y):   *         cdef SparseVector result = SparseVector.__new__(SparseVector)   *         result.vector = new FastSparseVector[weight_t](x.vector[0] - y.vector[0])             # <<<<<<<<<<<<<< @@ -4733,7 +4809,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_33__sub__(struct __pyx_obj   */    __pyx_v_result->vector = new FastSparseVector<weight_t>(((__pyx_v_x->vector[0]) - (__pyx_v_y->vector[0]))); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":133 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":133   *         cdef SparseVector result = SparseVector.__new__(SparseVector)   *         result.vector = new FastSparseVector[weight_t](x.vector[0] - y.vector[0])   *         return result             # <<<<<<<<<<<<<< @@ -4769,7 +4845,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_36__mul__(PyObject *__pyx_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":135 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":135   *         return result   *    *     def __mul__(x, y):             # <<<<<<<<<<<<<< @@ -4792,7 +4868,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_35__mul__(PyObject *__pyx_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__mul__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":138 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":138   *         cdef SparseVector vector   *         cdef float scalar   *         if isinstance(x, SparseVector): vector, scalar = x, y             # <<<<<<<<<<<<<< @@ -4813,7 +4889,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_35__mul__(PyObject *__pyx_    }    /*else*/ { -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":139 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":139   *         cdef float scalar   *         if isinstance(x, SparseVector): vector, scalar = x, y   *         else: vector, scalar = y, x             # <<<<<<<<<<<<<< @@ -4830,7 +4906,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_35__mul__(PyObject *__pyx_    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":140 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":140   *         if isinstance(x, SparseVector): vector, scalar = x, y   *         else: vector, scalar = y, x   *         cdef SparseVector result = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<< @@ -4843,7 +4919,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_35__mul__(PyObject *__pyx_    __pyx_v_result = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":141 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":141   *         else: vector, scalar = y, x   *         cdef SparseVector result = SparseVector.__new__(SparseVector)   *         result.vector = new FastSparseVector[weight_t](vector.vector[0] * scalar)             # <<<<<<<<<<<<<< @@ -4852,7 +4928,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_35__mul__(PyObject *__pyx_   */    __pyx_v_result->vector = new FastSparseVector<weight_t>(((__pyx_v_vector->vector[0]) * __pyx_v_scalar)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":142 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":142   *         cdef SparseVector result = SparseVector.__new__(SparseVector)   *         result.vector = new FastSparseVector[weight_t](vector.vector[0] * scalar)   *         return result             # <<<<<<<<<<<<<< @@ -4891,7 +4967,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12SparseVector_38__div__(PyObject *__pyx_  }  #endif /*!(#if PY_MAJOR_VERSION < 3)*/ -/* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":144 +/* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":144   *         return result   *    *     def __div__(x, y):             # <<<<<<<<<<<<<< @@ -4915,7 +4991,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_37__div__(PyObject *__pyx_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__div__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":147 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":147   *         cdef SparseVector vector   *         cdef float scalar   *         if isinstance(x, SparseVector): vector, scalar = x, y             # <<<<<<<<<<<<<< @@ -4936,7 +5012,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_37__div__(PyObject *__pyx_    }    /*else*/ { -    /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":148 +    /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":148   *         cdef float scalar   *         if isinstance(x, SparseVector): vector, scalar = x, y   *         else: vector, scalar = y, x             # <<<<<<<<<<<<<< @@ -4953,7 +5029,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_37__div__(PyObject *__pyx_    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":149 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":149   *         if isinstance(x, SparseVector): vector, scalar = x, y   *         else: vector, scalar = y, x   *         cdef SparseVector result = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<< @@ -4966,7 +5042,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_37__div__(PyObject *__pyx_    __pyx_v_result = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":150 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":150   *         else: vector, scalar = y, x   *         cdef SparseVector result = SparseVector.__new__(SparseVector)   *         result.vector = new FastSparseVector[weight_t](vector.vector[0] / scalar)             # <<<<<<<<<<<<<< @@ -4974,7 +5050,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12SparseVector_37__div__(PyObject *__pyx_   */    __pyx_v_result->vector = new FastSparseVector<weight_t>(((__pyx_v_vector->vector[0]) / __pyx_v_scalar)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":151 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":151   *         cdef SparseVector result = SparseVector.__new__(SparseVector)   *         result.vector = new FastSparseVector[weight_t](vector.vector[0] / scalar)   *         return result             # <<<<<<<<<<<<<< @@ -5010,9 +5086,9 @@ static PyObject *__pyx_pw_4cdec_5_cdec_1_phrase(PyObject *__pyx_self, PyObject *    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_7_phrase_2generator18(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_7_phrase_2generator21(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":6 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":6   *    * def _phrase(phrase):   *     return ' '.join(w.encode('utf8') if isinstance(w, unicode) else str(w) for w in phrase)             # <<<<<<<<<<<<<< @@ -5038,7 +5114,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7_phrase_genexpr(PyObject *__pyx_self) {    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_7_phrase_2generator18, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_7_phrase_2generator21, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -5056,7 +5132,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7_phrase_genexpr(PyObject *__pyx_self) {    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_7_phrase_2generator18(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_7_phrase_2generator21(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  {    struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *)__pyx_generator->closure);    PyObject *__pyx_r = NULL; @@ -5178,7 +5254,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7_phrase_2generator18(__pyx_GeneratorObje    return NULL;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":5 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":5   * import cdec.sa._sa as _sa   *    * def _phrase(phrase):             # <<<<<<<<<<<<<< @@ -5207,7 +5283,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec__phrase(CYTHON_UNUSED PyObject *__pyx_sel    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_phrase);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_phrase); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":6 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":6   *    * def _phrase(phrase):   *     return ' '.join(w.encode('utf8') if isinstance(w, unicode) else str(w) for w in phrase)             # <<<<<<<<<<<<<< @@ -5321,7 +5397,7 @@ static int __pyx_pw_4cdec_5_cdec_2NT_1__init__(PyObject *__pyx_v_self, PyObject    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":11 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":11   *     cdef public bytes cat   *     cdef public unsigned ref   *     def __init__(self, bytes cat, unsigned ref=0):             # <<<<<<<<<<<<<< @@ -5334,7 +5410,7 @@ static int __pyx_pf_4cdec_5_cdec_2NT___init__(struct __pyx_obj_4cdec_5_cdec_NT *    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__init__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":13 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":13   *     def __init__(self, bytes cat, unsigned ref=0):   *         """NT(bytes cat, int ref=0) -> Non-terminal from category `cat`."""   *         self.cat = cat             # <<<<<<<<<<<<<< @@ -5347,7 +5423,7 @@ static int __pyx_pf_4cdec_5_cdec_2NT___init__(struct __pyx_obj_4cdec_5_cdec_NT *    __Pyx_DECREF(((PyObject *)__pyx_v_self->cat));    __pyx_v_self->cat = __pyx_v_cat; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":14 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":14   *         """NT(bytes cat, int ref=0) -> Non-terminal from category `cat`."""   *         self.cat = cat   *         self.ref = ref             # <<<<<<<<<<<<<< @@ -5372,7 +5448,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_2NT_3__str__(PyObject *__pyx_v_self) {    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":16 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":16   *         self.ref = ref   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -5391,7 +5467,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_2NT_2__str__(struct __pyx_obj_4cdec_5_cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__str__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":17 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":17   *    *     def __str__(self):   *         if self.ref > 0:             # <<<<<<<<<<<<<< @@ -5401,7 +5477,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_2NT_2__str__(struct __pyx_obj_4cdec_5_cde    __pyx_t_1 = ((__pyx_v_self->ref > 0) != 0);    if (__pyx_t_1) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":18 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":18   *     def __str__(self):   *         if self.ref > 0:   *             return '[%s,%d]' % (self.cat, self.ref)             # <<<<<<<<<<<<<< @@ -5429,7 +5505,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_2NT_2__str__(struct __pyx_obj_4cdec_5_cde    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":19 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":19   *         if self.ref > 0:   *             return '[%s,%d]' % (self.cat, self.ref)   *         return '[%s]' % self.cat             # <<<<<<<<<<<<<< @@ -5467,7 +5543,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_2NT_3cat_1__get__(PyObject *__pyx_v_self)    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":9 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":9   *    * cdef class NT:   *     cdef public bytes cat             # <<<<<<<<<<<<<< @@ -5563,7 +5639,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_2NT_3ref_1__get__(PyObject *__pyx_v_self)    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":10 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":10   * cdef class NT:   *     cdef public bytes cat   *     cdef public unsigned ref             # <<<<<<<<<<<<<< @@ -5684,7 +5760,7 @@ static int __pyx_pw_4cdec_5_cdec_5NTRef_1__init__(PyObject *__pyx_v_self, PyObje    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":23 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":23   * cdef class NTRef:   *     cdef public unsigned ref   *     def __init__(self, unsigned ref):             # <<<<<<<<<<<<<< @@ -5697,7 +5773,7 @@ static int __pyx_pf_4cdec_5_cdec_5NTRef___init__(struct __pyx_obj_4cdec_5_cdec_N    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__init__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":25 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":25   *     def __init__(self, unsigned ref):   *         """NTRef(int ref) -> Non-terminal reference."""   *         self.ref = ref             # <<<<<<<<<<<<<< @@ -5722,7 +5798,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_5NTRef_3__str__(PyObject *__pyx_v_self) {    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":27 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":27   *         self.ref = ref   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -5740,7 +5816,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5NTRef_2__str__(struct __pyx_obj_4cdec_5_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__str__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":28 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":28   *    *     def __str__(self):   *         return '[%d]' % self.ref             # <<<<<<<<<<<<<< @@ -5781,7 +5857,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_5NTRef_3ref_1__get__(PyObject *__pyx_v_se    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":22 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":22   *    * cdef class NTRef:   *     cdef public unsigned ref             # <<<<<<<<<<<<<< @@ -5848,7 +5924,7 @@ static int __pyx_pf_4cdec_5_cdec_5NTRef_3ref_2__set__(struct __pyx_obj_4cdec_5_c    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":30 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":30   *         return '[%d]' % self.ref   *    * cdef TRule convert_rule(_sa.Rule rule):             # <<<<<<<<<<<<<< @@ -5879,7 +5955,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("convert_rule", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":31 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":31   *    * cdef TRule convert_rule(_sa.Rule rule):   *     lhs = _sa.sym_tocat(rule.lhs)             # <<<<<<<<<<<<<< @@ -5888,7 +5964,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st   */    __pyx_v_lhs = __pyx_f_4cdec_2sa_3_sa_sym_tocat(__pyx_v_rule->lhs); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":32 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":32   * cdef TRule convert_rule(_sa.Rule rule):   *     lhs = _sa.sym_tocat(rule.lhs)   *     scores = dict(rule.scores)             # <<<<<<<<<<<<<< @@ -5906,7 +5982,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st    __pyx_v_scores = ((PyObject*)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":33 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":33   *     lhs = _sa.sym_tocat(rule.lhs)   *     scores = dict(rule.scores)   *     f, e = [], []             # <<<<<<<<<<<<<< @@ -5922,7 +5998,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st    __pyx_v_e = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":34 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":34   *     scores = dict(rule.scores)   *     f, e = [], []   *     cdef int* fsyms = rule.f.syms             # <<<<<<<<<<<<<< @@ -5932,7 +6008,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st    __pyx_t_3 = __pyx_v_rule->f->syms;    __pyx_v_fsyms = __pyx_t_3; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":35 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":35   *     f, e = [], []   *     cdef int* fsyms = rule.f.syms   *     for i in range(rule.f.n):             # <<<<<<<<<<<<<< @@ -5943,7 +6019,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st    for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {      __pyx_v_i = __pyx_t_5; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":36 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":36   *     cdef int* fsyms = rule.f.syms   *     for i in range(rule.f.n):   *         if _sa.sym_isvar(fsyms[i]):             # <<<<<<<<<<<<<< @@ -5953,7 +6029,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st      __pyx_t_6 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar((__pyx_v_fsyms[__pyx_v_i])) != 0);      if (__pyx_t_6) { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":37 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":37   *     for i in range(rule.f.n):   *         if _sa.sym_isvar(fsyms[i]):   *             f.append(NT(_sa.sym_tocat(fsyms[i])))             # <<<<<<<<<<<<<< @@ -5976,7 +6052,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st      }      /*else*/ { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":39 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":39   *             f.append(NT(_sa.sym_tocat(fsyms[i])))   *         else:   *             f.append(_sa.sym_tostring(fsyms[i]))             # <<<<<<<<<<<<<< @@ -5991,7 +6067,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st      __pyx_L5:;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":40 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":40   *         else:   *             f.append(_sa.sym_tostring(fsyms[i]))   *     cdef int* esyms = rule.e.syms             # <<<<<<<<<<<<<< @@ -6001,7 +6077,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st    __pyx_t_3 = __pyx_v_rule->e->syms;    __pyx_v_esyms = __pyx_t_3; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":41 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":41   *             f.append(_sa.sym_tostring(fsyms[i]))   *     cdef int* esyms = rule.e.syms   *     for i in range(rule.e.n):             # <<<<<<<<<<<<<< @@ -6012,7 +6088,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st    for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {      __pyx_v_i = __pyx_t_5; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":42 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":42   *     cdef int* esyms = rule.e.syms   *     for i in range(rule.e.n):   *         if _sa.sym_isvar(esyms[i]):             # <<<<<<<<<<<<<< @@ -6022,7 +6098,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st      __pyx_t_6 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar((__pyx_v_esyms[__pyx_v_i])) != 0);      if (__pyx_t_6) { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":43 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":43   *     for i in range(rule.e.n):   *         if _sa.sym_isvar(esyms[i]):   *             e.append(NTRef(_sa.sym_getindex(esyms[i])))             # <<<<<<<<<<<<<< @@ -6045,7 +6121,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st      }      /*else*/ { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":45 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":45   *             e.append(NTRef(_sa.sym_getindex(esyms[i])))   *         else:   *             e.append(_sa.sym_tostring(esyms[i]))             # <<<<<<<<<<<<<< @@ -6060,7 +6136,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st      __pyx_L8:;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":46 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":46   *         else:   *             e.append(_sa.sym_tostring(esyms[i]))   *     a = list(rule.alignments())             # <<<<<<<<<<<<<< @@ -6083,7 +6159,7 @@ static struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_f_4cdec_5_cdec_convert_rule(st    __pyx_v_a = ((PyObject*)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":47 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":47   *             e.append(_sa.sym_tostring(esyms[i]))   *     a = list(rule.alignments())   *     return TRule(lhs, f, e, scores, a)             # <<<<<<<<<<<<<< @@ -6146,6 +6222,7 @@ static int __pyx_pw_4cdec_5_cdec_5TRule_1__init__(PyObject *__pyx_v_self, PyObje    PyObject *__pyx_v_e = 0;    PyObject *__pyx_v_scores = 0;    PyObject *__pyx_v_a = 0; +  PyObject *__pyx_v_text = 0;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; @@ -6153,21 +6230,23 @@ static int __pyx_pw_4cdec_5_cdec_5TRule_1__init__(PyObject *__pyx_v_self, PyObje    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lhs,&__pyx_n_s__f,&__pyx_n_s__e,&__pyx_n_s__scores,&__pyx_n_s__a,0}; -    PyObject* values[5] = {0,0,0,0,0}; +    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lhs,&__pyx_n_s__f,&__pyx_n_s__e,&__pyx_n_s__scores,&__pyx_n_s__a,&__pyx_n_s__text,0}; +    PyObject* values[6] = {0,0,0,0,0,0}; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":52 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":52   *     cdef shared_ptr[grammar.TRule]* rule   *  - *     def __init__(self, lhs, f, e, scores, a=None):             # <<<<<<<<<<<<<< + *     def __init__(self, lhs, f, e, scores, a=None, text=None):             # <<<<<<<<<<<<<<   *         """TRule(lhs, f, e, scores, a=None) -> Translation rule.   *         lhs: left hand side non-terminal   */      values[4] = ((PyObject *)Py_None); +    values[5] = ((PyObject *)Py_None);      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args;        const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);        switch (pos_args) { +        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);          case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);          case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); @@ -6184,29 +6263,35 @@ static int __pyx_pw_4cdec_5_cdec_5TRule_1__init__(PyObject *__pyx_v_self, PyObje          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__f)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__e)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  3:          if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__scores)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  4:          if (kw_args > 0) {            PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a);            if (value) { values[4] = value; kw_args--; }          } +        case  5: +        if (kw_args > 0) { +          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__text); +          if (value) { values[5] = value; kw_args--; } +        }        }        if (unlikely(kw_args > 0)) {          if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { +        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);          case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);          case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);          values[2] = PyTuple_GET_ITEM(__pyx_args, 2); @@ -6221,36 +6306,38 @@ static int __pyx_pw_4cdec_5_cdec_5TRule_1__init__(PyObject *__pyx_v_self, PyObje      __pyx_v_e = values[2];      __pyx_v_scores = values[3];      __pyx_v_a = values[4]; +    __pyx_v_text = values[5];    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec._cdec.TRule.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_4cdec_5_cdec_5TRule___init__(((struct __pyx_obj_4cdec_5_cdec_TRule *)__pyx_v_self), __pyx_v_lhs, __pyx_v_f, __pyx_v_e, __pyx_v_scores, __pyx_v_a); +  __pyx_r = __pyx_pf_4cdec_5_cdec_5TRule___init__(((struct __pyx_obj_4cdec_5_cdec_TRule *)__pyx_v_self), __pyx_v_lhs, __pyx_v_f, __pyx_v_e, __pyx_v_scores, __pyx_v_a, __pyx_v_text);    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static int __pyx_pf_4cdec_5_cdec_5TRule___init__(struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_v_self, PyObject *__pyx_v_lhs, PyObject *__pyx_v_f, PyObject *__pyx_v_e, PyObject *__pyx_v_scores, PyObject *__pyx_v_a) { +static int __pyx_pf_4cdec_5_cdec_5TRule___init__(struct __pyx_obj_4cdec_5_cdec_TRule *__pyx_v_self, PyObject *__pyx_v_lhs, PyObject *__pyx_v_f, PyObject *__pyx_v_e, PyObject *__pyx_v_scores, PyObject *__pyx_v_a, PyObject *__pyx_v_text) {    int __pyx_r;    __Pyx_RefNannyDeclarations    TRule *__pyx_t_1;    int __pyx_t_2; +  std::string __pyx_t_3;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__init__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":59 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":59   *         scores: dictionary of feature scores   *         a: optional list of alignment points"""   *         self.rule = new shared_ptr[grammar.TRule](new grammar.TRule())             # <<<<<<<<<<<<<< - *         self.lhs = lhs - *         self.e = e + *         if lhs: + *           self.lhs = lhs   */    try {      __pyx_t_1 = new TRule(); @@ -6260,67 +6347,142 @@ static int __pyx_pf_4cdec_5_cdec_5TRule___init__(struct __pyx_obj_4cdec_5_cdec_T    }    __pyx_v_self->rule = new boost::shared_ptr<TRule>(__pyx_t_1); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":60 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":60   *         a: optional list of alignment points"""   *         self.rule = new shared_ptr[grammar.TRule](new grammar.TRule()) - *         self.lhs = lhs             # <<<<<<<<<<<<<< - *         self.e = e - *         self.f = f + *         if lhs:             # <<<<<<<<<<<<<< + *           self.lhs = lhs + *         if e:   */ -  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__lhs, __pyx_v_lhs) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_lhs); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__pyx_t_2) { -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":61 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":61   *         self.rule = new shared_ptr[grammar.TRule](new grammar.TRule()) - *         self.lhs = lhs - *         self.e = e             # <<<<<<<<<<<<<< - *         self.f = f - *         self.scores = scores - */ -  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__e, __pyx_v_e) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":62 - *         self.lhs = lhs - *         self.e = e - *         self.f = f             # <<<<<<<<<<<<<< - *         self.scores = scores + *         if lhs: + *           self.lhs = lhs             # <<<<<<<<<<<<<< + *         if e: + *           self.e = e + */ +    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__lhs, __pyx_v_lhs) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    goto __pyx_L3; +  } +  __pyx_L3:; + +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":62 + *         if lhs: + *           self.lhs = lhs + *         if e:             # <<<<<<<<<<<<<< + *           self.e = e + *         if f: + */ +  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_e); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__pyx_t_2) { + +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":63 + *           self.lhs = lhs + *         if e: + *           self.e = e             # <<<<<<<<<<<<<< + *         if f: + *           self.f = f + */ +    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__e, __pyx_v_e) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    goto __pyx_L4; +  } +  __pyx_L4:; + +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":64 + *         if e: + *           self.e = e + *         if f:             # <<<<<<<<<<<<<< + *           self.f = f + *         if scores: + */ +  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_f); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__pyx_t_2) { + +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":65 + *           self.e = e + *         if f: + *           self.f = f             # <<<<<<<<<<<<<< + *         if scores: + *           self.scores = scores + */ +    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__f, __pyx_v_f) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    goto __pyx_L5; +  } +  __pyx_L5:; + +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":66 + *         if f: + *           self.f = f + *         if scores:             # <<<<<<<<<<<<<< + *           self.scores = scores   *         if a:   */ -  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__f, __pyx_v_f) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_scores); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__pyx_t_2) { -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":63 - *         self.e = e - *         self.f = f - *         self.scores = scores             # <<<<<<<<<<<<<< +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":67 + *           self.f = f + *         if scores: + *           self.scores = scores             # <<<<<<<<<<<<<<   *         if a: - *             self.a = a + *           self.a = a   */ -  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__scores, __pyx_v_scores) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__scores, __pyx_v_scores) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    goto __pyx_L6; +  } +  __pyx_L6:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":64 - *         self.f = f - *         self.scores = scores +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":68 + *         if scores: + *           self.scores = scores   *         if a:             # <<<<<<<<<<<<<< - *             self.a = a - *         self.rule.get().ComputeArity() + *           self.a = a + *         if text:   */ -  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_a); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_a); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":65 - *         self.scores = scores +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":69 + *           self.scores = scores   *         if a: - *             self.a = a             # <<<<<<<<<<<<<< + *           self.a = a             # <<<<<<<<<<<<<< + *         if text: + *           self.rule.get().ReadFromString(text, 0) + */ +    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__a, __pyx_v_a) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    goto __pyx_L7; +  } +  __pyx_L7:; + +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":70 + *         if a: + *           self.a = a + *         if text:             # <<<<<<<<<<<<<< + *           self.rule.get().ReadFromString(text, 0) + *         self.rule.get().ComputeArity() + */ +  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_text); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__pyx_t_2) { + +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":71 + *           self.a = a + *         if text: + *           self.rule.get().ReadFromString(text, 0)             # <<<<<<<<<<<<<<   *         self.rule.get().ComputeArity()   *    */ -    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__a, __pyx_v_a) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    goto __pyx_L3; +    __pyx_t_3 = __pyx_convert_string_from_py_(__pyx_v_text); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_v_self->rule->get()->ReadFromString(__pyx_t_3, 0); +    goto __pyx_L8;    } -  __pyx_L3:; +  __pyx_L8:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":66 - *         if a: - *             self.a = a +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":72 + *         if text: + *           self.rule.get().ReadFromString(text, 0)   *         self.rule.get().ComputeArity()             # <<<<<<<<<<<<<<   *    *     def __dealloc__(self): @@ -6346,7 +6508,7 @@ static void __pyx_pw_4cdec_5_cdec_5TRule_3__dealloc__(PyObject *__pyx_v_self) {    __Pyx_RefNannyFinishContext();  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":68 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":74   *         self.rule.get().ComputeArity()   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -6358,7 +6520,7 @@ static void __pyx_pf_4cdec_5_cdec_5TRule_2__dealloc__(CYTHON_UNUSED struct __pyx    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":69 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":75   *    *     def __dealloc__(self):   *         del self.rule             # <<<<<<<<<<<<<< @@ -6381,7 +6543,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_5TRule_5arity_1__get__(PyObject *__pyx_v_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":72 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":78   *    *     property arity:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -6398,7 +6560,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_5arity___get__(struct __pyx_obj_4c    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":73 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":79   *     property arity:   *         def __get__(self):   *             return self.rule.get().arity_             # <<<<<<<<<<<<<< @@ -6406,7 +6568,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_5arity___get__(struct __pyx_obj_4c   *     property f:   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->rule->get()->arity_); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->rule->get()->arity_); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -6435,7 +6597,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_5TRule_1f_1__get__(PyObject *__pyx_v_self    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":76 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":82   *    *     property f:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -6462,7 +6624,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1f___get__(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":77 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":83   *     property f:   *         def __get__(self):   *             cdef vector[WordID]* f_ = &self.rule.get().f_             # <<<<<<<<<<<<<< @@ -6471,19 +6633,19 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1f___get__(struct __pyx_obj_4cdec_   */    __pyx_v_f_ = (&__pyx_v_self->rule->get()->f_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":79 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":85   *             cdef vector[WordID]* f_ = &self.rule.get().f_   *             cdef WordID w   *             cdef f = []             # <<<<<<<<<<<<<<   *             cdef unsigned i   *             cdef int idx = 0   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_f = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":81 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":87   *             cdef f = []   *             cdef unsigned i   *             cdef int idx = 0             # <<<<<<<<<<<<<< @@ -6492,7 +6654,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1f___get__(struct __pyx_obj_4cdec_   */    __pyx_v_idx = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":82 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":88   *             cdef unsigned i   *             cdef int idx = 0   *             for i in range(f_.size()):             # <<<<<<<<<<<<<< @@ -6503,7 +6665,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1f___get__(struct __pyx_obj_4cdec_    for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {      __pyx_v_i = __pyx_t_3; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":83 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":89   *             cdef int idx = 0   *             for i in range(f_.size()):   *                 w = f_[0][i]             # <<<<<<<<<<<<<< @@ -6512,7 +6674,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1f___get__(struct __pyx_obj_4cdec_   */      __pyx_v_w = ((__pyx_v_f_[0])[__pyx_v_i]); -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":84 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":90   *             for i in range(f_.size()):   *                 w = f_[0][i]   *                 if w < 0:             # <<<<<<<<<<<<<< @@ -6522,7 +6684,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1f___get__(struct __pyx_obj_4cdec_      __pyx_t_4 = ((__pyx_v_w < 0) != 0);      if (__pyx_t_4) { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":85 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":91   *                 w = f_[0][i]   *                 if w < 0:   *                     idx += 1             # <<<<<<<<<<<<<< @@ -6531,18 +6693,18 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1f___get__(struct __pyx_obj_4cdec_   */        __pyx_v_idx = (__pyx_v_idx + 1); -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":86 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":92   *                 if w < 0:   *                     idx += 1   *                     f.append(NT(TDConvert(-w).c_str(), idx))             # <<<<<<<<<<<<<<   *                 else:   *                     f.append(unicode(TDConvert(w).c_str(), encoding='utf8'))   */ -      __pyx_t_1 = __Pyx_PyBytes_FromString(TD::Convert((-__pyx_v_w)).c_str()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_PyBytes_FromString(TD::Convert((-__pyx_v_w)).c_str()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(((PyObject *)__pyx_t_1)); -      __pyx_t_5 = PyInt_FromLong(__pyx_v_idx); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyInt_FromLong(__pyx_v_idx); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5); -      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_1));        __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); @@ -6550,10 +6712,10 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1f___get__(struct __pyx_obj_4cdec_        __Pyx_GIVEREF(__pyx_t_5);        __pyx_t_1 = 0;        __pyx_t_5 = 0; -      __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_NT)), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_NT)), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; -      __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_f, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_f, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -6561,28 +6723,28 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1f___get__(struct __pyx_obj_4cdec_      }      /*else*/ { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":88 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":94   *                     f.append(NT(TDConvert(-w).c_str(), idx))   *                 else:   *                     f.append(unicode(TDConvert(w).c_str(), encoding='utf8'))             # <<<<<<<<<<<<<<   *             return f   *    */ -      __pyx_t_6 = __Pyx_PyBytes_FromString(TD::Convert(__pyx_v_w).c_str()); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyBytes_FromString(TD::Convert(__pyx_v_w).c_str()); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(((PyObject *)__pyx_t_6)); -      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_6));        __Pyx_GIVEREF(((PyObject *)__pyx_t_6));        __pyx_t_6 = 0; -      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(((PyObject *)__pyx_t_6)); -      if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__utf8)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__utf8)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;        __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; -      __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_f, __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_f, __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -6590,7 +6752,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1f___get__(struct __pyx_obj_4cdec_      __pyx_L5:;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":89 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":95   *                 else:   *                     f.append(unicode(TDConvert(w).c_str(), encoding='utf8'))   *             return f             # <<<<<<<<<<<<<< @@ -6628,7 +6790,7 @@ static int __pyx_pw_4cdec_5_cdec_5TRule_1f_3__set__(PyObject *__pyx_v_self, PyOb    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":91 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":97   *             return f   *    *         def __set__(self, f):             # <<<<<<<<<<<<<< @@ -6655,7 +6817,7 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_1f_2__set__(struct __pyx_obj_4cdec_5_cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__set__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":92 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":98   *    *         def __set__(self, f):   *             cdef vector[WordID]* f_ = &self.rule.get().f_             # <<<<<<<<<<<<<< @@ -6664,17 +6826,17 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_1f_2__set__(struct __pyx_obj_4cdec_5_cde   */    __pyx_v_f_ = (&__pyx_v_self->rule->get()->f_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":93 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":99   *         def __set__(self, f):   *             cdef vector[WordID]* f_ = &self.rule.get().f_   *             f_.resize(len(f))             # <<<<<<<<<<<<<<   *             cdef unsigned i   *             cdef int idx = 0   */ -  __pyx_t_1 = PyObject_Length(__pyx_v_f); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Length(__pyx_v_f); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_f_->resize(__pyx_t_1); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":95 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":101   *             f_.resize(len(f))   *             cdef unsigned i   *             cdef int idx = 0             # <<<<<<<<<<<<<< @@ -6683,71 +6845,71 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_1f_2__set__(struct __pyx_obj_4cdec_5_cde   */    __pyx_v_idx = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":96 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":102   *             cdef unsigned i   *             cdef int idx = 0   *             for i in range(len(f)):             # <<<<<<<<<<<<<<   *                 if isinstance(f[i], NT):   *                     f_[0][i] = -TDConvert((<NT> f[i]).cat)   */ -  __pyx_t_1 = PyObject_Length(__pyx_v_f); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Length(__pyx_v_f); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":97 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":103   *             cdef int idx = 0   *             for i in range(len(f)):   *                 if isinstance(f[i], NT):             # <<<<<<<<<<<<<<   *                     f_[0][i] = -TDConvert((<NT> f[i]).cat)   *                 else:   */ -    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_f, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_f, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_4 = __Pyx_TypeCheck(__pyx_t_3, ((PyObject*)__pyx_ptype_4cdec_5_cdec_NT));       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_t_5 = (__pyx_t_4 != 0);      if (__pyx_t_5) { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":98 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":104   *             for i in range(len(f)):   *                 if isinstance(f[i], NT):   *                     f_[0][i] = -TDConvert((<NT> f[i]).cat)             # <<<<<<<<<<<<<<   *                 else:   *                     fi = as_str(f[i])   */ -      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_f, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_f, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_6 = __Pyx_PyObject_AsString(((PyObject *)((struct __pyx_obj_4cdec_5_cdec_NT *)__pyx_t_3)->cat)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_AsString(((PyObject *)((struct __pyx_obj_4cdec_5_cdec_NT *)__pyx_t_3)->cat)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        ((__pyx_v_f_[0])[__pyx_v_i]) = (-TD::Convert(__pyx_t_6));        goto __pyx_L5;      }      /*else*/ { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":100 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":106   *                     f_[0][i] = -TDConvert((<NT> f[i]).cat)   *                 else:   *                     fi = as_str(f[i])             # <<<<<<<<<<<<<<   *                     f_[0][i] = TDConvert(fi)   *    */ -      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_f, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_f, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_7 = ((PyObject *)__pyx_f_4cdec_5_cdec_as_str(__pyx_t_3, NULL)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = ((PyObject *)__pyx_f_4cdec_5_cdec_as_str(__pyx_t_3, NULL)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_7);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __Pyx_XDECREF(((PyObject *)__pyx_v_fi));        __pyx_v_fi = ((PyObject*)__pyx_t_7);        __pyx_t_7 = 0; -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":101 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":107   *                 else:   *                     fi = as_str(f[i])   *                     f_[0][i] = TDConvert(fi)             # <<<<<<<<<<<<<<   *    *     property e:   */ -      __pyx_t_6 = __Pyx_PyObject_AsString(((PyObject *)__pyx_v_fi)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_AsString(((PyObject *)__pyx_v_fi)); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        ((__pyx_v_f_[0])[__pyx_v_i]) = TD::Convert(__pyx_t_6);      }      __pyx_L5:; @@ -6777,7 +6939,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_5TRule_1e_1__get__(PyObject *__pyx_v_self    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":104 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":110   *    *     property e:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -6804,7 +6966,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1e___get__(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":105 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":111   *     property e:   *         def __get__(self):   *             cdef vector[WordID]* e_ = &self.rule.get().e_             # <<<<<<<<<<<<<< @@ -6813,19 +6975,19 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1e___get__(struct __pyx_obj_4cdec_   */    __pyx_v_e_ = (&__pyx_v_self->rule->get()->e_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":107 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":113   *             cdef vector[WordID]* e_ = &self.rule.get().e_   *             cdef WordID w   *             cdef e = []             # <<<<<<<<<<<<<<   *             cdef unsigned i   *             cdef int idx = 0   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_e = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":109 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":115   *             cdef e = []   *             cdef unsigned i   *             cdef int idx = 0             # <<<<<<<<<<<<<< @@ -6834,7 +6996,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1e___get__(struct __pyx_obj_4cdec_   */    __pyx_v_idx = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":110 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":116   *             cdef unsigned i   *             cdef int idx = 0   *             for i in range(e_.size()):             # <<<<<<<<<<<<<< @@ -6845,7 +7007,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1e___get__(struct __pyx_obj_4cdec_    for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {      __pyx_v_i = __pyx_t_3; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":111 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":117   *             cdef int idx = 0   *             for i in range(e_.size()):   *                 w = e_[0][i]             # <<<<<<<<<<<<<< @@ -6854,7 +7016,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1e___get__(struct __pyx_obj_4cdec_   */      __pyx_v_w = ((__pyx_v_e_[0])[__pyx_v_i]); -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":112 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":118   *             for i in range(e_.size()):   *                 w = e_[0][i]   *                 if w < 1:             # <<<<<<<<<<<<<< @@ -6864,7 +7026,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1e___get__(struct __pyx_obj_4cdec_      __pyx_t_4 = ((__pyx_v_w < 1) != 0);      if (__pyx_t_4) { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":113 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":119   *                 w = e_[0][i]   *                 if w < 1:   *                     idx += 1             # <<<<<<<<<<<<<< @@ -6873,24 +7035,24 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1e___get__(struct __pyx_obj_4cdec_   */        __pyx_v_idx = (__pyx_v_idx + 1); -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":114 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":120   *                 if w < 1:   *                     idx += 1   *                     e.append(NTRef(1-w))             # <<<<<<<<<<<<<<   *                 else:   *                     e.append(unicode(TDConvert(w).c_str(), encoding='utf8'))   */ -      __pyx_t_1 = PyInt_FromLong((1 - __pyx_v_w)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyInt_FromLong((1 - __pyx_v_w)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);        __Pyx_GIVEREF(__pyx_t_1);        __pyx_t_1 = 0; -      __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_NTRef)), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_NTRef)), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; -      __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_e, __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_e, __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -6898,28 +7060,28 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1e___get__(struct __pyx_obj_4cdec_      }      /*else*/ { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":116 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":122   *                     e.append(NTRef(1-w))   *                 else:   *                     e.append(unicode(TDConvert(w).c_str(), encoding='utf8'))             # <<<<<<<<<<<<<<   *             return e   *    */ -      __pyx_t_5 = __Pyx_PyBytes_FromString(TD::Convert(__pyx_v_w).c_str()); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyBytes_FromString(TD::Convert(__pyx_v_w).c_str()); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(((PyObject *)__pyx_t_5)); -      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_5));        __Pyx_GIVEREF(((PyObject *)__pyx_t_5));        __pyx_t_5 = 0; -      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(((PyObject *)__pyx_t_5)); -      if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__utf8)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__utf8)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; -      __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_e, __pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_e, __pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -6927,7 +7089,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1e___get__(struct __pyx_obj_4cdec_      __pyx_L5:;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":117 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":123   *                 else:   *                     e.append(unicode(TDConvert(w).c_str(), encoding='utf8'))   *             return e             # <<<<<<<<<<<<<< @@ -6965,7 +7127,7 @@ static int __pyx_pw_4cdec_5_cdec_5TRule_1e_3__set__(PyObject *__pyx_v_self, PyOb    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":119 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":125   *             return e   *    *         def __set__(self, e):             # <<<<<<<<<<<<<< @@ -6992,7 +7154,7 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_1e_2__set__(struct __pyx_obj_4cdec_5_cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__set__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":120 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":126   *    *         def __set__(self, e):   *             cdef vector[WordID]* e_ = &self.rule.get().e_             # <<<<<<<<<<<<<< @@ -7001,87 +7163,87 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_1e_2__set__(struct __pyx_obj_4cdec_5_cde   */    __pyx_v_e_ = (&__pyx_v_self->rule->get()->e_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":121 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":127   *         def __set__(self, e):   *             cdef vector[WordID]* e_ = &self.rule.get().e_   *             e_.resize(len(e))             # <<<<<<<<<<<<<<   *             cdef unsigned i   *             for i in range(len(e)):   */ -  __pyx_t_1 = PyObject_Length(__pyx_v_e); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Length(__pyx_v_e); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_e_->resize(__pyx_t_1); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":123 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":129   *             e_.resize(len(e))   *             cdef unsigned i   *             for i in range(len(e)):             # <<<<<<<<<<<<<<   *                 if isinstance(e[i], NTRef):   *                     e_[0][i] = 1-e[i].ref   */ -  __pyx_t_1 = PyObject_Length(__pyx_v_e); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Length(__pyx_v_e); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":124 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":130   *             cdef unsigned i   *             for i in range(len(e)):   *                 if isinstance(e[i], NTRef):             # <<<<<<<<<<<<<<   *                     e_[0][i] = 1-e[i].ref   *                 else:   */ -    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_e, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_e, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_4 = __Pyx_TypeCheck(__pyx_t_3, ((PyObject*)__pyx_ptype_4cdec_5_cdec_NTRef));       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_t_5 = (__pyx_t_4 != 0);      if (__pyx_t_5) { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":125 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":131   *             for i in range(len(e)):   *                 if isinstance(e[i], NTRef):   *                     e_[0][i] = 1-e[i].ref             # <<<<<<<<<<<<<<   *                 else:   *                     ei = as_str(e[i])   */ -      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_e, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_e, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s__ref); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s__ref); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      __pyx_t_3 = PyNumber_Subtract(__pyx_int_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyNumber_Subtract(__pyx_int_1, __pyx_t_6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      __pyx_t_7 = __Pyx_PyInt_from_py_WordID(__pyx_t_3); if (unlikely((__pyx_t_7 == (WordID)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyInt_from_py_WordID(__pyx_t_3); if (unlikely((__pyx_t_7 == (WordID)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        ((__pyx_v_e_[0])[__pyx_v_i]) = __pyx_t_7;        goto __pyx_L5;      }      /*else*/ { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":127 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":133   *                     e_[0][i] = 1-e[i].ref   *                 else:   *                     ei = as_str(e[i])             # <<<<<<<<<<<<<<   *                     e_[0][i] = TDConvert(ei)   *    */ -      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_e, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_e, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_6 = ((PyObject *)__pyx_f_4cdec_5_cdec_as_str(__pyx_t_3, NULL)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = ((PyObject *)__pyx_f_4cdec_5_cdec_as_str(__pyx_t_3, NULL)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __Pyx_XDECREF(((PyObject *)__pyx_v_ei));        __pyx_v_ei = ((PyObject*)__pyx_t_6);        __pyx_t_6 = 0; -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":128 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":134   *                 else:   *                     ei = as_str(e[i])   *                     e_[0][i] = TDConvert(ei)             # <<<<<<<<<<<<<<   *    *     property a:   */ -      __pyx_t_8 = __Pyx_PyObject_AsString(((PyObject *)__pyx_v_ei)); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_PyObject_AsString(((PyObject *)__pyx_v_ei)); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        ((__pyx_v_e_[0])[__pyx_v_i]) = TD::Convert(__pyx_t_8);      }      __pyx_L5:; @@ -7112,7 +7274,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_5TRule_1a_1__get__(PyObject *__pyx_v_self    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":131 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":137   *    *     property a:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -7138,7 +7300,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_1a___get__(struct __pyx_obj_4cdec_    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_5TRule_1a_2generator2, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_5TRule_1a_2generator2, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -7178,9 +7340,9 @@ static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_1a_2generator2(__pyx_GeneratorObje      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":133 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":139   *         def __get__(self):   *             cdef unsigned i   *             cdef vector[grammar.AlignmentPoint]* a = &self.rule.get().a_             # <<<<<<<<<<<<<< @@ -7189,7 +7351,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_1a_2generator2(__pyx_GeneratorObje   */    __pyx_cur_scope->__pyx_v_a = (&__pyx_cur_scope->__pyx_v_self->rule->get()->a_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":134 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":140   *             cdef unsigned i   *             cdef vector[grammar.AlignmentPoint]* a = &self.rule.get().a_   *             for i in range(a.size()):             # <<<<<<<<<<<<<< @@ -7200,18 +7362,18 @@ static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_1a_2generator2(__pyx_GeneratorObje    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":135 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":141   *             cdef vector[grammar.AlignmentPoint]* a = &self.rule.get().a_   *             for i in range(a.size()):   *                 yield (a[0][i].s_, a[0][i].t_)             # <<<<<<<<<<<<<<   *    *         def __set__(self, a):   */ -    __pyx_t_3 = PyInt_FromLong(((__pyx_cur_scope->__pyx_v_a[0])[__pyx_cur_scope->__pyx_v_i]).s_); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyInt_FromLong(((__pyx_cur_scope->__pyx_v_a[0])[__pyx_cur_scope->__pyx_v_i]).s_); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = PyInt_FromLong(((__pyx_cur_scope->__pyx_v_a[0])[__pyx_cur_scope->__pyx_v_i]).t_); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyInt_FromLong(((__pyx_cur_scope->__pyx_v_a[0])[__pyx_cur_scope->__pyx_v_i]).t_); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);      __Pyx_GIVEREF(__pyx_t_3); @@ -7231,7 +7393,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_1a_2generator2(__pyx_GeneratorObje      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; -    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    PyErr_SetNone(PyExc_StopIteration);    goto __pyx_L0; @@ -7259,7 +7421,7 @@ static int __pyx_pw_4cdec_5_cdec_5TRule_1a_4__set__(PyObject *__pyx_v_self, PyOb    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":137 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":143   *                 yield (a[0][i].s_, a[0][i].t_)   *    *         def __set__(self, a):             # <<<<<<<<<<<<<< @@ -7288,7 +7450,7 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_1a_3__set__(struct __pyx_obj_4cdec_5_cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__set__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":138 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":144   *    *         def __set__(self, a):   *             cdef vector[grammar.AlignmentPoint]* a_ = &self.rule.get().a_             # <<<<<<<<<<<<<< @@ -7297,35 +7459,35 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_1a_3__set__(struct __pyx_obj_4cdec_5_cde   */    __pyx_v_a_ = (&__pyx_v_self->rule->get()->a_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":139 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":145   *         def __set__(self, a):   *             cdef vector[grammar.AlignmentPoint]* a_ = &self.rule.get().a_   *             a_.resize(len(a))             # <<<<<<<<<<<<<<   *             cdef unsigned i   *             cdef int s, t   */ -  __pyx_t_1 = PyObject_Length(__pyx_v_a); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Length(__pyx_v_a); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_a_->resize(__pyx_t_1); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":142 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":148   *             cdef unsigned i   *             cdef int s, t   *             for i in range(len(a)):             # <<<<<<<<<<<<<<   *                 s, t = a[i]   *                 a_[0][i] = grammar.AlignmentPoint(s, t)   */ -  __pyx_t_1 = PyObject_Length(__pyx_v_a); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Length(__pyx_v_a); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":143 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":149   *             cdef int s, t   *             for i in range(len(a)):   *                 s, t = a[i]             # <<<<<<<<<<<<<<   *                 a_[0][i] = grammar.AlignmentPoint(s, t)   *    */ -    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_a, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_a, __pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {        PyObject* sequence = __pyx_t_3; @@ -7337,7 +7499,7 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_1a_3__set__(struct __pyx_obj_4cdec_5_cde        if (unlikely(size != 2)) {          if (size > 2) __Pyx_RaiseTooManyValuesError(2);          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { @@ -7350,16 +7512,16 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_1a_3__set__(struct __pyx_obj_4cdec_5_cde        __Pyx_INCREF(__pyx_t_4);        __Pyx_INCREF(__pyx_t_5);        #else -      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        #endif        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      } else      {        Py_ssize_t index = -1; -      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; @@ -7367,7 +7529,7 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_1a_3__set__(struct __pyx_obj_4cdec_5_cde        __Pyx_GOTREF(__pyx_t_4);        index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;        __Pyx_GOTREF(__pyx_t_5); -      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_7 = NULL;        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        goto __pyx_L6_unpacking_done; @@ -7375,17 +7537,17 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_1a_3__set__(struct __pyx_obj_4cdec_5_cde        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __pyx_t_7 = NULL;        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_L6_unpacking_done:;      } -    __pyx_t_8 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __pyx_v_s = __pyx_t_8;      __pyx_v_t = __pyx_t_9; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":144 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":150   *             for i in range(len(a)):   *                 s, t = a[i]   *                 a_[0][i] = grammar.AlignmentPoint(s, t)             # <<<<<<<<<<<<<< @@ -7420,7 +7582,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_5TRule_6scores_1__get__(PyObject *__pyx_v    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":147 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":153   *    *     property scores:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -7438,20 +7600,20 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_6scores___get__(struct __pyx_obj_4    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":148 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":154   *     property scores:   *         def __get__(self):   *             cdef SparseVector scores = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<<   *             scores.vector = new FastSparseVector[double](self.rule.get().scores_)   *             return scores   */ -  __pyx_t_1 = __pyx_tp_new_4cdec_5_cdec_SparseVector(((PyTypeObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_SparseVector)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __pyx_tp_new_4cdec_5_cdec_SparseVector(((PyTypeObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_SparseVector)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_5_cdec_SparseVector)))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_5_cdec_SparseVector)))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_scores = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":149 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":155   *         def __get__(self):   *             cdef SparseVector scores = SparseVector.__new__(SparseVector)   *             scores.vector = new FastSparseVector[double](self.rule.get().scores_)             # <<<<<<<<<<<<<< @@ -7460,7 +7622,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_6scores___get__(struct __pyx_obj_4   */    __pyx_v_scores->vector = new FastSparseVector<double>(__pyx_v_self->rule->get()->scores_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":150 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":156   *             cdef SparseVector scores = SparseVector.__new__(SparseVector)   *             scores.vector = new FastSparseVector[double](self.rule.get().scores_)   *             return scores             # <<<<<<<<<<<<<< @@ -7496,7 +7658,7 @@ static int __pyx_pw_4cdec_5_cdec_5TRule_6scores_3__set__(PyObject *__pyx_v_self,    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":152 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":158   *             return scores   *    *         def __set__(self, scores):             # <<<<<<<<<<<<<< @@ -7528,7 +7690,7 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_6scores_2__set__(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__set__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":153 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":159   *    *         def __set__(self, scores):   *             cdef FastSparseVector[double]* scores_ = &self.rule.get().scores_             # <<<<<<<<<<<<<< @@ -7537,7 +7699,7 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_6scores_2__set__(struct __pyx_obj_4cdec_   */    __pyx_v_scores_ = (&__pyx_v_self->rule->get()->scores_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":154 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":160   *         def __set__(self, scores):   *             cdef FastSparseVector[double]* scores_ = &self.rule.get().scores_   *             scores_.clear()             # <<<<<<<<<<<<<< @@ -7546,23 +7708,23 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_6scores_2__set__(struct __pyx_obj_4cdec_   */    __pyx_v_scores_->clear(); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":157 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":163   *             cdef int fid   *             cdef float fval   *             for fname, fval in scores.items():             # <<<<<<<<<<<<<<   *                 fn = as_str(fname)   *                 fid = FDConvert(fn)   */ -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_scores, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_scores, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {      __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;      __pyx_t_4 = NULL;    } else { -    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext;    } @@ -7571,23 +7733,23 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_6scores_2__set__(struct __pyx_obj_4cdec_      if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_1)) {        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_1)) {        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_2 = __pyx_t_4(__pyx_t_1);        if (unlikely(!__pyx_t_2)) {          if (PyErr_Occurred()) {            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -7603,7 +7765,7 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_6scores_2__set__(struct __pyx_obj_4cdec_        if (unlikely(size != 2)) {          if (size > 2) __Pyx_RaiseTooManyValuesError(2);          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { @@ -7616,16 +7778,16 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_6scores_2__set__(struct __pyx_obj_4cdec_        __Pyx_INCREF(__pyx_t_5);        __Pyx_INCREF(__pyx_t_6);        #else -      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5); -      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        #endif        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      } else      {        Py_ssize_t index = -1; -      __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_7);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -7633,7 +7795,7 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_6scores_2__set__(struct __pyx_obj_4cdec_        __Pyx_GOTREF(__pyx_t_5);        index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;        __Pyx_GOTREF(__pyx_t_6); -      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_8 = NULL;        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        goto __pyx_L6_unpacking_done; @@ -7641,40 +7803,40 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_6scores_2__set__(struct __pyx_obj_4cdec_        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        __pyx_t_8 = NULL;        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_L6_unpacking_done:;      } -    __pyx_t_9 = __pyx_PyFloat_AsFloat(__pyx_t_6); if (unlikely((__pyx_t_9 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = __pyx_PyFloat_AsFloat(__pyx_t_6); if (unlikely((__pyx_t_9 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_XDECREF(__pyx_v_fname);      __pyx_v_fname = __pyx_t_5;      __pyx_t_5 = 0;      __pyx_v_fval = __pyx_t_9; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":158 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":164   *             cdef float fval   *             for fname, fval in scores.items():   *                 fn = as_str(fname)             # <<<<<<<<<<<<<<   *                 fid = FDConvert(fn)   *                 if fid < 0: raise KeyError(fname)   */ -    __pyx_t_2 = ((PyObject *)__pyx_f_4cdec_5_cdec_as_str(__pyx_v_fname, NULL)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = ((PyObject *)__pyx_f_4cdec_5_cdec_as_str(__pyx_v_fname, NULL)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_XDECREF(((PyObject *)__pyx_v_fn));      __pyx_v_fn = ((PyObject*)__pyx_t_2);      __pyx_t_2 = 0; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":159 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":165   *             for fname, fval in scores.items():   *                 fn = as_str(fname)   *                 fid = FDConvert(fn)             # <<<<<<<<<<<<<<   *                 if fid < 0: raise KeyError(fname)   *                 scores_.set_value(fid, fval)   */ -    __pyx_t_10 = __Pyx_PyObject_AsString(((PyObject *)__pyx_v_fn)); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = __Pyx_PyObject_AsString(((PyObject *)__pyx_v_fn)); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_v_fid = FD::Convert(__pyx_t_10); -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":160 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":166   *                 fn = as_str(fname)   *                 fid = FDConvert(fn)   *                 if fid < 0: raise KeyError(fname)             # <<<<<<<<<<<<<< @@ -7683,22 +7845,22 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_6scores_2__set__(struct __pyx_obj_4cdec_   */      __pyx_t_11 = ((__pyx_v_fid < 0) != 0);      if (__pyx_t_11) { -      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_INCREF(__pyx_v_fname);        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_fname);        __Pyx_GIVEREF(__pyx_v_fname); -      __pyx_t_6 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;        __Pyx_Raise(__pyx_t_6, 0, 0, 0);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        goto __pyx_L7;      }      __pyx_L7:; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":161 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":167   *                 fid = FDConvert(fn)   *                 if fid < 0: raise KeyError(fname)   *                 scores_.set_value(fid, fval)             # <<<<<<<<<<<<<< @@ -7737,7 +7899,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_5TRule_3lhs_1__get__(PyObject *__pyx_v_se    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":164 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":170   *    *     property lhs:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -7755,7 +7917,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_3lhs___get__(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":165 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":171   *     property lhs:   *         def __get__(self):   *             return NT(TDConvert(-self.rule.get().lhs_).c_str())             # <<<<<<<<<<<<<< @@ -7763,14 +7925,14 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_3lhs___get__(struct __pyx_obj_4cde   *         def __set__(self, lhs):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_PyBytes_FromString(TD::Convert((-__pyx_v_self->rule->get()->lhs_)).c_str()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyBytes_FromString(TD::Convert((-__pyx_v_self->rule->get()->lhs_)).c_str()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_1)); -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1));    __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_NT)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_NT)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __pyx_r = __pyx_t_1; @@ -7801,7 +7963,7 @@ static int __pyx_pw_4cdec_5_cdec_5TRule_3lhs_3__set__(PyObject *__pyx_v_self, Py    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":167 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":173   *             return NT(TDConvert(-self.rule.get().lhs_).c_str())   *    *         def __set__(self, lhs):             # <<<<<<<<<<<<<< @@ -7823,7 +7985,7 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_3lhs_2__set__(struct __pyx_obj_4cdec_5_c    __Pyx_RefNannySetupContext("__set__", 0);    __Pyx_INCREF(__pyx_v_lhs); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":168 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":174   *    *         def __set__(self, lhs):   *             if not isinstance(lhs, NT):             # <<<<<<<<<<<<<< @@ -7834,19 +7996,19 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_3lhs_2__set__(struct __pyx_obj_4cdec_5_c    __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":169 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":175   *         def __set__(self, lhs):   *             if not isinstance(lhs, NT):   *                 lhs = NT(lhs)             # <<<<<<<<<<<<<<   *             self.rule.get().lhs_ = -TDConvert((<NT> lhs).cat)   *    */ -    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_INCREF(__pyx_v_lhs);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_lhs);      __Pyx_GIVEREF(__pyx_v_lhs); -    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_NT)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_NT)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_v_lhs); @@ -7856,14 +8018,14 @@ static int __pyx_pf_4cdec_5_cdec_5TRule_3lhs_2__set__(struct __pyx_obj_4cdec_5_c    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":170 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":176   *             if not isinstance(lhs, NT):   *                 lhs = NT(lhs)   *             self.rule.get().lhs_ = -TDConvert((<NT> lhs).cat)             # <<<<<<<<<<<<<<   *    *     def __str__(self):   */ -  __pyx_t_5 = __Pyx_PyObject_AsString(((PyObject *)((struct __pyx_obj_4cdec_5_cdec_NT *)__pyx_v_lhs)->cat)); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = __Pyx_PyObject_AsString(((PyObject *)((struct __pyx_obj_4cdec_5_cdec_NT *)__pyx_v_lhs)->cat)); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->rule->get()->lhs_ = (-TD::Convert(__pyx_t_5));    __pyx_r = 0; @@ -7889,9 +8051,9 @@ static PyObject *__pyx_pw_4cdec_5_cdec_5TRule_5__str__(PyObject *__pyx_v_self) {    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_7__str___2generator19(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_7__str___2generator22(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":173 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":179   *    *     def __str__(self):   *         scores = ' '.join('%s=%s' % feat for feat in self.scores)             # <<<<<<<<<<<<<< @@ -7917,7 +8079,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_7__str___genexpr(PyObject *__pyx_s    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_5TRule_7__str___2generator19, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_5TRule_7__str___2generator22, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -7935,7 +8097,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_7__str___genexpr(PyObject *__pyx_s    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_7__str___2generator19(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_7__str___2generator22(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  {    struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_6_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_6_genexpr *)__pyx_generator->closure);    PyObject *__pyx_r = NULL; @@ -7956,15 +8118,15 @@ static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_7__str___2generator19(__pyx_Genera      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s__scores); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s__scores); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {      __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;      __pyx_t_4 = NULL;    } else { -    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;    } @@ -7973,23 +8135,23 @@ static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_7__str___2generator19(__pyx_Genera      if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_2)) {        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_2)) {        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_1 = __pyx_t_4(__pyx_t_2);        if (unlikely(!__pyx_t_1)) {          if (PyErr_Occurred()) {            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -8000,7 +8162,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_7__str___2generator19(__pyx_Genera      __Pyx_GIVEREF(__pyx_t_1);      __pyx_cur_scope->__pyx_v_feat = __pyx_t_1;      __pyx_t_1 = 0; -    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_11), __pyx_cur_scope->__pyx_v_feat); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_11), __pyx_cur_scope->__pyx_v_feat); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __pyx_r = ((PyObject *)__pyx_t_1);      __pyx_t_1 = 0; @@ -8019,7 +8181,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_7__str___2generator19(__pyx_Genera      __Pyx_XGOTREF(__pyx_t_2);      __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;      __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; -    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    PyErr_SetNone(PyExc_StopIteration); @@ -8036,7 +8198,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_5TRule_7__str___2generator19(__pyx_Genera    return NULL;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":172 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":178   *             self.rule.get().lhs_ = -TDConvert((<NT> lhs).cat)   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -8068,30 +8230,30 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_4__str__(struct __pyx_obj_4cdec_5_    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":173 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":179   *    *     def __str__(self):   *         scores = ' '.join('%s=%s' % feat for feat in self.scores)             # <<<<<<<<<<<<<<   *         return '%s ||| %s ||| %s ||| %s' % (self.lhs,   *                 _phrase(self.f), _phrase(self.e), scores)   */ -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_kp_s_7), __pyx_n_s__join); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_kp_s_7), __pyx_n_s__join); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __pyx_pf_4cdec_5_cdec_5TRule_7__str___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __pyx_pf_4cdec_5_cdec_5TRule_7__str___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    __pyx_t_2 = 0; -  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;    __pyx_v_scores = __pyx_t_2;    __pyx_t_2 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":174 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":180   *     def __str__(self):   *         scores = ' '.join('%s=%s' % feat for feat in self.scores)   *         return '%s ||| %s ||| %s ||| %s' % (self.lhs,             # <<<<<<<<<<<<<< @@ -8099,43 +8261,43 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_4__str__(struct __pyx_obj_4cdec_5_   *    */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s__lhs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s__lhs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":175 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":181   *         scores = ' '.join('%s=%s' % feat for feat in self.scores)   *         return '%s ||| %s ||| %s ||| %s' % (self.lhs,   *                 _phrase(self.f), _phrase(self.e), scores)             # <<<<<<<<<<<<<<   *    * cdef class MRule(TRule):   */ -  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s___phrase); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s___phrase); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s__f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s__f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; -  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s___phrase); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s___phrase); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4); -  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s__e); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s__e); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_5);    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);    __Pyx_GIVEREF(__pyx_t_3);    __pyx_t_3 = 0; -  __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; -  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_5);    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2); @@ -8149,7 +8311,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_5TRule_4__str__(struct __pyx_obj_4cdec_5_    __pyx_t_2 = 0;    __pyx_t_1 = 0;    __pyx_t_3 = 0; -  __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_12), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_12), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_3));    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;    __pyx_r = ((PyObject *)__pyx_t_3); @@ -8211,16 +8373,16 @@ static int __pyx_pw_4cdec_5_cdec_5MRule_1__init__(PyObject *__pyx_v_self, PyObje          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rhs)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__scores)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -8235,7 +8397,7 @@ static int __pyx_pw_4cdec_5_cdec_5MRule_1__init__(PyObject *__pyx_v_self, PyObje    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec._cdec.MRule.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -8246,7 +8408,7 @@ static int __pyx_pw_4cdec_5_cdec_5MRule_1__init__(PyObject *__pyx_v_self, PyObje    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":178 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":184   *    * cdef class MRule(TRule):   *     def __init__(self, lhs, rhs, scores):             # <<<<<<<<<<<<<< @@ -8273,7 +8435,7 @@ static int __pyx_pf_4cdec_5_cdec_5MRule___init__(struct __pyx_obj_4cdec_5_cdec_M    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__init__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":183 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":189   *         rhs: right hand side phrase (list of words/NT)   *         scores: dictionary of feature scores"""   *         cdef unsigned i = 1             # <<<<<<<<<<<<<< @@ -8282,19 +8444,19 @@ static int __pyx_pf_4cdec_5_cdec_5MRule___init__(struct __pyx_obj_4cdec_5_cdec_M   */    __pyx_v_i = 1; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":184 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":190   *         scores: dictionary of feature scores"""   *         cdef unsigned i = 1   *         e = []             # <<<<<<<<<<<<<<   *         for s in rhs:   *             if isinstance(s, NT):   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_e = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":185 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":191   *         cdef unsigned i = 1   *         e = []   *         for s in rhs:             # <<<<<<<<<<<<<< @@ -8305,7 +8467,7 @@ static int __pyx_pf_4cdec_5_cdec_5MRule___init__(struct __pyx_obj_4cdec_5_cdec_M      __pyx_t_1 = __pyx_v_rhs; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_rhs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_rhs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    } @@ -8313,23 +8475,23 @@ static int __pyx_pf_4cdec_5_cdec_5MRule___init__(struct __pyx_obj_4cdec_5_cdec_M      if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1);        if (unlikely(!__pyx_t_4)) {          if (PyErr_Occurred()) {            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -8339,7 +8501,7 @@ static int __pyx_pf_4cdec_5_cdec_5MRule___init__(struct __pyx_obj_4cdec_5_cdec_M      __pyx_v_s = __pyx_t_4;      __pyx_t_4 = 0; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":186 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":192   *         e = []   *         for s in rhs:   *             if isinstance(s, NT):             # <<<<<<<<<<<<<< @@ -8350,27 +8512,27 @@ static int __pyx_pf_4cdec_5_cdec_5MRule___init__(struct __pyx_obj_4cdec_5_cdec_M      __pyx_t_6 = (__pyx_t_5 != 0);      if (__pyx_t_6) { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":187 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":193   *         for s in rhs:   *             if isinstance(s, NT):   *                 e.append(NTRef(i))             # <<<<<<<<<<<<<<   *                 i += 1   *             else:   */ -      __pyx_t_4 = PyLong_FromUnsignedLong(__pyx_v_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyLong_FromUnsignedLong(__pyx_v_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_7);        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4);        __Pyx_GIVEREF(__pyx_t_4);        __pyx_t_4 = 0; -      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_NTRef)), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_NTRef)), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; -      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_e, __pyx_t_4); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_e, __pyx_t_4); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":188 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":194   *             if isinstance(s, NT):   *                 e.append(NTRef(i))   *                 i += 1             # <<<<<<<<<<<<<< @@ -8382,27 +8544,27 @@ static int __pyx_pf_4cdec_5_cdec_5MRule___init__(struct __pyx_obj_4cdec_5_cdec_M      }      /*else*/ { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":190 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":196   *                 i += 1   *             else:   *                 e.append(s)             # <<<<<<<<<<<<<<   *         super(MRule, self).__init__(lhs, rhs, e, scores, None)   *    */ -      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_e, __pyx_v_s); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_e, __pyx_v_s); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      }      __pyx_L5:;    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":191 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":197   *             else:   *                 e.append(s)   *         super(MRule, self).__init__(lhs, rhs, e, scores, None)             # <<<<<<<<<<<<<<   *    * cdef class Grammar:   */ -  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_MRule)));    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_MRule))); @@ -8410,13 +8572,13 @@ static int __pyx_pf_4cdec_5_cdec_5MRule___init__(struct __pyx_obj_4cdec_5_cdec_M    __Pyx_INCREF(((PyObject *)__pyx_v_self));    PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self));    __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); -  __pyx_t_4 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_INCREF(__pyx_v_lhs);    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_lhs); @@ -8433,7 +8595,7 @@ static int __pyx_pf_4cdec_5_cdec_5MRule___init__(struct __pyx_obj_4cdec_5_cdec_M    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_t_4, 4, Py_None);    __Pyx_GIVEREF(Py_None); -  __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_7);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; @@ -8463,7 +8625,7 @@ static void __pyx_pw_4cdec_5_cdec_7Grammar_1__dealloc__(PyObject *__pyx_v_self)    __Pyx_RefNannyFinishContext();  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":196 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":202   *     cdef shared_ptr[grammar.Grammar]* grammar   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -8475,7 +8637,7 @@ static void __pyx_pf_4cdec_5_cdec_7Grammar___dealloc__(CYTHON_UNUSED struct __py    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":197 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":203   *    *     def __dealloc__(self):   *         del self.grammar             # <<<<<<<<<<<<<< @@ -8499,7 +8661,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_7Grammar_3__iter__(PyObject *__pyx_v_self    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":199 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":205   *         del self.grammar   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -8525,7 +8687,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Grammar_2__iter__(struct __pyx_obj_4cdec    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_7Grammar_4generator3, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_7Grammar_4generator3, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -8563,9 +8725,9 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Grammar_4generator3(__pyx_GeneratorObjec      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":200 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":206   *    *     def __iter__(self):   *         cdef grammar.const_GrammarIter* root = self.grammar.get().GetRoot()             # <<<<<<<<<<<<<< @@ -8574,7 +8736,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Grammar_4generator3(__pyx_GeneratorObjec   */    __pyx_cur_scope->__pyx_v_root = __pyx_cur_scope->__pyx_v_self->grammar->get()->GetRoot(); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":201 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":207   *     def __iter__(self):   *         cdef grammar.const_GrammarIter* root = self.grammar.get().GetRoot()   *         cdef grammar.const_RuleBin* rbin = root.GetRules()             # <<<<<<<<<<<<<< @@ -8583,7 +8745,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Grammar_4generator3(__pyx_GeneratorObjec   */    __pyx_cur_scope->__pyx_v_rbin = __pyx_cur_scope->__pyx_v_root->GetRules(); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":204 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":210   *         cdef TRule trule   *         cdef unsigned i   *         for i in range(rbin.GetNumRules()):             # <<<<<<<<<<<<<< @@ -8594,23 +8756,23 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Grammar_4generator3(__pyx_GeneratorObjec    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":205 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":211   *         cdef unsigned i   *         for i in range(rbin.GetNumRules()):   *             trule = TRule.__new__(TRule)             # <<<<<<<<<<<<<<   *             trule.rule = new shared_ptr[grammar.TRule](rbin.GetIthRule(i))   *             yield trule   */ -    __pyx_t_3 = __pyx_tp_new_4cdec_5_cdec_TRule(((PyTypeObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_TRule)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __pyx_tp_new_4cdec_5_cdec_TRule(((PyTypeObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_TRule)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4cdec_5_cdec_TRule)))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4cdec_5_cdec_TRule)))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_trule));      __Pyx_XDECREF(((PyObject *)__pyx_cur_scope->__pyx_v_trule));      __Pyx_GIVEREF(__pyx_t_3);      __pyx_cur_scope->__pyx_v_trule = ((struct __pyx_obj_4cdec_5_cdec_TRule *)__pyx_t_3);      __pyx_t_3 = 0; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":206 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":212   *         for i in range(rbin.GetNumRules()):   *             trule = TRule.__new__(TRule)   *             trule.rule = new shared_ptr[grammar.TRule](rbin.GetIthRule(i))             # <<<<<<<<<<<<<< @@ -8619,7 +8781,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Grammar_4generator3(__pyx_GeneratorObjec   */      __pyx_cur_scope->__pyx_v_trule->rule = new boost::shared_ptr<TRule>(__pyx_cur_scope->__pyx_v_rbin->GetIthRule(__pyx_cur_scope->__pyx_v_i)); -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":207 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":213   *             trule = TRule.__new__(TRule)   *             trule.rule = new shared_ptr[grammar.TRule](rbin.GetIthRule(i))   *             yield trule             # <<<<<<<<<<<<<< @@ -8638,7 +8800,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Grammar_4generator3(__pyx_GeneratorObjec      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; -    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    PyErr_SetNone(PyExc_StopIteration);    goto __pyx_L0; @@ -8664,7 +8826,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_7Grammar_4name_1__get__(PyObject *__pyx_v    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":210 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":216   *    *     property name:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -8682,21 +8844,21 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Grammar_4name___get__(struct __pyx_obj_4    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":211 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":217   *     property name:   *         def __get__(self):   *             str(self.grammar.get().GetGrammarName().c_str())             # <<<<<<<<<<<<<<   *    *         def __set__(self, name):   */ -  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->grammar->get()->GetGrammarName().c_str()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->grammar->get()->GetGrammarName().c_str()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_1)); -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1));    __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -8725,7 +8887,7 @@ static int __pyx_pw_4cdec_5_cdec_7Grammar_4name_3__set__(PyObject *__pyx_v_self,    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":213 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":219   *             str(self.grammar.get().GetGrammarName().c_str())   *    *         def __set__(self, name):             # <<<<<<<<<<<<<< @@ -8744,27 +8906,27 @@ static int __pyx_pf_4cdec_5_cdec_7Grammar_4name_2__set__(struct __pyx_obj_4cdec_    __Pyx_RefNannySetupContext("__set__", 0);    __Pyx_INCREF(__pyx_v_name); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":214 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":220   *    *         def __set__(self, name):   *             name = as_str(name)             # <<<<<<<<<<<<<<   *             self.grammar.get().SetGrammarName(name)   *    */ -  __pyx_t_1 = ((PyObject *)__pyx_f_4cdec_5_cdec_as_str(__pyx_v_name, NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((PyObject *)__pyx_f_4cdec_5_cdec_as_str(__pyx_v_name, NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_v_name);    __pyx_v_name = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":215 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":221   *         def __set__(self, name):   *             name = as_str(name)   *             self.grammar.get().SetGrammarName(name)             # <<<<<<<<<<<<<<   *    * cdef class TextGrammar(Grammar):   */ -  __pyx_t_2 = __pyx_convert_string_from_py_(__pyx_v_name); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __pyx_convert_string_from_py_(__pyx_v_name); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->grammar->get()->SetGrammarName(__pyx_t_2);    __pyx_r = 0; @@ -8811,7 +8973,7 @@ static int __pyx_pw_4cdec_5_cdec_11TextGrammar_1__init__(PyObject *__pyx_v_self,          else goto __pyx_L5_argtuple_error;        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {        goto __pyx_L5_argtuple_error; @@ -8822,7 +8984,7 @@ static int __pyx_pw_4cdec_5_cdec_11TextGrammar_1__init__(PyObject *__pyx_v_self,    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec._cdec.TextGrammar.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -8833,7 +8995,7 @@ static int __pyx_pw_4cdec_5_cdec_11TextGrammar_1__init__(PyObject *__pyx_v_self,    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":218 +/* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":224   *    * cdef class TextGrammar(Grammar):   *     def __init__(self, rules):             # <<<<<<<<<<<<<< @@ -8857,7 +9019,7 @@ static int __pyx_pf_4cdec_5_cdec_11TextGrammar___init__(struct __pyx_obj_4cdec_5    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__init__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":220 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":226   *     def __init__(self, rules):   *         """TextGrammar(rules) -> SCFG Grammar containing the rules."""   *         self.grammar = new shared_ptr[grammar.Grammar](new grammar.TextGrammar())             # <<<<<<<<<<<<<< @@ -8866,7 +9028,7 @@ static int __pyx_pf_4cdec_5_cdec_11TextGrammar___init__(struct __pyx_obj_4cdec_5   */    __pyx_v_self->__pyx_base.grammar = new boost::shared_ptr<Grammar>(new TextGrammar()); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":221 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":227   *         """TextGrammar(rules) -> SCFG Grammar containing the rules."""   *         self.grammar = new shared_ptr[grammar.Grammar](new grammar.TextGrammar())   *         cdef grammar.TextGrammar* _g = <grammar.TextGrammar*> self.grammar.get()             # <<<<<<<<<<<<<< @@ -8875,7 +9037,7 @@ static int __pyx_pf_4cdec_5_cdec_11TextGrammar___init__(struct __pyx_obj_4cdec_5   */    __pyx_v__g = ((TextGrammar *)__pyx_v_self->__pyx_base.grammar->get()); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":222 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":228   *         self.grammar = new shared_ptr[grammar.Grammar](new grammar.TextGrammar())   *         cdef grammar.TextGrammar* _g = <grammar.TextGrammar*> self.grammar.get()   *         for trule in rules:             # <<<<<<<<<<<<<< @@ -8886,7 +9048,7 @@ static int __pyx_pf_4cdec_5_cdec_11TextGrammar___init__(struct __pyx_obj_4cdec_5      __pyx_t_1 = __pyx_v_rules; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_rules); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_rules); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    } @@ -8894,23 +9056,23 @@ static int __pyx_pf_4cdec_5_cdec_11TextGrammar___init__(struct __pyx_obj_4cdec_5      if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1);        if (unlikely(!__pyx_t_4)) {          if (PyErr_Occurred()) {            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -8920,7 +9082,7 @@ static int __pyx_pf_4cdec_5_cdec_11TextGrammar___init__(struct __pyx_obj_4cdec_5      __pyx_v_trule = __pyx_t_4;      __pyx_t_4 = 0; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":223 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":229   *         cdef grammar.TextGrammar* _g = <grammar.TextGrammar*> self.grammar.get()   *         for trule in rules:   *             if isinstance(trule, _sa.Rule):             # <<<<<<<<<<<<<< @@ -8931,15 +9093,15 @@ static int __pyx_pf_4cdec_5_cdec_11TextGrammar___init__(struct __pyx_obj_4cdec_5      __pyx_t_6 = (__pyx_t_5 != 0);      if (__pyx_t_6) { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":224 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":230   *         for trule in rules:   *             if isinstance(trule, _sa.Rule):   *                 trule = convert_rule(trule)             # <<<<<<<<<<<<<<   *             elif not isinstance(trule, TRule):   *                 raise ValueError('the grammar should contain TRule objects')   */ -      if (!(likely(((__pyx_v_trule) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_trule, __pyx_ptype_4cdec_2sa_3_sa_Rule))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_4 = ((PyObject *)__pyx_f_4cdec_5_cdec_convert_rule(((struct __pyx_obj_4cdec_2sa_3_sa_Rule *)__pyx_v_trule))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (!(likely(((__pyx_v_trule) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_trule, __pyx_ptype_4cdec_2sa_3_sa_Rule))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = ((PyObject *)__pyx_f_4cdec_5_cdec_convert_rule(((struct __pyx_obj_4cdec_2sa_3_sa_Rule *)__pyx_v_trule))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_v_trule);        __pyx_v_trule = __pyx_t_4; @@ -8947,7 +9109,7 @@ static int __pyx_pf_4cdec_5_cdec_11TextGrammar___init__(struct __pyx_obj_4cdec_5        goto __pyx_L5;      } -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":225 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":231   *             if isinstance(trule, _sa.Rule):   *                 trule = convert_rule(trule)   *             elif not isinstance(trule, TRule):             # <<<<<<<<<<<<<< @@ -8958,22 +9120,22 @@ static int __pyx_pf_4cdec_5_cdec_11TextGrammar___init__(struct __pyx_obj_4cdec_5      __pyx_t_5 = ((!(__pyx_t_6 != 0)) != 0);      if (__pyx_t_5) { -      /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":226 +      /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":232   *                 trule = convert_rule(trule)   *             elif not isinstance(trule, TRule):   *                 raise ValueError('the grammar should contain TRule objects')             # <<<<<<<<<<<<<<   *             _g.AddRule((<TRule> trule).rule[0])   */ -      __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_14), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_14), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_Raise(__pyx_t_4, 0, 0, 0);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        goto __pyx_L5;      }      __pyx_L5:; -    /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":227 +    /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":233   *             elif not isinstance(trule, TRule):   *                 raise ValueError('the grammar should contain TRule objects')   *             _g.AddRule((<TRule> trule).rule[0])             # <<<<<<<<<<<<<< @@ -9004,7 +9166,7 @@ static void __pyx_pw_4cdec_5_cdec_10Hypergraph_1__dealloc__(PyObject *__pyx_v_se    __Pyx_RefNannyFinishContext();  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":8 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":8   *     cdef MT19937* rng   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -9017,7 +9179,7 @@ static void __pyx_pf_4cdec_5_cdec_10Hypergraph___dealloc__(struct __pyx_obj_4cde    int __pyx_t_1;    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":9 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":9   *    *     def __dealloc__(self):   *         del self.hg             # <<<<<<<<<<<<<< @@ -9026,7 +9188,7 @@ static void __pyx_pf_4cdec_5_cdec_10Hypergraph___dealloc__(struct __pyx_obj_4cde   */    delete __pyx_v_self->hg; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":10 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":10   *     def __dealloc__(self):   *         del self.hg   *         if self.rng != NULL:             # <<<<<<<<<<<<<< @@ -9036,7 +9198,7 @@ static void __pyx_pf_4cdec_5_cdec_10Hypergraph___dealloc__(struct __pyx_obj_4cde    __pyx_t_1 = ((__pyx_v_self->rng != NULL) != 0);    if (__pyx_t_1) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":11 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":11   *         del self.hg   *         if self.rng != NULL:   *             del self.rng             # <<<<<<<<<<<<<< @@ -9051,7 +9213,7 @@ static void __pyx_pf_4cdec_5_cdec_10Hypergraph___dealloc__(struct __pyx_obj_4cde    __Pyx_RefNannyFinishContext();  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":13 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":13   *             del self.rng   *    *     cdef MT19937* _rng(self):             # <<<<<<<<<<<<<< @@ -9069,7 +9231,7 @@ static MT19937 *__pyx_f_4cdec_5_cdec_10Hypergraph__rng(struct __pyx_obj_4cdec_5_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("_rng", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":14 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":14   *    *     cdef MT19937* _rng(self):   *         if self.rng == NULL:             # <<<<<<<<<<<<<< @@ -9079,7 +9241,7 @@ static MT19937 *__pyx_f_4cdec_5_cdec_10Hypergraph__rng(struct __pyx_obj_4cdec_5_    __pyx_t_1 = ((__pyx_v_self->rng == NULL) != 0);    if (__pyx_t_1) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":15 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":15   *     cdef MT19937* _rng(self):   *         if self.rng == NULL:   *             self.rng = new MT19937()             # <<<<<<<<<<<<<< @@ -9097,7 +9259,7 @@ static MT19937 *__pyx_f_4cdec_5_cdec_10Hypergraph__rng(struct __pyx_obj_4cdec_5_    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":16 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":16   *         if self.rng == NULL:   *             self.rng = new MT19937()   *         return self.rng             # <<<<<<<<<<<<<< @@ -9129,7 +9291,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_3viterbi(PyObject *__pyx_v_s    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":18 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":18   *         return self.rng   *    *     def viterbi(self):             # <<<<<<<<<<<<<< @@ -9148,7 +9310,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_2viterbi(struct __pyx_obj_4c    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("viterbi", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":21 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":21   *         """hg.viterbi() -> String for the best hypothesis in the hypergraph."""   *         cdef vector[WordID] trans   *         hypergraph.ViterbiESentence(self.hg[0], &trans)             # <<<<<<<<<<<<<< @@ -9157,7 +9319,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_2viterbi(struct __pyx_obj_4c   */    ViterbiESentence((__pyx_v_self->hg[0]), (&__pyx_v_trans)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":22 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":22   *         cdef vector[WordID] trans   *         hypergraph.ViterbiESentence(self.hg[0], &trans)   *         return unicode(GetString(trans).c_str(), 'utf8')             # <<<<<<<<<<<<<< @@ -9207,7 +9369,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_5viterbi_trees(PyObject *__p    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":24 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":24   *         return unicode(GetString(trans).c_str(), 'utf8')   *    *     def viterbi_trees(self):             # <<<<<<<<<<<<<< @@ -9227,7 +9389,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_4viterbi_trees(struct __pyx_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("viterbi_trees", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":29 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":29   *         e_tree: Target tree for the best hypothesis in the hypergraph.   *         """   *         f_tree = unicode(hypergraph.ViterbiFTree(self.hg[0]).c_str(), 'utf8')             # <<<<<<<<<<<<<< @@ -9250,7 +9412,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_4viterbi_trees(struct __pyx_    __pyx_v_f_tree = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":30 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":30   *         """   *         f_tree = unicode(hypergraph.ViterbiFTree(self.hg[0]).c_str(), 'utf8')   *         e_tree = unicode(hypergraph.ViterbiETree(self.hg[0]).c_str(), 'utf8')             # <<<<<<<<<<<<<< @@ -9273,7 +9435,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_4viterbi_trees(struct __pyx_    __pyx_v_e_tree = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":31 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":31   *         f_tree = unicode(hypergraph.ViterbiFTree(self.hg[0]).c_str(), 'utf8')   *         e_tree = unicode(hypergraph.ViterbiETree(self.hg[0]).c_str(), 'utf8')   *         return (f_tree, e_tree)             # <<<<<<<<<<<<<< @@ -9320,7 +9482,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_7viterbi_features(PyObject *    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":33 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":33   *         return (f_tree, e_tree)   *    *     def viterbi_features(self):             # <<<<<<<<<<<<<< @@ -9338,7 +9500,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_6viterbi_features(struct __p    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("viterbi_features", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":36 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":36   *         """hg.viterbi_features() -> SparseVector with the features corresponding   *         to the best derivation in the hypergraph."""   *         cdef SparseVector fmap = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<< @@ -9351,7 +9513,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_6viterbi_features(struct __p    __pyx_v_fmap = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":37 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":37   *         to the best derivation in the hypergraph."""   *         cdef SparseVector fmap = SparseVector.__new__(SparseVector)   *         fmap.vector = new FastSparseVector[weight_t](hypergraph.ViterbiFeatures(self.hg[0]))             # <<<<<<<<<<<<<< @@ -9360,7 +9522,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_6viterbi_features(struct __p   */    __pyx_v_fmap->vector = new FastSparseVector<weight_t>(ViterbiFeatures((__pyx_v_self->hg[0]))); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":38 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":38   *         cdef SparseVector fmap = SparseVector.__new__(SparseVector)   *         fmap.vector = new FastSparseVector[weight_t](hypergraph.ViterbiFeatures(self.hg[0]))   *         return fmap             # <<<<<<<<<<<<<< @@ -9396,7 +9558,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_9viterbi_forest(PyObject *__    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":40 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":40   *         return fmap   *    *     def viterbi_forest(self):             # <<<<<<<<<<<<<< @@ -9414,7 +9576,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_8viterbi_forest(struct __pyx    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("viterbi_forest", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":41 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":41   *    *     def viterbi_forest(self):   *         cdef Hypergraph hg = Hypergraph()             # <<<<<<<<<<<<<< @@ -9426,7 +9588,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_8viterbi_forest(struct __pyx    __pyx_v_hg = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":42 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":42   *     def viterbi_forest(self):   *         cdef Hypergraph hg = Hypergraph()   *         hg.hg = new hypergraph.Hypergraph(self.hg[0].CreateViterbiHypergraph(NULL).get()[0])             # <<<<<<<<<<<<<< @@ -9435,7 +9597,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_8viterbi_forest(struct __pyx   */    __pyx_v_hg->hg = new Hypergraph(((__pyx_v_self->hg[0]).CreateViterbiHypergraph(NULL).get()[0])); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":43 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":43   *         cdef Hypergraph hg = Hypergraph()   *         hg.hg = new hypergraph.Hypergraph(self.hg[0].CreateViterbiHypergraph(NULL).get()[0])   *         return hg             # <<<<<<<<<<<<<< @@ -9472,7 +9634,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_11viterbi_joshua(PyObject *_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":45 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":45   *         return hg   *    *     def viterbi_joshua(self):             # <<<<<<<<<<<<<< @@ -9490,7 +9652,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_10viterbi_joshua(struct __py    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("viterbi_joshua", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":47 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":47   *     def viterbi_joshua(self):   *         """hg.viterbi_joshua() -> Joshua representation of the best derivation."""   *         return unicode(hypergraph.JoshuaVisualizationString(self.hg[0]).c_str(), 'utf8')             # <<<<<<<<<<<<<< @@ -9541,12 +9703,12 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_13kbest(PyObject *__pyx_v_se    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":49 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":49   *         return unicode(hypergraph.JoshuaVisualizationString(self.hg[0]).c_str(), 'utf8')   *    *     def kbest(self, size):             # <<<<<<<<<<<<<<   *         """hg.kbest(size) -> List of k-best hypotheses in the hypergraph.""" - *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal](self.hg[0], size) + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.NoFilter[vector[int]]]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size)   */  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_12kbest(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size) { @@ -9612,18 +9774,18 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_14generator4(__pyx_Generator    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":51 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":51   *     def kbest(self, size):   *         """hg.kbest(size) -> List of k-best hypotheses in the hypergraph.""" - *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal](self.hg[0], size)             # <<<<<<<<<<<<<< - *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal].Derivation* derivation + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.NoFilter[vector[int]]]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size)             # <<<<<<<<<<<<<< + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.NoFilter[vector[int]]].Derivation* derivation   *         cdef unsigned k   */    __pyx_t_1 = __Pyx_PyInt_AsUnsignedInt(__pyx_cur_scope->__pyx_v_size); if (unlikely((__pyx_t_1 == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_cur_scope->__pyx_v_derivations = new KBest::KBestDerivations<std::vector<WordID>,ESentenceTraversal>((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); +  __pyx_cur_scope->__pyx_v_derivations = new KBest::KBestDerivations<std::vector<WordID>,ESentenceTraversal,KBest::NoFilter<std::vector<int> > >((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":54 - *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal].Derivation* derivation +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":54 + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.NoFilter[vector[int]]].Derivation* derivation   *         cdef unsigned k   *         try:             # <<<<<<<<<<<<<<   *             for k in range(size): @@ -9631,7 +9793,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_14generator4(__pyx_Generator   */    /*try:*/ { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":55 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":55   *         cdef unsigned k   *         try:   *             for k in range(size):             # <<<<<<<<<<<<<< @@ -9642,7 +9804,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_14generator4(__pyx_Generator      for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_2; __pyx_t_1+=1) {        __pyx_cur_scope->__pyx_v_k = __pyx_t_1; -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":56 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":56   *         try:   *             for k in range(size):   *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)             # <<<<<<<<<<<<<< @@ -9651,7 +9813,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_14generator4(__pyx_Generator   */        __pyx_cur_scope->__pyx_v_derivation = __pyx_cur_scope->__pyx_v_derivations->LazyKthBest((__pyx_cur_scope->__pyx_v_self->hg->nodes_.size() - 1), __pyx_cur_scope->__pyx_v_k); -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":57 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":57   *             for k in range(size):   *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)   *                 if not derivation: break             # <<<<<<<<<<<<<< @@ -9665,7 +9827,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_14generator4(__pyx_Generator        }        __pyx_L9:; -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":58 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":58   *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)   *                 if not derivation: break   *                 yield unicode(GetString(derivation._yield).c_str(), 'utf8')             # <<<<<<<<<<<<<< @@ -9702,7 +9864,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_14generator4(__pyx_Generator      __pyx_L8_break:;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":60 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":60   *                 yield unicode(GetString(derivation._yield).c_str(), 'utf8')   *         finally:   *             del derivations             # <<<<<<<<<<<<<< @@ -9753,7 +9915,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_17generator5(__pyx_Generator  /* Python wrapper */  static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_16kbest_trees(PyObject *__pyx_v_self, PyObject *__pyx_v_size); /*proto*/ -static char __pyx_doc_4cdec_5_cdec_10Hypergraph_15kbest_trees[] = "hg.kbest_trees(size) -> List of k-best trees in the hypergraph."; +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_15kbest_trees[] = "hg.kbest_trees(size) -> List of k-best trees in the hypergrapt.NoFilter.";  static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_16kbest_trees(PyObject *__pyx_v_self, PyObject *__pyx_v_size) {    PyObject *__pyx_r = 0;    __Pyx_RefNannyDeclarations @@ -9763,12 +9925,12 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_16kbest_trees(PyObject *__py    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":62 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":62   *             del derivations   *    *     def kbest_trees(self, size):             # <<<<<<<<<<<<<< - *         """hg.kbest_trees(size) -> List of k-best trees in the hypergraph.""" - *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal](self.hg[0], size) + *         """hg.kbest_trees(size) -> List of k-best trees in the hypergrapt.NoFilter.""" + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size)   */  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_15kbest_trees(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size) { @@ -9836,28 +9998,28 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_17generator5(__pyx_Generator    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":64 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":64   *     def kbest_trees(self, size): - *         """hg.kbest_trees(size) -> List of k-best trees in the hypergraph.""" - *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal](self.hg[0], size)             # <<<<<<<<<<<<<< - *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal].Derivation* f_derivation - *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal]* e_derivations = new kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal](self.hg[0], size) + *         """hg.kbest_trees(size) -> List of k-best trees in the hypergrapt.NoFilter.""" + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size)             # <<<<<<<<<<<<<< + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]].Derivation* f_derivation + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.NoFilter[vector[int]]]* e_derivations = new kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size)   */    __pyx_t_1 = __Pyx_PyInt_AsUnsignedInt(__pyx_cur_scope->__pyx_v_size); if (unlikely((__pyx_t_1 == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_cur_scope->__pyx_v_f_derivations = new KBest::KBestDerivations<std::vector<WordID>,FTreeTraversal>((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); +  __pyx_cur_scope->__pyx_v_f_derivations = new KBest::KBestDerivations<std::vector<WordID>,FTreeTraversal,KBest::NoFilter<std::vector<int> > >((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":66 - *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal](self.hg[0], size) - *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal].Derivation* f_derivation - *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal]* e_derivations = new kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal](self.hg[0], size)             # <<<<<<<<<<<<<< - *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal].Derivation* e_derivation +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":66 + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size) + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]].Derivation* f_derivation + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.NoFilter[vector[int]]]* e_derivations = new kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size)             # <<<<<<<<<<<<<< + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.NoFilter[vector[int]]].Derivation* e_derivation   *         cdef unsigned k   */    __pyx_t_1 = __Pyx_PyInt_AsUnsignedInt(__pyx_cur_scope->__pyx_v_size); if (unlikely((__pyx_t_1 == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_cur_scope->__pyx_v_e_derivations = new KBest::KBestDerivations<std::vector<WordID>,ETreeTraversal>((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); +  __pyx_cur_scope->__pyx_v_e_derivations = new KBest::KBestDerivations<std::vector<WordID>,ETreeTraversal,KBest::NoFilter<std::vector<int> > >((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":69 - *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal].Derivation* e_derivation +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":69 + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.NoFilter[vector[int]]].Derivation* e_derivation   *         cdef unsigned k   *         try:             # <<<<<<<<<<<<<<   *             for k in range(size): @@ -9865,7 +10027,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_17generator5(__pyx_Generator   */    /*try:*/ { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":70 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":70   *         cdef unsigned k   *         try:   *             for k in range(size):             # <<<<<<<<<<<<<< @@ -9876,7 +10038,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_17generator5(__pyx_Generator      for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_2; __pyx_t_1+=1) {        __pyx_cur_scope->__pyx_v_k = __pyx_t_1; -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":71 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":71   *         try:   *             for k in range(size):   *                 f_derivation = f_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)             # <<<<<<<<<<<<<< @@ -9885,7 +10047,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_17generator5(__pyx_Generator   */        __pyx_cur_scope->__pyx_v_f_derivation = __pyx_cur_scope->__pyx_v_f_derivations->LazyKthBest((__pyx_cur_scope->__pyx_v_self->hg->nodes_.size() - 1), __pyx_cur_scope->__pyx_v_k); -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":72 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":72   *             for k in range(size):   *                 f_derivation = f_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)   *                 e_derivation = e_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)             # <<<<<<<<<<<<<< @@ -9894,7 +10056,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_17generator5(__pyx_Generator   */        __pyx_cur_scope->__pyx_v_e_derivation = __pyx_cur_scope->__pyx_v_e_derivations->LazyKthBest((__pyx_cur_scope->__pyx_v_self->hg->nodes_.size() - 1), __pyx_cur_scope->__pyx_v_k); -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":73 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":73   *                 f_derivation = f_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)   *                 e_derivation = e_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)   *                 if not f_derivation or not e_derivation: break             # <<<<<<<<<<<<<< @@ -9914,7 +10076,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_17generator5(__pyx_Generator        }        __pyx_L9:; -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":74 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":74   *                 e_derivation = e_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)   *                 if not f_derivation or not e_derivation: break   *                 f_tree = unicode(GetString(f_derivation._yield).c_str(), 'utf8')             # <<<<<<<<<<<<<< @@ -9940,7 +10102,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_17generator5(__pyx_Generator        __pyx_cur_scope->__pyx_v_f_tree = ((PyObject*)__pyx_t_6);        __pyx_t_6 = 0; -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":75 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":75   *                 if not f_derivation or not e_derivation: break   *                 f_tree = unicode(GetString(f_derivation._yield).c_str(), 'utf8')   *                 e_tree = unicode(GetString(e_derivation._yield).c_str(), 'utf8')             # <<<<<<<<<<<<<< @@ -9966,7 +10128,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_17generator5(__pyx_Generator        __pyx_cur_scope->__pyx_v_e_tree = ((PyObject*)__pyx_t_6);        __pyx_t_6 = 0; -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":76 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":76   *                 f_tree = unicode(GetString(f_derivation._yield).c_str(), 'utf8')   *                 e_tree = unicode(GetString(e_derivation._yield).c_str(), 'utf8')   *                 yield (f_tree, e_tree)             # <<<<<<<<<<<<<< @@ -9998,7 +10160,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_17generator5(__pyx_Generator      __pyx_L8_break:;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":78 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":78   *                 yield (f_tree, e_tree)   *         finally:   *             del f_derivations             # <<<<<<<<<<<<<< @@ -10022,7 +10184,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_17generator5(__pyx_Generator      __pyx_L6:;      delete __pyx_cur_scope->__pyx_v_f_derivations; -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":79 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":79   *         finally:   *             del f_derivations   *             del e_derivations             # <<<<<<<<<<<<<< @@ -10068,12 +10230,12 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_19kbest_features(PyObject *_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":81 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":81   *             del e_derivations   *    *     def kbest_features(self, size):             # <<<<<<<<<<<<<<   *         """hg.kbest_trees(size) -> List of k-best feature vectors in the hypergraph.""" - *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal](self.hg[0], size) + *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]](self.hg[0], size)   */  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_18kbest_features(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size) { @@ -10138,17 +10300,17 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_20generator6(__pyx_Generator    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":83 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":83   *     def kbest_features(self, size):   *         """hg.kbest_trees(size) -> List of k-best feature vectors in the hypergraph.""" - *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal](self.hg[0], size)             # <<<<<<<<<<<<<< - *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal].Derivation* derivation + *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]](self.hg[0], size)             # <<<<<<<<<<<<<< + *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]].Derivation* derivation   *         cdef SparseVector fmap   */    __pyx_t_1 = __Pyx_PyInt_AsUnsignedInt(__pyx_cur_scope->__pyx_v_size); if (unlikely((__pyx_t_1 == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_cur_scope->__pyx_v_derivations = new KBest::KBestDerivations<FastSparseVector<weight_t>,FeatureVectorTraversal>((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); +  __pyx_cur_scope->__pyx_v_derivations = new KBest::KBestDerivations<FastSparseVector<weight_t>,FeatureVectorTraversal,KBest::NoFilter<FastSparseVector<double> > >((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":87 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":87   *         cdef SparseVector fmap   *         cdef unsigned k   *         try:             # <<<<<<<<<<<<<< @@ -10157,7 +10319,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_20generator6(__pyx_Generator   */    /*try:*/ { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":88 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":88   *         cdef unsigned k   *         try:   *             for k in range(size):             # <<<<<<<<<<<<<< @@ -10168,7 +10330,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_20generator6(__pyx_Generator      for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_2; __pyx_t_1+=1) {        __pyx_cur_scope->__pyx_v_k = __pyx_t_1; -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":89 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":89   *         try:   *             for k in range(size):   *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)             # <<<<<<<<<<<<<< @@ -10177,7 +10339,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_20generator6(__pyx_Generator   */        __pyx_cur_scope->__pyx_v_derivation = __pyx_cur_scope->__pyx_v_derivations->LazyKthBest((__pyx_cur_scope->__pyx_v_self->hg->nodes_.size() - 1), __pyx_cur_scope->__pyx_v_k); -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":90 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":90   *             for k in range(size):   *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)   *                 if not derivation: break             # <<<<<<<<<<<<<< @@ -10191,7 +10353,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_20generator6(__pyx_Generator        }        __pyx_L9:; -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":91 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":91   *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)   *                 if not derivation: break   *                 fmap = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<< @@ -10207,7 +10369,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_20generator6(__pyx_Generator        __pyx_cur_scope->__pyx_v_fmap = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_4);        __pyx_t_4 = 0; -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":92 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":92   *                 if not derivation: break   *                 fmap = SparseVector.__new__(SparseVector)   *                 fmap.vector = new FastSparseVector[weight_t](derivation._yield)             # <<<<<<<<<<<<<< @@ -10216,7 +10378,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_20generator6(__pyx_Generator   */        __pyx_cur_scope->__pyx_v_fmap->vector = new FastSparseVector<weight_t>(__pyx_cur_scope->__pyx_v_derivation->yield); -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":93 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":93   *                 fmap = SparseVector.__new__(SparseVector)   *                 fmap.vector = new FastSparseVector[weight_t](derivation._yield)   *                 yield fmap             # <<<<<<<<<<<<<< @@ -10240,12 +10402,12 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_20generator6(__pyx_Generator      __pyx_L8_break:;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":95 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":95   *                 yield fmap   *         finally:   *             del derivations             # <<<<<<<<<<<<<<   *  - *     def sample(self, unsigned n): + *     def unique_kbest(self, size):   */    /*finally:*/ {      int __pyx_why; @@ -10288,9 +10450,767 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_20generator6(__pyx_Generator  static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */ -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_22sample(PyObject *__pyx_v_self, PyObject *__pyx_arg_n); /*proto*/ -static char __pyx_doc_4cdec_5_cdec_10Hypergraph_21sample[] = "hg.sample(n) -> Sample of n hypotheses from the hypergraph."; -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_22sample(PyObject *__pyx_v_self, PyObject *__pyx_arg_n) { +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_22unique_kbest(PyObject *__pyx_v_self, PyObject *__pyx_v_size); /*proto*/ +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_21unique_kbest[] = "hg.kbest(size) -> List of unique k-best hypotheses in the hypergraph."; +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_22unique_kbest(PyObject *__pyx_v_self, PyObject *__pyx_v_size) { +  PyObject *__pyx_r = 0; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("unique_kbest (wrapper)", 0); +  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_21unique_kbest(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), ((PyObject *)__pyx_v_size)); +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":97 + *             del derivations + *  + *     def unique_kbest(self, size):             # <<<<<<<<<<<<<< + *         """hg.kbest(size) -> List of unique k-best hypotheses in the hypergraph.""" + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.FilterUnique]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.FilterUnique](self.hg[0], size) + */ + +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_21unique_kbest(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *__pyx_cur_scope; +  PyObject *__pyx_r = NULL; +  __Pyx_RefNannyDeclarations +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("unique_kbest", 0); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest, __pyx_empty_tuple, NULL); +  if (unlikely(!__pyx_cur_scope)) { +    __Pyx_RefNannyFinishContext(); +    return NULL; +  } +  __Pyx_GOTREF(__pyx_cur_scope); +  __pyx_cur_scope->__pyx_v_self = __pyx_v_self; +  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); +  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); +  __pyx_cur_scope->__pyx_v_size = __pyx_v_size; +  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_size); +  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_size); +  { +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_DECREF(__pyx_cur_scope); +    __Pyx_RefNannyFinishContext(); +    return (PyObject *) gen; +  } + +  __pyx_r = Py_None; __Pyx_INCREF(Py_None); +  goto __pyx_L0; +  __pyx_L1_error:; +  __Pyx_AddTraceback("cdec._cdec.Hypergraph.unique_kbest", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __pyx_r = NULL; +  __pyx_L0:; +  __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); +  __Pyx_XGIVEREF(__pyx_r); +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +{ +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *)__pyx_generator->closure); +  PyObject *__pyx_r = NULL; +  unsigned int __pyx_t_1; +  long __pyx_t_2; +  int __pyx_t_3; +  PyObject *__pyx_t_4 = NULL; +  PyObject *__pyx_t_5 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("None", 0); +  switch (__pyx_generator->resume_label) { +    case 0: goto __pyx_L3_first_run; +    case 1: goto __pyx_L10_resume_from_yield; +    default: /* CPython raises the right error here */ +    __Pyx_RefNannyFinishContext(); +    return NULL; +  } +  __pyx_L3_first_run:; +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":99 + *     def unique_kbest(self, size): + *         """hg.kbest(size) -> List of unique k-best hypotheses in the hypergraph.""" + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.FilterUnique]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.FilterUnique](self.hg[0], size)             # <<<<<<<<<<<<<< + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.FilterUnique].Derivation* derivation + *         cdef unsigned k + */ +  __pyx_t_1 = __Pyx_PyInt_AsUnsignedInt(__pyx_cur_scope->__pyx_v_size); if (unlikely((__pyx_t_1 == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_cur_scope->__pyx_v_derivations = new KBest::KBestDerivations<std::vector<WordID>,ESentenceTraversal,KBest::FilterUnique>((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); + +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":102 + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.FilterUnique].Derivation* derivation + *         cdef unsigned k + *         try:             # <<<<<<<<<<<<<< + *             for k in range(size): + *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + */ +  /*try:*/ { + +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":103 + *         cdef unsigned k + *         try: + *             for k in range(size):             # <<<<<<<<<<<<<< + *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 if not derivation: break + */ +    __pyx_t_2 = __Pyx_PyInt_AsLong(__pyx_cur_scope->__pyx_v_size); if (unlikely((__pyx_t_2 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L5;} +    for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_2; __pyx_t_1+=1) { +      __pyx_cur_scope->__pyx_v_k = __pyx_t_1; + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":104 + *         try: + *             for k in range(size): + *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)             # <<<<<<<<<<<<<< + *                 if not derivation: break + *                 yield unicode(GetString(derivation._yield).c_str(), 'utf8') + */ +      __pyx_cur_scope->__pyx_v_derivation = __pyx_cur_scope->__pyx_v_derivations->LazyKthBest((__pyx_cur_scope->__pyx_v_self->hg->nodes_.size() - 1), __pyx_cur_scope->__pyx_v_k); + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":105 + *             for k in range(size): + *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 if not derivation: break             # <<<<<<<<<<<<<< + *                 yield unicode(GetString(derivation._yield).c_str(), 'utf8') + *         finally: + */ +      __pyx_t_3 = ((!(__pyx_cur_scope->__pyx_v_derivation != 0)) != 0); +      if (__pyx_t_3) { +        goto __pyx_L8_break; +        goto __pyx_L9; +      } +      __pyx_L9:; + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":106 + *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 if not derivation: break + *                 yield unicode(GetString(derivation._yield).c_str(), 'utf8')             # <<<<<<<<<<<<<< + *         finally: + *             del derivations + */ +      __pyx_t_4 = __Pyx_PyBytes_FromString(TD::GetString(__pyx_cur_scope->__pyx_v_derivation->yield).c_str()); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_GOTREF(((PyObject *)__pyx_t_4)); +      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_GOTREF(__pyx_t_5); +      PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4)); +      __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); +      __Pyx_INCREF(((PyObject *)__pyx_n_s__utf8)); +      PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_n_s__utf8)); +      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__utf8)); +      __pyx_t_4 = 0; +      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_GOTREF(__pyx_t_4); +      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; +      __pyx_r = __pyx_t_4; +      __pyx_t_4 = 0; +      __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; +      __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; +      __Pyx_XGIVEREF(__pyx_r); +      __Pyx_RefNannyFinishContext(); +      /* return from generator, yielding value */ +      __pyx_generator->resume_label = 1; +      return __pyx_r; +      __pyx_L10_resume_from_yield:; +      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; +      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; +      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L5;} +    } +    __pyx_L8_break:; +  } + +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":108 + *                 yield unicode(GetString(derivation._yield).c_str(), 'utf8') + *         finally: + *             del derivations             # <<<<<<<<<<<<<< + *  + *     def unique_kbest_trees(self, size): + */ +  /*finally:*/ { +    int __pyx_why; +    PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb; +    int __pyx_exc_lineno; +    __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0; +    __pyx_why = 0; goto __pyx_L6; +    __pyx_L5: { +      __pyx_why = 4; +      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +      __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb); +      __pyx_exc_lineno = __pyx_lineno; +      goto __pyx_L6; +    } +    __pyx_L6:; +    delete __pyx_cur_scope->__pyx_v_derivations; +    switch (__pyx_why) { +      case 4: { +        __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb); +        __pyx_lineno = __pyx_exc_lineno; +        __pyx_exc_type = 0; +        __pyx_exc_value = 0; +        __pyx_exc_tb = 0; +        goto __pyx_L1_error; +      } +    } +  } +  PyErr_SetNone(PyExc_StopIteration); +  goto __pyx_L0; +  __pyx_L1_error:; +  __Pyx_XDECREF(__pyx_t_4); +  __Pyx_XDECREF(__pyx_t_5); +  __Pyx_AddTraceback("unique_kbest", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __pyx_L0:; +  __Pyx_XDECREF(__pyx_r); +  __pyx_generator->resume_label = -1; +  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __Pyx_RefNannyFinishContext(); +  return NULL; +} +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ + +/* Python wrapper */ +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_25unique_kbest_trees(PyObject *__pyx_v_self, PyObject *__pyx_v_size); /*proto*/ +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_24unique_kbest_trees[] = "hg.kbest_trees(size) -> List of unique k-best trees in the hypergraph."; +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_25unique_kbest_trees(PyObject *__pyx_v_self, PyObject *__pyx_v_size) { +  PyObject *__pyx_r = 0; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("unique_kbest_trees (wrapper)", 0); +  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_24unique_kbest_trees(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), ((PyObject *)__pyx_v_size)); +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":110 + *             del derivations + *  + *     def unique_kbest_trees(self, size):             # <<<<<<<<<<<<<< + *         """hg.kbest_trees(size) -> List of unique k-best trees in the hypergraph.""" + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique](self.hg[0], size) + */ + +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_24unique_kbest_trees(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *__pyx_cur_scope; +  PyObject *__pyx_r = NULL; +  __Pyx_RefNannyDeclarations +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("unique_kbest_trees", 0); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees, __pyx_empty_tuple, NULL); +  if (unlikely(!__pyx_cur_scope)) { +    __Pyx_RefNannyFinishContext(); +    return NULL; +  } +  __Pyx_GOTREF(__pyx_cur_scope); +  __pyx_cur_scope->__pyx_v_self = __pyx_v_self; +  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); +  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); +  __pyx_cur_scope->__pyx_v_size = __pyx_v_size; +  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_size); +  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_size); +  { +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_DECREF(__pyx_cur_scope); +    __Pyx_RefNannyFinishContext(); +    return (PyObject *) gen; +  } + +  __pyx_r = Py_None; __Pyx_INCREF(Py_None); +  goto __pyx_L0; +  __pyx_L1_error:; +  __Pyx_AddTraceback("cdec._cdec.Hypergraph.unique_kbest_trees", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __pyx_r = NULL; +  __pyx_L0:; +  __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); +  __Pyx_XGIVEREF(__pyx_r); +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +{ +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *)__pyx_generator->closure); +  PyObject *__pyx_r = NULL; +  unsigned int __pyx_t_1; +  long __pyx_t_2; +  int __pyx_t_3; +  int __pyx_t_4; +  int __pyx_t_5; +  PyObject *__pyx_t_6 = NULL; +  PyObject *__pyx_t_7 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("None", 0); +  switch (__pyx_generator->resume_label) { +    case 0: goto __pyx_L3_first_run; +    case 1: goto __pyx_L10_resume_from_yield; +    default: /* CPython raises the right error here */ +    __Pyx_RefNannyFinishContext(); +    return NULL; +  } +  __pyx_L3_first_run:; +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":112 + *     def unique_kbest_trees(self, size): + *         """hg.kbest_trees(size) -> List of unique k-best trees in the hypergraph.""" + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique](self.hg[0], size)             # <<<<<<<<<<<<<< + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique].Derivation* f_derivation + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.FilterUnique]* e_derivations = new kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.FilterUnique](self.hg[0], size) + */ +  __pyx_t_1 = __Pyx_PyInt_AsUnsignedInt(__pyx_cur_scope->__pyx_v_size); if (unlikely((__pyx_t_1 == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_cur_scope->__pyx_v_f_derivations = new KBest::KBestDerivations<std::vector<WordID>,FTreeTraversal,KBest::FilterUnique>((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); + +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":114 + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique](self.hg[0], size) + *         cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique].Derivation* f_derivation + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.FilterUnique]* e_derivations = new kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.FilterUnique](self.hg[0], size)             # <<<<<<<<<<<<<< + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.FilterUnique].Derivation* e_derivation + *         cdef unsigned k + */ +  __pyx_t_1 = __Pyx_PyInt_AsUnsignedInt(__pyx_cur_scope->__pyx_v_size); if (unlikely((__pyx_t_1 == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_cur_scope->__pyx_v_e_derivations = new KBest::KBestDerivations<std::vector<WordID>,ETreeTraversal,KBest::FilterUnique>((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); + +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":117 + *         cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.FilterUnique].Derivation* e_derivation + *         cdef unsigned k + *         try:             # <<<<<<<<<<<<<< + *             for k in range(size): + *                 f_derivation = f_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + */ +  /*try:*/ { + +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":118 + *         cdef unsigned k + *         try: + *             for k in range(size):             # <<<<<<<<<<<<<< + *                 f_derivation = f_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 e_derivation = e_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + */ +    __pyx_t_2 = __Pyx_PyInt_AsLong(__pyx_cur_scope->__pyx_v_size); if (unlikely((__pyx_t_2 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L5;} +    for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_2; __pyx_t_1+=1) { +      __pyx_cur_scope->__pyx_v_k = __pyx_t_1; + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":119 + *         try: + *             for k in range(size): + *                 f_derivation = f_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)             # <<<<<<<<<<<<<< + *                 e_derivation = e_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 if not f_derivation or not e_derivation: break + */ +      __pyx_cur_scope->__pyx_v_f_derivation = __pyx_cur_scope->__pyx_v_f_derivations->LazyKthBest((__pyx_cur_scope->__pyx_v_self->hg->nodes_.size() - 1), __pyx_cur_scope->__pyx_v_k); + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":120 + *             for k in range(size): + *                 f_derivation = f_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 e_derivation = e_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)             # <<<<<<<<<<<<<< + *                 if not f_derivation or not e_derivation: break + *                 f_tree = unicode(GetString(f_derivation._yield).c_str(), 'utf8') + */ +      __pyx_cur_scope->__pyx_v_e_derivation = __pyx_cur_scope->__pyx_v_e_derivations->LazyKthBest((__pyx_cur_scope->__pyx_v_self->hg->nodes_.size() - 1), __pyx_cur_scope->__pyx_v_k); + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":121 + *                 f_derivation = f_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 e_derivation = e_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 if not f_derivation or not e_derivation: break             # <<<<<<<<<<<<<< + *                 f_tree = unicode(GetString(f_derivation._yield).c_str(), 'utf8') + *                 e_tree = unicode(GetString(e_derivation._yield).c_str(), 'utf8') + */ +      __pyx_t_3 = ((!(__pyx_cur_scope->__pyx_v_f_derivation != 0)) != 0); +      if (!__pyx_t_3) { +        __pyx_t_4 = ((!(__pyx_cur_scope->__pyx_v_e_derivation != 0)) != 0); +        __pyx_t_5 = __pyx_t_4; +      } else { +        __pyx_t_5 = __pyx_t_3; +      } +      if (__pyx_t_5) { +        goto __pyx_L8_break; +        goto __pyx_L9; +      } +      __pyx_L9:; + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":122 + *                 e_derivation = e_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 if not f_derivation or not e_derivation: break + *                 f_tree = unicode(GetString(f_derivation._yield).c_str(), 'utf8')             # <<<<<<<<<<<<<< + *                 e_tree = unicode(GetString(e_derivation._yield).c_str(), 'utf8') + *                 yield (f_tree, e_tree) + */ +      __pyx_t_6 = __Pyx_PyBytes_FromString(TD::GetString(__pyx_cur_scope->__pyx_v_f_derivation->yield).c_str()); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_GOTREF(((PyObject *)__pyx_t_6)); +      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_GOTREF(__pyx_t_7); +      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_6)); +      __Pyx_GIVEREF(((PyObject *)__pyx_t_6)); +      __Pyx_INCREF(((PyObject *)__pyx_n_s__utf8)); +      PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_n_s__utf8)); +      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__utf8)); +      __pyx_t_6 = 0; +      __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_GOTREF(__pyx_t_6); +      __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; +      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_f_tree)); +      __Pyx_XDECREF(((PyObject *)__pyx_cur_scope->__pyx_v_f_tree)); +      __Pyx_GIVEREF(__pyx_t_6); +      __pyx_cur_scope->__pyx_v_f_tree = ((PyObject*)__pyx_t_6); +      __pyx_t_6 = 0; + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":123 + *                 if not f_derivation or not e_derivation: break + *                 f_tree = unicode(GetString(f_derivation._yield).c_str(), 'utf8') + *                 e_tree = unicode(GetString(e_derivation._yield).c_str(), 'utf8')             # <<<<<<<<<<<<<< + *                 yield (f_tree, e_tree) + *         finally: + */ +      __pyx_t_6 = __Pyx_PyBytes_FromString(TD::GetString(__pyx_cur_scope->__pyx_v_e_derivation->yield).c_str()); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_GOTREF(((PyObject *)__pyx_t_6)); +      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_GOTREF(__pyx_t_7); +      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_6)); +      __Pyx_GIVEREF(((PyObject *)__pyx_t_6)); +      __Pyx_INCREF(((PyObject *)__pyx_n_s__utf8)); +      PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_n_s__utf8)); +      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__utf8)); +      __pyx_t_6 = 0; +      __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_GOTREF(__pyx_t_6); +      __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; +      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_e_tree)); +      __Pyx_XDECREF(((PyObject *)__pyx_cur_scope->__pyx_v_e_tree)); +      __Pyx_GIVEREF(__pyx_t_6); +      __pyx_cur_scope->__pyx_v_e_tree = ((PyObject*)__pyx_t_6); +      __pyx_t_6 = 0; + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":124 + *                 f_tree = unicode(GetString(f_derivation._yield).c_str(), 'utf8') + *                 e_tree = unicode(GetString(e_derivation._yield).c_str(), 'utf8') + *                 yield (f_tree, e_tree)             # <<<<<<<<<<<<<< + *         finally: + *             del f_derivations + */ +      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_GOTREF(__pyx_t_6); +      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_f_tree)); +      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_f_tree)); +      __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_f_tree)); +      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_e_tree)); +      PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_cur_scope->__pyx_v_e_tree)); +      __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_e_tree)); +      __pyx_r = ((PyObject *)__pyx_t_6); +      __pyx_t_6 = 0; +      __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; +      __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; +      __Pyx_XGIVEREF(__pyx_r); +      __Pyx_RefNannyFinishContext(); +      /* return from generator, yielding value */ +      __pyx_generator->resume_label = 1; +      return __pyx_r; +      __pyx_L10_resume_from_yield:; +      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; +      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; +      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L5;} +    } +    __pyx_L8_break:; +  } + +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":126 + *                 yield (f_tree, e_tree) + *         finally: + *             del f_derivations             # <<<<<<<<<<<<<< + *             del e_derivations + *  + */ +  /*finally:*/ { +    int __pyx_why; +    PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb; +    int __pyx_exc_lineno; +    __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0; +    __pyx_why = 0; goto __pyx_L6; +    __pyx_L5: { +      __pyx_why = 4; +      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +      __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb); +      __pyx_exc_lineno = __pyx_lineno; +      goto __pyx_L6; +    } +    __pyx_L6:; +    delete __pyx_cur_scope->__pyx_v_f_derivations; + +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":127 + *         finally: + *             del f_derivations + *             del e_derivations             # <<<<<<<<<<<<<< + *  + *     def unique_kbest_features(self, size): + */ +    delete __pyx_cur_scope->__pyx_v_e_derivations; +    switch (__pyx_why) { +      case 4: { +        __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb); +        __pyx_lineno = __pyx_exc_lineno; +        __pyx_exc_type = 0; +        __pyx_exc_value = 0; +        __pyx_exc_tb = 0; +        goto __pyx_L1_error; +      } +    } +  } +  PyErr_SetNone(PyExc_StopIteration); +  goto __pyx_L0; +  __pyx_L1_error:; +  __Pyx_XDECREF(__pyx_t_6); +  __Pyx_XDECREF(__pyx_t_7); +  __Pyx_AddTraceback("unique_kbest_trees", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __pyx_L0:; +  __Pyx_XDECREF(__pyx_r); +  __pyx_generator->resume_label = -1; +  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __Pyx_RefNannyFinishContext(); +  return NULL; +} +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_29generator9(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ + +/* Python wrapper */ +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_28unique_kbest_features(PyObject *__pyx_v_self, PyObject *__pyx_v_size); /*proto*/ +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_27unique_kbest_features[] = "hg.kbest_trees(size) -> List of unique k-best feature vectors in the hypergraph."; +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_28unique_kbest_features(PyObject *__pyx_v_self, PyObject *__pyx_v_size) { +  PyObject *__pyx_r = 0; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("unique_kbest_features (wrapper)", 0); +  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_27unique_kbest_features(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), ((PyObject *)__pyx_v_size)); +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":129 + *             del e_derivations + *  + *     def unique_kbest_features(self, size):             # <<<<<<<<<<<<<< + *         """hg.kbest_trees(size) -> List of unique k-best feature vectors in the hypergraph.""" + *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]](self.hg[0], size) + */ + +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_27unique_kbest_features(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_size) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *__pyx_cur_scope; +  PyObject *__pyx_r = NULL; +  __Pyx_RefNannyDeclarations +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("unique_kbest_features", 0); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features, __pyx_empty_tuple, NULL); +  if (unlikely(!__pyx_cur_scope)) { +    __Pyx_RefNannyFinishContext(); +    return NULL; +  } +  __Pyx_GOTREF(__pyx_cur_scope); +  __pyx_cur_scope->__pyx_v_self = __pyx_v_self; +  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); +  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); +  __pyx_cur_scope->__pyx_v_size = __pyx_v_size; +  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_size); +  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_size); +  { +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_10Hypergraph_29generator9, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_DECREF(__pyx_cur_scope); +    __Pyx_RefNannyFinishContext(); +    return (PyObject *) gen; +  } + +  __pyx_r = Py_None; __Pyx_INCREF(Py_None); +  goto __pyx_L0; +  __pyx_L1_error:; +  __Pyx_AddTraceback("cdec._cdec.Hypergraph.unique_kbest_features", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __pyx_r = NULL; +  __pyx_L0:; +  __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); +  __Pyx_XGIVEREF(__pyx_r); +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_29generator9(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +{ +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *)__pyx_generator->closure); +  PyObject *__pyx_r = NULL; +  unsigned int __pyx_t_1; +  long __pyx_t_2; +  int __pyx_t_3; +  PyObject *__pyx_t_4 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("None", 0); +  switch (__pyx_generator->resume_label) { +    case 0: goto __pyx_L3_first_run; +    case 1: goto __pyx_L10_resume_from_yield; +    default: /* CPython raises the right error here */ +    __Pyx_RefNannyFinishContext(); +    return NULL; +  } +  __pyx_L3_first_run:; +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":131 + *     def unique_kbest_features(self, size): + *         """hg.kbest_trees(size) -> List of unique k-best feature vectors in the hypergraph.""" + *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]](self.hg[0], size)             # <<<<<<<<<<<<<< + *         cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]].Derivation* derivation + *         cdef SparseVector fmap + */ +  __pyx_t_1 = __Pyx_PyInt_AsUnsignedInt(__pyx_cur_scope->__pyx_v_size); if (unlikely((__pyx_t_1 == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_cur_scope->__pyx_v_derivations = new KBest::KBestDerivations<FastSparseVector<weight_t>,FeatureVectorTraversal,KBest::NoFilter<FastSparseVector<double> > >((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_t_1); + +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":135 + *         cdef SparseVector fmap + *         cdef unsigned k + *         try:             # <<<<<<<<<<<<<< + *             for k in range(size): + *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + */ +  /*try:*/ { + +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":136 + *         cdef unsigned k + *         try: + *             for k in range(size):             # <<<<<<<<<<<<<< + *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 if not derivation: break + */ +    __pyx_t_2 = __Pyx_PyInt_AsLong(__pyx_cur_scope->__pyx_v_size); if (unlikely((__pyx_t_2 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L5;} +    for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_2; __pyx_t_1+=1) { +      __pyx_cur_scope->__pyx_v_k = __pyx_t_1; + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":137 + *         try: + *             for k in range(size): + *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k)             # <<<<<<<<<<<<<< + *                 if not derivation: break + *                 fmap = SparseVector.__new__(SparseVector) + */ +      __pyx_cur_scope->__pyx_v_derivation = __pyx_cur_scope->__pyx_v_derivations->LazyKthBest((__pyx_cur_scope->__pyx_v_self->hg->nodes_.size() - 1), __pyx_cur_scope->__pyx_v_k); + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":138 + *             for k in range(size): + *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 if not derivation: break             # <<<<<<<<<<<<<< + *                 fmap = SparseVector.__new__(SparseVector) + *                 fmap.vector = new FastSparseVector[weight_t](derivation._yield) + */ +      __pyx_t_3 = ((!(__pyx_cur_scope->__pyx_v_derivation != 0)) != 0); +      if (__pyx_t_3) { +        goto __pyx_L8_break; +        goto __pyx_L9; +      } +      __pyx_L9:; + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":139 + *                 derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) + *                 if not derivation: break + *                 fmap = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<< + *                 fmap.vector = new FastSparseVector[weight_t](derivation._yield) + *                 yield fmap + */ +      __pyx_t_4 = __pyx_tp_new_4cdec_5_cdec_SparseVector(((PyTypeObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_SparseVector)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_GOTREF(__pyx_t_4); +      if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4cdec_5_cdec_SparseVector)))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_fmap)); +      __Pyx_XDECREF(((PyObject *)__pyx_cur_scope->__pyx_v_fmap)); +      __Pyx_GIVEREF(__pyx_t_4); +      __pyx_cur_scope->__pyx_v_fmap = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_4); +      __pyx_t_4 = 0; + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":140 + *                 if not derivation: break + *                 fmap = SparseVector.__new__(SparseVector) + *                 fmap.vector = new FastSparseVector[weight_t](derivation._yield)             # <<<<<<<<<<<<<< + *                 yield fmap + *         finally: + */ +      __pyx_cur_scope->__pyx_v_fmap->vector = new FastSparseVector<weight_t>(__pyx_cur_scope->__pyx_v_derivation->yield); + +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":141 + *                 fmap = SparseVector.__new__(SparseVector) + *                 fmap.vector = new FastSparseVector[weight_t](derivation._yield) + *                 yield fmap             # <<<<<<<<<<<<<< + *         finally: + *             del derivations + */ +      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_fmap)); +      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_fmap); +      __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; +      __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; +      __Pyx_XGIVEREF(__pyx_r); +      __Pyx_RefNannyFinishContext(); +      /* return from generator, yielding value */ +      __pyx_generator->resume_label = 1; +      return __pyx_r; +      __pyx_L10_resume_from_yield:; +      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; +      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; +      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L5;} +    } +    __pyx_L8_break:; +  } + +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":143 + *                 yield fmap + *         finally: + *             del derivations             # <<<<<<<<<<<<<< + *  + *     def sample(self, unsigned n): + */ +  /*finally:*/ { +    int __pyx_why; +    PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb; +    int __pyx_exc_lineno; +    __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0; +    __pyx_why = 0; goto __pyx_L6; +    __pyx_L5: { +      __pyx_why = 4; +      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +      __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb); +      __pyx_exc_lineno = __pyx_lineno; +      goto __pyx_L6; +    } +    __pyx_L6:; +    delete __pyx_cur_scope->__pyx_v_derivations; +    switch (__pyx_why) { +      case 4: { +        __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb); +        __pyx_lineno = __pyx_exc_lineno; +        __pyx_exc_type = 0; +        __pyx_exc_value = 0; +        __pyx_exc_tb = 0; +        goto __pyx_L1_error; +      } +    } +  } +  PyErr_SetNone(PyExc_StopIteration); +  goto __pyx_L0; +  __pyx_L1_error:; +  __Pyx_XDECREF(__pyx_t_4); +  __Pyx_AddTraceback("unique_kbest_features", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __pyx_L0:; +  __Pyx_XDECREF(__pyx_r); +  __pyx_generator->resume_label = -1; +  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __Pyx_RefNannyFinishContext(); +  return NULL; +} +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_32generator10(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ + +/* Python wrapper */ +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_31sample(PyObject *__pyx_v_self, PyObject *__pyx_arg_n); /*proto*/ +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_30sample[] = "hg.sample(n) -> Sample of n hypotheses from the hypergraph."; +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_31sample(PyObject *__pyx_v_self, PyObject *__pyx_arg_n) {    unsigned int __pyx_v_n;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL; @@ -10299,7 +11219,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_22sample(PyObject *__pyx_v_s    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("sample (wrapper)", 0);    assert(__pyx_arg_n); { -    __pyx_v_n = __Pyx_PyInt_AsUnsignedInt(__pyx_arg_n); if (unlikely((__pyx_v_n == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_v_n = __Pyx_PyInt_AsUnsignedInt(__pyx_arg_n); if (unlikely((__pyx_v_n == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L3_error:; @@ -10307,12 +11227,12 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_22sample(PyObject *__pyx_v_s    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_21sample(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), ((unsigned int)__pyx_v_n)); +  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_30sample(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), ((unsigned int)__pyx_v_n));    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":97 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":145   *             del derivations   *    *     def sample(self, unsigned n):             # <<<<<<<<<<<<<< @@ -10320,15 +11240,15 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_22sample(PyObject *__pyx_v_s   *         cdef vector[hypergraph.Hypothesis]* hypos = new vector[hypergraph.Hypothesis]()   */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_21sample(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, unsigned int __pyx_v_n) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *__pyx_cur_scope; +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_30sample(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, unsigned int __pyx_v_n) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("sample", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_11_sample(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_11_sample, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_14_sample(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_14_sample, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -10339,7 +11259,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_21sample(struct __pyx_obj_4c    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __pyx_cur_scope->__pyx_v_n = __pyx_v_n;    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_10Hypergraph_32generator10, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -10357,9 +11277,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_21sample(struct __pyx_obj_4c    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_32generator10(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    std::vector<HypergraphSampler::Hypothesis> *__pyx_t_1;    size_t __pyx_t_2; @@ -10379,9 +11299,9 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7(__pyx_Generator      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":99 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":147   *     def sample(self, unsigned n):   *         """hg.sample(n) -> Sample of n hypotheses from the hypergraph."""   *         cdef vector[hypergraph.Hypothesis]* hypos = new vector[hypergraph.Hypothesis]()             # <<<<<<<<<<<<<< @@ -10392,11 +11312,11 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7(__pyx_Generator      __pyx_t_1 = new std::vector<HypergraphSampler::Hypothesis>();    } catch(...) {      __Pyx_CppExn2PyErr(); -    {__pyx_filename = __pyx_f[3]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[3]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __pyx_cur_scope->__pyx_v_hypos = __pyx_t_1; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":100 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":148   *         """hg.sample(n) -> Sample of n hypotheses from the hypergraph."""   *         cdef vector[hypergraph.Hypothesis]* hypos = new vector[hypergraph.Hypothesis]()   *         hypergraph.sample_hypotheses(self.hg[0], n, self._rng(), hypos)             # <<<<<<<<<<<<<< @@ -10405,7 +11325,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7(__pyx_Generator   */    HypergraphSampler::sample_hypotheses((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_cur_scope->__pyx_v_n, ((struct __pyx_vtabstruct_4cdec_5_cdec_Hypergraph *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_rng(__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_hypos); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":102 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":150   *         hypergraph.sample_hypotheses(self.hg[0], n, self._rng(), hypos)   *         cdef unsigned k   *         try:             # <<<<<<<<<<<<<< @@ -10414,7 +11334,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7(__pyx_Generator   */    /*try:*/ { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":103 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":151   *         cdef unsigned k   *         try:   *             for k in range(hypos.size()):             # <<<<<<<<<<<<<< @@ -10425,16 +11345,16 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7(__pyx_Generator      for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {        __pyx_cur_scope->__pyx_v_k = __pyx_t_3; -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":104 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":152   *         try:   *             for k in range(hypos.size()):   *                 yield unicode(GetString(hypos[0][k].words).c_str(), 'utf8')             # <<<<<<<<<<<<<<   *         finally:   *             del hypos   */ -      __pyx_t_4 = __Pyx_PyBytes_FromString(TD::GetString(((__pyx_cur_scope->__pyx_v_hypos[0])[__pyx_cur_scope->__pyx_v_k]).words).c_str()); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __pyx_t_4 = __Pyx_PyBytes_FromString(TD::GetString(((__pyx_cur_scope->__pyx_v_hypos[0])[__pyx_cur_scope->__pyx_v_k]).words).c_str()); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L5;}        __Pyx_GOTREF(((PyObject *)__pyx_t_4)); -      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L5;}        __Pyx_GOTREF(__pyx_t_5);        PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4));        __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); @@ -10442,7 +11362,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7(__pyx_Generator        PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_n_s__utf8));        __Pyx_GIVEREF(((PyObject *)__pyx_n_s__utf8));        __pyx_t_4 = 0; -      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L5;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;        __pyx_r = __pyx_t_4; @@ -10457,11 +11377,11 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7(__pyx_Generator        __pyx_L9_resume_from_yield:;        __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;        __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; -      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L5;} +      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L5;}      }    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":106 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":154   *                 yield unicode(GetString(hypos[0][k].words).c_str(), 'utf8')   *         finally:   *             del hypos             # <<<<<<<<<<<<<< @@ -10508,12 +11428,12 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_23generator7(__pyx_Generator    __Pyx_RefNannyFinishContext();    return NULL;  } -static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_35generator11(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */ -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_25sample_trees(PyObject *__pyx_v_self, PyObject *__pyx_arg_n); /*proto*/ -static char __pyx_doc_4cdec_5_cdec_10Hypergraph_24sample_trees[] = "hg.sample_trees(n) -> Sample of n trees from the hypergraph."; -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_25sample_trees(PyObject *__pyx_v_self, PyObject *__pyx_arg_n) { +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_34sample_trees(PyObject *__pyx_v_self, PyObject *__pyx_arg_n); /*proto*/ +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_33sample_trees[] = "hg.sample_trees(n) -> Sample of n trees from the hypergraph."; +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_34sample_trees(PyObject *__pyx_v_self, PyObject *__pyx_arg_n) {    unsigned int __pyx_v_n;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL; @@ -10522,7 +11442,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_25sample_trees(PyObject *__p    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("sample_trees (wrapper)", 0);    assert(__pyx_arg_n); { -    __pyx_v_n = __Pyx_PyInt_AsUnsignedInt(__pyx_arg_n); if (unlikely((__pyx_v_n == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_v_n = __Pyx_PyInt_AsUnsignedInt(__pyx_arg_n); if (unlikely((__pyx_v_n == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L3_error:; @@ -10530,12 +11450,12 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_25sample_trees(PyObject *__p    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_24sample_trees(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), ((unsigned int)__pyx_v_n)); +  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_33sample_trees(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), ((unsigned int)__pyx_v_n));    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":108 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":156   *             del hypos   *    *     def sample_trees(self, unsigned n):             # <<<<<<<<<<<<<< @@ -10543,15 +11463,15 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_25sample_trees(PyObject *__p   *        cdef vector[string]* trees = new vector[string]()   */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_24sample_trees(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, unsigned int __pyx_v_n) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *__pyx_cur_scope; +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_33sample_trees(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, unsigned int __pyx_v_n) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("sample_trees", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_12_sample_trees(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_12_sample_trees, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_15_sample_trees(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_15_sample_trees, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -10562,7 +11482,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_24sample_trees(struct __pyx_    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __pyx_cur_scope->__pyx_v_n = __pyx_v_n;    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_10Hypergraph_35generator11, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -10580,9 +11500,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_24sample_trees(struct __pyx_    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_35generator11(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    std::vector<std::string> *__pyx_t_1;    size_t __pyx_t_2; @@ -10602,9 +11522,9 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_Generator      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":110 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":158   *     def sample_trees(self, unsigned n):   *        """hg.sample_trees(n) -> Sample of n trees from the hypergraph."""   *        cdef vector[string]* trees = new vector[string]()             # <<<<<<<<<<<<<< @@ -10615,11 +11535,11 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_Generator      __pyx_t_1 = new std::vector<std::string>();    } catch(...) {      __Pyx_CppExn2PyErr(); -    {__pyx_filename = __pyx_f[3]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __pyx_cur_scope->__pyx_v_trees = __pyx_t_1; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":111 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":159   *        """hg.sample_trees(n) -> Sample of n trees from the hypergraph."""   *        cdef vector[string]* trees = new vector[string]()   *        hypergraph.sample_trees(self.hg[0], n, self._rng(), trees)             # <<<<<<<<<<<<<< @@ -10628,7 +11548,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_Generator   */    HypergraphSampler::sample_trees((__pyx_cur_scope->__pyx_v_self->hg[0]), __pyx_cur_scope->__pyx_v_n, ((struct __pyx_vtabstruct_4cdec_5_cdec_Hypergraph *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_rng(__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_trees); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":113 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":161   *        hypergraph.sample_trees(self.hg[0], n, self._rng(), trees)   *        cdef unsigned k   *        try:             # <<<<<<<<<<<<<< @@ -10637,7 +11557,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_Generator   */    /*try:*/ { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":114 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":162   *        cdef unsigned k   *        try:   *            for k in range(trees.size()):             # <<<<<<<<<<<<<< @@ -10648,16 +11568,16 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_Generator      for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {        __pyx_cur_scope->__pyx_v_k = __pyx_t_3; -      /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":115 +      /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":163   *        try:   *            for k in range(trees.size()):   *                yield unicode(trees[0][k].c_str(), 'utf8')             # <<<<<<<<<<<<<<   *        finally:   *            del trees   */ -      __pyx_t_4 = __Pyx_PyBytes_FromString(((__pyx_cur_scope->__pyx_v_trees[0])[__pyx_cur_scope->__pyx_v_k]).c_str()); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __pyx_t_4 = __Pyx_PyBytes_FromString(((__pyx_cur_scope->__pyx_v_trees[0])[__pyx_cur_scope->__pyx_v_k]).c_str()); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L5;}        __Pyx_GOTREF(((PyObject *)__pyx_t_4)); -      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L5;}        __Pyx_GOTREF(__pyx_t_5);        PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4));        __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); @@ -10665,7 +11585,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_Generator        PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_n_s__utf8));        __Pyx_GIVEREF(((PyObject *)__pyx_n_s__utf8));        __pyx_t_4 = 0; -      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L5;} +      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L5;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;        __pyx_r = __pyx_t_4; @@ -10680,11 +11600,11 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_Generator        __pyx_L9_resume_from_yield:;        __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;        __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; -      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L5;} +      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L5;}      }    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":117 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":165   *                yield unicode(trees[0][k].c_str(), 'utf8')   *        finally:   *            del trees             # <<<<<<<<<<<<<< @@ -10733,18 +11653,18 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_26generator8(__pyx_Generator  }  /* Python wrapper */ -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_28intersect(PyObject *__pyx_v_self, PyObject *__pyx_v_inp); /*proto*/ -static char __pyx_doc_4cdec_5_cdec_10Hypergraph_27intersect[] = "hg.intersect(Lattice/string): Intersect the hypergraph with the provided reference."; -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_28intersect(PyObject *__pyx_v_self, PyObject *__pyx_v_inp) { +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_37intersect(PyObject *__pyx_v_self, PyObject *__pyx_v_inp); /*proto*/ +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_36intersect[] = "hg.intersect(Lattice/string): Intersect the hypergraph with the provided reference."; +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_37intersect(PyObject *__pyx_v_self, PyObject *__pyx_v_inp) {    PyObject *__pyx_r = 0;    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("intersect (wrapper)", 0); -  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_27intersect(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), ((PyObject *)__pyx_v_inp)); +  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_36intersect(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), ((PyObject *)__pyx_v_inp));    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":119 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":167   *            del trees   *    *     def intersect(self, inp):             # <<<<<<<<<<<<<< @@ -10752,7 +11672,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_28intersect(PyObject *__pyx_   *         cdef Lattice lat   */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_27intersect(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_inp) { +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_36intersect(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_inp) {    struct __pyx_obj_4cdec_5_cdec_Lattice *__pyx_v_lat = 0;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -10765,7 +11685,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_27intersect(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("intersect", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":122 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":170   *         """hg.intersect(Lattice/string): Intersect the hypergraph with the provided reference."""   *         cdef Lattice lat   *         if isinstance(inp, Lattice):             # <<<<<<<<<<<<<< @@ -10776,7 +11696,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_27intersect(struct __pyx_obj    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":123 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":171   *         cdef Lattice lat   *         if isinstance(inp, Lattice):   *             lat = <Lattice> inp             # <<<<<<<<<<<<<< @@ -10788,7 +11708,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_27intersect(struct __pyx_obj      goto __pyx_L3;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":124 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":172   *         if isinstance(inp, Lattice):   *             lat = <Lattice> inp   *         elif isinstance(inp, basestring):             # <<<<<<<<<<<<<< @@ -10799,19 +11719,19 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_27intersect(struct __pyx_obj    __pyx_t_1 = (__pyx_t_2 != 0);    if (__pyx_t_1) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":125 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":173   *             lat = <Lattice> inp   *         elif isinstance(inp, basestring):   *             lat = Lattice(inp)             # <<<<<<<<<<<<<<   *         else:   *             raise TypeError('cannot intersect hypergraph with %s' % type(inp))   */ -    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_INCREF(__pyx_v_inp);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_inp);      __Pyx_GIVEREF(__pyx_v_inp); -    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_Lattice)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_Lattice)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __pyx_v_lat = ((struct __pyx_obj_4cdec_5_cdec_Lattice *)__pyx_t_4); @@ -10820,30 +11740,30 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_27intersect(struct __pyx_obj    }    /*else*/ { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":127 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":175   *             lat = Lattice(inp)   *         else:   *             raise TypeError('cannot intersect hypergraph with %s' % type(inp))             # <<<<<<<<<<<<<<   *         return hypergraph.Intersect(lat.lattice[0], self.hg)   *    */ -    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_15), ((PyObject *)Py_TYPE(__pyx_v_inp))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_15), ((PyObject *)Py_TYPE(__pyx_v_inp))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_4)); -    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));      __Pyx_GIVEREF(((PyObject *)__pyx_t_4));      __pyx_t_4 = 0; -    __pyx_t_4 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __Pyx_Raise(__pyx_t_4, 0, 0, 0);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    {__pyx_filename = __pyx_f[3]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[3]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":128 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":176   *         else:   *             raise TypeError('cannot intersect hypergraph with %s' % type(inp))   *         return hypergraph.Intersect(lat.lattice[0], self.hg)             # <<<<<<<<<<<<<< @@ -10851,7 +11771,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_27intersect(struct __pyx_obj   *     def prune(self, beam_alpha=0, density=0, **kwargs):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_4 = __Pyx_PyBool_FromLong(HG::Intersect((__pyx_v_lat->lattice[0]), __pyx_v_self->hg)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyBool_FromLong(HG::Intersect((__pyx_v_lat->lattice[0]), __pyx_v_self->hg)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __pyx_r = __pyx_t_4;    __pyx_t_4 = 0; @@ -10872,9 +11792,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_27intersect(struct __pyx_obj  }  /* Python wrapper */ -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_30prune(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_4cdec_5_cdec_10Hypergraph_29prune[] = "hg.prune(beam_alpha=0, density=0): Prune the hypergraph.\n        beam_alpha: use beam pruning\n        density: use density pruning"; -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_30prune(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_39prune(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_38prune[] = "hg.prune(beam_alpha=0, density=0): Prune the hypergraph.\n        beam_alpha: use beam pruning\n        density: use density pruning"; +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_39prune(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_beam_alpha = 0;    PyObject *__pyx_v_density = 0;    PyObject *__pyx_v_kwargs = 0; @@ -10914,7 +11834,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_30prune(PyObject *__pyx_v_se          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "prune") < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "prune") < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -10929,20 +11849,20 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_30prune(PyObject *__pyx_v_se    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("prune", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("prune", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;    __Pyx_AddTraceback("cdec._cdec.Hypergraph.prune", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_29prune(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), __pyx_v_beam_alpha, __pyx_v_density, __pyx_v_kwargs); +  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_38prune(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), __pyx_v_beam_alpha, __pyx_v_density, __pyx_v_kwargs);    __Pyx_XDECREF(__pyx_v_kwargs);    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":130 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":178   *         return hypergraph.Intersect(lat.lattice[0], self.hg)   *    *     def prune(self, beam_alpha=0, density=0, **kwargs):             # <<<<<<<<<<<<<< @@ -10950,7 +11870,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_30prune(PyObject *__pyx_v_se   *         beam_alpha: use beam pruning   */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_29prune(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_beam_alpha, PyObject *__pyx_v_density, PyObject *__pyx_v_kwargs) { +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_38prune(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_beam_alpha, PyObject *__pyx_v_density, PyObject *__pyx_v_kwargs) {    std::vector<bool> *__pyx_v_preserve_mask;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -10963,7 +11883,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_29prune(struct __pyx_obj_4cd    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("prune", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":134 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":182   *         beam_alpha: use beam pruning   *         density: use density pruning"""   *         cdef hypergraph.EdgeMask* preserve_mask = NULL             # <<<<<<<<<<<<<< @@ -10972,18 +11892,18 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_29prune(struct __pyx_obj_4cd   */    __pyx_v_preserve_mask = NULL; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":135 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":183   *         density: use density pruning"""   *         cdef hypergraph.EdgeMask* preserve_mask = NULL   *         if 'csplit_preserve_full_word' in kwargs:             # <<<<<<<<<<<<<<   *              preserve_mask = new hypergraph.EdgeMask(self.hg.edges_.size())   *              preserve_mask[0][hypergraph.GetFullWordEdgeIndex(self.hg[0])] = True   */ -  __pyx_t_1 = (__Pyx_PyDict_Contains(((PyObject *)__pyx_n_s_16), ((PyObject *)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = (__Pyx_PyDict_Contains(((PyObject *)__pyx_n_s_16), ((PyObject *)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":136 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":184   *         cdef hypergraph.EdgeMask* preserve_mask = NULL   *         if 'csplit_preserve_full_word' in kwargs:   *              preserve_mask = new hypergraph.EdgeMask(self.hg.edges_.size())             # <<<<<<<<<<<<<< @@ -10992,7 +11912,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_29prune(struct __pyx_obj_4cd   */      __pyx_v_preserve_mask = new std::vector<bool>(__pyx_v_self->hg->edges_.size()); -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":137 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":185   *         if 'csplit_preserve_full_word' in kwargs:   *              preserve_mask = new hypergraph.EdgeMask(self.hg.edges_.size())   *              preserve_mask[0][hypergraph.GetFullWordEdgeIndex(self.hg[0])] = True             # <<<<<<<<<<<<<< @@ -11004,18 +11924,18 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_29prune(struct __pyx_obj_4cd    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":138 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":186   *              preserve_mask = new hypergraph.EdgeMask(self.hg.edges_.size())   *              preserve_mask[0][hypergraph.GetFullWordEdgeIndex(self.hg[0])] = True   *         self.hg.PruneInsideOutside(beam_alpha, density, preserve_mask, False, 1, False)             # <<<<<<<<<<<<<<   *         if preserve_mask:   *             del preserve_mask   */ -  __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_beam_alpha); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_density); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_beam_alpha); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_density); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->hg->PruneInsideOutside(__pyx_t_3, __pyx_t_4, __pyx_v_preserve_mask, 0, 1.0, 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":139 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":187   *              preserve_mask[0][hypergraph.GetFullWordEdgeIndex(self.hg[0])] = True   *         self.hg.PruneInsideOutside(beam_alpha, density, preserve_mask, False, 1, False)   *         if preserve_mask:             # <<<<<<<<<<<<<< @@ -11025,7 +11945,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_29prune(struct __pyx_obj_4cd    __pyx_t_2 = (__pyx_v_preserve_mask != 0);    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":140 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":188   *         self.hg.PruneInsideOutside(beam_alpha, density, preserve_mask, False, 1, False)   *         if preserve_mask:   *             del preserve_mask             # <<<<<<<<<<<<<< @@ -11049,18 +11969,18 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_29prune(struct __pyx_obj_4cd  }  /* Python wrapper */ -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_32lattice(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static char __pyx_doc_4cdec_5_cdec_10Hypergraph_31lattice[] = "hg.lattice() -> Lattice corresponding to the hypergraph."; -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_32lattice(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_41lattice(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_40lattice[] = "hg.lattice() -> Lattice corresponding to the hypergraph."; +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_41lattice(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = 0;    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("lattice (wrapper)", 0); -  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_31lattice(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self)); +  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_40lattice(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self));    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":142 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":190   *             del preserve_mask   *    *     def lattice(self): # TODO direct hg -> lattice conversion in cdec             # <<<<<<<<<<<<<< @@ -11068,7 +11988,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_32lattice(PyObject *__pyx_v_   *         cdef bytes plf = hypergraph.AsPLF(self.hg[0], True).c_str()   */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_31lattice(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self) { +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_40lattice(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self) {    PyObject *__pyx_v_plf = 0;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -11080,19 +12000,19 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_31lattice(struct __pyx_obj_4    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("lattice", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":144 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":192   *     def lattice(self): # TODO direct hg -> lattice conversion in cdec   *         """hg.lattice() -> Lattice corresponding to the hypergraph."""   *         cdef bytes plf = hypergraph.AsPLF(self.hg[0], True).c_str()             # <<<<<<<<<<<<<<   *         return Lattice(eval(plf))   *    */ -  __pyx_t_1 = __Pyx_PyBytes_FromString(HypergraphIO::AsPLF((__pyx_v_self->hg[0]), 1).c_str()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyBytes_FromString(HypergraphIO::AsPLF((__pyx_v_self->hg[0]), 1).c_str()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_plf = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":145 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":193   *         """hg.lattice() -> Lattice corresponding to the hypergraph."""   *         cdef bytes plf = hypergraph.AsPLF(self.hg[0], True).c_str()   *         return Lattice(eval(plf))             # <<<<<<<<<<<<<< @@ -11100,17 +12020,17 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_31lattice(struct __pyx_obj_4   *     def plf(self):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_Globals(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_Globals(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_2));    if (((PyObject *)__pyx_v_plf)) { -    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__plf), ((PyObject *)__pyx_v_plf)) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__plf), ((PyObject *)__pyx_v_plf)) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    if (((PyObject *)__pyx_v_self)) { -    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_v_self)) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_v_self)) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_INCREF(((PyObject *)__pyx_v_plf));    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_plf)); @@ -11121,15 +12041,15 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_31lattice(struct __pyx_obj_4    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));    __pyx_t_1 = 0;    __pyx_t_2 = 0; -  __pyx_t_2 = PyObject_Call(__pyx_builtin_eval, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Call(__pyx_builtin_eval, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; -  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    __pyx_t_2 = 0; -  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_Lattice)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_Lattice)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;    __pyx_r = __pyx_t_2; @@ -11152,18 +12072,18 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_31lattice(struct __pyx_obj_4  }  /* Python wrapper */ -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_34plf(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static char __pyx_doc_4cdec_5_cdec_10Hypergraph_33plf[] = "hg.plf() -> Lattice PLF representation corresponding to the hypergraph."; -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_34plf(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_43plf(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_42plf[] = "hg.plf() -> Lattice PLF representation corresponding to the hypergraph."; +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_43plf(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = 0;    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("plf (wrapper)", 0); -  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_33plf(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self)); +  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_42plf(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self));    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":147 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":195   *         return Lattice(eval(plf))   *    *     def plf(self):             # <<<<<<<<<<<<<< @@ -11171,7 +12091,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_34plf(PyObject *__pyx_v_self   *         return bytes(hypergraph.AsPLF(self.hg[0], True).c_str())   */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_33plf(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self) { +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_42plf(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -11181,7 +12101,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_33plf(struct __pyx_obj_4cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("plf", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":149 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":197   *     def plf(self):   *         """hg.plf() -> Lattice PLF representation corresponding to the hypergraph."""   *         return bytes(hypergraph.AsPLF(self.hg[0], True).c_str())             # <<<<<<<<<<<<<< @@ -11189,14 +12109,14 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_33plf(struct __pyx_obj_4cdec   *     def reweight(self, weights):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_PyBytes_FromString(HypergraphIO::AsPLF((__pyx_v_self->hg[0]), 1).c_str()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyBytes_FromString(HypergraphIO::AsPLF((__pyx_v_self->hg[0]), 1).c_str()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_1)); -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1));    __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyBytes_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyBytes_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __pyx_r = __pyx_t_1; @@ -11217,18 +12137,18 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_33plf(struct __pyx_obj_4cdec  }  /* Python wrapper */ -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_36reweight(PyObject *__pyx_v_self, PyObject *__pyx_v_weights); /*proto*/ -static char __pyx_doc_4cdec_5_cdec_10Hypergraph_35reweight[] = "hg.reweight(SparseVector/DenseVector): Reweight the hypergraph with a new vector."; -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_36reweight(PyObject *__pyx_v_self, PyObject *__pyx_v_weights) { +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_45reweight(PyObject *__pyx_v_self, PyObject *__pyx_v_weights); /*proto*/ +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_44reweight[] = "hg.reweight(SparseVector/DenseVector): Reweight the hypergraph with a new vector."; +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_45reweight(PyObject *__pyx_v_self, PyObject *__pyx_v_weights) {    PyObject *__pyx_r = 0;    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("reweight (wrapper)", 0); -  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_35reweight(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), ((PyObject *)__pyx_v_weights)); +  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_44reweight(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self), ((PyObject *)__pyx_v_weights));    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":151 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":199   *         return bytes(hypergraph.AsPLF(self.hg[0], True).c_str())   *    *     def reweight(self, weights):             # <<<<<<<<<<<<<< @@ -11236,7 +12156,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_36reweight(PyObject *__pyx_v   *         if isinstance(weights, SparseVector):   */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_35reweight(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_weights) { +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_44reweight(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self, PyObject *__pyx_v_weights) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -11248,7 +12168,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_35reweight(struct __pyx_obj_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("reweight", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":153 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":201   *     def reweight(self, weights):   *         """hg.reweight(SparseVector/DenseVector): Reweight the hypergraph with a new vector."""   *         if isinstance(weights, SparseVector):             # <<<<<<<<<<<<<< @@ -11259,7 +12179,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_35reweight(struct __pyx_obj_    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":154 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":202   *         """hg.reweight(SparseVector/DenseVector): Reweight the hypergraph with a new vector."""   *         if isinstance(weights, SparseVector):   *             self.hg.Reweight((<SparseVector> weights).vector[0])             # <<<<<<<<<<<<<< @@ -11270,7 +12190,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_35reweight(struct __pyx_obj_      goto __pyx_L3;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":155 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":203   *         if isinstance(weights, SparseVector):   *             self.hg.Reweight((<SparseVector> weights).vector[0])   *         elif isinstance(weights, DenseVector):             # <<<<<<<<<<<<<< @@ -11281,7 +12201,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_35reweight(struct __pyx_obj_    __pyx_t_1 = (__pyx_t_2 != 0);    if (__pyx_t_1) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":156 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":204   *             self.hg.Reweight((<SparseVector> weights).vector[0])   *         elif isinstance(weights, DenseVector):   *             self.hg.Reweight((<DenseVector> weights).vector[0])             # <<<<<<<<<<<<<< @@ -11293,26 +12213,26 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_35reweight(struct __pyx_obj_    }    /*else*/ { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":158 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":206   *             self.hg.Reweight((<DenseVector> weights).vector[0])   *         else:   *             raise TypeError('cannot reweight hypergraph with %s' % type(weights))             # <<<<<<<<<<<<<<   *    *     property edges:   */ -    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_17), ((PyObject *)Py_TYPE(__pyx_v_weights))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_17), ((PyObject *)Py_TYPE(__pyx_v_weights))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_3)); -    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));      __Pyx_GIVEREF(((PyObject *)__pyx_t_3));      __pyx_t_3 = 0; -    __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;      __Pyx_Raise(__pyx_t_3, 0, 0, 0);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[3]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __pyx_L3:; @@ -11328,7 +12248,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_35reweight(struct __pyx_obj_    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5edges_2generator9(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5edges_2generator12(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */  static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_5edges_1__get__(PyObject *__pyx_v_self); /*proto*/ @@ -11341,7 +12261,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_5edges_1__get__(PyObject *__    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":161 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":209   *    *     property edges:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -11350,14 +12270,14 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_5edges_1__get__(PyObject *__   */  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_5edges___get__(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_13___get__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_13___get__, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_16___get__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_16___get__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -11367,7 +12287,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_5edges___get__(struct __pyx_    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_10Hypergraph_5edges_2generator9, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_10Hypergraph_5edges_2generator12, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -11385,9 +12305,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_5edges___get__(struct __pyx_    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5edges_2generator9(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5edges_2generator12(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    size_t __pyx_t_1;    unsigned int __pyx_t_2; @@ -11406,9 +12326,9 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5edges_2generator9(__pyx_Gen      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":163 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":211   *         def __get__(self):   *             cdef unsigned i   *             for i in range(self.hg.edges_.size()):             # <<<<<<<<<<<<<< @@ -11419,16 +12339,16 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5edges_2generator9(__pyx_Gen    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":164 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":212   *             cdef unsigned i   *             for i in range(self.hg.edges_.size()):   *                 yield HypergraphEdge().init(self.hg, i)             # <<<<<<<<<<<<<<   *    *     property nodes:   */ -    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphEdge)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphEdge)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphEdge *)((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3), __pyx_cur_scope->__pyx_v_self->hg, __pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphEdge *)((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3), __pyx_cur_scope->__pyx_v_self->hg, __pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_r = __pyx_t_4; @@ -11443,7 +12363,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5edges_2generator9(__pyx_Gen      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; -    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    PyErr_SetNone(PyExc_StopIteration);    goto __pyx_L0; @@ -11458,7 +12378,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5edges_2generator9(__pyx_Gen    __Pyx_RefNannyFinishContext();    return NULL;  } -static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5nodes_2generator10(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5nodes_2generator13(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */  static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_5nodes_1__get__(PyObject *__pyx_v_self); /*proto*/ @@ -11471,7 +12391,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_5nodes_1__get__(PyObject *__    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":167 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":215   *    *     property nodes:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -11480,14 +12400,14 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_5nodes_1__get__(PyObject *__   */  static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_5nodes___get__(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_14___get__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_14___get__, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_17___get__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_17___get__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -11497,7 +12417,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_5nodes___get__(struct __pyx_    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_10Hypergraph_5nodes_2generator10, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_10Hypergraph_5nodes_2generator13, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -11515,9 +12435,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_5nodes___get__(struct __pyx_    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5nodes_2generator10(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5nodes_2generator13(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    size_t __pyx_t_1;    unsigned int __pyx_t_2; @@ -11536,9 +12456,9 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5nodes_2generator10(__pyx_Ge      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":169 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":217   *         def __get__(self):   *             cdef unsigned i   *             for i in range(self.hg.nodes_.size()):             # <<<<<<<<<<<<<< @@ -11549,16 +12469,16 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5nodes_2generator10(__pyx_Ge    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":170 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":218   *             cdef unsigned i   *             for i in range(self.hg.nodes_.size()):   *                 yield HypergraphNode().init(self.hg, i)             # <<<<<<<<<<<<<<   *    *     property goal:   */ -    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphNode)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphNode)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphNode *)((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_3)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_3), __pyx_cur_scope->__pyx_v_self->hg, __pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphNode *)((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_3)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_3), __pyx_cur_scope->__pyx_v_self->hg, __pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_r = __pyx_t_4; @@ -11573,7 +12493,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_10Hypergraph_5nodes_2generator10(__pyx_Ge      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; -    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    PyErr_SetNone(PyExc_StopIteration);    goto __pyx_L0; @@ -11600,7 +12520,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_4goal_1__get__(PyObject *__p    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":173 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":221   *    *     property goal:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -11618,7 +12538,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_4goal___get__(struct __pyx_o    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":174 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":222   *     property goal:   *         def __get__(self):   *             return HypergraphNode().init(self.hg, self.hg.GoalNode())             # <<<<<<<<<<<<<< @@ -11626,9 +12546,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_4goal___get__(struct __pyx_o   *     property npaths:   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphNode)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphNode)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphNode *)((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_1)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_1), __pyx_v_self->hg, __pyx_v_self->hg->GoalNode()); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphNode *)((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_1)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_1), __pyx_v_self->hg, __pyx_v_self->hg->GoalNode()); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_r = __pyx_t_2; @@ -11659,7 +12579,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_6npaths_1__get__(PyObject *_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":177 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":225   *    *     property npaths:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -11676,7 +12596,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_6npaths___get__(struct __pyx    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":178 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":226   *     property npaths:   *         def __get__(self):   *             return self.hg.NumberOfPaths()             # <<<<<<<<<<<<<< @@ -11684,7 +12604,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_6npaths___get__(struct __pyx   *     def inside_outside(self):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->hg->NumberOfPaths()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->hg->NumberOfPaths()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -11703,18 +12623,18 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_6npaths___get__(struct __pyx  }  /* Python wrapper */ -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_38inside_outside(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static char __pyx_doc_4cdec_5_cdec_10Hypergraph_37inside_outside[] = "hg.inside_outside() -> SparseVector with inside-outside scores for each feature."; -static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_38inside_outside(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_47inside_outside(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static char __pyx_doc_4cdec_5_cdec_10Hypergraph_46inside_outside[] = "hg.inside_outside() -> SparseVector with inside-outside scores for each feature."; +static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_47inside_outside(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = 0;    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("inside_outside (wrapper)", 0); -  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self)); +  __pyx_r = __pyx_pf_4cdec_5_cdec_10Hypergraph_46inside_outside(((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_v_self));    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":180 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":228   *             return self.hg.NumberOfPaths()   *    *     def inside_outside(self):             # <<<<<<<<<<<<<< @@ -11722,7 +12642,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_10Hypergraph_38inside_outside(PyObject *_   *         cdef FastSparseVector[prob_t]* result = new FastSparseVector[prob_t]()   */ -static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self) { +static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_46inside_outside(struct __pyx_obj_4cdec_5_cdec_Hypergraph *__pyx_v_self) {    FastSparseVector<prob_t> *__pyx_v_result;    prob_t __pyx_v_z;    struct __pyx_obj_4cdec_5_cdec_SparseVector *__pyx_v_vector = 0; @@ -11738,7 +12658,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("inside_outside", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":182 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":230   *     def inside_outside(self):   *         """hg.inside_outside() -> SparseVector with inside-outside scores for each feature."""   *         cdef FastSparseVector[prob_t]* result = new FastSparseVector[prob_t]()             # <<<<<<<<<<<<<< @@ -11747,7 +12667,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py   */    __pyx_v_result = new FastSparseVector<prob_t>(); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":183 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":231   *         """hg.inside_outside() -> SparseVector with inside-outside scores for each feature."""   *         cdef FastSparseVector[prob_t]* result = new FastSparseVector[prob_t]()   *         cdef prob_t z = hypergraph.InsideOutside(self.hg[0], result)             # <<<<<<<<<<<<<< @@ -11756,7 +12676,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py   */    __pyx_v_z = InsideOutside<prob_t, EdgeProb, SparseVector<prob_t>, EdgeFeaturesAndProbWeightFunction>((__pyx_v_self->hg[0]), __pyx_v_result); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":184 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":232   *         cdef FastSparseVector[prob_t]* result = new FastSparseVector[prob_t]()   *         cdef prob_t z = hypergraph.InsideOutside(self.hg[0], result)   *         result[0] /= z             # <<<<<<<<<<<<<< @@ -11765,20 +12685,20 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py   */    (__pyx_v_result[0]) /= __pyx_v_z; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":185 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":233   *         cdef prob_t z = hypergraph.InsideOutside(self.hg[0], result)   *         result[0] /= z   *         cdef SparseVector vector = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<<   *         vector.vector = new FastSparseVector[double]()   *         cdef FastSparseVector[prob_t].const_iterator* it = new FastSparseVector[prob_t].const_iterator(result[0], False)   */ -  __pyx_t_1 = __pyx_tp_new_4cdec_5_cdec_SparseVector(((PyTypeObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_SparseVector)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __pyx_tp_new_4cdec_5_cdec_SparseVector(((PyTypeObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_SparseVector)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_5_cdec_SparseVector)))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_5_cdec_SparseVector)))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_vector = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":186 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":234   *         result[0] /= z   *         cdef SparseVector vector = SparseVector.__new__(SparseVector)   *         vector.vector = new FastSparseVector[double]()             # <<<<<<<<<<<<<< @@ -11787,7 +12707,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py   */    __pyx_v_vector->vector = new FastSparseVector<double>(); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":187 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":235   *         cdef SparseVector vector = SparseVector.__new__(SparseVector)   *         vector.vector = new FastSparseVector[double]()   *         cdef FastSparseVector[prob_t].const_iterator* it = new FastSparseVector[prob_t].const_iterator(result[0], False)             # <<<<<<<<<<<<<< @@ -11796,7 +12716,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py   */    __pyx_v_it = new FastSparseVector<prob_t>::const_iterator((__pyx_v_result[0]), 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":189 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":237   *         cdef FastSparseVector[prob_t].const_iterator* it = new FastSparseVector[prob_t].const_iterator(result[0], False)   *         cdef unsigned i   *         for i in range(result.size()):             # <<<<<<<<<<<<<< @@ -11807,7 +12727,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py    for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {      __pyx_v_i = __pyx_t_3; -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":190 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":238   *         cdef unsigned i   *         for i in range(result.size()):   *             vector.vector.set_value(it[0].ptr().first, log(it[0].ptr().second))             # <<<<<<<<<<<<<< @@ -11816,7 +12736,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py   */      __pyx_v_vector->vector->set_value((__pyx_v_it[0]).operator->()->first, log((__pyx_v_it[0]).operator->()->second)); -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":191 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":239   *         for i in range(result.size()):   *             vector.vector.set_value(it[0].ptr().first, log(it[0].ptr().second))   *             pinc(it[0]) # ++it             # <<<<<<<<<<<<<< @@ -11826,7 +12746,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py      (++(__pyx_v_it[0]));    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":192 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":240   *             vector.vector.set_value(it[0].ptr().first, log(it[0].ptr().second))   *             pinc(it[0]) # ++it   *         del it             # <<<<<<<<<<<<<< @@ -11835,7 +12755,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py   */    delete __pyx_v_it; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":193 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":241   *             pinc(it[0]) # ++it   *         del it   *         del result             # <<<<<<<<<<<<<< @@ -11844,7 +12764,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py   */    delete __pyx_v_result; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":194 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":242   *         del it   *         del result   *         return vector             # <<<<<<<<<<<<<< @@ -11869,7 +12789,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_10Hypergraph_37inside_outside(struct __py    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":201 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":249   *     cdef public TRule trule   *    *     cdef init(self, hypergraph.Hypergraph* hg, unsigned i):             # <<<<<<<<<<<<<< @@ -11886,7 +12806,7 @@ static PyObject *__pyx_f_4cdec_5_cdec_14HypergraphEdge_init(struct __pyx_obj_4cd    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("init", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":202 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":250   *    *     cdef init(self, hypergraph.Hypergraph* hg, unsigned i):   *         self.hg = hg             # <<<<<<<<<<<<<< @@ -11895,7 +12815,7 @@ static PyObject *__pyx_f_4cdec_5_cdec_14HypergraphEdge_init(struct __pyx_obj_4cd   */    __pyx_v_self->hg = __pyx_v_hg; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":203 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":251   *     cdef init(self, hypergraph.Hypergraph* hg, unsigned i):   *         self.hg = hg   *         self.edge = &hg.edges_[i]             # <<<<<<<<<<<<<< @@ -11904,23 +12824,23 @@ static PyObject *__pyx_f_4cdec_5_cdec_14HypergraphEdge_init(struct __pyx_obj_4cd   */    __pyx_v_self->edge = (&(__pyx_v_hg->edges_[__pyx_v_i])); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":204 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":252   *         self.hg = hg   *         self.edge = &hg.edges_[i]   *         self.trule = TRule.__new__(TRule)             # <<<<<<<<<<<<<<   *         self.trule.rule = new shared_ptr[grammar.TRule](self.edge.rule_)   *         return self   */ -  __pyx_t_1 = __pyx_tp_new_4cdec_5_cdec_TRule(((PyTypeObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_TRule)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __pyx_tp_new_4cdec_5_cdec_TRule(((PyTypeObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_TRule)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_5_cdec_TRule)))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_5_cdec_TRule)))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GIVEREF(__pyx_t_1);    __Pyx_GOTREF(__pyx_v_self->trule);    __Pyx_DECREF(((PyObject *)__pyx_v_self->trule));    __pyx_v_self->trule = ((struct __pyx_obj_4cdec_5_cdec_TRule *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":205 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":253   *         self.edge = &hg.edges_[i]   *         self.trule = TRule.__new__(TRule)   *         self.trule.rule = new shared_ptr[grammar.TRule](self.edge.rule_)             # <<<<<<<<<<<<<< @@ -11929,7 +12849,7 @@ static PyObject *__pyx_f_4cdec_5_cdec_14HypergraphEdge_init(struct __pyx_obj_4cd   */    __pyx_v_self->trule->rule = new boost::shared_ptr<TRule>(__pyx_v_self->edge->rule_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":206 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":254   *         self.trule = TRule.__new__(TRule)   *         self.trule.rule = new shared_ptr[grammar.TRule](self.edge.rule_)   *         return self             # <<<<<<<<<<<<<< @@ -11964,7 +12884,7 @@ static Py_ssize_t __pyx_pw_4cdec_5_cdec_14HypergraphEdge_1__len__(PyObject *__py    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":208 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":256   *         return self   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -11977,7 +12897,7 @@ static Py_ssize_t __pyx_pf_4cdec_5_cdec_14HypergraphEdge___len__(struct __pyx_ob    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":209 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":257   *    *     def __len__(self):   *         return self.edge.tail_nodes_.size()             # <<<<<<<<<<<<<< @@ -12004,7 +12924,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphEdge_9head_node_1__get__(PyOb    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":212 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":260   *    *     property head_node:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -12022,7 +12942,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_9head_node___get__(struc    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":213 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":261   *     property head_node:   *         def __get__(self):   *             return HypergraphNode().init(self.hg, self.edge.head_node_)             # <<<<<<<<<<<<<< @@ -12030,9 +12950,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_9head_node___get__(struc   *     property tail_nodes:   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphNode)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphNode)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphNode *)((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_1)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_1), __pyx_v_self->hg, __pyx_v_self->edge->head_node_); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphNode *)((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_1)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_1), __pyx_v_self->hg, __pyx_v_self->edge->head_node_); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_r = __pyx_t_2; @@ -12051,7 +12971,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_9head_node___get__(struc    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_2generator11(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_2generator14(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */  static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_1__get__(PyObject *__pyx_v_self); /*proto*/ @@ -12064,7 +12984,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_1__get__(Py    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":216 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":264   *    *     property tail_nodes:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -12073,14 +12993,14 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_1__get__(Py   */  static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_10tail_nodes___get__(struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *__pyx_v_self) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_15___get__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_15___get__, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_18___get__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_18___get__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -12090,7 +13010,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_10tail_nodes___get__(str    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_2generator11, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_2generator14, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -12108,9 +13028,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_10tail_nodes___get__(str    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_2generator11(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_2generator14(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    unsigned int __pyx_t_1;    unsigned int __pyx_t_2; @@ -12129,9 +13049,9 @@ static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_2generator1      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":218 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":266   *         def __get__(self):   *             cdef unsigned i   *             for i in range(self.edge.tail_nodes_.size()):             # <<<<<<<<<<<<<< @@ -12142,16 +13062,16 @@ static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_2generator1    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":219 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":267   *             cdef unsigned i   *             for i in range(self.edge.tail_nodes_.size()):   *                 yield HypergraphNode().init(self.hg, self.edge.tail_nodes_[i])             # <<<<<<<<<<<<<<   *    *     property span:   */ -    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphNode)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphNode)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphNode *)((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_3)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_3), __pyx_cur_scope->__pyx_v_self->hg, (__pyx_cur_scope->__pyx_v_self->edge->tail_nodes_[__pyx_cur_scope->__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphNode *)((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_3)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_t_3), __pyx_cur_scope->__pyx_v_self->hg, (__pyx_cur_scope->__pyx_v_self->edge->tail_nodes_[__pyx_cur_scope->__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_r = __pyx_t_4; @@ -12166,7 +13086,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphEdge_10tail_nodes_2generator1      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; -    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    PyErr_SetNone(PyExc_StopIteration);    goto __pyx_L0; @@ -12193,7 +13113,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphEdge_4span_1__get__(PyObject    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":222 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":270   *    *     property span:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -12212,7 +13132,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_4span___get__(struct __p    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":223 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":271   *     property span:   *         def __get__(self):   *             return (self.edge.i_, self.edge.j_)             # <<<<<<<<<<<<<< @@ -12220,11 +13140,11 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_4span___get__(struct __p   *     property src_span:   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->edge->i_); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->edge->i_); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyInt_FromLong(__pyx_v_self->edge->j_); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong(__pyx_v_self->edge->j_); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); @@ -12261,7 +13181,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphEdge_8src_span_1__get__(PyObj    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":226 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":274   *    *     property src_span:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -12280,7 +13200,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_8src_span___get__(struct    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":227 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":275   *     property src_span:   *         def __get__(self):   *             return (self.edge.prev_i_, self.edge.prev_j_)             # <<<<<<<<<<<<<< @@ -12288,11 +13208,11 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_8src_span___get__(struct   *     property feature_values:   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->edge->prev_i_); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->edge->prev_i_); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyInt_FromLong(__pyx_v_self->edge->prev_j_); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong(__pyx_v_self->edge->prev_j_); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); @@ -12329,7 +13249,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphEdge_14feature_values_1__get_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":230 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":278   *    *     property feature_values:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -12347,20 +13267,20 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_14feature_values___get__    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":231 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":279   *     property feature_values:   *         def __get__(self):   *             cdef SparseVector vector = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<<   *             vector.vector = new FastSparseVector[double](self.edge.feature_values_)   *             return vector   */ -  __pyx_t_1 = __pyx_tp_new_4cdec_5_cdec_SparseVector(((PyTypeObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_SparseVector)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __pyx_tp_new_4cdec_5_cdec_SparseVector(((PyTypeObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_SparseVector)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_5_cdec_SparseVector)))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_5_cdec_SparseVector)))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_vector = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":232 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":280   *         def __get__(self):   *             cdef SparseVector vector = SparseVector.__new__(SparseVector)   *             vector.vector = new FastSparseVector[double](self.edge.feature_values_)             # <<<<<<<<<<<<<< @@ -12369,7 +13289,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_14feature_values___get__   */    __pyx_v_vector->vector = new FastSparseVector<double>(__pyx_v_self->edge->feature_values_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":233 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":281   *             cdef SparseVector vector = SparseVector.__new__(SparseVector)   *             vector.vector = new FastSparseVector[double](self.edge.feature_values_)   *             return vector             # <<<<<<<<<<<<<< @@ -12405,7 +13325,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphEdge_4prob_1__get__(PyObject    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":236 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":284   *    *     property prob:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -12422,7 +13342,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_4prob___get__(struct __p    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":237 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":285   *     property prob:   *         def __get__(self):   *             return self.edge.edge_prob_.as_float()             # <<<<<<<<<<<<<< @@ -12430,7 +13350,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_4prob___get__(struct __p   *     def __richcmp__(HypergraphEdge x, HypergraphEdge y, int op):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->edge->edge_prob_.as_float()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->edge->edge_prob_.as_float()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -12457,8 +13377,8 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphEdge_3__richcmp__(PyObject *_    PyObject *__pyx_r = 0;    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0); -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_4cdec_5_cdec_HypergraphEdge, 1, "x", 0))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_4cdec_5_cdec_HypergraphEdge, 1, "y", 0))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_4cdec_5_cdec_HypergraphEdge, 1, "x", 0))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_4cdec_5_cdec_HypergraphEdge, 1, "y", 0))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_r = __pyx_pf_4cdec_5_cdec_14HypergraphEdge_2__richcmp__(((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_v_x), ((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_v_y), ((int)__pyx_v_op));    goto __pyx_L0;    __pyx_L1_error:; @@ -12468,7 +13388,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphEdge_3__richcmp__(PyObject *_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":239 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":287   *             return self.edge.edge_prob_.as_float()   *    *     def __richcmp__(HypergraphEdge x, HypergraphEdge y, int op):             # <<<<<<<<<<<<<< @@ -12486,7 +13406,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_2__richcmp__(struct __py    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__richcmp__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":242 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":290   *         if op == 2: # ==   *             return x.edge == y.edge   *         elif op == 3: # !=             # <<<<<<<<<<<<<< @@ -12495,7 +13415,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_2__richcmp__(struct __py   */    switch (__pyx_v_op) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":240 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":288   *    *     def __richcmp__(HypergraphEdge x, HypergraphEdge y, int op):   *         if op == 2: # ==             # <<<<<<<<<<<<<< @@ -12504,7 +13424,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_2__richcmp__(struct __py   */      case 2: -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":241 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":289   *     def __richcmp__(HypergraphEdge x, HypergraphEdge y, int op):   *         if op == 2: # ==   *             return x.edge == y.edge             # <<<<<<<<<<<<<< @@ -12512,14 +13432,14 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_2__richcmp__(struct __py   *             return not (x == y)   */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_x->edge == __pyx_v_y->edge)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_x->edge == __pyx_v_y->edge)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_r = __pyx_t_1;      __pyx_t_1 = 0;      goto __pyx_L0;      break; -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":242 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":290   *         if op == 2: # ==   *             return x.edge == y.edge   *         elif op == 3: # !=             # <<<<<<<<<<<<<< @@ -12528,7 +13448,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_2__richcmp__(struct __py   */      case 3: -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":243 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":291   *             return x.edge == y.edge   *         elif op == 3: # !=   *             return not (x == y)             # <<<<<<<<<<<<<< @@ -12536,10 +13456,10 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_2__richcmp__(struct __py   *    */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_x), ((PyObject *)__pyx_v_y), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_x), ((PyObject *)__pyx_v_y), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_r = __pyx_t_1;      __pyx_t_1 = 0; @@ -12547,18 +13467,18 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphEdge_2__richcmp__(struct __py      break;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":244 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":292   *         elif op == 3: # !=   *             return not (x == y)   *         raise NotImplemented('comparison not implemented for HypergraphEdge')             # <<<<<<<<<<<<<<   *    * cdef class HypergraphNode:   */ -  __pyx_t_1 = PyObject_Call(__pyx_builtin_NotImplemented, ((PyObject *)__pyx_k_tuple_19), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Call(__pyx_builtin_NotImplemented, ((PyObject *)__pyx_k_tuple_19), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_Raise(__pyx_t_1, 0, 0, 0);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  {__pyx_filename = __pyx_f[3]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  {__pyx_filename = __pyx_f[3]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -12583,7 +13503,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphEdge_5trule_1__get__(PyObject    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":199 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":247   *     cdef hypergraph.Hypergraph* hg   *     cdef hypergraph.HypergraphEdge* edge   *     cdef public TRule trule             # <<<<<<<<<<<<<< @@ -12625,7 +13545,7 @@ static int __pyx_pf_4cdec_5_cdec_14HypergraphEdge_5trule_2__set__(struct __pyx_o    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__set__", 0); -  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_4cdec_5_cdec_TRule))))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_4cdec_5_cdec_TRule))))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_INCREF(__pyx_v_value);    __Pyx_GIVEREF(__pyx_v_value);    __Pyx_GOTREF(__pyx_v_self->trule); @@ -12668,7 +13588,7 @@ static int __pyx_pf_4cdec_5_cdec_14HypergraphEdge_5trule_4__del__(struct __pyx_o    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":250 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":298   *     cdef hypergraph.HypergraphNode* node   *    *     cdef init(self, hypergraph.Hypergraph* hg, unsigned i):             # <<<<<<<<<<<<<< @@ -12681,7 +13601,7 @@ static PyObject *__pyx_f_4cdec_5_cdec_14HypergraphNode_init(struct __pyx_obj_4cd    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("init", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":251 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":299   *    *     cdef init(self, hypergraph.Hypergraph* hg, unsigned i):   *         self.hg = hg             # <<<<<<<<<<<<<< @@ -12690,7 +13610,7 @@ static PyObject *__pyx_f_4cdec_5_cdec_14HypergraphNode_init(struct __pyx_obj_4cd   */    __pyx_v_self->hg = __pyx_v_hg; -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":252 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":300   *     cdef init(self, hypergraph.Hypergraph* hg, unsigned i):   *         self.hg = hg   *         self.node = &hg.nodes_[i]             # <<<<<<<<<<<<<< @@ -12699,7 +13619,7 @@ static PyObject *__pyx_f_4cdec_5_cdec_14HypergraphNode_init(struct __pyx_obj_4cd   */    __pyx_v_self->node = (&(__pyx_v_hg->nodes_[__pyx_v_i])); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":253 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":301   *         self.hg = hg   *         self.node = &hg.nodes_[i]   *         return self             # <<<<<<<<<<<<<< @@ -12729,7 +13649,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphNode_2id_1__get__(PyObject *_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":256 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":304   *    *     property id:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -12746,7 +13666,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_2id___get__(struct __pyx    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":257 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":305   *     property id:   *         def __get__(self):   *             return self.node.id_             # <<<<<<<<<<<<<< @@ -12754,7 +13674,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_2id___get__(struct __pyx   *     property in_edges:   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->node->id_); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->node->id_); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -12771,7 +13691,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_2id___get__(struct __pyx    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_8in_edges_2generator12(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_8in_edges_2generator15(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */  static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphNode_8in_edges_1__get__(PyObject *__pyx_v_self); /*proto*/ @@ -12784,7 +13704,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphNode_8in_edges_1__get__(PyObj    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":260 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":308   *    *     property in_edges:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -12793,14 +13713,14 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphNode_8in_edges_1__get__(PyObj   */  static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_8in_edges___get__(struct __pyx_obj_4cdec_5_cdec_HypergraphNode *__pyx_v_self) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_16___get__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_16___get__, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_19___get__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_19___get__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -12810,7 +13730,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_8in_edges___get__(struct    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_14HypergraphNode_8in_edges_2generator12, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_14HypergraphNode_8in_edges_2generator15, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -12828,9 +13748,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_8in_edges___get__(struct    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_8in_edges_2generator12(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_8in_edges_2generator15(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    size_t __pyx_t_1;    unsigned int __pyx_t_2; @@ -12849,9 +13769,9 @@ static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_8in_edges_2generator12(_      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":262 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":310   *         def __get__(self):   *             cdef unsigned i   *             for i in range(self.node.in_edges_.size()):             # <<<<<<<<<<<<<< @@ -12862,16 +13782,16 @@ static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_8in_edges_2generator12(_    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":263 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":311   *             cdef unsigned i   *             for i in range(self.node.in_edges_.size()):   *                 yield HypergraphEdge().init(self.hg, self.node.in_edges_[i])             # <<<<<<<<<<<<<<   *    *     property out_edges:   */ -    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphEdge)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphEdge)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphEdge *)((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3), __pyx_cur_scope->__pyx_v_self->hg, (__pyx_cur_scope->__pyx_v_self->node->in_edges_[__pyx_cur_scope->__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphEdge *)((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3), __pyx_cur_scope->__pyx_v_self->hg, (__pyx_cur_scope->__pyx_v_self->node->in_edges_[__pyx_cur_scope->__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_r = __pyx_t_4; @@ -12886,7 +13806,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_8in_edges_2generator12(_      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; -    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    PyErr_SetNone(PyExc_StopIteration);    goto __pyx_L0; @@ -12901,7 +13821,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_8in_edges_2generator12(_    __Pyx_RefNannyFinishContext();    return NULL;  } -static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_9out_edges_2generator13(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_9out_edges_2generator16(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */  static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphNode_9out_edges_1__get__(PyObject *__pyx_v_self); /*proto*/ @@ -12914,7 +13834,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphNode_9out_edges_1__get__(PyOb    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":266 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":314   *    *     property out_edges:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -12923,14 +13843,14 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphNode_9out_edges_1__get__(PyOb   */  static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_9out_edges___get__(struct __pyx_obj_4cdec_5_cdec_HypergraphNode *__pyx_v_self) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_17___get__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_17___get__, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_20___get__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_20___get__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -12940,7 +13860,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_9out_edges___get__(struc    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_14HypergraphNode_9out_edges_2generator13, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_14HypergraphNode_9out_edges_2generator16, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -12958,9 +13878,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_9out_edges___get__(struc    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_9out_edges_2generator13(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_9out_edges_2generator16(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    size_t __pyx_t_1;    unsigned int __pyx_t_2; @@ -12979,9 +13899,9 @@ static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_9out_edges_2generator13(      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":268 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":316   *         def __get__(self):   *             cdef unsigned i   *             for i in range(self.node.out_edges_.size()):             # <<<<<<<<<<<<<< @@ -12992,16 +13912,16 @@ static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_9out_edges_2generator13(    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":269 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":317   *             cdef unsigned i   *             for i in range(self.node.out_edges_.size()):   *                 yield HypergraphEdge().init(self.hg, self.node.out_edges_[i])             # <<<<<<<<<<<<<<   *    *     property span:   */ -    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphEdge)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_5_cdec_HypergraphEdge)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphEdge *)((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3), __pyx_cur_scope->__pyx_v_self->hg, (__pyx_cur_scope->__pyx_v_self->node->out_edges_[__pyx_cur_scope->__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = ((struct __pyx_vtabstruct_4cdec_5_cdec_HypergraphEdge *)((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3)->__pyx_vtab)->init(((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)__pyx_t_3), __pyx_cur_scope->__pyx_v_self->hg, (__pyx_cur_scope->__pyx_v_self->node->out_edges_[__pyx_cur_scope->__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_r = __pyx_t_4; @@ -13016,7 +13936,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_14HypergraphNode_9out_edges_2generator13(      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; -    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    PyErr_SetNone(PyExc_StopIteration);    goto __pyx_L0; @@ -13043,7 +13963,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphNode_4span_1__get__(PyObject    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":272 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":320   *    *     property span:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -13061,7 +13981,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_4span___get__(struct __p    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":273 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":321   *     property span:   *         def __get__(self):   *             return next(self.in_edges).span             # <<<<<<<<<<<<<< @@ -13069,12 +13989,12 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_4span___get__(struct __p   *     property cat:   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__in_edges); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__in_edges); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_PyIter_Next(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyIter_Next(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__span); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__span); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __pyx_r = __pyx_t_1; @@ -13105,7 +14025,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphNode_3cat_1__get__(PyObject *    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":276 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":324   *    *     property cat:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -13124,7 +14044,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_3cat___get__(struct __py    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":277 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":325   *     property cat:   *         def __get__(self):   *             if self.node.cat_:             # <<<<<<<<<<<<<< @@ -13134,7 +14054,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_3cat___get__(struct __py    __pyx_t_1 = (__pyx_v_self->node->cat_ != 0);    if (__pyx_t_1) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":278 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":326   *         def __get__(self):   *             if self.node.cat_:   *                 return str(TDConvert(-self.node.cat_).c_str())             # <<<<<<<<<<<<<< @@ -13142,14 +14062,14 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode_3cat___get__(struct __py   *     def __richcmp__(HypergraphNode x, HypergraphNode y, int op):   */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_2 = __Pyx_PyBytes_FromString(TD::Convert((-__pyx_v_self->node->cat_)).c_str()); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyBytes_FromString(TD::Convert((-__pyx_v_self->node->cat_)).c_str()); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_2)); -    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_2));      __Pyx_GIVEREF(((PyObject *)__pyx_t_2));      __pyx_t_2 = 0; -    __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __pyx_r = __pyx_t_2; @@ -13181,8 +14101,8 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphNode_1__richcmp__(PyObject *_    PyObject *__pyx_r = 0;    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0); -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_4cdec_5_cdec_HypergraphNode, 1, "x", 0))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_4cdec_5_cdec_HypergraphNode, 1, "y", 0))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_4cdec_5_cdec_HypergraphNode, 1, "x", 0))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_4cdec_5_cdec_HypergraphNode, 1, "y", 0))) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_r = __pyx_pf_4cdec_5_cdec_14HypergraphNode___richcmp__(((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_v_x), ((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)__pyx_v_y), ((int)__pyx_v_op));    goto __pyx_L0;    __pyx_L1_error:; @@ -13192,7 +14112,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_14HypergraphNode_1__richcmp__(PyObject *_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":280 +/* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":328   *                 return str(TDConvert(-self.node.cat_).c_str())   *    *     def __richcmp__(HypergraphNode x, HypergraphNode y, int op):             # <<<<<<<<<<<<<< @@ -13210,7 +14130,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode___richcmp__(struct __pyx    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__richcmp__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":283 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":331   *         if op == 2: # ==   *             return x.node == y.node   *         elif op == 3: # !=             # <<<<<<<<<<<<<< @@ -13219,7 +14139,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode___richcmp__(struct __pyx   */    switch (__pyx_v_op) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":281 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":329   *    *     def __richcmp__(HypergraphNode x, HypergraphNode y, int op):   *         if op == 2: # ==             # <<<<<<<<<<<<<< @@ -13228,7 +14148,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode___richcmp__(struct __pyx   */      case 2: -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":282 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":330   *     def __richcmp__(HypergraphNode x, HypergraphNode y, int op):   *         if op == 2: # ==   *             return x.node == y.node             # <<<<<<<<<<<<<< @@ -13236,14 +14156,14 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode___richcmp__(struct __pyx   *             return not (x == y)   */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_x->node == __pyx_v_y->node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_x->node == __pyx_v_y->node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_r = __pyx_t_1;      __pyx_t_1 = 0;      goto __pyx_L0;      break; -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":283 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":331   *         if op == 2: # ==   *             return x.node == y.node   *         elif op == 3: # !=             # <<<<<<<<<<<<<< @@ -13252,17 +14172,17 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode___richcmp__(struct __pyx   */      case 3: -    /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":284 +    /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":332   *             return x.node == y.node   *         elif op == 3: # !=   *             return not (x == y)             # <<<<<<<<<<<<<<   *         raise NotImplemented('comparison not implemented for HypergraphNode')   */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_x), ((PyObject *)__pyx_v_y), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_x), ((PyObject *)__pyx_v_y), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_r = __pyx_t_1;      __pyx_t_1 = 0; @@ -13270,16 +14190,16 @@ static PyObject *__pyx_pf_4cdec_5_cdec_14HypergraphNode___richcmp__(struct __pyx      break;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":285 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":333   *         elif op == 3: # !=   *             return not (x == y)   *         raise NotImplemented('comparison not implemented for HypergraphNode')             # <<<<<<<<<<<<<<   */ -  __pyx_t_1 = PyObject_Call(__pyx_builtin_NotImplemented, ((PyObject *)__pyx_k_tuple_21), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Call(__pyx_builtin_NotImplemented, ((PyObject *)__pyx_k_tuple_21), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_Raise(__pyx_t_1, 0, 0, 0);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  {__pyx_filename = __pyx_f[3]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  {__pyx_filename = __pyx_f[3]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -13307,7 +14227,7 @@ static int __pyx_pw_4cdec_5_cdec_7Lattice_1__cinit__(PyObject *__pyx_v_self, PyO    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":6 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":6   *     cdef lattice.Lattice* lattice   *    *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -13320,7 +14240,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice___cinit__(struct __pyx_obj_4cdec_5_cde    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":7 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":7   *    *     def __cinit__(self):   *         self.lattice = new lattice.Lattice()             # <<<<<<<<<<<<<< @@ -13388,7 +14308,7 @@ static int __pyx_pw_4cdec_5_cdec_7Lattice_3__init__(PyObject *__pyx_v_self, PyOb    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":9 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":9   *         self.lattice = new lattice.Lattice()   *    *     def __init__(self, inp):             # <<<<<<<<<<<<<< @@ -13414,7 +14334,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_2__init__(struct __pyx_obj_4cdec_5_cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__init__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":12 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":12   *         """Lattice(tuple) -> Lattice from node list.   *         Lattice(string) -> Lattice from PLF representation."""   *         if isinstance(inp, tuple):             # <<<<<<<<<<<<<< @@ -13425,7 +14345,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_2__init__(struct __pyx_obj_4cdec_5_cde    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":13 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":13   *         Lattice(string) -> Lattice from PLF representation."""   *         if isinstance(inp, tuple):   *             self.lattice.resize(len(inp))             # <<<<<<<<<<<<<< @@ -13435,7 +14355,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_2__init__(struct __pyx_obj_4cdec_5_cde      __pyx_t_3 = PyObject_Length(__pyx_v_inp); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_v_self->lattice->resize(__pyx_t_3); -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":14 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":14   *         if isinstance(inp, tuple):   *             self.lattice.resize(len(inp))   *             for i, arcs in enumerate(inp):             # <<<<<<<<<<<<<< @@ -13490,7 +14410,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_2__init__(struct __pyx_obj_4cdec_5_cde        __pyx_t_4 = __pyx_t_7;        __pyx_t_7 = 0; -      /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":15 +      /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":15   *             self.lattice.resize(len(inp))   *             for i, arcs in enumerate(inp):   *                 self[i] = arcs             # <<<<<<<<<<<<<< @@ -13504,7 +14424,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_2__init__(struct __pyx_obj_4cdec_5_cde      goto __pyx_L3;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":16 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":16   *             for i, arcs in enumerate(inp):   *                 self[i] = arcs   *         elif isinstance(inp, basestring):             # <<<<<<<<<<<<<< @@ -13515,7 +14435,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_2__init__(struct __pyx_obj_4cdec_5_cde    __pyx_t_1 = (__pyx_t_2 != 0);    if (__pyx_t_1) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":17 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":17   *                 self[i] = arcs   *         elif isinstance(inp, basestring):   *             lattice.ConvertTextOrPLF(as_str(inp), self.lattice)             # <<<<<<<<<<<<<< @@ -13531,7 +14451,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_2__init__(struct __pyx_obj_4cdec_5_cde    }    /*else*/ { -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":19 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":19   *             lattice.ConvertTextOrPLF(as_str(inp), self.lattice)   *         else:   *             raise TypeError('cannot create lattice from %s' % type(inp))             # <<<<<<<<<<<<<< @@ -13578,7 +14498,7 @@ static void __pyx_pw_4cdec_5_cdec_7Lattice_5__dealloc__(PyObject *__pyx_v_self)    __Pyx_RefNannyFinishContext();  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":21 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":21   *             raise TypeError('cannot create lattice from %s' % type(inp))   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -13590,7 +14510,7 @@ static void __pyx_pf_4cdec_5_cdec_7Lattice_4__dealloc__(CYTHON_UNUSED struct __p    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":22 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":22   *    *     def __dealloc__(self):   *         del self.lattice             # <<<<<<<<<<<<<< @@ -13626,7 +14546,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_7Lattice_7__getitem__(PyObject *__pyx_v_s    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":24 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":24   *         del self.lattice   *    *     def __getitem__(self, int index):             # <<<<<<<<<<<<<< @@ -13656,7 +14576,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_6__getitem__(struct __pyx_obj_4c    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__getitem__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":25 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":25   *    *     def __getitem__(self, int index):   *         if not 0 <= index < len(self):             # <<<<<<<<<<<<<< @@ -13671,7 +14591,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_6__getitem__(struct __pyx_obj_4c    __pyx_t_3 = ((!(__pyx_t_1 != 0)) != 0);    if (__pyx_t_3) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":26 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":26   *     def __getitem__(self, int index):   *         if not 0 <= index < len(self):   *             raise IndexError('lattice index out of range')             # <<<<<<<<<<<<<< @@ -13687,7 +14607,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_6__getitem__(struct __pyx_obj_4c    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":27 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":27   *         if not 0 <= index < len(self):   *             raise IndexError('lattice index out of range')   *         arcs = []             # <<<<<<<<<<<<<< @@ -13699,7 +14619,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_6__getitem__(struct __pyx_obj_4c    __pyx_v_arcs = ((PyObject*)__pyx_t_4);    __pyx_t_4 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":28 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":28   *             raise IndexError('lattice index out of range')   *         arcs = []   *         cdef vector[lattice.LatticeArc] arc_vector = self.lattice[0][index]             # <<<<<<<<<<<<<< @@ -13708,7 +14628,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_6__getitem__(struct __pyx_obj_4c   */    __pyx_v_arc_vector = ((__pyx_v_self->lattice[0])[__pyx_v_index]); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":31 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":31   *         cdef lattice.LatticeArc* arc   *         cdef unsigned i   *         for i in range(arc_vector.size()):             # <<<<<<<<<<<<<< @@ -13719,7 +14639,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_6__getitem__(struct __pyx_obj_4c    for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {      __pyx_v_i = __pyx_t_6; -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":32 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":32   *         cdef unsigned i   *         for i in range(arc_vector.size()):   *             arc = &arc_vector[i]             # <<<<<<<<<<<<<< @@ -13728,7 +14648,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_6__getitem__(struct __pyx_obj_4c   */      __pyx_v_arc = (&(__pyx_v_arc_vector[__pyx_v_i])); -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":33 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":33   *         for i in range(arc_vector.size()):   *             arc = &arc_vector[i]   *             label = unicode(TDConvert(arc.label).c_str(), 'utf8')             # <<<<<<<<<<<<<< @@ -13752,7 +14672,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_6__getitem__(struct __pyx_obj_4c      __pyx_v_label = ((PyObject*)__pyx_t_4);      __pyx_t_4 = 0; -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":34 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":34   *             arc = &arc_vector[i]   *             label = unicode(TDConvert(arc.label).c_str(), 'utf8')   *             arcs.append((label, arc.cost, arc.dist2next))             # <<<<<<<<<<<<<< @@ -13778,7 +14698,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_6__getitem__(struct __pyx_obj_4c      __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":35 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":35   *             label = unicode(TDConvert(arc.label).c_str(), 'utf8')   *             arcs.append((label, arc.cost, arc.dist2next))   *         return tuple(arcs)             # <<<<<<<<<<<<<< @@ -13837,7 +14757,7 @@ static int __pyx_pw_4cdec_5_cdec_7Lattice_9__setitem__(PyObject *__pyx_v_self, P    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":37 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":37   *         return tuple(arcs)   *    *     def __setitem__(self, int index, tuple arcs):             # <<<<<<<<<<<<<< @@ -13871,7 +14791,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_8__setitem__(struct __pyx_obj_4cdec_5_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__setitem__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":38 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":38   *    *     def __setitem__(self, int index, tuple arcs):   *         if not 0 <= index < len(self):             # <<<<<<<<<<<<<< @@ -13886,7 +14806,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_8__setitem__(struct __pyx_obj_4cdec_5_    __pyx_t_3 = ((!(__pyx_t_1 != 0)) != 0);    if (__pyx_t_3) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":39 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":39   *     def __setitem__(self, int index, tuple arcs):   *         if not 0 <= index < len(self):   *             raise IndexError('lattice index out of range')             # <<<<<<<<<<<<<< @@ -13902,7 +14822,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_8__setitem__(struct __pyx_obj_4cdec_5_    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":41 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":41   *             raise IndexError('lattice index out of range')   *         cdef lattice.LatticeArc* arc   *         for (label, cost, dist2next) in arcs:             # <<<<<<<<<<<<<< @@ -13989,7 +14909,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_8__setitem__(struct __pyx_obj_4cdec_5_      __pyx_v_dist2next = __pyx_t_8;      __pyx_t_8 = 0; -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":42 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":42   *         cdef lattice.LatticeArc* arc   *         for (label, cost, dist2next) in arcs:   *             label_str = as_str(label)             # <<<<<<<<<<<<<< @@ -14002,7 +14922,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_8__setitem__(struct __pyx_obj_4cdec_5_      __pyx_v_label_str = ((PyObject*)__pyx_t_5);      __pyx_t_5 = 0; -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":43 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":43   *         for (label, cost, dist2next) in arcs:   *             label_str = as_str(label)   *             arc = new lattice.LatticeArc(TDConvert(label_str), cost, dist2next)             # <<<<<<<<<<<<<< @@ -14014,7 +14934,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_8__setitem__(struct __pyx_obj_4cdec_5_      __pyx_t_13 = __Pyx_PyInt_AsInt(__pyx_v_dist2next); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_v_arc = new LatticeArc(TD::Convert(__pyx_t_11), __pyx_t_12, __pyx_t_13); -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":44 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":44   *             label_str = as_str(label)   *             arc = new lattice.LatticeArc(TDConvert(label_str), cost, dist2next)   *             self.lattice[0][index].push_back(arc[0])             # <<<<<<<<<<<<<< @@ -14023,7 +14943,7 @@ static int __pyx_pf_4cdec_5_cdec_7Lattice_8__setitem__(struct __pyx_obj_4cdec_5_   */      ((__pyx_v_self->lattice[0])[__pyx_v_index]).push_back((__pyx_v_arc[0])); -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":45 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":45   *             arc = new lattice.LatticeArc(TDConvert(label_str), cost, dist2next)   *             self.lattice[0][index].push_back(arc[0])   *             del arc             # <<<<<<<<<<<<<< @@ -14065,7 +14985,7 @@ static Py_ssize_t __pyx_pw_4cdec_5_cdec_7Lattice_11__len__(PyObject *__pyx_v_sel    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":47 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":47   *             del arc   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -14078,7 +14998,7 @@ static Py_ssize_t __pyx_pf_4cdec_5_cdec_7Lattice_10__len__(struct __pyx_obj_4cde    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":48 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":48   *    *     def __len__(self):   *         return self.lattice.size()             # <<<<<<<<<<<<<< @@ -14105,7 +15025,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_7Lattice_13__str__(PyObject *__pyx_v_self    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":50 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":50   *         return self.lattice.size()   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -14123,7 +15043,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_12__str__(struct __pyx_obj_4cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__str__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":51 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":51   *    *     def __str__(self):   *         return str(hypergraph.AsPLF(self.lattice[0], True).c_str())             # <<<<<<<<<<<<<< @@ -14169,7 +15089,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_7Lattice_15__unicode__(PyObject *__pyx_v_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":53 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":53   *         return str(hypergraph.AsPLF(self.lattice[0], True).c_str())   *    *     def __unicode__(self):             # <<<<<<<<<<<<<< @@ -14187,7 +15107,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_14__unicode__(struct __pyx_obj_4    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__unicode__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":54 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":54   *    *     def __unicode__(self):   *         return unicode(str(self), 'utf8')             # <<<<<<<<<<<<<< @@ -14230,7 +15150,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_14__unicode__(struct __pyx_obj_4    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_18generator14(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_18generator17(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */  static PyObject *__pyx_pw_4cdec_5_cdec_7Lattice_17__iter__(PyObject *__pyx_v_self); /*proto*/ @@ -14243,7 +15163,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_7Lattice_17__iter__(PyObject *__pyx_v_sel    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":56 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":56   *         return unicode(str(self), 'utf8')   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -14252,14 +15172,14 @@ static PyObject *__pyx_pw_4cdec_5_cdec_7Lattice_17__iter__(PyObject *__pyx_v_sel   */  static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_16__iter__(struct __pyx_obj_4cdec_5_cdec_Lattice *__pyx_v_self) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__iter__", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_18___iter__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_18___iter__, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_21___iter__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_21___iter__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -14269,7 +15189,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_16__iter__(struct __pyx_obj_4cde    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_7Lattice_18generator14, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_7Lattice_18generator17, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -14287,9 +15207,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_16__iter__(struct __pyx_obj_4cde    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_18generator14(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_18generator17(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    Py_ssize_t __pyx_t_1;    unsigned int __pyx_t_2; @@ -14309,7 +15229,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_18generator14(__pyx_GeneratorObj    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":58 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":58   *     def __iter__(self):   *         cdef unsigned i   *         for i in range(len(self)):             # <<<<<<<<<<<<<< @@ -14320,7 +15240,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_18generator14(__pyx_GeneratorObj    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":59 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":59   *         cdef unsigned i   *         for i in range(len(self)):   *             yield self[i]             # <<<<<<<<<<<<<< @@ -14367,7 +15287,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_7Lattice_20todot(PyObject *__pyx_v_self,    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator23(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */  static PyObject *__pyx_pw_4cdec_5_cdec_7Lattice_5todot_1lines(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ @@ -14381,7 +15301,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_7Lattice_5todot_1lines(PyObject *__pyx_se    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":63 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":63   *     def todot(self):   *         """lattice.todot() -> Representation of the lattice in GraphViz dot format."""   *         def lines():             # <<<<<<<<<<<<<< @@ -14390,24 +15310,24 @@ static PyObject *__pyx_pw_4cdec_5_cdec_7Lattice_5todot_1lines(PyObject *__pyx_se   */  static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_5todot_lines(PyObject *__pyx_self) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("lines", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_20_lines(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_20_lines, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_23_lines(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_23_lines, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL;    }    __Pyx_GOTREF(__pyx_cur_scope); -  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *) __Pyx_CyFunction_GetClosure(__pyx_self); +  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *) __Pyx_CyFunction_GetClosure(__pyx_self);    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator23, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -14425,9 +15345,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_5todot_lines(PyObject *__pyx_sel    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator23(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    PyObject *__pyx_t_1 = NULL;    Py_ssize_t __pyx_t_2; @@ -14461,7 +15381,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_Genera    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":64 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":64   *         """lattice.todot() -> Representation of the lattice in GraphViz dot format."""   *         def lines():   *             yield 'digraph lattice {'             # <<<<<<<<<<<<<< @@ -14478,7 +15398,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_Genera    __pyx_L4_resume_from_yield:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":65 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":65   *         def lines():   *             yield 'digraph lattice {'   *             yield 'rankdir = LR;'             # <<<<<<<<<<<<<< @@ -14495,7 +15415,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_Genera    __pyx_L5_resume_from_yield:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":66 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":66   *             yield 'digraph lattice {'   *             yield 'rankdir = LR;'   *             yield 'node [shape=circle];'             # <<<<<<<<<<<<<< @@ -14512,7 +15432,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_Genera    __pyx_L6_resume_from_yield:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":67 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":67   *             yield 'rankdir = LR;'   *             yield 'node [shape=circle];'   *             for i in range(len(self)):             # <<<<<<<<<<<<<< @@ -14575,7 +15495,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_Genera      __pyx_cur_scope->__pyx_v_i = __pyx_t_1;      __pyx_t_1 = 0; -    /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":68 +    /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":68   *             yield 'node [shape=circle];'   *             for i in range(len(self)):   *                 for label, weight, delta in self[i]:             # <<<<<<<<<<<<<< @@ -14693,7 +15613,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_Genera        __pyx_cur_scope->__pyx_v_delta = __pyx_t_10;        __pyx_t_10 = 0; -      /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":69 +      /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":69   *             for i in range(len(self)):   *                 for label, weight, delta in self[i]:   *                     yield '%d -> %d [label="%s"];' % (i, i+delta, label.replace('"', '\\"'))             # <<<<<<<<<<<<<< @@ -14753,7 +15673,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_Genera    }    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":70 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":70   *                 for label, weight, delta in self[i]:   *                     yield '%d -> %d [label="%s"];' % (i, i+delta, label.replace('"', '\\"'))   *             yield '%d [shape=doublecircle]' % len(self)             # <<<<<<<<<<<<<< @@ -14779,7 +15699,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_Genera    __pyx_L14_resume_from_yield:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":71 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":71   *                     yield '%d -> %d [label="%s"];' % (i, i+delta, label.replace('"', '\\"'))   *             yield '%d [shape=doublecircle]' % len(self)   *             yield '}'             # <<<<<<<<<<<<<< @@ -14814,7 +15734,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_Genera    return NULL;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":61 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":61   *             yield self[i]   *    *     def todot(self):             # <<<<<<<<<<<<<< @@ -14823,7 +15743,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Lattice_5todot_2generator20(__pyx_Genera   */  static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_19todot(struct __pyx_obj_4cdec_5_cdec_Lattice *__pyx_v_self) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *__pyx_cur_scope;    PyObject *__pyx_v_lines = 0;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -14834,7 +15754,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_19todot(struct __pyx_obj_4cdec_5    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("todot", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_19_todot(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_19_todot, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_22_todot(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_22_todot, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -14844,7 +15764,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_19todot(struct __pyx_obj_4cdec_5    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":63 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":63   *     def todot(self):   *         """lattice.todot() -> Representation of the lattice in GraphViz dot format."""   *         def lines():             # <<<<<<<<<<<<<< @@ -14856,7 +15776,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_19todot(struct __pyx_obj_4cdec_5    __pyx_v_lines = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":72 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":72   *             yield '%d [shape=doublecircle]' % len(self)   *             yield '}'   *         return '\n'.join(lines()).encode('utf8')             # <<<<<<<<<<<<<< @@ -14915,7 +15835,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_7Lattice_22as_hypergraph(PyObject *__pyx_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":74 +/* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":74   *         return '\n'.join(lines()).encode('utf8')   *    *     def as_hypergraph(self):             # <<<<<<<<<<<<<< @@ -14936,7 +15856,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_21as_hypergraph(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("as_hypergraph", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":76 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":76   *     def as_hypergraph(self):   *         """lattice.as_hypergraph() -> Hypergraph representation of the lattice."""   *         cdef Hypergraph result = Hypergraph.__new__(Hypergraph)             # <<<<<<<<<<<<<< @@ -14949,7 +15869,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_21as_hypergraph(struct __pyx_obj    __pyx_v_result = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":77 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":77   *         """lattice.as_hypergraph() -> Hypergraph representation of the lattice."""   *         cdef Hypergraph result = Hypergraph.__new__(Hypergraph)   *         result.hg = new hypergraph.Hypergraph()             # <<<<<<<<<<<<<< @@ -14958,7 +15878,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_21as_hypergraph(struct __pyx_obj   */    __pyx_v_result->hg = new Hypergraph(); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":78 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":78   *         cdef Hypergraph result = Hypergraph.__new__(Hypergraph)   *         result.hg = new hypergraph.Hypergraph()   *         cdef bytes plf = str(self)             # <<<<<<<<<<<<<< @@ -14977,7 +15897,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_21as_hypergraph(struct __pyx_obj    __pyx_v_plf = ((PyObject*)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":79 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":79   *         result.hg = new hypergraph.Hypergraph()   *         cdef bytes plf = str(self)   *         hypergraph.ReadFromPLF(plf, result.hg)             # <<<<<<<<<<<<<< @@ -14986,7 +15906,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_21as_hypergraph(struct __pyx_obj    __pyx_t_3 = __pyx_convert_string_from_py_(((PyObject *)__pyx_v_plf)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    HypergraphIO::ReadFromPLF(__pyx_t_3, __pyx_v_result->hg); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":80 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":80   *         cdef bytes plf = str(self)   *         hypergraph.ReadFromPLF(plf, result.hg)   *         return result             # <<<<<<<<<<<<<< @@ -15011,7 +15931,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Lattice_21as_hypergraph(struct __pyx_obj    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":3 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":3   * cimport mteval   *    * cdef SufficientStats as_stats(x, y):             # <<<<<<<<<<<<<< @@ -15033,7 +15953,7 @@ static struct __pyx_obj_4cdec_5_cdec_SufficientStats *__pyx_f_4cdec_5_cdec_as_st    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("as_stats", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":4 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":4   *    * cdef SufficientStats as_stats(x, y):   *     if isinstance(x, SufficientStats):             # <<<<<<<<<<<<<< @@ -15044,7 +15964,7 @@ static struct __pyx_obj_4cdec_5_cdec_SufficientStats *__pyx_f_4cdec_5_cdec_as_st    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":5 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":5   * cdef SufficientStats as_stats(x, y):   *     if isinstance(x, SufficientStats):   *         return x             # <<<<<<<<<<<<<< @@ -15059,7 +15979,7 @@ static struct __pyx_obj_4cdec_5_cdec_SufficientStats *__pyx_f_4cdec_5_cdec_as_st      goto __pyx_L3;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":6 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":6   *     if isinstance(x, SufficientStats):   *         return x   *     elif x == 0 and isinstance(y, SufficientStats):             # <<<<<<<<<<<<<< @@ -15077,7 +15997,7 @@ static struct __pyx_obj_4cdec_5_cdec_SufficientStats *__pyx_f_4cdec_5_cdec_as_st    }    if (__pyx_t_4) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":7 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":7   *         return x   *     elif x == 0 and isinstance(y, SufficientStats):   *         stats = SufficientStats()             # <<<<<<<<<<<<<< @@ -15089,7 +16009,7 @@ static struct __pyx_obj_4cdec_5_cdec_SufficientStats *__pyx_f_4cdec_5_cdec_as_st      __pyx_v_stats = ((struct __pyx_obj_4cdec_5_cdec_SufficientStats *)__pyx_t_3);      __pyx_t_3 = 0; -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":8 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":8   *     elif x == 0 and isinstance(y, SufficientStats):   *         stats = SufficientStats()   *         stats.stats = new mteval.SufficientStats()             # <<<<<<<<<<<<<< @@ -15098,7 +16018,7 @@ static struct __pyx_obj_4cdec_5_cdec_SufficientStats *__pyx_f_4cdec_5_cdec_as_st   */      __pyx_v_stats->stats = new SufficientStats(); -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":9 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":9   *         stats = SufficientStats()   *         stats.stats = new mteval.SufficientStats()   *         stats.metric = (<SufficientStats> y).metric             # <<<<<<<<<<<<<< @@ -15108,7 +16028,7 @@ static struct __pyx_obj_4cdec_5_cdec_SufficientStats *__pyx_f_4cdec_5_cdec_as_st      __pyx_t_5 = ((struct __pyx_obj_4cdec_5_cdec_SufficientStats *)__pyx_v_y)->metric;      __pyx_v_stats->metric = __pyx_t_5; -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":10 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":10   *         stats.stats = new mteval.SufficientStats()   *         stats.metric = (<SufficientStats> y).metric   *         return stats             # <<<<<<<<<<<<<< @@ -15147,7 +16067,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_9Candidate_5words_1__get__(PyObject *__py    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":17 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":17   *    *     property words:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -15166,7 +16086,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_9Candidate_5words___get__(struct __pyx_ob    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":18 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":18   *     property words:   *         def __get__(self):   *             return unicode(GetString(self.candidate.ewords).c_str(), encoding='utf8')             # <<<<<<<<<<<<<< @@ -15217,7 +16137,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_9Candidate_4fmap_1__get__(PyObject *__pyx    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":21 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":21   *    *     property fmap:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -15235,7 +16155,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_9Candidate_4fmap___get__(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":22 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":22   *     property fmap:   *         def __get__(self):   *             cdef SparseVector fmap = SparseVector.__new__(SparseVector)             # <<<<<<<<<<<<<< @@ -15248,7 +16168,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_9Candidate_4fmap___get__(struct __pyx_obj    __pyx_v_fmap = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":23 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":23   *         def __get__(self):   *             cdef SparseVector fmap = SparseVector.__new__(SparseVector)   *             fmap.vector = new FastSparseVector[weight_t](self.candidate.fmap)             # <<<<<<<<<<<<<< @@ -15257,7 +16177,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_9Candidate_4fmap___get__(struct __pyx_obj   */    __pyx_v_fmap->vector = new FastSparseVector<weight_t>(__pyx_v_self->candidate->fmap); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":24 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":24   *             cdef SparseVector fmap = SparseVector.__new__(SparseVector)   *             fmap.vector = new FastSparseVector[weight_t](self.candidate.fmap)   *             return fmap             # <<<<<<<<<<<<<< @@ -15293,7 +16213,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_9Candidate_5score_1__get__(PyObject *__py    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":14 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":14   * cdef class Candidate:   *     cdef mteval.const_Candidate* candidate   *     cdef public float score             # <<<<<<<<<<<<<< @@ -15369,7 +16289,7 @@ static void __pyx_pw_4cdec_5_cdec_15SufficientStats_1__dealloc__(PyObject *__pyx    __Pyx_RefNannyFinishContext();  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":30 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":30   *     cdef mteval.EvaluationMetric* metric   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -15381,7 +16301,7 @@ static void __pyx_pf_4cdec_5_cdec_15SufficientStats___dealloc__(CYTHON_UNUSED st    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":31 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":31   *    *     def __dealloc__(self):   *         del self.stats             # <<<<<<<<<<<<<< @@ -15404,7 +16324,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_15SufficientStats_5score_1__get__(PyObjec    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":34 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":34   *    *     property score:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -15421,7 +16341,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_5score___get__(struct _    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":35 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":35   *     property score:   *         def __get__(self):   *             return self.metric.ComputeScore(self.stats[0])             # <<<<<<<<<<<<<< @@ -15458,7 +16378,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_15SufficientStats_6detail_1__get__(PyObje    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":38 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":38   *    *     property detail:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -15476,7 +16396,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_6detail___get__(struct    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":39 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":39   *     property detail:   *         def __get__(self):   *             return str(self.metric.DetailedScore(self.stats[0]).c_str())             # <<<<<<<<<<<<<< @@ -15522,7 +16442,7 @@ static Py_ssize_t __pyx_pw_4cdec_5_cdec_15SufficientStats_3__len__(PyObject *__p    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":41 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":41   *             return str(self.metric.DetailedScore(self.stats[0]).c_str())   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -15535,7 +16455,7 @@ static Py_ssize_t __pyx_pf_4cdec_5_cdec_15SufficientStats_2__len__(struct __pyx_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":42 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":42   *    *     def __len__(self):   *         return self.stats.size()             # <<<<<<<<<<<<<< @@ -15550,7 +16470,7 @@ static Py_ssize_t __pyx_pf_4cdec_5_cdec_15SufficientStats_2__len__(struct __pyx_    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_15SufficientStats_6generator15(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_15SufficientStats_6generator18(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */  static PyObject *__pyx_pw_4cdec_5_cdec_15SufficientStats_5__iter__(PyObject *__pyx_v_self); /*proto*/ @@ -15563,7 +16483,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_15SufficientStats_5__iter__(PyObject *__p    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":44 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":44   *         return self.stats.size()   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -15572,14 +16492,14 @@ static PyObject *__pyx_pw_4cdec_5_cdec_15SufficientStats_5__iter__(PyObject *__p   */  static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_4__iter__(struct __pyx_obj_4cdec_5_cdec_SufficientStats *__pyx_v_self) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__iter__", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_21___iter__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_21___iter__, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_24___iter__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_24___iter__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -15589,7 +16509,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_4__iter__(struct __pyx_    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_15SufficientStats_6generator15, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_15SufficientStats_6generator18, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -15607,9 +16527,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_4__iter__(struct __pyx_    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_15SufficientStats_6generator15(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_15SufficientStats_6generator18(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    Py_ssize_t __pyx_t_1;    PyObject *__pyx_t_2 = NULL; @@ -15630,7 +16550,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_15SufficientStats_6generator15(__pyx_Gene    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":45 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":45   *    *     def __iter__(self):   *         for i in range(len(self)):             # <<<<<<<<<<<<<< @@ -15689,7 +16609,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_15SufficientStats_6generator15(__pyx_Gene      __pyx_cur_scope->__pyx_v_i = __pyx_t_2;      __pyx_t_2 = 0; -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":46 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":46   *     def __iter__(self):   *         for i in range(len(self)):   *             yield self[i]             # <<<<<<<<<<<<<< @@ -15756,7 +16676,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_15SufficientStats_8__getitem__(PyObject *    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":48 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":48   *             yield self[i]   *    *     def __getitem__(self, int index):             # <<<<<<<<<<<<<< @@ -15776,7 +16696,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_7__getitem__(struct __p    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__getitem__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":49 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":49   *    *     def __getitem__(self, int index):   *         if not 0 <= index < len(self):             # <<<<<<<<<<<<<< @@ -15791,7 +16711,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_7__getitem__(struct __p    __pyx_t_3 = ((!(__pyx_t_1 != 0)) != 0);    if (__pyx_t_3) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":50 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":50   *     def __getitem__(self, int index):   *         if not 0 <= index < len(self):   *             raise IndexError('sufficient stats vector index out of range')             # <<<<<<<<<<<<<< @@ -15807,7 +16727,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_7__getitem__(struct __p    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":51 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":51   *         if not 0 <= index < len(self):   *             raise IndexError('sufficient stats vector index out of range')   *         return self.stats[0][index]             # <<<<<<<<<<<<<< @@ -15852,7 +16772,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_15SufficientStats_10__iadd__(PyObject *__    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":53 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":53   *         return self.stats[0][index]   *    *     def __iadd__(SufficientStats self, SufficientStats other):             # <<<<<<<<<<<<<< @@ -15865,7 +16785,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_9__iadd__(struct __pyx_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__iadd__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":54 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":54   *    *     def __iadd__(SufficientStats self, SufficientStats other):   *         self.stats[0] += other.stats[0]             # <<<<<<<<<<<<<< @@ -15874,7 +16794,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_9__iadd__(struct __pyx_   */    (__pyx_v_self->stats[0]) += (__pyx_v_other->stats[0]); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":55 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":55   *     def __iadd__(SufficientStats self, SufficientStats other):   *         self.stats[0] += other.stats[0]   *         return self             # <<<<<<<<<<<<<< @@ -15904,7 +16824,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_15SufficientStats_12__add__(PyObject *__p    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":57 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":57   *         return self   *    *     def __add__(x, y):             # <<<<<<<<<<<<<< @@ -15925,7 +16845,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_11__add__(PyObject *__p    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__add__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":58 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":58   *    *     def __add__(x, y):   *         cdef SufficientStats sx = as_stats(x, y)             # <<<<<<<<<<<<<< @@ -15937,7 +16857,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_11__add__(PyObject *__p    __pyx_v_sx = ((struct __pyx_obj_4cdec_5_cdec_SufficientStats *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":59 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":59   *     def __add__(x, y):   *         cdef SufficientStats sx = as_stats(x, y)   *         cdef SufficientStats sy = as_stats(y, x)             # <<<<<<<<<<<<<< @@ -15949,7 +16869,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_11__add__(PyObject *__p    __pyx_v_sy = ((struct __pyx_obj_4cdec_5_cdec_SufficientStats *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":60 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":60   *         cdef SufficientStats sx = as_stats(x, y)   *         cdef SufficientStats sy = as_stats(y, x)   *         cdef SufficientStats result = SufficientStats()             # <<<<<<<<<<<<<< @@ -15961,7 +16881,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_11__add__(PyObject *__p    __pyx_v_result = ((struct __pyx_obj_4cdec_5_cdec_SufficientStats *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":61 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":61   *         cdef SufficientStats sy = as_stats(y, x)   *         cdef SufficientStats result = SufficientStats()   *         result.stats = new mteval.SufficientStats(mteval.add(sx.stats[0], sy.stats[0]))             # <<<<<<<<<<<<<< @@ -15970,7 +16890,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_11__add__(PyObject *__p   */    __pyx_v_result->stats = new SufficientStats(operator+((__pyx_v_sx->stats[0]), (__pyx_v_sy->stats[0]))); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":62 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":62   *         cdef SufficientStats result = SufficientStats()   *         result.stats = new mteval.SufficientStats(mteval.add(sx.stats[0], sy.stats[0]))   *         result.metric = sx.metric             # <<<<<<<<<<<<<< @@ -15980,7 +16900,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_15SufficientStats_11__add__(PyObject *__p    __pyx_t_2 = __pyx_v_sx->metric;    __pyx_v_result->metric = __pyx_t_2; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":63 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":63   *         result.stats = new mteval.SufficientStats(mteval.add(sx.stats[0], sy.stats[0]))   *         result.metric = sx.metric   *         return result             # <<<<<<<<<<<<<< @@ -16062,7 +16982,7 @@ static int __pyx_pw_4cdec_5_cdec_12CandidateSet_1__cinit__(PyObject *__pyx_v_sel    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":70 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":70   *     cdef mteval.CandidateSet* cs   *    *     def __cinit__(self, SegmentEvaluator evaluator):             # <<<<<<<<<<<<<< @@ -16076,7 +16996,7 @@ static int __pyx_pf_4cdec_5_cdec_12CandidateSet___cinit__(struct __pyx_obj_4cdec    EvaluationMetric *__pyx_t_1;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":71 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":71   *    *     def __cinit__(self, SegmentEvaluator evaluator):   *         self.scorer = new shared_ptr[mteval.SegmentEvaluator](evaluator.scorer[0])             # <<<<<<<<<<<<<< @@ -16085,7 +17005,7 @@ static int __pyx_pf_4cdec_5_cdec_12CandidateSet___cinit__(struct __pyx_obj_4cdec   */    __pyx_v_self->scorer = new boost::shared_ptr<SegmentEvaluator>((__pyx_v_evaluator->scorer[0])); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":72 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":72   *     def __cinit__(self, SegmentEvaluator evaluator):   *         self.scorer = new shared_ptr[mteval.SegmentEvaluator](evaluator.scorer[0])   *         self.metric = evaluator.metric             # <<<<<<<<<<<<<< @@ -16095,7 +17015,7 @@ static int __pyx_pf_4cdec_5_cdec_12CandidateSet___cinit__(struct __pyx_obj_4cdec    __pyx_t_1 = __pyx_v_evaluator->metric;    __pyx_v_self->metric = __pyx_t_1; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":73 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":73   *         self.scorer = new shared_ptr[mteval.SegmentEvaluator](evaluator.scorer[0])   *         self.metric = evaluator.metric   *         self.cs = new mteval.CandidateSet()             # <<<<<<<<<<<<<< @@ -16118,7 +17038,7 @@ static void __pyx_pw_4cdec_5_cdec_12CandidateSet_3__dealloc__(PyObject *__pyx_v_    __Pyx_RefNannyFinishContext();  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":75 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":75   *         self.cs = new mteval.CandidateSet()   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -16130,7 +17050,7 @@ static void __pyx_pf_4cdec_5_cdec_12CandidateSet_2__dealloc__(CYTHON_UNUSED stru    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":76 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":76   *    *     def __dealloc__(self):   *         del self.scorer             # <<<<<<<<<<<<<< @@ -16139,7 +17059,7 @@ static void __pyx_pf_4cdec_5_cdec_12CandidateSet_2__dealloc__(CYTHON_UNUSED stru   */    delete __pyx_v_self->scorer; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":77 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":77   *     def __dealloc__(self):   *         del self.scorer   *         del self.cs             # <<<<<<<<<<<<<< @@ -16162,7 +17082,7 @@ static Py_ssize_t __pyx_pw_4cdec_5_cdec_12CandidateSet_5__len__(PyObject *__pyx_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":79 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":79   *         del self.cs   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -16175,7 +17095,7 @@ static Py_ssize_t __pyx_pf_4cdec_5_cdec_12CandidateSet_4__len__(struct __pyx_obj    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":80 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":80   *    *     def __len__(self):   *         return self.cs.size()             # <<<<<<<<<<<<<< @@ -16215,7 +17135,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12CandidateSet_7__getitem__(PyObject *__p    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":82 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":82   *         return self.cs.size()   *    *     def __getitem__(self,int k):             # <<<<<<<<<<<<<< @@ -16235,7 +17155,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12CandidateSet_6__getitem__(struct __pyx_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__getitem__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":83 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":83   *    *     def __getitem__(self,int k):   *         if not 0 <= k < self.cs.size():             # <<<<<<<<<<<<<< @@ -16249,7 +17169,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12CandidateSet_6__getitem__(struct __pyx_    __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":84 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":84   *     def __getitem__(self,int k):   *         if not 0 <= k < self.cs.size():   *             raise IndexError('candidate set index out of range')             # <<<<<<<<<<<<<< @@ -16265,7 +17185,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12CandidateSet_6__getitem__(struct __pyx_    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":85 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":85   *         if not 0 <= k < self.cs.size():   *             raise IndexError('candidate set index out of range')   *         cdef Candidate candidate = Candidate()             # <<<<<<<<<<<<<< @@ -16277,7 +17197,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12CandidateSet_6__getitem__(struct __pyx_    __pyx_v_candidate = ((struct __pyx_obj_4cdec_5_cdec_Candidate *)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":86 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":86   *             raise IndexError('candidate set index out of range')   *         cdef Candidate candidate = Candidate()   *         candidate.candidate = &self.cs[0][k]             # <<<<<<<<<<<<<< @@ -16286,7 +17206,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12CandidateSet_6__getitem__(struct __pyx_   */    __pyx_v_candidate->candidate = (&((__pyx_v_self->cs[0])[__pyx_v_k])); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":87 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":87   *         cdef Candidate candidate = Candidate()   *         candidate.candidate = &self.cs[0][k]   *         candidate.score = self.metric.ComputeScore(self.cs[0][k].eval_feats)             # <<<<<<<<<<<<<< @@ -16295,7 +17215,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12CandidateSet_6__getitem__(struct __pyx_   */    __pyx_v_candidate->score = __pyx_v_self->metric->ComputeScore(((__pyx_v_self->cs[0])[__pyx_v_k]).eval_feats); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":88 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":88   *         candidate.candidate = &self.cs[0][k]   *         candidate.score = self.metric.ComputeScore(self.cs[0][k].eval_feats)   *         return candidate             # <<<<<<<<<<<<<< @@ -16319,7 +17239,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12CandidateSet_6__getitem__(struct __pyx_    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_12CandidateSet_10generator16(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_12CandidateSet_10generator19(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */  static PyObject *__pyx_pw_4cdec_5_cdec_12CandidateSet_9__iter__(PyObject *__pyx_v_self); /*proto*/ @@ -16332,7 +17252,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12CandidateSet_9__iter__(PyObject *__pyx_    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":90 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":90   *         return candidate   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -16341,14 +17261,14 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12CandidateSet_9__iter__(PyObject *__pyx_   */  static PyObject *__pyx_pf_4cdec_5_cdec_12CandidateSet_8__iter__(struct __pyx_obj_4cdec_5_cdec_CandidateSet *__pyx_v_self) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__iter__", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_22___iter__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_22___iter__, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_25___iter__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_25___iter__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -16358,7 +17278,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12CandidateSet_8__iter__(struct __pyx_obj    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_12CandidateSet_10generator16, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_12CandidateSet_10generator19, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -16376,9 +17296,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12CandidateSet_8__iter__(struct __pyx_obj    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_12CandidateSet_10generator16(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_12CandidateSet_10generator19(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    Py_ssize_t __pyx_t_1;    unsigned int __pyx_t_2; @@ -16398,7 +17318,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_12CandidateSet_10generator16(__pyx_Genera    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":92 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":92   *     def __iter__(self):   *         cdef unsigned i   *         for i in range(len(self)):             # <<<<<<<<<<<<<< @@ -16409,7 +17329,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_12CandidateSet_10generator16(__pyx_Genera    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":93 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":93   *         cdef unsigned i   *         for i in range(len(self)):   *             yield self[i]             # <<<<<<<<<<<<<< @@ -16510,7 +17430,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_12CandidateSet_12add_kbest(PyObject *__py    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":95 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":95   *             yield self[i]   *    *     def add_kbest(self, Hypergraph hypergraph, unsigned k):             # <<<<<<<<<<<<<< @@ -16523,7 +17443,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_12CandidateSet_11add_kbest(struct __pyx_o    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("add_kbest", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":98 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":98   *         """cs.add_kbest(Hypergraph hypergraph, int k) -> Extract K-best hypotheses   *         from the hypergraph and add them to the candidate set."""   *         self.cs.AddKBestCandidates(hypergraph.hg[0], k, self.scorer.get())             # <<<<<<<<<<<<<< @@ -16547,7 +17467,7 @@ static void __pyx_pw_4cdec_5_cdec_16SegmentEvaluator_1__dealloc__(PyObject *__py    __Pyx_RefNannyFinishContext();  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":104 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":104   *     cdef mteval.EvaluationMetric* metric   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -16559,7 +17479,7 @@ static void __pyx_pf_4cdec_5_cdec_16SegmentEvaluator___dealloc__(CYTHON_UNUSED s    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":105 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":105   *    *     def __dealloc__(self):   *         del self.scorer             # <<<<<<<<<<<<<< @@ -16583,7 +17503,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_16SegmentEvaluator_3evaluate(PyObject *__    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":107 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":107   *         del self.scorer   *    *     def evaluate(self, sentence):             # <<<<<<<<<<<<<< @@ -16605,7 +17525,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_16SegmentEvaluator_2evaluate(struct __pyx    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("evaluate", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":110 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":110   *         """se.evaluate(sentence) -> SufficientStats for the given hypothesis."""   *         cdef vector[WordID] hyp   *         cdef SufficientStats sf = SufficientStats()             # <<<<<<<<<<<<<< @@ -16617,7 +17537,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_16SegmentEvaluator_2evaluate(struct __pyx    __pyx_v_sf = ((struct __pyx_obj_4cdec_5_cdec_SufficientStats *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":111 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":111   *         cdef vector[WordID] hyp   *         cdef SufficientStats sf = SufficientStats()   *         sf.metric = self.metric             # <<<<<<<<<<<<<< @@ -16627,7 +17547,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_16SegmentEvaluator_2evaluate(struct __pyx    __pyx_t_2 = __pyx_v_self->metric;    __pyx_v_sf->metric = __pyx_t_2; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":112 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":112   *         cdef SufficientStats sf = SufficientStats()   *         sf.metric = self.metric   *         sf.stats = new mteval.SufficientStats()             # <<<<<<<<<<<<<< @@ -16636,7 +17556,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_16SegmentEvaluator_2evaluate(struct __pyx   */    __pyx_v_sf->stats = new SufficientStats(); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":113 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":113   *         sf.metric = self.metric   *         sf.stats = new mteval.SufficientStats()   *         ConvertSentence(as_str(sentence.strip()), &hyp)             # <<<<<<<<<<<<<< @@ -16655,7 +17575,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_16SegmentEvaluator_2evaluate(struct __pyx    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    TD::ConvertSentence(__pyx_t_4, (&__pyx_v_hyp)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":114 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":114   *         sf.stats = new mteval.SufficientStats()   *         ConvertSentence(as_str(sentence.strip()), &hyp)   *         self.scorer.get().Evaluate(hyp, sf.stats)             # <<<<<<<<<<<<<< @@ -16664,7 +17584,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_16SegmentEvaluator_2evaluate(struct __pyx   */    __pyx_v_self->scorer->get()->Evaluate(__pyx_v_hyp, __pyx_v_sf->stats); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":115 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":115   *         ConvertSentence(as_str(sentence.strip()), &hyp)   *         self.scorer.get().Evaluate(hyp, sf.stats)   *         return sf             # <<<<<<<<<<<<<< @@ -16702,7 +17622,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_16SegmentEvaluator_5candidate_set(PyObjec    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":117 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":117   *         return sf   *    *     def candidate_set(self):             # <<<<<<<<<<<<<< @@ -16720,7 +17640,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_16SegmentEvaluator_4candidate_set(struct    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("candidate_set", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":119 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":119   *     def candidate_set(self):   *         """se.candidate_set() -> Candidate set using this segment evaluator for scoring."""   *         return CandidateSet(self)             # <<<<<<<<<<<<<< @@ -16767,7 +17687,7 @@ static int __pyx_pw_4cdec_5_cdec_6Scorer_1__cinit__(PyObject *__pyx_v_self, PyOb      static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__name,0};      PyObject* values[1] = {0}; -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":125 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":125   *     cdef mteval.EvaluationMetric* metric   *    *     def __cinit__(self, bytes name=None):             # <<<<<<<<<<<<<< @@ -16832,7 +17752,7 @@ static int __pyx_pf_4cdec_5_cdec_6Scorer___cinit__(struct __pyx_obj_4cdec_5_cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":126 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":126   *    *     def __cinit__(self, bytes name=None):   *         if name:             # <<<<<<<<<<<<<< @@ -16842,7 +17762,7 @@ static int __pyx_pf_4cdec_5_cdec_6Scorer___cinit__(struct __pyx_obj_4cdec_5_cdec    __pyx_t_1 = (((PyObject *)__pyx_v_name) != Py_None) && (PyBytes_GET_SIZE(((PyObject *)__pyx_v_name)) != 0);    if (__pyx_t_1) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":127 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":127   *     def __cinit__(self, bytes name=None):   *         if name:   *             self.name = new string(name)             # <<<<<<<<<<<<<< @@ -16858,7 +17778,7 @@ static int __pyx_pf_4cdec_5_cdec_6Scorer___cinit__(struct __pyx_obj_4cdec_5_cdec      }      __pyx_v_self->name = __pyx_t_3; -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":128 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":128   *         if name:   *             self.name = new string(name)   *             self.metric = mteval.MetricInstance(self.name[0])             # <<<<<<<<<<<<<< @@ -16889,7 +17809,7 @@ static void __pyx_pw_4cdec_5_cdec_6Scorer_3__dealloc__(PyObject *__pyx_v_self) {    __Pyx_RefNannyFinishContext();  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":130 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":130   *             self.metric = mteval.MetricInstance(self.name[0])   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -16901,7 +17821,7 @@ static void __pyx_pf_4cdec_5_cdec_6Scorer_2__dealloc__(CYTHON_UNUSED struct __py    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":131 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":131   *    *     def __dealloc__(self):   *         del self.name             # <<<<<<<<<<<<<< @@ -16963,7 +17883,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_6Scorer_5__call__(PyObject *__pyx_v_self,    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":133 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":133   *         del self.name   *    *     def __call__(self, refs):             # <<<<<<<<<<<<<< @@ -16995,7 +17915,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_    __Pyx_RefNannySetupContext("__call__", 0);    __Pyx_INCREF(__pyx_v_refs); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":134 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":134   *    *     def __call__(self, refs):   *         if isinstance(refs, basestring):             # <<<<<<<<<<<<<< @@ -17006,7 +17926,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":135 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":135   *     def __call__(self, refs):   *         if isinstance(refs, basestring):   *             refs = [refs]             # <<<<<<<<<<<<<< @@ -17025,7 +17945,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_    }    __pyx_L3:; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":136 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":136   *         if isinstance(refs, basestring):   *             refs = [refs]   *         cdef vector[vector[WordID]]* refsv = new vector[vector[WordID]]()             # <<<<<<<<<<<<<< @@ -17040,7 +17960,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_    }    __pyx_v_refsv = __pyx_t_4; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":138 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":138   *         cdef vector[vector[WordID]]* refsv = new vector[vector[WordID]]()   *         cdef vector[WordID]* refv   *         for ref in refs:             # <<<<<<<<<<<<<< @@ -17085,7 +18005,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_      __pyx_v_ref = __pyx_t_7;      __pyx_t_7 = 0; -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":139 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":139   *         cdef vector[WordID]* refv   *         for ref in refs:   *             refv = new vector[WordID]()             # <<<<<<<<<<<<<< @@ -17100,7 +18020,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_      }      __pyx_v_refv = __pyx_t_8; -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":140 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":140   *         for ref in refs:   *             refv = new vector[WordID]()   *             ConvertSentence(as_str(ref.strip()), refv)             # <<<<<<<<<<<<<< @@ -17119,7 +18039,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;      TD::ConvertSentence(__pyx_t_10, __pyx_v_refv); -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":141 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":141   *             refv = new vector[WordID]()   *             ConvertSentence(as_str(ref.strip()), refv)   *             refsv.push_back(refv[0])             # <<<<<<<<<<<<<< @@ -17128,7 +18048,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_   */      __pyx_v_refsv->push_back((__pyx_v_refv[0])); -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":142 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":142   *             ConvertSentence(as_str(ref.strip()), refv)   *             refsv.push_back(refv[0])   *             del refv             # <<<<<<<<<<<<<< @@ -17139,7 +18059,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_    }    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":144 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":144   *             del refv   *         cdef unsigned i   *         cdef SegmentEvaluator evaluator = SegmentEvaluator()             # <<<<<<<<<<<<<< @@ -17151,7 +18071,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_    __pyx_v_evaluator = ((struct __pyx_obj_4cdec_5_cdec_SegmentEvaluator *)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":145 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":145   *         cdef unsigned i   *         cdef SegmentEvaluator evaluator = SegmentEvaluator()   *         evaluator.metric = self.metric             # <<<<<<<<<<<<<< @@ -17161,7 +18081,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_    __pyx_t_11 = __pyx_v_self->metric;    __pyx_v_evaluator->metric = __pyx_t_11; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":146 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":146   *         cdef SegmentEvaluator evaluator = SegmentEvaluator()   *         evaluator.metric = self.metric   *         evaluator.scorer = new shared_ptr[mteval.SegmentEvaluator](             # <<<<<<<<<<<<<< @@ -17170,7 +18090,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_   */    __pyx_v_evaluator->scorer = new boost::shared_ptr<SegmentEvaluator>(__pyx_v_self->metric->CreateSegmentEvaluator((__pyx_v_refsv[0]))); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":148 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":148   *         evaluator.scorer = new shared_ptr[mteval.SegmentEvaluator](   *                 self.metric.CreateSegmentEvaluator(refsv[0]))   *         del refsv # in theory should not delete but store in SegmentEvaluator             # <<<<<<<<<<<<<< @@ -17179,7 +18099,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_4__call__(struct __pyx_obj_4cdec_   */    delete __pyx_v_refsv; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":149 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":149   *                 self.metric.CreateSegmentEvaluator(refsv[0]))   *         del refsv # in theory should not delete but store in SegmentEvaluator   *         return evaluator             # <<<<<<<<<<<<<< @@ -17219,7 +18139,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_6Scorer_7__str__(PyObject *__pyx_v_self)    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":151 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":151   *         return evaluator   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -17237,7 +18157,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_6__str__(struct __pyx_obj_4cdec_5    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__str__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":152 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":152   *    *     def __str__(self):   *         return str(self.name.c_str())             # <<<<<<<<<<<<<< @@ -17272,7 +18192,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Scorer_6__str__(struct __pyx_obj_4cdec_5    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":154 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":154   *         return str(self.name.c_str())   *    * cdef float _compute_score(void* metric_, mteval.SufficientStats* stats):             # <<<<<<<<<<<<<< @@ -17298,7 +18218,7 @@ static float __pyx_f_4cdec_5_cdec__compute_score(void *__pyx_v_metric_, Sufficie    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("_compute_score", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":155 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":155   *    * cdef float _compute_score(void* metric_, mteval.SufficientStats* stats):   *     cdef Metric metric = <Metric> metric_             # <<<<<<<<<<<<<< @@ -17308,7 +18228,7 @@ static float __pyx_f_4cdec_5_cdec__compute_score(void *__pyx_v_metric_, Sufficie    __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4cdec_5_cdec_Metric *)__pyx_v_metric_)));    __pyx_v_metric = ((struct __pyx_obj_4cdec_5_cdec_Metric *)__pyx_v_metric_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":156 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":156   * cdef float _compute_score(void* metric_, mteval.SufficientStats* stats):   *     cdef Metric metric = <Metric> metric_   *     cdef list ss = []             # <<<<<<<<<<<<<< @@ -17320,7 +18240,7 @@ static float __pyx_f_4cdec_5_cdec__compute_score(void *__pyx_v_metric_, Sufficie    __pyx_v_ss = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":158 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":158   *     cdef list ss = []   *     cdef unsigned i   *     for i in range(stats.size()):             # <<<<<<<<<<<<<< @@ -17331,7 +18251,7 @@ static float __pyx_f_4cdec_5_cdec__compute_score(void *__pyx_v_metric_, Sufficie    for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {      __pyx_v_i = __pyx_t_3; -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":159 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":159   *     cdef unsigned i   *     for i in range(stats.size()):   *         ss.append(stats[0][i])             # <<<<<<<<<<<<<< @@ -17344,7 +18264,7 @@ static float __pyx_f_4cdec_5_cdec__compute_score(void *__pyx_v_metric_, Sufficie      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":160 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":160   *     for i in range(stats.size()):   *         ss.append(stats[0][i])   *     return metric.score(ss)             # <<<<<<<<<<<<<< @@ -17382,7 +18302,7 @@ static float __pyx_f_4cdec_5_cdec__compute_score(void *__pyx_v_metric_, Sufficie    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":162 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":162   *     return metric.score(ss)   *    * cdef void _compute_sufficient_stats(void* metric_,             # <<<<<<<<<<<<<< @@ -17409,7 +18329,7 @@ static void __pyx_f_4cdec_5_cdec__compute_sufficient_stats(void *__pyx_v_metric_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("_compute_sufficient_stats", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":166 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":166   *         vector[string]* refs,   *         mteval.SufficientStats* out):   *     cdef Metric metric = <Metric> metric_             # <<<<<<<<<<<<<< @@ -17419,7 +18339,7 @@ static void __pyx_f_4cdec_5_cdec__compute_sufficient_stats(void *__pyx_v_metric_    __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4cdec_5_cdec_Metric *)__pyx_v_metric_)));    __pyx_v_metric = ((struct __pyx_obj_4cdec_5_cdec_Metric *)__pyx_v_metric_); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":167 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":167   *         mteval.SufficientStats* out):   *     cdef Metric metric = <Metric> metric_   *     cdef list refs_ = []             # <<<<<<<<<<<<<< @@ -17431,7 +18351,7 @@ static void __pyx_f_4cdec_5_cdec__compute_sufficient_stats(void *__pyx_v_metric_    __pyx_v_refs_ = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":169 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":169   *     cdef list refs_ = []   *     cdef unsigned i   *     for i in range(refs.size()):             # <<<<<<<<<<<<<< @@ -17442,7 +18362,7 @@ static void __pyx_f_4cdec_5_cdec__compute_sufficient_stats(void *__pyx_v_metric_    for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {      __pyx_v_i = __pyx_t_3; -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":170 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":170   *     cdef unsigned i   *     for i in range(refs.size()):   *         refs_.append(str(refs[0][i].c_str()))             # <<<<<<<<<<<<<< @@ -17463,7 +18383,7 @@ static void __pyx_f_4cdec_5_cdec__compute_sufficient_stats(void *__pyx_v_metric_      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    } -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":171 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":171   *     for i in range(refs.size()):   *         refs_.append(str(refs[0][i].c_str()))   *     cdef list ss = metric.evaluate(str(hyp.c_str()), refs_)             # <<<<<<<<<<<<<< @@ -17498,7 +18418,7 @@ static void __pyx_f_4cdec_5_cdec__compute_sufficient_stats(void *__pyx_v_metric_    __pyx_v_ss = ((PyObject*)__pyx_t_4);    __pyx_t_4 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":172 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":172   *         refs_.append(str(refs[0][i].c_str()))   *     cdef list ss = metric.evaluate(str(hyp.c_str()), refs_)   *     out.fields.resize(len(ss))             # <<<<<<<<<<<<<< @@ -17512,7 +18432,7 @@ static void __pyx_f_4cdec_5_cdec__compute_sufficient_stats(void *__pyx_v_metric_    __pyx_t_7 = PyList_GET_SIZE(((PyObject *)__pyx_v_ss)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_out->fields.resize(__pyx_t_7); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":173 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":173   *     cdef list ss = metric.evaluate(str(hyp.c_str()), refs_)   *     out.fields.resize(len(ss))   *     for i in range(len(ss)):             # <<<<<<<<<<<<<< @@ -17527,7 +18447,7 @@ static void __pyx_f_4cdec_5_cdec__compute_sufficient_stats(void *__pyx_v_metric_    for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_7; __pyx_t_3+=1) {      __pyx_v_i = __pyx_t_3; -    /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":174 +    /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":174   *     out.fields.resize(len(ss))   *     for i in range(len(ss)):   *         out.fields[i] = ss[i]             # <<<<<<<<<<<<<< @@ -17572,7 +18492,7 @@ static int __pyx_pw_4cdec_5_cdec_6Metric_1__cinit__(PyObject *__pyx_v_self, PyOb    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":178 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":178   * cdef class Metric:   *     cdef Scorer scorer   *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -17593,7 +18513,7 @@ static int __pyx_pf_4cdec_5_cdec_6Metric___cinit__(struct __pyx_obj_4cdec_5_cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":179 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":179   *     cdef Scorer scorer   *     def __cinit__(self):   *         self.scorer = Scorer()             # <<<<<<<<<<<<<< @@ -17608,7 +18528,7 @@ static int __pyx_pf_4cdec_5_cdec_6Metric___cinit__(struct __pyx_obj_4cdec_5_cdec    __pyx_v_self->scorer = ((struct __pyx_obj_4cdec_5_cdec_Scorer *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":180 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":180   *     def __cinit__(self):   *         self.scorer = Scorer()   *         cdef bytes class_name = self.__class__.__name__             # <<<<<<<<<<<<<< @@ -17624,7 +18544,7 @@ static int __pyx_pf_4cdec_5_cdec_6Metric___cinit__(struct __pyx_obj_4cdec_5_cdec    __pyx_v_class_name = ((PyObject*)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":181 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":181   *         self.scorer = Scorer()   *         cdef bytes class_name = self.__class__.__name__   *         self.scorer.name = new string(class_name)             # <<<<<<<<<<<<<< @@ -17640,7 +18560,7 @@ static int __pyx_pf_4cdec_5_cdec_6Metric___cinit__(struct __pyx_obj_4cdec_5_cdec    }    __pyx_v_self->scorer->name = __pyx_t_4; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":182 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":182   *         cdef bytes class_name = self.__class__.__name__   *         self.scorer.name = new string(class_name)   *         self.scorer.metric = mteval.PyMetricInstance(self.scorer.name[0],             # <<<<<<<<<<<<<< @@ -17712,7 +18632,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_6Metric_3__call__(PyObject *__pyx_v_self,    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":185 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":185   *                 <void*> self, _compute_sufficient_stats, _compute_score)   *    *     def __call__(self, refs):             # <<<<<<<<<<<<<< @@ -17730,7 +18650,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Metric_2__call__(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__call__", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":186 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":186   *    *     def __call__(self, refs):   *         return self.scorer(refs)             # <<<<<<<<<<<<<< @@ -17774,7 +18694,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_6Metric_5score(PyObject *__pyx_v_stats, C    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":188 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":188   *         return self.scorer(refs)   *    *     def score(SufficientStats stats):             # <<<<<<<<<<<<<< @@ -17787,7 +18707,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Metric_4score(CYTHON_UNUSED struct __pyx    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("score", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":189 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":189   *    *     def score(SufficientStats stats):   *         return 0             # <<<<<<<<<<<<<< @@ -17865,7 +18785,7 @@ static PyObject *__pyx_pw_4cdec_5_cdec_6Metric_7evaluate(PyObject *__pyx_v_self,    return __pyx_r;  } -/* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":191 +/* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":191   *         return 0   *    *     def evaluate(self, hyp, refs):             # <<<<<<<<<<<<<< @@ -17882,7 +18802,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_6Metric_6evaluate(CYTHON_UNUSED struct __    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("evaluate", 0); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":192 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":192   *    *     def evaluate(self, hyp, refs):   *         return []             # <<<<<<<<<<<<<< @@ -17958,7 +18878,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_2set_silent(CYTHON_UNUSED PyObject *__pyx    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_6generator17(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_6generator20(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* Python wrapper */  static PyObject *__pyx_pw_4cdec_5_cdec_5_make_config(PyObject *__pyx_self, PyObject *__pyx_v_config); /*proto*/ @@ -17981,14 +18901,14 @@ static PyObject *__pyx_pw_4cdec_5_cdec_5_make_config(PyObject *__pyx_self, PyObj   */  static PyObject *__pyx_pf_4cdec_5_cdec_4_make_config(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_config) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("_make_config", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_23__make_config(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_23__make_config, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_26__make_config(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_26__make_config, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL; @@ -17998,7 +18918,7 @@ static PyObject *__pyx_pf_4cdec_5_cdec_4_make_config(CYTHON_UNUSED PyObject *__p    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_config);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_config);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_6generator17, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_6generator20, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -18016,9 +18936,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_4_make_config(CYTHON_UNUSED PyObject *__p    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_6generator17(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_6generator20(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    PyObject *__pyx_t_1 = NULL;    PyObject *__pyx_t_2 = NULL; @@ -18577,7 +19497,7 @@ static int __pyx_pw_4cdec_5_cdec_7Decoder_1__init__(PyObject *__pyx_v_self, PyOb    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_7Decoder_8__init___2generator21(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_4cdec_5_cdec_7Decoder_8__init___2generator24(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */  /* "cdec/_cdec.pyx":56   *                     'csplit', 'tagger', 'lexalign'): @@ -18588,24 +19508,24 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Decoder_8__init___2generator21(__pyx_Gen   */  static PyObject *__pyx_pf_4cdec_5_cdec_7Decoder_8__init___genexpr(PyObject *__pyx_self) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("genexpr", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_25_genexpr(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_25_genexpr, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_28_genexpr(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_28_genexpr, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL;    }    __Pyx_GOTREF(__pyx_cur_scope); -  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *) __pyx_self; +  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *) __pyx_self;    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_7Decoder_8__init___2generator21, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_5_cdec_7Decoder_8__init___2generator24, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -18623,9 +19543,9 @@ static PyObject *__pyx_pf_4cdec_5_cdec_7Decoder_8__init___genexpr(PyObject *__py    return __pyx_r;  } -static PyObject *__pyx_gb_4cdec_5_cdec_7Decoder_8__init___2generator21(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_4cdec_5_cdec_7Decoder_8__init___2generator24(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *)__pyx_generator->closure); +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    PyObject *__pyx_t_1 = NULL;    PyObject *__pyx_t_2 = NULL; @@ -18744,7 +19664,7 @@ static PyObject *__pyx_gb_4cdec_5_cdec_7Decoder_8__init___2generator21(__pyx_Gen   */  static int __pyx_pf_4cdec_5_cdec_7Decoder___init__(struct __pyx_obj_4cdec_5_cdec_Decoder *__pyx_v_self, PyObject *__pyx_v_config_str, PyObject *__pyx_v_config) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *__pyx_cur_scope; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *__pyx_cur_scope;    PyObject *__pyx_v_formalism = NULL;    std::istringstream *__pyx_v_config_stream;    int __pyx_r; @@ -18760,7 +19680,7 @@ static int __pyx_pf_4cdec_5_cdec_7Decoder___init__(struct __pyx_obj_4cdec_5_cdec    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__init__", 0); -  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_24___init__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_24___init__, __pyx_empty_tuple, NULL); +  __pyx_cur_scope = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *)__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_27___init__(__pyx_ptype_4cdec_5_cdec___pyx_scope_struct_27___init__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return -1; @@ -20125,6 +21045,131 @@ static std::string __pyx_convert_string_from_py_(PyObject *__pyx_v_o) {    return __pyx_r;  } +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_24___iter__[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_24___iter__ = 0; + +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_24___iter__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *p; +  PyObject *o; +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_24___iter__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_24___iter__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_24___iter__]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__)); +    PyObject_INIT(o, t); +    PyObject_GC_Track(o); +  } else { +    o = (*t->tp_alloc)(t, 0); +    if (unlikely(!o)) return 0; +  } +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *)o); +  p->__pyx_v_i = 0; +  p->__pyx_v_self = 0; +  p->__pyx_t_1 = 0; +  return o; +} + +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_24___iter__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *)o; +  PyObject_GC_UnTrack(o); +  Py_CLEAR(p->__pyx_v_i); +  Py_CLEAR(p->__pyx_v_self); +  Py_CLEAR(p->__pyx_t_1); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_24___iter__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_24___iter__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_24___iter__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *)o); +  } else { +    (*Py_TYPE(o)->tp_free)(o); +  } +} + +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_24___iter__(PyObject *o, visitproc v, void *a) { +  int e; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *)o; +  if (p->__pyx_v_i) { +    e = (*v)(p->__pyx_v_i, a); if (e) return e; +  } +  if (p->__pyx_v_self) { +    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e; +  } +  if (p->__pyx_t_1) { +    e = (*v)(p->__pyx_t_1, a); if (e) return e; +  } +  return 0; +} + +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_24___iter__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__ *)o; +  PyObject* tmp; +  tmp = ((PyObject*)p->__pyx_v_i); +  p->__pyx_v_i = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_self); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_SufficientStats *)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_t_1); +  p->__pyx_t_1 = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  return 0; +} + +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_24___iter__[] = { +  {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_24___iter__ = { +  PyVarObject_HEAD_INIT(0, 0) +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_24___iter__"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___iter__), /*tp_basicsize*/ +  0, /*tp_itemsize*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_24___iter__, /*tp_dealloc*/ +  0, /*tp_print*/ +  0, /*tp_getattr*/ +  0, /*tp_setattr*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*tp_compare*/ +  #else +  0, /*reserved*/ +  #endif +  0, /*tp_repr*/ +  0, /*tp_as_number*/ +  0, /*tp_as_sequence*/ +  0, /*tp_as_mapping*/ +  0, /*tp_hash*/ +  0, /*tp_call*/ +  0, /*tp_str*/ +  0, /*tp_getattro*/ +  0, /*tp_setattro*/ +  0, /*tp_as_buffer*/ +  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ +  0, /*tp_doc*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_24___iter__, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_24___iter__, /*tp_clear*/ +  0, /*tp_richcompare*/ +  0, /*tp_weaklistoffset*/ +  0, /*tp_iter*/ +  0, /*tp_iternext*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_24___iter__, /*tp_methods*/ +  0, /*tp_members*/ +  0, /*tp_getset*/ +  0, /*tp_base*/ +  0, /*tp_dict*/ +  0, /*tp_descr_get*/ +  0, /*tp_descr_set*/ +  0, /*tp_dictoffset*/ +  0, /*tp_init*/ +  0, /*tp_alloc*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_24___iter__, /*tp_new*/ +  0, /*tp_free*/ +  0, /*tp_is_gc*/ +  0, /*tp_bases*/ +  0, /*tp_mro*/ +  0, /*tp_cache*/ +  0, /*tp_subclasses*/ +  0, /*tp_weaklist*/ +  0, /*tp_del*/ +  #if PY_VERSION_HEX >= 0x02060000 +  0, /*tp_version_tag*/ +  #endif +}; +  static PyObject *__pyx_tp_new_4cdec_5_cdec_TRule(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {    PyObject *o;    o = (*t->tp_alloc)(t, 0); @@ -20359,115 +21404,6 @@ static PyTypeObject __pyx_type_4cdec_5_cdec_MRule = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_22___iter__[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_22___iter__ = 0; - -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_22___iter__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *p; -  PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_22___iter__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_22___iter__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_22___iter__]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__)); -    PyObject_INIT(o, t); -    PyObject_GC_Track(o); -  } else { -    o = (*t->tp_alloc)(t, 0); -    if (unlikely(!o)) return 0; -  } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *)o); -  p->__pyx_v_self = 0; -  return o; -} - -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_22___iter__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *)o; -  PyObject_GC_UnTrack(o); -  Py_CLEAR(p->__pyx_v_self); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_22___iter__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_22___iter__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_22___iter__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *)o); -  } else { -    (*Py_TYPE(o)->tp_free)(o); -  } -} - -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_22___iter__(PyObject *o, visitproc v, void *a) { -  int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *)o; -  if (p->__pyx_v_self) { -    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e; -  } -  return 0; -} - -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_22___iter__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__ *)o; -  PyObject* tmp; -  tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_CandidateSet *)Py_None); Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  return 0; -} - -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_22___iter__[] = { -  {0, 0, 0, 0} -}; - -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_22___iter__ = { -  PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_22___iter__"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22___iter__), /*tp_basicsize*/ -  0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_22___iter__, /*tp_dealloc*/ -  0, /*tp_print*/ -  0, /*tp_getattr*/ -  0, /*tp_setattr*/ -  #if PY_MAJOR_VERSION < 3 -  0, /*tp_compare*/ -  #else -  0, /*reserved*/ -  #endif -  0, /*tp_repr*/ -  0, /*tp_as_number*/ -  0, /*tp_as_sequence*/ -  0, /*tp_as_mapping*/ -  0, /*tp_hash*/ -  0, /*tp_call*/ -  0, /*tp_str*/ -  0, /*tp_getattro*/ -  0, /*tp_setattro*/ -  0, /*tp_as_buffer*/ -  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ -  0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_22___iter__, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_22___iter__, /*tp_clear*/ -  0, /*tp_richcompare*/ -  0, /*tp_weaklistoffset*/ -  0, /*tp_iter*/ -  0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_22___iter__, /*tp_methods*/ -  0, /*tp_members*/ -  0, /*tp_getset*/ -  0, /*tp_base*/ -  0, /*tp_dict*/ -  0, /*tp_descr_get*/ -  0, /*tp_descr_set*/ -  0, /*tp_dictoffset*/ -  0, /*tp_init*/ -  0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_22___iter__, /*tp_new*/ -  0, /*tp_free*/ -  0, /*tp_is_gc*/ -  0, /*tp_bases*/ -  0, /*tp_mro*/ -  0, /*tp_cache*/ -  0, /*tp_subclasses*/ -  0, /*tp_weaklist*/ -  0, /*tp_del*/ -  #if PY_VERSION_HEX >= 0x02060000 -  0, /*tp_version_tag*/ -  #endif -}; -  static PyObject *__pyx_tp_new_4cdec_5_cdec_DenseVector(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {    PyObject *o;    o = (*t->tp_alloc)(t, 0); @@ -20765,6 +21701,272 @@ static PyTypeObject __pyx_type_4cdec_5_cdec_SufficientStats = {    #endif  }; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_23_lines[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_23_lines = 0; + +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_23_lines(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *p; +  PyObject *o; +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_23_lines > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_23_lines[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_23_lines]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines)); +    PyObject_INIT(o, t); +    PyObject_GC_Track(o); +  } else { +    o = (*t->tp_alloc)(t, 0); +    if (unlikely(!o)) return 0; +  } +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *)o); +  p->__pyx_outer_scope = 0; +  p->__pyx_v_delta = 0; +  p->__pyx_v_i = 0; +  p->__pyx_v_label = 0; +  p->__pyx_v_weight = 0; +  p->__pyx_t_1 = 0; +  p->__pyx_t_3 = 0; +  return o; +} + +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_23_lines(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *)o; +  PyObject_GC_UnTrack(o); +  Py_CLEAR(p->__pyx_outer_scope); +  Py_CLEAR(p->__pyx_v_delta); +  Py_CLEAR(p->__pyx_v_i); +  Py_CLEAR(p->__pyx_v_label); +  Py_CLEAR(p->__pyx_v_weight); +  Py_CLEAR(p->__pyx_t_1); +  Py_CLEAR(p->__pyx_t_3); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_23_lines < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_23_lines[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_23_lines++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *)o); +  } else { +    (*Py_TYPE(o)->tp_free)(o); +  } +} + +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_23_lines(PyObject *o, visitproc v, void *a) { +  int e; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *)o; +  if (p->__pyx_outer_scope) { +    e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e; +  } +  if (p->__pyx_v_delta) { +    e = (*v)(p->__pyx_v_delta, a); if (e) return e; +  } +  if (p->__pyx_v_i) { +    e = (*v)(p->__pyx_v_i, a); if (e) return e; +  } +  if (p->__pyx_v_label) { +    e = (*v)(p->__pyx_v_label, a); if (e) return e; +  } +  if (p->__pyx_v_weight) { +    e = (*v)(p->__pyx_v_weight, a); if (e) return e; +  } +  if (p->__pyx_t_1) { +    e = (*v)(p->__pyx_t_1, a); if (e) return e; +  } +  if (p->__pyx_t_3) { +    e = (*v)(p->__pyx_t_3, a); if (e) return e; +  } +  return 0; +} + +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_23_lines(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines *)o; +  PyObject* tmp; +  tmp = ((PyObject*)p->__pyx_outer_scope); +  p->__pyx_outer_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_delta); +  p->__pyx_v_delta = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_i); +  p->__pyx_v_i = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_label); +  p->__pyx_v_label = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_weight); +  p->__pyx_v_weight = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_t_1); +  p->__pyx_t_1 = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_t_3); +  p->__pyx_t_3 = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  return 0; +} + +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_23_lines[] = { +  {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_23_lines = { +  PyVarObject_HEAD_INIT(0, 0) +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_23_lines"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23_lines), /*tp_basicsize*/ +  0, /*tp_itemsize*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_23_lines, /*tp_dealloc*/ +  0, /*tp_print*/ +  0, /*tp_getattr*/ +  0, /*tp_setattr*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*tp_compare*/ +  #else +  0, /*reserved*/ +  #endif +  0, /*tp_repr*/ +  0, /*tp_as_number*/ +  0, /*tp_as_sequence*/ +  0, /*tp_as_mapping*/ +  0, /*tp_hash*/ +  0, /*tp_call*/ +  0, /*tp_str*/ +  0, /*tp_getattro*/ +  0, /*tp_setattro*/ +  0, /*tp_as_buffer*/ +  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ +  0, /*tp_doc*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_23_lines, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_23_lines, /*tp_clear*/ +  0, /*tp_richcompare*/ +  0, /*tp_weaklistoffset*/ +  0, /*tp_iter*/ +  0, /*tp_iternext*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_23_lines, /*tp_methods*/ +  0, /*tp_members*/ +  0, /*tp_getset*/ +  0, /*tp_base*/ +  0, /*tp_dict*/ +  0, /*tp_descr_get*/ +  0, /*tp_descr_set*/ +  0, /*tp_dictoffset*/ +  0, /*tp_init*/ +  0, /*tp_alloc*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_23_lines, /*tp_new*/ +  0, /*tp_free*/ +  0, /*tp_is_gc*/ +  0, /*tp_bases*/ +  0, /*tp_mro*/ +  0, /*tp_cache*/ +  0, /*tp_subclasses*/ +  0, /*tp_weaklist*/ +  0, /*tp_del*/ +  #if PY_VERSION_HEX >= 0x02060000 +  0, /*tp_version_tag*/ +  #endif +}; + +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_27___init__[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_27___init__ = 0; + +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_27___init__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *p; +  PyObject *o; +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_27___init__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_27___init__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_27___init__]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__)); +    PyObject_INIT(o, t); +    PyObject_GC_Track(o); +  } else { +    o = (*t->tp_alloc)(t, 0); +    if (unlikely(!o)) return 0; +  } +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *)o); +  p->__pyx_v_config = 0; +  return o; +} + +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_27___init__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *)o; +  PyObject_GC_UnTrack(o); +  Py_CLEAR(p->__pyx_v_config); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_27___init__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_27___init__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_27___init__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *)o); +  } else { +    (*Py_TYPE(o)->tp_free)(o); +  } +} + +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_27___init__(PyObject *o, visitproc v, void *a) { +  int e; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *)o; +  if (p->__pyx_v_config) { +    e = (*v)(p->__pyx_v_config, a); if (e) return e; +  } +  return 0; +} + +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_27___init__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *)o; +  PyObject* tmp; +  tmp = ((PyObject*)p->__pyx_v_config); +  p->__pyx_v_config = ((PyObject*)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  return 0; +} + +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_27___init__[] = { +  {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_27___init__ = { +  PyVarObject_HEAD_INIT(0, 0) +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_27___init__"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__), /*tp_basicsize*/ +  0, /*tp_itemsize*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_27___init__, /*tp_dealloc*/ +  0, /*tp_print*/ +  0, /*tp_getattr*/ +  0, /*tp_setattr*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*tp_compare*/ +  #else +  0, /*reserved*/ +  #endif +  0, /*tp_repr*/ +  0, /*tp_as_number*/ +  0, /*tp_as_sequence*/ +  0, /*tp_as_mapping*/ +  0, /*tp_hash*/ +  0, /*tp_call*/ +  0, /*tp_str*/ +  0, /*tp_getattro*/ +  0, /*tp_setattro*/ +  0, /*tp_as_buffer*/ +  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ +  0, /*tp_doc*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_27___init__, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_27___init__, /*tp_clear*/ +  0, /*tp_richcompare*/ +  0, /*tp_weaklistoffset*/ +  0, /*tp_iter*/ +  0, /*tp_iternext*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_27___init__, /*tp_methods*/ +  0, /*tp_members*/ +  0, /*tp_getset*/ +  0, /*tp_base*/ +  0, /*tp_dict*/ +  0, /*tp_descr_get*/ +  0, /*tp_descr_set*/ +  0, /*tp_dictoffset*/ +  0, /*tp_init*/ +  0, /*tp_alloc*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_27___init__, /*tp_new*/ +  0, /*tp_free*/ +  0, /*tp_is_gc*/ +  0, /*tp_bases*/ +  0, /*tp_mro*/ +  0, /*tp_cache*/ +  0, /*tp_subclasses*/ +  0, /*tp_weaklist*/ +  0, /*tp_del*/ +  #if PY_VERSION_HEX >= 0x02060000 +  0, /*tp_version_tag*/ +  #endif +}; +  static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_21___iter__[8];  static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_21___iter__ = 0; @@ -20781,18 +21983,14 @@ static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_21___iter__(PyType      if (unlikely(!o)) return 0;    }    p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *)o); -  p->__pyx_v_i = 0;    p->__pyx_v_self = 0; -  p->__pyx_t_1 = 0;    return o;  }  static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_21___iter__(PyObject *o) {    struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *)o;    PyObject_GC_UnTrack(o); -  Py_CLEAR(p->__pyx_v_i);    Py_CLEAR(p->__pyx_v_self); -  Py_CLEAR(p->__pyx_t_1);    if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_21___iter__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__))) {      __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_21___iter__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_21___iter__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *)o);    } else { @@ -20803,29 +22001,17 @@ static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_21___iter__(PyObjec  static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_21___iter__(PyObject *o, visitproc v, void *a) {    int e;    struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *)o; -  if (p->__pyx_v_i) { -    e = (*v)(p->__pyx_v_i, a); if (e) return e; -  }    if (p->__pyx_v_self) {      e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    } -  if (p->__pyx_t_1) { -    e = (*v)(p->__pyx_t_1, a); if (e) return e; -  }    return 0;  }  static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_21___iter__(PyObject *o) {    struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_21___iter__ *)o;    PyObject* tmp; -  tmp = ((PyObject*)p->__pyx_v_i); -  p->__pyx_v_i = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp);    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_SufficientStats *)Py_None); Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_t_1); -  p->__pyx_t_1 = Py_None; Py_INCREF(Py_None); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Lattice *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } @@ -20990,6 +22176,123 @@ static PyTypeObject __pyx_type_4cdec_5_cdec_Metric = {    #endif  }; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest = 0; + +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *p; +  PyObject *o; +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest)); +    PyObject_INIT(o, t); +    PyObject_GC_Track(o); +  } else { +    o = (*t->tp_alloc)(t, 0); +    if (unlikely(!o)) return 0; +  } +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *)o); +  p->__pyx_v_self = 0; +  p->__pyx_v_size = 0; +  return o; +} + +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *)o; +  PyObject_GC_UnTrack(o); +  Py_CLEAR(p->__pyx_v_self); +  Py_CLEAR(p->__pyx_v_size); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *)o); +  } else { +    (*Py_TYPE(o)->tp_free)(o); +  } +} + +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest(PyObject *o, visitproc v, void *a) { +  int e; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *)o; +  if (p->__pyx_v_self) { +    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e; +  } +  if (p->__pyx_v_size) { +    e = (*v)(p->__pyx_v_size, a); if (e) return e; +  } +  return 0; +} + +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest *)o; +  PyObject* tmp; +  tmp = ((PyObject*)p->__pyx_v_self); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_size); +  p->__pyx_v_size = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  return 0; +} + +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest[] = { +  {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest = { +  PyVarObject_HEAD_INIT(0, 0) +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_11_unique_kbest"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest), /*tp_basicsize*/ +  0, /*tp_itemsize*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest, /*tp_dealloc*/ +  0, /*tp_print*/ +  0, /*tp_getattr*/ +  0, /*tp_setattr*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*tp_compare*/ +  #else +  0, /*reserved*/ +  #endif +  0, /*tp_repr*/ +  0, /*tp_as_number*/ +  0, /*tp_as_sequence*/ +  0, /*tp_as_mapping*/ +  0, /*tp_hash*/ +  0, /*tp_call*/ +  0, /*tp_str*/ +  0, /*tp_getattro*/ +  0, /*tp_setattro*/ +  0, /*tp_as_buffer*/ +  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ +  0, /*tp_doc*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest, /*tp_clear*/ +  0, /*tp_richcompare*/ +  0, /*tp_weaklistoffset*/ +  0, /*tp_iter*/ +  0, /*tp_iternext*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest, /*tp_methods*/ +  0, /*tp_members*/ +  0, /*tp_getset*/ +  0, /*tp_base*/ +  0, /*tp_dict*/ +  0, /*tp_descr_get*/ +  0, /*tp_descr_set*/ +  0, /*tp_dictoffset*/ +  0, /*tp_init*/ +  0, /*tp_alloc*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest, /*tp_new*/ +  0, /*tp_free*/ +  0, /*tp_is_gc*/ +  0, /*tp_bases*/ +  0, /*tp_mro*/ +  0, /*tp_cache*/ +  0, /*tp_subclasses*/ +  0, /*tp_weaklist*/ +  0, /*tp_del*/ +  #if PY_VERSION_HEX >= 0x02060000 +  0, /*tp_version_tag*/ +  #endif +}; +  static PyObject *__pyx_tp_new_4cdec_5_cdec_Candidate(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {    PyObject *o;    o = (*t->tp_alloc)(t, 0); @@ -21267,65 +22570,113 @@ static PyTypeObject __pyx_type_4cdec_5_cdec_SparseVector = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_15___get__[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_15___get__ = 0; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_26__make_config[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_26__make_config = 0; -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_15___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *p; +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_26__make_config(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *p;    PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_15___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_15___get__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_15___get__]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__)); +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_26__make_config > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_26__make_config[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_26__make_config]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config));      PyObject_INIT(o, t);      PyObject_GC_Track(o);    } else {      o = (*t->tp_alloc)(t, 0);      if (unlikely(!o)) return 0;    } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *)o); -  p->__pyx_v_self = 0; +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *)o); +  p->__pyx_v_config = 0; +  p->__pyx_v_info = 0; +  p->__pyx_v_key = 0; +  p->__pyx_v_name = 0; +  p->__pyx_v_value = 0; +  p->__pyx_t_0 = 0; +  p->__pyx_t_1 = 0;    return o;  } -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_15___get__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *)o; +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_26__make_config(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *)o;    PyObject_GC_UnTrack(o); -  Py_CLEAR(p->__pyx_v_self); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_15___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_15___get__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_15___get__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *)o); +  Py_CLEAR(p->__pyx_v_config); +  Py_CLEAR(p->__pyx_v_info); +  Py_CLEAR(p->__pyx_v_key); +  Py_CLEAR(p->__pyx_v_name); +  Py_CLEAR(p->__pyx_v_value); +  Py_CLEAR(p->__pyx_t_0); +  Py_CLEAR(p->__pyx_t_1); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_26__make_config < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_26__make_config[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_26__make_config++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *)o);    } else {      (*Py_TYPE(o)->tp_free)(o);    }  } -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_15___get__(PyObject *o, visitproc v, void *a) { +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_26__make_config(PyObject *o, visitproc v, void *a) {    int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *)o; -  if (p->__pyx_v_self) { -    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *)o; +  if (p->__pyx_v_config) { +    e = (*v)(p->__pyx_v_config, a); if (e) return e; +  } +  if (p->__pyx_v_info) { +    e = (*v)(p->__pyx_v_info, a); if (e) return e; +  } +  if (p->__pyx_v_key) { +    e = (*v)(p->__pyx_v_key, a); if (e) return e; +  } +  if (p->__pyx_v_name) { +    e = (*v)(p->__pyx_v_name, a); if (e) return e; +  } +  if (p->__pyx_v_value) { +    e = (*v)(p->__pyx_v_value, a); if (e) return e; +  } +  if (p->__pyx_t_0) { +    e = (*v)(p->__pyx_t_0, a); if (e) return e; +  } +  if (p->__pyx_t_1) { +    e = (*v)(p->__pyx_t_1, a); if (e) return e;    }    return 0;  } -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_15___get__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__ *)o; +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_26__make_config(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config *)o;    PyObject* tmp; -  tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)Py_None); Py_INCREF(Py_None); +  tmp = ((PyObject*)p->__pyx_v_config); +  p->__pyx_v_config = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_info); +  p->__pyx_v_info = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_key); +  p->__pyx_v_key = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_name); +  p->__pyx_v_name = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_value); +  p->__pyx_v_value = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_t_0); +  p->__pyx_t_0 = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_t_1); +  p->__pyx_t_1 = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_15___get__[] = { +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_26__make_config[] = {    {0, 0, 0, 0}  }; -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_15___get__ = { +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_26__make_config = {    PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_15___get__"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15___get__), /*tp_basicsize*/ +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_26__make_config"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_26__make_config), /*tp_basicsize*/    0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_15___get__, /*tp_dealloc*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_26__make_config, /*tp_dealloc*/    0, /*tp_print*/    0, /*tp_getattr*/    0, /*tp_setattr*/ @@ -21346,13 +22697,13 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_15___get__ = {    0, /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/    0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_15___get__, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_15___get__, /*tp_clear*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_26__make_config, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_26__make_config, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/    0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_15___get__, /*tp_methods*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_26__make_config, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/    0, /*tp_base*/ @@ -21362,7 +22713,7 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_15___get__ = {    0, /*tp_dictoffset*/    0, /*tp_init*/    0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_15___get__, /*tp_new*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_26__make_config, /*tp_new*/    0, /*tp_free*/    0, /*tp_is_gc*/    0, /*tp_bases*/ @@ -21627,113 +22978,65 @@ static PyTypeObject __pyx_type_4cdec_5_cdec_Lattice = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_23__make_config[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_23__make_config = 0; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_15_sample_trees[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_15_sample_trees = 0; -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_23__make_config(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *p; +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_15_sample_trees(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *p;    PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_23__make_config > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_23__make_config[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_23__make_config]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config)); +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_15_sample_trees > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_15_sample_trees[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_15_sample_trees]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees));      PyObject_INIT(o, t);      PyObject_GC_Track(o);    } else {      o = (*t->tp_alloc)(t, 0);      if (unlikely(!o)) return 0;    } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *)o); -  p->__pyx_v_config = 0; -  p->__pyx_v_info = 0; -  p->__pyx_v_key = 0; -  p->__pyx_v_name = 0; -  p->__pyx_v_value = 0; -  p->__pyx_t_0 = 0; -  p->__pyx_t_1 = 0; +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *)o); +  p->__pyx_v_self = 0;    return o;  } -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_23__make_config(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *)o; +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_15_sample_trees(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *)o;    PyObject_GC_UnTrack(o); -  Py_CLEAR(p->__pyx_v_config); -  Py_CLEAR(p->__pyx_v_info); -  Py_CLEAR(p->__pyx_v_key); -  Py_CLEAR(p->__pyx_v_name); -  Py_CLEAR(p->__pyx_v_value); -  Py_CLEAR(p->__pyx_t_0); -  Py_CLEAR(p->__pyx_t_1); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_23__make_config < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_23__make_config[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_23__make_config++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *)o); +  Py_CLEAR(p->__pyx_v_self); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_15_sample_trees < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_15_sample_trees[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_15_sample_trees++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *)o);    } else {      (*Py_TYPE(o)->tp_free)(o);    }  } -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_23__make_config(PyObject *o, visitproc v, void *a) { +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_15_sample_trees(PyObject *o, visitproc v, void *a) {    int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *)o; -  if (p->__pyx_v_config) { -    e = (*v)(p->__pyx_v_config, a); if (e) return e; -  } -  if (p->__pyx_v_info) { -    e = (*v)(p->__pyx_v_info, a); if (e) return e; -  } -  if (p->__pyx_v_key) { -    e = (*v)(p->__pyx_v_key, a); if (e) return e; -  } -  if (p->__pyx_v_name) { -    e = (*v)(p->__pyx_v_name, a); if (e) return e; -  } -  if (p->__pyx_v_value) { -    e = (*v)(p->__pyx_v_value, a); if (e) return e; -  } -  if (p->__pyx_t_0) { -    e = (*v)(p->__pyx_t_0, a); if (e) return e; -  } -  if (p->__pyx_t_1) { -    e = (*v)(p->__pyx_t_1, a); if (e) return e; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *)o; +  if (p->__pyx_v_self) { +    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    }    return 0;  } -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_23__make_config(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config *)o; +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_15_sample_trees(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees *)o;    PyObject* tmp; -  tmp = ((PyObject*)p->__pyx_v_config); -  p->__pyx_v_config = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_info); -  p->__pyx_v_info = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_key); -  p->__pyx_v_key = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_name); -  p->__pyx_v_name = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_value); -  p->__pyx_v_value = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_t_0); -  p->__pyx_t_0 = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_t_1); -  p->__pyx_t_1 = Py_None; Py_INCREF(Py_None); +  tmp = ((PyObject*)p->__pyx_v_self); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_23__make_config[] = { +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_15_sample_trees[] = {    {0, 0, 0, 0}  }; -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_23__make_config = { +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_15_sample_trees = {    PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_23__make_config"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_23__make_config), /*tp_basicsize*/ +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_15_sample_trees"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_15_sample_trees), /*tp_basicsize*/    0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_23__make_config, /*tp_dealloc*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_15_sample_trees, /*tp_dealloc*/    0, /*tp_print*/    0, /*tp_getattr*/    0, /*tp_setattr*/ @@ -21754,13 +23057,13 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_23__make_config =    0, /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/    0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_23__make_config, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_23__make_config, /*tp_clear*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_15_sample_trees, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_15_sample_trees, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/    0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_23__make_config, /*tp_methods*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_15_sample_trees, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/    0, /*tp_base*/ @@ -21770,7 +23073,7 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_23__make_config =    0, /*tp_dictoffset*/    0, /*tp_init*/    0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_23__make_config, /*tp_new*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_15_sample_trees, /*tp_new*/    0, /*tp_free*/    0, /*tp_is_gc*/    0, /*tp_bases*/ @@ -22057,272 +23360,6 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_2__phrase = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_13___get__[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_13___get__ = 0; - -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_13___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *p; -  PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_13___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_13___get__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_13___get__]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__)); -    PyObject_INIT(o, t); -    PyObject_GC_Track(o); -  } else { -    o = (*t->tp_alloc)(t, 0); -    if (unlikely(!o)) return 0; -  } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *)o); -  p->__pyx_v_self = 0; -  return o; -} - -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_13___get__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *)o; -  PyObject_GC_UnTrack(o); -  Py_CLEAR(p->__pyx_v_self); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_13___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_13___get__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_13___get__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *)o); -  } else { -    (*Py_TYPE(o)->tp_free)(o); -  } -} - -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_13___get__(PyObject *o, visitproc v, void *a) { -  int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *)o; -  if (p->__pyx_v_self) { -    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e; -  } -  return 0; -} - -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_13___get__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__ *)o; -  PyObject* tmp; -  tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  return 0; -} - -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_13___get__[] = { -  {0, 0, 0, 0} -}; - -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_13___get__ = { -  PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_13___get__"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13___get__), /*tp_basicsize*/ -  0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_13___get__, /*tp_dealloc*/ -  0, /*tp_print*/ -  0, /*tp_getattr*/ -  0, /*tp_setattr*/ -  #if PY_MAJOR_VERSION < 3 -  0, /*tp_compare*/ -  #else -  0, /*reserved*/ -  #endif -  0, /*tp_repr*/ -  0, /*tp_as_number*/ -  0, /*tp_as_sequence*/ -  0, /*tp_as_mapping*/ -  0, /*tp_hash*/ -  0, /*tp_call*/ -  0, /*tp_str*/ -  0, /*tp_getattro*/ -  0, /*tp_setattro*/ -  0, /*tp_as_buffer*/ -  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ -  0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_13___get__, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_13___get__, /*tp_clear*/ -  0, /*tp_richcompare*/ -  0, /*tp_weaklistoffset*/ -  0, /*tp_iter*/ -  0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_13___get__, /*tp_methods*/ -  0, /*tp_members*/ -  0, /*tp_getset*/ -  0, /*tp_base*/ -  0, /*tp_dict*/ -  0, /*tp_descr_get*/ -  0, /*tp_descr_set*/ -  0, /*tp_dictoffset*/ -  0, /*tp_init*/ -  0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_13___get__, /*tp_new*/ -  0, /*tp_free*/ -  0, /*tp_is_gc*/ -  0, /*tp_bases*/ -  0, /*tp_mro*/ -  0, /*tp_cache*/ -  0, /*tp_subclasses*/ -  0, /*tp_weaklist*/ -  0, /*tp_del*/ -  #if PY_VERSION_HEX >= 0x02060000 -  0, /*tp_version_tag*/ -  #endif -}; - -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_20_lines[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_20_lines = 0; - -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_20_lines(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *p; -  PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_20_lines > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_20_lines[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_20_lines]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines)); -    PyObject_INIT(o, t); -    PyObject_GC_Track(o); -  } else { -    o = (*t->tp_alloc)(t, 0); -    if (unlikely(!o)) return 0; -  } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *)o); -  p->__pyx_outer_scope = 0; -  p->__pyx_v_delta = 0; -  p->__pyx_v_i = 0; -  p->__pyx_v_label = 0; -  p->__pyx_v_weight = 0; -  p->__pyx_t_1 = 0; -  p->__pyx_t_3 = 0; -  return o; -} - -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_20_lines(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *)o; -  PyObject_GC_UnTrack(o); -  Py_CLEAR(p->__pyx_outer_scope); -  Py_CLEAR(p->__pyx_v_delta); -  Py_CLEAR(p->__pyx_v_i); -  Py_CLEAR(p->__pyx_v_label); -  Py_CLEAR(p->__pyx_v_weight); -  Py_CLEAR(p->__pyx_t_1); -  Py_CLEAR(p->__pyx_t_3); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_20_lines < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_20_lines[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_20_lines++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *)o); -  } else { -    (*Py_TYPE(o)->tp_free)(o); -  } -} - -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_20_lines(PyObject *o, visitproc v, void *a) { -  int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *)o; -  if (p->__pyx_outer_scope) { -    e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e; -  } -  if (p->__pyx_v_delta) { -    e = (*v)(p->__pyx_v_delta, a); if (e) return e; -  } -  if (p->__pyx_v_i) { -    e = (*v)(p->__pyx_v_i, a); if (e) return e; -  } -  if (p->__pyx_v_label) { -    e = (*v)(p->__pyx_v_label, a); if (e) return e; -  } -  if (p->__pyx_v_weight) { -    e = (*v)(p->__pyx_v_weight, a); if (e) return e; -  } -  if (p->__pyx_t_1) { -    e = (*v)(p->__pyx_t_1, a); if (e) return e; -  } -  if (p->__pyx_t_3) { -    e = (*v)(p->__pyx_t_3, a); if (e) return e; -  } -  return 0; -} - -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_20_lines(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines *)o; -  PyObject* tmp; -  tmp = ((PyObject*)p->__pyx_outer_scope); -  p->__pyx_outer_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *)Py_None); Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_delta); -  p->__pyx_v_delta = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_i); -  p->__pyx_v_i = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_label); -  p->__pyx_v_label = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_weight); -  p->__pyx_v_weight = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_t_1); -  p->__pyx_t_1 = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_t_3); -  p->__pyx_t_3 = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  return 0; -} - -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_20_lines[] = { -  {0, 0, 0, 0} -}; - -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_20_lines = { -  PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_20_lines"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20_lines), /*tp_basicsize*/ -  0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_20_lines, /*tp_dealloc*/ -  0, /*tp_print*/ -  0, /*tp_getattr*/ -  0, /*tp_setattr*/ -  #if PY_MAJOR_VERSION < 3 -  0, /*tp_compare*/ -  #else -  0, /*reserved*/ -  #endif -  0, /*tp_repr*/ -  0, /*tp_as_number*/ -  0, /*tp_as_sequence*/ -  0, /*tp_as_mapping*/ -  0, /*tp_hash*/ -  0, /*tp_call*/ -  0, /*tp_str*/ -  0, /*tp_getattro*/ -  0, /*tp_setattro*/ -  0, /*tp_as_buffer*/ -  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ -  0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_20_lines, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_20_lines, /*tp_clear*/ -  0, /*tp_richcompare*/ -  0, /*tp_weaklistoffset*/ -  0, /*tp_iter*/ -  0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_20_lines, /*tp_methods*/ -  0, /*tp_members*/ -  0, /*tp_getset*/ -  0, /*tp_base*/ -  0, /*tp_dict*/ -  0, /*tp_descr_get*/ -  0, /*tp_descr_set*/ -  0, /*tp_dictoffset*/ -  0, /*tp_init*/ -  0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_20_lines, /*tp_new*/ -  0, /*tp_free*/ -  0, /*tp_is_gc*/ -  0, /*tp_bases*/ -  0, /*tp_mro*/ -  0, /*tp_cache*/ -  0, /*tp_subclasses*/ -  0, /*tp_weaklist*/ -  0, /*tp_del*/ -  #if PY_VERSION_HEX >= 0x02060000 -  0, /*tp_version_tag*/ -  #endif -}; -  static PyObject *__pyx_tp_new_4cdec_5_cdec_Scorer(PyTypeObject *t, PyObject *a, PyObject *k) {    PyObject *o;    o = (*t->tp_alloc)(t, 0); @@ -22873,14 +23910,17 @@ static PyMethodDef __pyx_methods_4cdec_5_cdec_Hypergraph[] = {    {__Pyx_NAMESTR("kbest"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_13kbest, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_12kbest)},    {__Pyx_NAMESTR("kbest_trees"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_16kbest_trees, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_15kbest_trees)},    {__Pyx_NAMESTR("kbest_features"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_19kbest_features, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_18kbest_features)}, -  {__Pyx_NAMESTR("sample"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_22sample, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_21sample)}, -  {__Pyx_NAMESTR("sample_trees"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_25sample_trees, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_24sample_trees)}, -  {__Pyx_NAMESTR("intersect"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_28intersect, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_27intersect)}, -  {__Pyx_NAMESTR("prune"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_30prune, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_29prune)}, -  {__Pyx_NAMESTR("lattice"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_32lattice, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_31lattice)}, -  {__Pyx_NAMESTR("plf"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_34plf, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_33plf)}, -  {__Pyx_NAMESTR("reweight"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_36reweight, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_35reweight)}, -  {__Pyx_NAMESTR("inside_outside"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_38inside_outside, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_37inside_outside)}, +  {__Pyx_NAMESTR("unique_kbest"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_22unique_kbest, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_21unique_kbest)}, +  {__Pyx_NAMESTR("unique_kbest_trees"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_25unique_kbest_trees, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_24unique_kbest_trees)}, +  {__Pyx_NAMESTR("unique_kbest_features"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_28unique_kbest_features, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_27unique_kbest_features)}, +  {__Pyx_NAMESTR("sample"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_31sample, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_30sample)}, +  {__Pyx_NAMESTR("sample_trees"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_34sample_trees, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_33sample_trees)}, +  {__Pyx_NAMESTR("intersect"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_37intersect, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_36intersect)}, +  {__Pyx_NAMESTR("prune"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_39prune, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_38prune)}, +  {__Pyx_NAMESTR("lattice"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_41lattice, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_40lattice)}, +  {__Pyx_NAMESTR("plf"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_43plf, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_42plf)}, +  {__Pyx_NAMESTR("reweight"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_45reweight, METH_O, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_44reweight)}, +  {__Pyx_NAMESTR("inside_outside"), (PyCFunction)__pyx_pw_4cdec_5_cdec_10Hypergraph_47inside_outside, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4cdec_5_cdec_10Hypergraph_46inside_outside)},    {0, 0, 0, 0}  }; @@ -22948,115 +23988,6 @@ static PyTypeObject __pyx_type_4cdec_5_cdec_Hypergraph = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_24___init__[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_24___init__ = 0; - -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_24___init__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *p; -  PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_24___init__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_24___init__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_24___init__]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__)); -    PyObject_INIT(o, t); -    PyObject_GC_Track(o); -  } else { -    o = (*t->tp_alloc)(t, 0); -    if (unlikely(!o)) return 0; -  } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *)o); -  p->__pyx_v_config = 0; -  return o; -} - -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_24___init__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *)o; -  PyObject_GC_UnTrack(o); -  Py_CLEAR(p->__pyx_v_config); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_24___init__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_24___init__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_24___init__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *)o); -  } else { -    (*Py_TYPE(o)->tp_free)(o); -  } -} - -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_24___init__(PyObject *o, visitproc v, void *a) { -  int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *)o; -  if (p->__pyx_v_config) { -    e = (*v)(p->__pyx_v_config, a); if (e) return e; -  } -  return 0; -} - -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_24___init__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *)o; -  PyObject* tmp; -  tmp = ((PyObject*)p->__pyx_v_config); -  p->__pyx_v_config = ((PyObject*)Py_None); Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  return 0; -} - -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_24___init__[] = { -  {0, 0, 0, 0} -}; - -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_24___init__ = { -  PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_24___init__"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__), /*tp_basicsize*/ -  0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_24___init__, /*tp_dealloc*/ -  0, /*tp_print*/ -  0, /*tp_getattr*/ -  0, /*tp_setattr*/ -  #if PY_MAJOR_VERSION < 3 -  0, /*tp_compare*/ -  #else -  0, /*reserved*/ -  #endif -  0, /*tp_repr*/ -  0, /*tp_as_number*/ -  0, /*tp_as_sequence*/ -  0, /*tp_as_mapping*/ -  0, /*tp_hash*/ -  0, /*tp_call*/ -  0, /*tp_str*/ -  0, /*tp_getattro*/ -  0, /*tp_setattro*/ -  0, /*tp_as_buffer*/ -  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ -  0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_24___init__, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_24___init__, /*tp_clear*/ -  0, /*tp_richcompare*/ -  0, /*tp_weaklistoffset*/ -  0, /*tp_iter*/ -  0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_24___init__, /*tp_methods*/ -  0, /*tp_members*/ -  0, /*tp_getset*/ -  0, /*tp_base*/ -  0, /*tp_dict*/ -  0, /*tp_descr_get*/ -  0, /*tp_descr_set*/ -  0, /*tp_dictoffset*/ -  0, /*tp_init*/ -  0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_24___init__, /*tp_new*/ -  0, /*tp_free*/ -  0, /*tp_is_gc*/ -  0, /*tp_bases*/ -  0, /*tp_mro*/ -  0, /*tp_cache*/ -  0, /*tp_subclasses*/ -  0, /*tp_weaklist*/ -  0, /*tp_del*/ -  #if PY_VERSION_HEX >= 0x02060000 -  0, /*tp_version_tag*/ -  #endif -}; -  static PyObject *__pyx_tp_new_4cdec_5_cdec_CandidateSet(PyTypeObject *t, PyObject *a, PyObject *k) {    PyObject *o;    o = (*t->tp_alloc)(t, 0); @@ -23167,89 +24098,65 @@ static PyTypeObject __pyx_type_4cdec_5_cdec_CandidateSet = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees = 0; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_22_todot[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_22_todot = 0; -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *p; +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_22_todot(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *p;    PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees)); +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_22_todot > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_22_todot[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_22_todot]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot));      PyObject_INIT(o, t);      PyObject_GC_Track(o);    } else {      o = (*t->tp_alloc)(t, 0);      if (unlikely(!o)) return 0;    } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *)o); -  p->__pyx_v_e_tree = 0; -  p->__pyx_v_f_tree = 0; +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *)o);    p->__pyx_v_self = 0; -  p->__pyx_v_size = 0;    return o;  } -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *)o; +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_22_todot(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *)o;    PyObject_GC_UnTrack(o); -  Py_CLEAR(p->__pyx_v_e_tree); -  Py_CLEAR(p->__pyx_v_f_tree);    Py_CLEAR(p->__pyx_v_self); -  Py_CLEAR(p->__pyx_v_size); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *)o); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_22_todot < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_22_todot[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_22_todot++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *)o);    } else {      (*Py_TYPE(o)->tp_free)(o);    }  } -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees(PyObject *o, visitproc v, void *a) { +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_22_todot(PyObject *o, visitproc v, void *a) {    int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *)o; -  if (p->__pyx_v_e_tree) { -    e = (*v)(p->__pyx_v_e_tree, a); if (e) return e; -  } -  if (p->__pyx_v_f_tree) { -    e = (*v)(p->__pyx_v_f_tree, a); if (e) return e; -  } +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *)o;    if (p->__pyx_v_self) {      e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    } -  if (p->__pyx_v_size) { -    e = (*v)(p->__pyx_v_size, a); if (e) return e; -  }    return 0;  } -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *)o; +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_22_todot(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot *)o;    PyObject* tmp; -  tmp = ((PyObject*)p->__pyx_v_e_tree); -  p->__pyx_v_e_tree = ((PyObject*)Py_None); Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_f_tree); -  p->__pyx_v_f_tree = ((PyObject*)Py_None); Py_INCREF(Py_None); -  Py_XDECREF(tmp);    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None); -  Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_size); -  p->__pyx_v_size = Py_None; Py_INCREF(Py_None); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Lattice *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees[] = { +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_22_todot[] = {    {0, 0, 0, 0}  }; -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees = { +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_22_todot = {    PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_9_kbest_trees"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees), /*tp_basicsize*/ +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_22_todot"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_22_todot), /*tp_basicsize*/    0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees, /*tp_dealloc*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_22_todot, /*tp_dealloc*/    0, /*tp_print*/    0, /*tp_getattr*/    0, /*tp_setattr*/ @@ -23270,13 +24177,13 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees = {    0, /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/    0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees, /*tp_clear*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_22_todot, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_22_todot, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/    0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees, /*tp_methods*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_22_todot, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/    0, /*tp_base*/ @@ -23286,7 +24193,7 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees = {    0, /*tp_dictoffset*/    0, /*tp_init*/    0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees, /*tp_new*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_22_todot, /*tp_new*/    0, /*tp_free*/    0, /*tp_is_gc*/    0, /*tp_bases*/ @@ -23300,65 +24207,89 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_19_todot[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_19_todot = 0; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees = 0; -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_19_todot(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *p; +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *p;    PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_19_todot > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_19_todot[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_19_todot]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot)); +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees));      PyObject_INIT(o, t);      PyObject_GC_Track(o);    } else {      o = (*t->tp_alloc)(t, 0);      if (unlikely(!o)) return 0;    } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *)o); +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *)o); +  p->__pyx_v_e_tree = 0; +  p->__pyx_v_f_tree = 0;    p->__pyx_v_self = 0; +  p->__pyx_v_size = 0;    return o;  } -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_19_todot(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *)o; +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *)o;    PyObject_GC_UnTrack(o); +  Py_CLEAR(p->__pyx_v_e_tree); +  Py_CLEAR(p->__pyx_v_f_tree);    Py_CLEAR(p->__pyx_v_self); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_19_todot < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_19_todot[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_19_todot++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *)o); +  Py_CLEAR(p->__pyx_v_size); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *)o);    } else {      (*Py_TYPE(o)->tp_free)(o);    }  } -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_19_todot(PyObject *o, visitproc v, void *a) { +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees(PyObject *o, visitproc v, void *a) {    int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *)o; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *)o; +  if (p->__pyx_v_e_tree) { +    e = (*v)(p->__pyx_v_e_tree, a); if (e) return e; +  } +  if (p->__pyx_v_f_tree) { +    e = (*v)(p->__pyx_v_f_tree, a); if (e) return e; +  }    if (p->__pyx_v_self) {      e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    } +  if (p->__pyx_v_size) { +    e = (*v)(p->__pyx_v_size, a); if (e) return e; +  }    return 0;  } -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_19_todot(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot *)o; +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees *)o;    PyObject* tmp; +  tmp = ((PyObject*)p->__pyx_v_e_tree); +  p->__pyx_v_e_tree = ((PyObject*)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_f_tree); +  p->__pyx_v_f_tree = ((PyObject*)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp);    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Lattice *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_size); +  p->__pyx_v_size = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_19_todot[] = { +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees[] = {    {0, 0, 0, 0}  }; -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_19_todot = { +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees = {    PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_19_todot"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19_todot), /*tp_basicsize*/ +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_9_kbest_trees"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees), /*tp_basicsize*/    0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_19_todot, /*tp_dealloc*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees, /*tp_dealloc*/    0, /*tp_print*/    0, /*tp_getattr*/    0, /*tp_setattr*/ @@ -23379,13 +24310,13 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_19_todot = {    0, /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/    0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_19_todot, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_19_todot, /*tp_clear*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/    0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_19_todot, /*tp_methods*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/    0, /*tp_base*/ @@ -23395,7 +24326,7 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_19_todot = {    0, /*tp_dictoffset*/    0, /*tp_init*/    0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_19_todot, /*tp_new*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees, /*tp_new*/    0, /*tp_free*/    0, /*tp_is_gc*/    0, /*tp_bases*/ @@ -23644,7 +24575,7 @@ static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_16___get__(PyObject *o    struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_16___get__ *)o;    PyObject* tmp;    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } @@ -23709,81 +24640,190 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_16___get__ = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_25_genexpr[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_25_genexpr = 0; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_20___get__[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_20___get__ = 0; -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_25_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *p; +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_20___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *p;    PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_25_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_25_genexpr[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_25_genexpr]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr)); +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_20___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_20___get__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_20___get__]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__));      PyObject_INIT(o, t);      PyObject_GC_Track(o);    } else {      o = (*t->tp_alloc)(t, 0);      if (unlikely(!o)) return 0;    } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *)o); -  p->__pyx_outer_scope = 0; -  p->__pyx_v_kv = 0; -  p->__pyx_t_0 = 0; +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *)o); +  p->__pyx_v_self = 0;    return o;  } -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_25_genexpr(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *)o; +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_20___get__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *)o;    PyObject_GC_UnTrack(o); -  Py_CLEAR(p->__pyx_outer_scope); -  Py_CLEAR(p->__pyx_v_kv); -  Py_CLEAR(p->__pyx_t_0); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_25_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_25_genexpr[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_25_genexpr++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *)o); +  Py_CLEAR(p->__pyx_v_self); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_20___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_20___get__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_20___get__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *)o);    } else {      (*Py_TYPE(o)->tp_free)(o);    }  } -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_25_genexpr(PyObject *o, visitproc v, void *a) { +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_20___get__(PyObject *o, visitproc v, void *a) {    int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *)o; -  if (p->__pyx_outer_scope) { -    e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *)o; +  if (p->__pyx_v_self) { +    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    } -  if (p->__pyx_v_kv) { -    e = (*v)(p->__pyx_v_kv, a); if (e) return e; +  return 0; +} + +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_20___get__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__ *)o; +  PyObject* tmp; +  tmp = ((PyObject*)p->__pyx_v_self); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  return 0; +} + +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_20___get__[] = { +  {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_20___get__ = { +  PyVarObject_HEAD_INIT(0, 0) +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_20___get__"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_20___get__), /*tp_basicsize*/ +  0, /*tp_itemsize*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_20___get__, /*tp_dealloc*/ +  0, /*tp_print*/ +  0, /*tp_getattr*/ +  0, /*tp_setattr*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*tp_compare*/ +  #else +  0, /*reserved*/ +  #endif +  0, /*tp_repr*/ +  0, /*tp_as_number*/ +  0, /*tp_as_sequence*/ +  0, /*tp_as_mapping*/ +  0, /*tp_hash*/ +  0, /*tp_call*/ +  0, /*tp_str*/ +  0, /*tp_getattro*/ +  0, /*tp_setattro*/ +  0, /*tp_as_buffer*/ +  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ +  0, /*tp_doc*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_20___get__, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_20___get__, /*tp_clear*/ +  0, /*tp_richcompare*/ +  0, /*tp_weaklistoffset*/ +  0, /*tp_iter*/ +  0, /*tp_iternext*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_20___get__, /*tp_methods*/ +  0, /*tp_members*/ +  0, /*tp_getset*/ +  0, /*tp_base*/ +  0, /*tp_dict*/ +  0, /*tp_descr_get*/ +  0, /*tp_descr_set*/ +  0, /*tp_dictoffset*/ +  0, /*tp_init*/ +  0, /*tp_alloc*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_20___get__, /*tp_new*/ +  0, /*tp_free*/ +  0, /*tp_is_gc*/ +  0, /*tp_bases*/ +  0, /*tp_mro*/ +  0, /*tp_cache*/ +  0, /*tp_subclasses*/ +  0, /*tp_weaklist*/ +  0, /*tp_del*/ +  #if PY_VERSION_HEX >= 0x02060000 +  0, /*tp_version_tag*/ +  #endif +}; + +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features = 0; + +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *p; +  PyObject *o; +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features)); +    PyObject_INIT(o, t); +    PyObject_GC_Track(o); +  } else { +    o = (*t->tp_alloc)(t, 0); +    if (unlikely(!o)) return 0;    } -  if (p->__pyx_t_0) { -    e = (*v)(p->__pyx_t_0, a); if (e) return e; +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *)o); +  p->__pyx_v_fmap = 0; +  p->__pyx_v_self = 0; +  p->__pyx_v_size = 0; +  return o; +} + +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *)o; +  PyObject_GC_UnTrack(o); +  Py_CLEAR(p->__pyx_v_fmap); +  Py_CLEAR(p->__pyx_v_self); +  Py_CLEAR(p->__pyx_v_size); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *)o); +  } else { +    (*Py_TYPE(o)->tp_free)(o); +  } +} + +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features(PyObject *o, visitproc v, void *a) { +  int e; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *)o; +  if (p->__pyx_v_fmap) { +    e = (*v)(((PyObject*)p->__pyx_v_fmap), a); if (e) return e; +  } +  if (p->__pyx_v_self) { +    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e; +  } +  if (p->__pyx_v_size) { +    e = (*v)(p->__pyx_v_size, a); if (e) return e;    }    return 0;  } -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_25_genexpr(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr *)o; +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features *)o;    PyObject* tmp; -  tmp = ((PyObject*)p->__pyx_outer_scope); -  p->__pyx_outer_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_24___init__ *)Py_None); Py_INCREF(Py_None); +  tmp = ((PyObject*)p->__pyx_v_fmap); +  p->__pyx_v_fmap = ((struct __pyx_obj_4cdec_5_cdec_SparseVector *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_kv); -  p->__pyx_v_kv = Py_None; Py_INCREF(Py_None); +  tmp = ((PyObject*)p->__pyx_v_self); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_t_0); -  p->__pyx_t_0 = Py_None; Py_INCREF(Py_None); +  tmp = ((PyObject*)p->__pyx_v_size); +  p->__pyx_v_size = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_25_genexpr[] = { +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features[] = {    {0, 0, 0, 0}  }; -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_25_genexpr = { +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features = {    PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_25_genexpr"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25_genexpr), /*tp_basicsize*/ +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_13_unique_kbest_features"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features), /*tp_basicsize*/    0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_25_genexpr, /*tp_dealloc*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features, /*tp_dealloc*/    0, /*tp_print*/    0, /*tp_getattr*/    0, /*tp_setattr*/ @@ -23804,13 +24844,13 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_25_genexpr = {    0, /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/    0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_25_genexpr, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_25_genexpr, /*tp_clear*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/    0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_25_genexpr, /*tp_methods*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/    0, /*tp_base*/ @@ -23820,7 +24860,7 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_25_genexpr = {    0, /*tp_dictoffset*/    0, /*tp_init*/    0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_25_genexpr, /*tp_new*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features, /*tp_new*/    0, /*tp_free*/    0, /*tp_is_gc*/    0, /*tp_bases*/ @@ -23834,49 +24874,49 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_25_genexpr = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_3_genexpr[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_3_genexpr = 0; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_28_genexpr[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_28_genexpr = 0; -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_3_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *p; +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_28_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *p;    PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_3_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_3_genexpr[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_3_genexpr]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr)); +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_28_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_28_genexpr[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_28_genexpr]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr));      PyObject_INIT(o, t);      PyObject_GC_Track(o);    } else {      o = (*t->tp_alloc)(t, 0);      if (unlikely(!o)) return 0;    } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *)o); +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *)o);    p->__pyx_outer_scope = 0; -  p->__pyx_v_w = 0; +  p->__pyx_v_kv = 0;    p->__pyx_t_0 = 0;    return o;  } -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_3_genexpr(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *)o; +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_28_genexpr(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *)o;    PyObject_GC_UnTrack(o);    Py_CLEAR(p->__pyx_outer_scope); -  Py_CLEAR(p->__pyx_v_w); +  Py_CLEAR(p->__pyx_v_kv);    Py_CLEAR(p->__pyx_t_0); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_3_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_3_genexpr[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_3_genexpr++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *)o); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_28_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_28_genexpr[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_28_genexpr++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *)o);    } else {      (*Py_TYPE(o)->tp_free)(o);    }  } -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_3_genexpr(PyObject *o, visitproc v, void *a) { +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_28_genexpr(PyObject *o, visitproc v, void *a) {    int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *)o; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *)o;    if (p->__pyx_outer_scope) {      e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e;    } -  if (p->__pyx_v_w) { -    e = (*v)(p->__pyx_v_w, a); if (e) return e; +  if (p->__pyx_v_kv) { +    e = (*v)(p->__pyx_v_kv, a); if (e) return e;    }    if (p->__pyx_t_0) {      e = (*v)(p->__pyx_t_0, a); if (e) return e; @@ -23884,14 +24924,14 @@ static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_3_genexpr(PyObject    return 0;  } -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_3_genexpr(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *)o; +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_28_genexpr(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr *)o;    PyObject* tmp;    tmp = ((PyObject*)p->__pyx_outer_scope); -  p->__pyx_outer_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_2__phrase *)Py_None); Py_INCREF(Py_None); +  p->__pyx_outer_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_27___init__ *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_v_w); -  p->__pyx_v_w = Py_None; Py_INCREF(Py_None); +  tmp = ((PyObject*)p->__pyx_v_kv); +  p->__pyx_v_kv = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    tmp = ((PyObject*)p->__pyx_t_0);    p->__pyx_t_0 = Py_None; Py_INCREF(Py_None); @@ -23899,16 +24939,16 @@ static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_3_genexpr(PyObject *o)    return 0;  } -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_3_genexpr[] = { +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_28_genexpr[] = {    {0, 0, 0, 0}  }; -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_3_genexpr = { +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_28_genexpr = {    PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_3_genexpr"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr), /*tp_basicsize*/ +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_28_genexpr"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_28_genexpr), /*tp_basicsize*/    0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_3_genexpr, /*tp_dealloc*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_28_genexpr, /*tp_dealloc*/    0, /*tp_print*/    0, /*tp_getattr*/    0, /*tp_setattr*/ @@ -23929,13 +24969,13 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_3_genexpr = {    0, /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/    0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_3_genexpr, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_3_genexpr, /*tp_clear*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_28_genexpr, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_28_genexpr, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/    0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_3_genexpr, /*tp_methods*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_28_genexpr, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/    0, /*tp_base*/ @@ -23945,7 +24985,7 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_3_genexpr = {    0, /*tp_dictoffset*/    0, /*tp_init*/    0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_3_genexpr, /*tp_new*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_28_genexpr, /*tp_new*/    0, /*tp_free*/    0, /*tp_is_gc*/    0, /*tp_bases*/ @@ -23959,65 +24999,81 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_3_genexpr = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_11_sample[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_11_sample = 0; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_3_genexpr[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_3_genexpr = 0; -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_11_sample(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *p; +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_3_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *p;    PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_11_sample > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_11_sample[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_11_sample]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample)); +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_3_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_3_genexpr[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_3_genexpr]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr));      PyObject_INIT(o, t);      PyObject_GC_Track(o);    } else {      o = (*t->tp_alloc)(t, 0);      if (unlikely(!o)) return 0;    } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *)o); -  p->__pyx_v_self = 0; +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *)o); +  p->__pyx_outer_scope = 0; +  p->__pyx_v_w = 0; +  p->__pyx_t_0 = 0;    return o;  } -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_11_sample(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *)o; +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_3_genexpr(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *)o;    PyObject_GC_UnTrack(o); -  Py_CLEAR(p->__pyx_v_self); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_11_sample < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_11_sample[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_11_sample++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *)o); +  Py_CLEAR(p->__pyx_outer_scope); +  Py_CLEAR(p->__pyx_v_w); +  Py_CLEAR(p->__pyx_t_0); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_3_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_3_genexpr[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_3_genexpr++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *)o);    } else {      (*Py_TYPE(o)->tp_free)(o);    }  } -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_11_sample(PyObject *o, visitproc v, void *a) { +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_3_genexpr(PyObject *o, visitproc v, void *a) {    int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *)o; -  if (p->__pyx_v_self) { -    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *)o; +  if (p->__pyx_outer_scope) { +    e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e; +  } +  if (p->__pyx_v_w) { +    e = (*v)(p->__pyx_v_w, a); if (e) return e; +  } +  if (p->__pyx_t_0) { +    e = (*v)(p->__pyx_t_0, a); if (e) return e;    }    return 0;  } -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_11_sample(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample *)o; +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_3_genexpr(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr *)o;    PyObject* tmp; -  tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None); +  tmp = ((PyObject*)p->__pyx_outer_scope); +  p->__pyx_outer_scope = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_2__phrase *)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_w); +  p->__pyx_v_w = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_t_0); +  p->__pyx_t_0 = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_11_sample[] = { +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_3_genexpr[] = {    {0, 0, 0, 0}  }; -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_11_sample = { +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_3_genexpr = {    PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_11_sample"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_11_sample), /*tp_basicsize*/ +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_3_genexpr"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_3_genexpr), /*tp_basicsize*/    0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_11_sample, /*tp_dealloc*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_3_genexpr, /*tp_dealloc*/    0, /*tp_print*/    0, /*tp_getattr*/    0, /*tp_setattr*/ @@ -24038,13 +25094,13 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_11_sample = {    0, /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/    0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_11_sample, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_11_sample, /*tp_clear*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_3_genexpr, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_3_genexpr, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/    0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_11_sample, /*tp_methods*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_3_genexpr, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/    0, /*tp_base*/ @@ -24054,7 +25110,7 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_11_sample = {    0, /*tp_dictoffset*/    0, /*tp_init*/    0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_11_sample, /*tp_new*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_3_genexpr, /*tp_new*/    0, /*tp_free*/    0, /*tp_is_gc*/    0, /*tp_bases*/ @@ -24185,65 +25241,65 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_8_kbest = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_14___get__[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_14___get__ = 0; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_18___get__[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_18___get__ = 0; -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_14___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *p; +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_18___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *p;    PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_14___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_14___get__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_14___get__]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__)); +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_18___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_18___get__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_18___get__]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__));      PyObject_INIT(o, t);      PyObject_GC_Track(o);    } else {      o = (*t->tp_alloc)(t, 0);      if (unlikely(!o)) return 0;    } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *)o); +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *)o);    p->__pyx_v_self = 0;    return o;  } -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_14___get__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *)o; +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_18___get__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *)o;    PyObject_GC_UnTrack(o);    Py_CLEAR(p->__pyx_v_self); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_14___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_14___get__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_14___get__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *)o); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_18___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_18___get__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_18___get__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *)o);    } else {      (*Py_TYPE(o)->tp_free)(o);    }  } -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_14___get__(PyObject *o, visitproc v, void *a) { +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_18___get__(PyObject *o, visitproc v, void *a) {    int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *)o; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *)o;    if (p->__pyx_v_self) {      e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    }    return 0;  } -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_14___get__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__ *)o; +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_18___get__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__ *)o;    PyObject* tmp;    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_14___get__[] = { +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_18___get__[] = {    {0, 0, 0, 0}  }; -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_14___get__ = { +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_18___get__ = {    PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_14___get__"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14___get__), /*tp_basicsize*/ +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_18___get__"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___get__), /*tp_basicsize*/    0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_14___get__, /*tp_dealloc*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_18___get__, /*tp_dealloc*/    0, /*tp_print*/    0, /*tp_getattr*/    0, /*tp_setattr*/ @@ -24264,13 +25320,13 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_14___get__ = {    0, /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/    0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_14___get__, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_14___get__, /*tp_clear*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_18___get__, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_18___get__, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/    0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_14___get__, /*tp_methods*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_18___get__, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/    0, /*tp_base*/ @@ -24280,7 +25336,7 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_14___get__ = {    0, /*tp_dictoffset*/    0, /*tp_init*/    0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_14___get__, /*tp_new*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_18___get__, /*tp_new*/    0, /*tp_free*/    0, /*tp_is_gc*/    0, /*tp_bases*/ @@ -24411,6 +25467,115 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_7___iter__ = {    #endif  }; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_19___get__[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_19___get__ = 0; + +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_19___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *p; +  PyObject *o; +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_19___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_19___get__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_19___get__]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__)); +    PyObject_INIT(o, t); +    PyObject_GC_Track(o); +  } else { +    o = (*t->tp_alloc)(t, 0); +    if (unlikely(!o)) return 0; +  } +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *)o); +  p->__pyx_v_self = 0; +  return o; +} + +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_19___get__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *)o; +  PyObject_GC_UnTrack(o); +  Py_CLEAR(p->__pyx_v_self); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_19___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_19___get__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_19___get__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *)o); +  } else { +    (*Py_TYPE(o)->tp_free)(o); +  } +} + +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_19___get__(PyObject *o, visitproc v, void *a) { +  int e; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *)o; +  if (p->__pyx_v_self) { +    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e; +  } +  return 0; +} + +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_19___get__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__ *)o; +  PyObject* tmp; +  tmp = ((PyObject*)p->__pyx_v_self); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  return 0; +} + +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_19___get__[] = { +  {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_19___get__ = { +  PyVarObject_HEAD_INIT(0, 0) +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_19___get__"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_19___get__), /*tp_basicsize*/ +  0, /*tp_itemsize*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_19___get__, /*tp_dealloc*/ +  0, /*tp_print*/ +  0, /*tp_getattr*/ +  0, /*tp_setattr*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*tp_compare*/ +  #else +  0, /*reserved*/ +  #endif +  0, /*tp_repr*/ +  0, /*tp_as_number*/ +  0, /*tp_as_sequence*/ +  0, /*tp_as_mapping*/ +  0, /*tp_hash*/ +  0, /*tp_call*/ +  0, /*tp_str*/ +  0, /*tp_getattro*/ +  0, /*tp_setattro*/ +  0, /*tp_as_buffer*/ +  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ +  0, /*tp_doc*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_19___get__, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_19___get__, /*tp_clear*/ +  0, /*tp_richcompare*/ +  0, /*tp_weaklistoffset*/ +  0, /*tp_iter*/ +  0, /*tp_iternext*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_19___get__, /*tp_methods*/ +  0, /*tp_members*/ +  0, /*tp_getset*/ +  0, /*tp_base*/ +  0, /*tp_dict*/ +  0, /*tp_descr_get*/ +  0, /*tp_descr_set*/ +  0, /*tp_dictoffset*/ +  0, /*tp_init*/ +  0, /*tp_alloc*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_19___get__, /*tp_new*/ +  0, /*tp_free*/ +  0, /*tp_is_gc*/ +  0, /*tp_bases*/ +  0, /*tp_mro*/ +  0, /*tp_cache*/ +  0, /*tp_subclasses*/ +  0, /*tp_weaklist*/ +  0, /*tp_del*/ +  #if PY_VERSION_HEX >= 0x02060000 +  0, /*tp_version_tag*/ +  #endif +}; +  static PyObject *__pyx_tp_new_4cdec_5_cdec_TextGrammar(PyTypeObject *t, PyObject *a, PyObject *k) {    PyObject *o = __pyx_tp_new_4cdec_5_cdec_Grammar(t, a, k);    if (unlikely(!o)) return 0; @@ -24481,6 +25646,115 @@ static PyTypeObject __pyx_type_4cdec_5_cdec_TextGrammar = {    #endif  }; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_25___iter__[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_25___iter__ = 0; + +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_25___iter__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *p; +  PyObject *o; +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_25___iter__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_25___iter__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_25___iter__]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__)); +    PyObject_INIT(o, t); +    PyObject_GC_Track(o); +  } else { +    o = (*t->tp_alloc)(t, 0); +    if (unlikely(!o)) return 0; +  } +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *)o); +  p->__pyx_v_self = 0; +  return o; +} + +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_25___iter__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *)o; +  PyObject_GC_UnTrack(o); +  Py_CLEAR(p->__pyx_v_self); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_25___iter__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_25___iter__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_25___iter__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *)o); +  } else { +    (*Py_TYPE(o)->tp_free)(o); +  } +} + +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_25___iter__(PyObject *o, visitproc v, void *a) { +  int e; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *)o; +  if (p->__pyx_v_self) { +    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e; +  } +  return 0; +} + +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_25___iter__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__ *)o; +  PyObject* tmp; +  tmp = ((PyObject*)p->__pyx_v_self); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_CandidateSet *)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  return 0; +} + +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_25___iter__[] = { +  {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_25___iter__ = { +  PyVarObject_HEAD_INIT(0, 0) +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_25___iter__"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_25___iter__), /*tp_basicsize*/ +  0, /*tp_itemsize*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_25___iter__, /*tp_dealloc*/ +  0, /*tp_print*/ +  0, /*tp_getattr*/ +  0, /*tp_setattr*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*tp_compare*/ +  #else +  0, /*reserved*/ +  #endif +  0, /*tp_repr*/ +  0, /*tp_as_number*/ +  0, /*tp_as_sequence*/ +  0, /*tp_as_mapping*/ +  0, /*tp_hash*/ +  0, /*tp_call*/ +  0, /*tp_str*/ +  0, /*tp_getattro*/ +  0, /*tp_setattro*/ +  0, /*tp_as_buffer*/ +  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ +  0, /*tp_doc*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_25___iter__, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_25___iter__, /*tp_clear*/ +  0, /*tp_richcompare*/ +  0, /*tp_weaklistoffset*/ +  0, /*tp_iter*/ +  0, /*tp_iternext*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_25___iter__, /*tp_methods*/ +  0, /*tp_members*/ +  0, /*tp_getset*/ +  0, /*tp_base*/ +  0, /*tp_dict*/ +  0, /*tp_descr_get*/ +  0, /*tp_descr_set*/ +  0, /*tp_dictoffset*/ +  0, /*tp_init*/ +  0, /*tp_alloc*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_25___iter__, /*tp_new*/ +  0, /*tp_free*/ +  0, /*tp_is_gc*/ +  0, /*tp_bases*/ +  0, /*tp_mro*/ +  0, /*tp_cache*/ +  0, /*tp_subclasses*/ +  0, /*tp_weaklist*/ +  0, /*tp_del*/ +  #if PY_VERSION_HEX >= 0x02060000 +  0, /*tp_version_tag*/ +  #endif +}; +  static PyObject *__pyx_tp_new_4cdec_5_cdec_Decoder(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {    struct __pyx_obj_4cdec_5_cdec_Decoder *p;    PyObject *o; @@ -24720,65 +25994,65 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct____iter__ = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_17___get__[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_17___get__ = 0; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_14_sample[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_14_sample = 0; -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_17___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *p; +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_14_sample(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *p;    PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_17___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_17___get__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_17___get__]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__)); +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_14_sample > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_14_sample[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_14_sample]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample));      PyObject_INIT(o, t);      PyObject_GC_Track(o);    } else {      o = (*t->tp_alloc)(t, 0);      if (unlikely(!o)) return 0;    } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)o); +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *)o);    p->__pyx_v_self = 0;    return o;  } -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_17___get__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)o; +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_14_sample(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *)o;    PyObject_GC_UnTrack(o);    Py_CLEAR(p->__pyx_v_self); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_17___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_17___get__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_17___get__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)o); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_14_sample < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_14_sample[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_14_sample++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *)o);    } else {      (*Py_TYPE(o)->tp_free)(o);    }  } -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_17___get__(PyObject *o, visitproc v, void *a) { +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_14_sample(PyObject *o, visitproc v, void *a) {    int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)o; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *)o;    if (p->__pyx_v_self) {      e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    }    return 0;  } -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_17___get__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)o; +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_14_sample(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample *)o;    PyObject* tmp;    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_HypergraphNode *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_17___get__[] = { +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_14_sample[] = {    {0, 0, 0, 0}  }; -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_17___get__ = { +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_14_sample = {    PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_17___get__"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__), /*tp_basicsize*/ +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_14_sample"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_14_sample), /*tp_basicsize*/    0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_17___get__, /*tp_dealloc*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_14_sample, /*tp_dealloc*/    0, /*tp_print*/    0, /*tp_getattr*/    0, /*tp_setattr*/ @@ -24799,13 +26073,13 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_17___get__ = {    0, /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/    0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_17___get__, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_17___get__, /*tp_clear*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_14_sample, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_14_sample, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/    0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_17___get__, /*tp_methods*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_14_sample, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/    0, /*tp_base*/ @@ -24815,7 +26089,7 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_17___get__ = {    0, /*tp_dictoffset*/    0, /*tp_init*/    0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_17___get__, /*tp_new*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_14_sample, /*tp_new*/    0, /*tp_free*/    0, /*tp_is_gc*/    0, /*tp_bases*/ @@ -24829,65 +26103,65 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_17___get__ = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_18___iter__[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_18___iter__ = 0; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_17___get__[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_17___get__ = 0; -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_18___iter__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *p; +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_17___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *p;    PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_18___iter__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_18___iter__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_18___iter__]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__)); +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_17___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_17___get__[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_17___get__]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__));      PyObject_INIT(o, t);      PyObject_GC_Track(o);    } else {      o = (*t->tp_alloc)(t, 0);      if (unlikely(!o)) return 0;    } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *)o); +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)o);    p->__pyx_v_self = 0;    return o;  } -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_18___iter__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *)o; +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_17___get__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)o;    PyObject_GC_UnTrack(o);    Py_CLEAR(p->__pyx_v_self); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_18___iter__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_18___iter__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_18___iter__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *)o); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_17___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_17___get__[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_17___get__++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)o);    } else {      (*Py_TYPE(o)->tp_free)(o);    }  } -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_18___iter__(PyObject *o, visitproc v, void *a) { +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_17___get__(PyObject *o, visitproc v, void *a) {    int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *)o; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)o;    if (p->__pyx_v_self) {      e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    }    return 0;  } -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_18___iter__(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__ *)o; +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_17___get__(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__ *)o;    PyObject* tmp;    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Lattice *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_18___iter__[] = { +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_17___get__[] = {    {0, 0, 0, 0}  }; -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_18___iter__ = { +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_17___get__ = {    PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_18___iter__"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_18___iter__), /*tp_basicsize*/ +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_17___get__"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_17___get__), /*tp_basicsize*/    0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_18___iter__, /*tp_dealloc*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_17___get__, /*tp_dealloc*/    0, /*tp_print*/    0, /*tp_getattr*/    0, /*tp_setattr*/ @@ -24908,13 +26182,13 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_18___iter__ = {    0, /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/    0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_18___iter__, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_18___iter__, /*tp_clear*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_17___get__, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_17___get__, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/    0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_18___iter__, /*tp_methods*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_17___get__, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/    0, /*tp_base*/ @@ -24924,7 +26198,7 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_18___iter__ = {    0, /*tp_dictoffset*/    0, /*tp_init*/    0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_18___iter__, /*tp_new*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_17___get__, /*tp_new*/    0, /*tp_free*/    0, /*tp_is_gc*/    0, /*tp_bases*/ @@ -25063,65 +26337,89 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_6_genexpr = {    #endif  }; -static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_12_sample_trees[8]; -static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_12_sample_trees = 0; +static struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees[8]; +static int __pyx_freecount_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees = 0; -static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_12_sample_trees(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *p; +static PyObject *__pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *p;    PyObject *o; -  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_12_sample_trees > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees)))) { -    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_12_sample_trees[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_12_sample_trees]; -    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees)); +  if (likely((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees)))) { +    o = (PyObject*)__pyx_freelist_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees[--__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees]; +    memset(o, 0, sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees));      PyObject_INIT(o, t);      PyObject_GC_Track(o);    } else {      o = (*t->tp_alloc)(t, 0);      if (unlikely(!o)) return 0;    } -  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *)o); +  p = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *)o); +  p->__pyx_v_e_tree = 0; +  p->__pyx_v_f_tree = 0;    p->__pyx_v_self = 0; +  p->__pyx_v_size = 0;    return o;  } -static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_12_sample_trees(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *)o; +static void __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *)o;    PyObject_GC_UnTrack(o); +  Py_CLEAR(p->__pyx_v_e_tree); +  Py_CLEAR(p->__pyx_v_f_tree);    Py_CLEAR(p->__pyx_v_self); -  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_12_sample_trees < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees))) { -    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_12_sample_trees[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_12_sample_trees++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *)o); +  Py_CLEAR(p->__pyx_v_size); +  if ((__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees))) { +    __pyx_freelist_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees[__pyx_freecount_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees++] = ((struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *)o);    } else {      (*Py_TYPE(o)->tp_free)(o);    }  } -static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_12_sample_trees(PyObject *o, visitproc v, void *a) { +static int __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees(PyObject *o, visitproc v, void *a) {    int e; -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *)o; +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *)o; +  if (p->__pyx_v_e_tree) { +    e = (*v)(p->__pyx_v_e_tree, a); if (e) return e; +  } +  if (p->__pyx_v_f_tree) { +    e = (*v)(p->__pyx_v_f_tree, a); if (e) return e; +  }    if (p->__pyx_v_self) {      e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    } +  if (p->__pyx_v_size) { +    e = (*v)(p->__pyx_v_size, a); if (e) return e; +  }    return 0;  } -static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_12_sample_trees(PyObject *o) { -  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees *)o; +static int __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees(PyObject *o) { +  struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *p = (struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees *)o;    PyObject* tmp; +  tmp = ((PyObject*)p->__pyx_v_e_tree); +  p->__pyx_v_e_tree = ((PyObject*)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_f_tree); +  p->__pyx_v_f_tree = ((PyObject*)Py_None); Py_INCREF(Py_None); +  Py_XDECREF(tmp);    tmp = ((PyObject*)p->__pyx_v_self);    p->__pyx_v_self = ((struct __pyx_obj_4cdec_5_cdec_Hypergraph *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp); +  tmp = ((PyObject*)p->__pyx_v_size); +  p->__pyx_v_size = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp);    return 0;  } -static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_12_sample_trees[] = { +static PyMethodDef __pyx_methods_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees[] = {    {0, 0, 0, 0}  }; -static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_12_sample_trees = { +static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees = {    PyVarObject_HEAD_INIT(0, 0) -  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_12_sample_trees"), /*tp_name*/ -  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_sample_trees), /*tp_basicsize*/ +  __Pyx_NAMESTR("cdec._cdec.__pyx_scope_struct_12_unique_kbest_trees"), /*tp_name*/ +  sizeof(struct __pyx_obj_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees), /*tp_basicsize*/    0, /*tp_itemsize*/ -  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_12_sample_trees, /*tp_dealloc*/ +  __pyx_tp_dealloc_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees, /*tp_dealloc*/    0, /*tp_print*/    0, /*tp_getattr*/    0, /*tp_setattr*/ @@ -25142,13 +26440,13 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_12_sample_trees =    0, /*tp_as_buffer*/    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/    0, /*tp_doc*/ -  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_12_sample_trees, /*tp_traverse*/ -  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_12_sample_trees, /*tp_clear*/ +  __pyx_tp_traverse_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees, /*tp_traverse*/ +  __pyx_tp_clear_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/    0, /*tp_iternext*/ -  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_12_sample_trees, /*tp_methods*/ +  __pyx_methods_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/    0, /*tp_base*/ @@ -25158,7 +26456,7 @@ static PyTypeObject __pyx_type_4cdec_5_cdec___pyx_scope_struct_12_sample_trees =    0, /*tp_dictoffset*/    0, /*tp_init*/    0, /*tp_alloc*/ -  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_12_sample_trees, /*tp_new*/ +  __pyx_tp_new_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees, /*tp_new*/    0, /*tp_free*/    0, /*tp_is_gc*/    0, /*tp_bases*/ @@ -25550,6 +26848,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {    {&__pyx_n_s__strip, __pyx_k__strip, sizeof(__pyx_k__strip), 0, 0, 1, 1},    {&__pyx_n_s__super, __pyx_k__super, sizeof(__pyx_k__super), 0, 0, 1, 1},    {&__pyx_n_s__tagger, __pyx_k__tagger, sizeof(__pyx_k__tagger), 0, 0, 1, 1}, +  {&__pyx_n_s__text, __pyx_k__text, sizeof(__pyx_k__text), 0, 0, 1, 1},    {&__pyx_n_s__throw, __pyx_k__throw, sizeof(__pyx_k__throw), 0, 0, 1, 1},    {&__pyx_n_s__utf8, __pyx_k__utf8, sizeof(__pyx_k__utf8), 0, 0, 1, 1},    {&__pyx_n_s__value, __pyx_k__value, sizeof(__pyx_k__value), 0, 0, 1, 1}, @@ -25563,9 +26862,9 @@ static int __Pyx_InitCachedBuiltins(void) {    __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s__KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_NotImplemented = __Pyx_GetBuiltinName(__pyx_n_s__NotImplemented); if (!__pyx_builtin_NotImplemented) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s__super); if (!__pyx_builtin_super) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_builtin_eval = __Pyx_GetBuiltinName(__pyx_n_s__eval); if (!__pyx_builtin_eval) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s__super); if (!__pyx_builtin_super) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_builtin_eval = __Pyx_GetBuiltinName(__pyx_n_s__eval); if (!__pyx_builtin_eval) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s__enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s__IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s__open); if (!__pyx_builtin_open) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -25589,7 +26888,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_2);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_2)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/vectors.pxi":95 +  /* "/usr0/home/austinma/git/cdec/python/cdec/vectors.pxi":95   *         elif op == 3: # !=   *             return not (x == y)   *         raise NotImplemented('comparison not implemented for SparseVector')             # <<<<<<<<<<<<<< @@ -25600,7 +26899,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_5);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_5)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":6 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":6   *    * def _phrase(phrase):   *     return ' '.join(w.encode('utf8') if isinstance(w, unicode) else str(w) for w in phrase)             # <<<<<<<<<<<<<< @@ -25611,37 +26910,37 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_6);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_6)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":226 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":232   *                 trule = convert_rule(trule)   *             elif not isinstance(trule, TRule):   *                 raise ValueError('the grammar should contain TRule objects')             # <<<<<<<<<<<<<<   *             _g.AddRule((<TRule> trule).rule[0])   */ -  __pyx_k_tuple_14 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_13)); if (unlikely(!__pyx_k_tuple_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_k_tuple_14 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_13)); if (unlikely(!__pyx_k_tuple_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_k_tuple_14);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_14)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":244 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":292   *         elif op == 3: # !=   *             return not (x == y)   *         raise NotImplemented('comparison not implemented for HypergraphEdge')             # <<<<<<<<<<<<<<   *    * cdef class HypergraphNode:   */ -  __pyx_k_tuple_19 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_18)); if (unlikely(!__pyx_k_tuple_19)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_k_tuple_19 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_18)); if (unlikely(!__pyx_k_tuple_19)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_k_tuple_19);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_19)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/hypergraph.pxi":285 +  /* "/usr0/home/austinma/git/cdec/python/cdec/hypergraph.pxi":333   *         elif op == 3: # !=   *             return not (x == y)   *         raise NotImplemented('comparison not implemented for HypergraphNode')             # <<<<<<<<<<<<<<   */ -  __pyx_k_tuple_21 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_20)); if (unlikely(!__pyx_k_tuple_21)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_k_tuple_21 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_20)); if (unlikely(!__pyx_k_tuple_21)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_k_tuple_21);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_21)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":26 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":26   *     def __getitem__(self, int index):   *         if not 0 <= index < len(self):   *             raise IndexError('lattice index out of range')             # <<<<<<<<<<<<<< @@ -25652,7 +26951,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_24);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_24)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":39 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":39   *     def __setitem__(self, int index, tuple arcs):   *         if not 0 <= index < len(self):   *             raise IndexError('lattice index out of range')             # <<<<<<<<<<<<<< @@ -25663,7 +26962,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_25);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_25)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":69 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":69   *             for i in range(len(self)):   *                 for label, weight, delta in self[i]:   *                     yield '%d -> %d [label="%s"];' % (i, i+delta, label.replace('"', '\\"'))             # <<<<<<<<<<<<<< @@ -25674,7 +26973,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_32);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_32)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":63 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":63   *     def todot(self):   *         """lattice.todot() -> Representation of the lattice in GraphViz dot format."""   *         def lines():             # <<<<<<<<<<<<<< @@ -25686,7 +26985,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_35));    __pyx_k_codeobj_36 = (PyObject*)__Pyx_PyCode_New(0, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_37, __pyx_n_s__lines, 63, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_36)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/lattice.pxi":72 +  /* "/usr0/home/austinma/git/cdec/python/cdec/lattice.pxi":72   *             yield '%d [shape=doublecircle]' % len(self)   *             yield '}'   *         return '\n'.join(lines()).encode('utf8')             # <<<<<<<<<<<<<< @@ -25697,7 +26996,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_41);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_41)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":50 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":50   *     def __getitem__(self, int index):   *         if not 0 <= index < len(self):   *             raise IndexError('sufficient stats vector index out of range')             # <<<<<<<<<<<<<< @@ -25708,7 +27007,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_43);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_43)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":84 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":84   *     def __getitem__(self,int k):   *         if not 0 <= k < self.cs.size():   *             raise IndexError('candidate set index out of range')             # <<<<<<<<<<<<<< @@ -25741,7 +27040,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_52);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_52)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":5 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":5   * import cdec.sa._sa as _sa   *    * def _phrase(phrase):             # <<<<<<<<<<<<<< @@ -25753,7 +27052,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_56));    __pyx_k_codeobj_57 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_56, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_58, __pyx_n_s___phrase, 5, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_57)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":194 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":194   *         return []   *    * BLEU = Scorer('IBM_BLEU')             # <<<<<<<<<<<<<< @@ -25764,7 +27063,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_59);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_59)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":195 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":195   *    * BLEU = Scorer('IBM_BLEU')   * QCRI = Scorer('QCRI_BLEU')             # <<<<<<<<<<<<<< @@ -25775,7 +27074,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_60);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_60)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":196 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":196   * BLEU = Scorer('IBM_BLEU')   * QCRI = Scorer('QCRI_BLEU')   * TER = Scorer('TER')             # <<<<<<<<<<<<<< @@ -25786,7 +27085,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_61);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_61)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":197 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":197   * QCRI = Scorer('QCRI_BLEU')   * TER = Scorer('TER')   * CER = Scorer('CER')             # <<<<<<<<<<<<<< @@ -25796,7 +27095,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_k_tuple_62);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_62)); -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":198 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":198   * TER = Scorer('TER')   * CER = Scorer('CER')   * SSK = Scorer('SSK')             # <<<<<<<<<<<<<< @@ -25927,6 +27226,8 @@ PyMODINIT_FUNC PyInit__cdec(void)    /*--- Variable export code ---*/    /*--- Function export code ---*/    /*--- Type init code ---*/ +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_24___iter__) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_24___iter__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_24___iter__;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec_TRule) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    #if CYTHON_COMPILING_IN_CPYTHON    { @@ -25941,10 +27242,10 @@ PyMODINIT_FUNC PyInit__cdec(void)    if (__Pyx_SetAttrString(__pyx_m, "TRule", (PyObject *)&__pyx_type_4cdec_5_cdec_TRule) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_TRule = &__pyx_type_4cdec_5_cdec_TRule;    __pyx_type_4cdec_5_cdec_MRule.tp_base = __pyx_ptype_4cdec_5_cdec_TRule; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec_MRule) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec_MRule) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    #if CYTHON_COMPILING_IN_CPYTHON    { -    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4cdec_5_cdec_MRule, "__init__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4cdec_5_cdec_MRule, "__init__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {        __pyx_wrapperbase_4cdec_5_cdec_5MRule___init__ = *((PyWrapperDescrObject *)wrapper)->d_base;        __pyx_wrapperbase_4cdec_5_cdec_5MRule___init__.doc = __pyx_doc_4cdec_5_cdec_5MRule___init__; @@ -25952,10 +27253,8 @@ PyMODINIT_FUNC PyInit__cdec(void)      }    }    #endif -  if (__Pyx_SetAttrString(__pyx_m, "MRule", (PyObject *)&__pyx_type_4cdec_5_cdec_MRule) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "MRule", (PyObject *)&__pyx_type_4cdec_5_cdec_MRule) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_MRule = &__pyx_type_4cdec_5_cdec_MRule; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_22___iter__) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_22___iter__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_22___iter__;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec_DenseVector) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    #if CYTHON_COMPILING_IN_CPYTHON    { @@ -25972,11 +27271,17 @@ PyMODINIT_FUNC PyInit__cdec(void)    if (PyType_Ready(&__pyx_type_4cdec_5_cdec_SufficientStats) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__Pyx_SetAttrString(__pyx_m, "SufficientStats", (PyObject *)&__pyx_type_4cdec_5_cdec_SufficientStats) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_SufficientStats = &__pyx_type_4cdec_5_cdec_SufficientStats; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_21___iter__) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_23_lines) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_23_lines = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_23_lines; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_27___init__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_27___init__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_27___init__; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_21___iter__) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_21___iter__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_21___iter__;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec_Metric) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__Pyx_SetAttrString(__pyx_m, "Metric", (PyObject *)&__pyx_type_4cdec_5_cdec_Metric) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_Metric = &__pyx_type_4cdec_5_cdec_Metric; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_11_unique_kbest;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec_Candidate) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__Pyx_SetAttrString(__pyx_m, "Candidate", (PyObject *)&__pyx_type_4cdec_5_cdec_Candidate) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_Candidate = &__pyx_type_4cdec_5_cdec_Candidate; @@ -25993,8 +27298,8 @@ PyMODINIT_FUNC PyInit__cdec(void)    #endif    if (__Pyx_SetAttrString(__pyx_m, "SparseVector", (PyObject *)&__pyx_type_4cdec_5_cdec_SparseVector) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_SparseVector = &__pyx_type_4cdec_5_cdec_SparseVector; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_15___get__) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_15___get__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_15___get__; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_26__make_config) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_26__make_config = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_26__make_config;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec_NT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    #if CYTHON_COMPILING_IN_CPYTHON    { @@ -26021,28 +27326,24 @@ PyMODINIT_FUNC PyInit__cdec(void)    #endif    if (__Pyx_SetAttrString(__pyx_m, "Lattice", (PyObject *)&__pyx_type_4cdec_5_cdec_Lattice) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_Lattice = &__pyx_type_4cdec_5_cdec_Lattice; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_23__make_config) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_23__make_config = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_23__make_config; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_15_sample_trees) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_15_sample_trees = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_15_sample_trees;    __pyx_vtabptr_4cdec_5_cdec_HypergraphEdge = &__pyx_vtable_4cdec_5_cdec_HypergraphEdge;    __pyx_vtable_4cdec_5_cdec_HypergraphEdge.init = (PyObject *(*)(struct __pyx_obj_4cdec_5_cdec_HypergraphEdge *, Hypergraph *, unsigned int))__pyx_f_4cdec_5_cdec_14HypergraphEdge_init; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec_HypergraphEdge) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (__Pyx_SetVtable(__pyx_type_4cdec_5_cdec_HypergraphEdge.tp_dict, __pyx_vtabptr_4cdec_5_cdec_HypergraphEdge) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (__Pyx_SetAttrString(__pyx_m, "HypergraphEdge", (PyObject *)&__pyx_type_4cdec_5_cdec_HypergraphEdge) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec_HypergraphEdge) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetVtable(__pyx_type_4cdec_5_cdec_HypergraphEdge.tp_dict, __pyx_vtabptr_4cdec_5_cdec_HypergraphEdge) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "HypergraphEdge", (PyObject *)&__pyx_type_4cdec_5_cdec_HypergraphEdge) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_HypergraphEdge = &__pyx_type_4cdec_5_cdec_HypergraphEdge;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_2__phrase) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_2__phrase = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_2__phrase; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_13___get__) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_13___get__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_13___get__; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_20_lines) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_20_lines = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_20_lines;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec_Scorer) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__Pyx_SetAttrString(__pyx_m, "Scorer", (PyObject *)&__pyx_type_4cdec_5_cdec_Scorer) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_Scorer = &__pyx_type_4cdec_5_cdec_Scorer;    __pyx_vtabptr_4cdec_5_cdec_HypergraphNode = &__pyx_vtable_4cdec_5_cdec_HypergraphNode;    __pyx_vtable_4cdec_5_cdec_HypergraphNode.init = (PyObject *(*)(struct __pyx_obj_4cdec_5_cdec_HypergraphNode *, Hypergraph *, unsigned int))__pyx_f_4cdec_5_cdec_14HypergraphNode_init; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec_HypergraphNode) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (__Pyx_SetVtable(__pyx_type_4cdec_5_cdec_HypergraphNode.tp_dict, __pyx_vtabptr_4cdec_5_cdec_HypergraphNode) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (__Pyx_SetAttrString(__pyx_m, "HypergraphNode", (PyObject *)&__pyx_type_4cdec_5_cdec_HypergraphNode) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec_HypergraphNode) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetVtable(__pyx_type_4cdec_5_cdec_HypergraphNode.tp_dict, __pyx_vtabptr_4cdec_5_cdec_HypergraphNode) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "HypergraphNode", (PyObject *)&__pyx_type_4cdec_5_cdec_HypergraphNode) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_HypergraphNode = &__pyx_type_4cdec_5_cdec_HypergraphNode;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_10_kbest_features) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_10_kbest_features = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_10_kbest_features; @@ -26059,8 +27360,8 @@ PyMODINIT_FUNC PyInit__cdec(void)    #endif    if (__Pyx_SetAttrString(__pyx_m, "NTRef", (PyObject *)&__pyx_type_4cdec_5_cdec_NTRef) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_NTRef = &__pyx_type_4cdec_5_cdec_NTRef; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec_Grammar) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (__Pyx_SetAttrString(__pyx_m, "Grammar", (PyObject *)&__pyx_type_4cdec_5_cdec_Grammar) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec_Grammar) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "Grammar", (PyObject *)&__pyx_type_4cdec_5_cdec_Grammar) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_Grammar = &__pyx_type_4cdec_5_cdec_Grammar;    __pyx_vtabptr_4cdec_5_cdec_Hypergraph = &__pyx_vtable_4cdec_5_cdec_Hypergraph;    __pyx_vtable_4cdec_5_cdec_Hypergraph._rng = (MT19937 *(*)(struct __pyx_obj_4cdec_5_cdec_Hypergraph *))__pyx_f_4cdec_5_cdec_10Hypergraph__rng; @@ -26068,39 +27369,41 @@ PyMODINIT_FUNC PyInit__cdec(void)    if (__Pyx_SetVtable(__pyx_type_4cdec_5_cdec_Hypergraph.tp_dict, __pyx_vtabptr_4cdec_5_cdec_Hypergraph) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__Pyx_SetAttrString(__pyx_m, "Hypergraph", (PyObject *)&__pyx_type_4cdec_5_cdec_Hypergraph) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_Hypergraph = &__pyx_type_4cdec_5_cdec_Hypergraph; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_24___init__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_24___init__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_24___init__;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec_CandidateSet) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__Pyx_SetAttrString(__pyx_m, "CandidateSet", (PyObject *)&__pyx_type_4cdec_5_cdec_CandidateSet) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_CandidateSet = &__pyx_type_4cdec_5_cdec_CandidateSet; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_22_todot) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_22_todot = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_22_todot;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_9_kbest_trees; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_19_todot) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_19_todot = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_19_todot; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_5___str__) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_5___str__) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_5___str__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_5___str__;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec_SegmentEvaluator) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__Pyx_SetAttrString(__pyx_m, "SegmentEvaluator", (PyObject *)&__pyx_type_4cdec_5_cdec_SegmentEvaluator) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_SegmentEvaluator = &__pyx_type_4cdec_5_cdec_SegmentEvaluator; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_16___get__) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_16___get__) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_16___get__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_16___get__; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_25_genexpr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_25_genexpr = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_25_genexpr; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_20___get__) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_20___get__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_20___get__; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_13_unique_kbest_features; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_28_genexpr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_28_genexpr = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_28_genexpr;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_3_genexpr) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_3_genexpr = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_3_genexpr; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_11_sample) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_11_sample = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_11_sample;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_8_kbest) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_8_kbest = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_8_kbest; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_14___get__) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_14___get__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_14___get__; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_7___iter__) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_18___get__) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_18___get__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_18___get__; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_7___iter__) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_7___iter__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_7___iter__; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_19___get__) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_19___get__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_19___get__;    __pyx_type_4cdec_5_cdec_TextGrammar.tp_base = __pyx_ptype_4cdec_5_cdec_Grammar; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec_TextGrammar) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec_TextGrammar) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    #if CYTHON_COMPILING_IN_CPYTHON    { -    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4cdec_5_cdec_TextGrammar, "__init__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4cdec_5_cdec_TextGrammar, "__init__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {        __pyx_wrapperbase_4cdec_5_cdec_11TextGrammar___init__ = *((PyWrapperDescrObject *)wrapper)->d_base;        __pyx_wrapperbase_4cdec_5_cdec_11TextGrammar___init__.doc = __pyx_doc_4cdec_5_cdec_11TextGrammar___init__; @@ -26108,8 +27411,10 @@ PyMODINIT_FUNC PyInit__cdec(void)      }    }    #endif -  if (__Pyx_SetAttrString(__pyx_m, "TextGrammar", (PyObject *)&__pyx_type_4cdec_5_cdec_TextGrammar) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "TextGrammar", (PyObject *)&__pyx_type_4cdec_5_cdec_TextGrammar) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec_TextGrammar = &__pyx_type_4cdec_5_cdec_TextGrammar; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_25___iter__) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_25___iter__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_25___iter__;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec_Decoder) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    #if CYTHON_COMPILING_IN_CPYTHON    { @@ -26125,15 +27430,15 @@ PyMODINIT_FUNC PyInit__cdec(void)    __pyx_ptype_4cdec_5_cdec_Decoder = &__pyx_type_4cdec_5_cdec_Decoder;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct____iter__) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct____iter__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct____iter__; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_17___get__) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_14_sample) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_14_sample = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_14_sample; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_17___get__) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_17___get__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_17___get__; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_18___iter__) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_18___iter__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_18___iter__; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_6_genexpr) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_6_genexpr) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_6_genexpr = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_6_genexpr; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_12_sample_trees) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_12_sample_trees = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_12_sample_trees; -  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_4___get__) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_12_unique_kbest_trees; +  if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_4___get__) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_4___get__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_4___get__;    if (PyType_Ready(&__pyx_type_4cdec_5_cdec___pyx_scope_struct_1___iter__) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_5_cdec___pyx_scope_struct_1___iter__ = &__pyx_type_4cdec_5_cdec___pyx_scope_struct_1___iter__; @@ -26156,7 +27461,7 @@ PyMODINIT_FUNC PyInit__cdec(void)    Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;    /*--- Execution code ---*/ -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":3 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":3   * cimport grammar   * cimport cdec.sa._sa as _sa   * import cdec.sa._sa as _sa             # <<<<<<<<<<<<<< @@ -26174,7 +27479,7 @@ PyMODINIT_FUNC PyInit__cdec(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s___sa, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/grammar.pxi":5 +  /* "/usr0/home/austinma/git/cdec/python/cdec/grammar.pxi":5   * import cdec.sa._sa as _sa   *    * def _phrase(phrase):             # <<<<<<<<<<<<<< @@ -26186,7 +27491,7 @@ PyMODINIT_FUNC PyInit__cdec(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s___phrase, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":194 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":194   *         return []   *    * BLEU = Scorer('IBM_BLEU')             # <<<<<<<<<<<<<< @@ -26198,7 +27503,7 @@ PyMODINIT_FUNC PyInit__cdec(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s__BLEU, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":195 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":195   *    * BLEU = Scorer('IBM_BLEU')   * QCRI = Scorer('QCRI_BLEU')             # <<<<<<<<<<<<<< @@ -26210,7 +27515,7 @@ PyMODINIT_FUNC PyInit__cdec(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s__QCRI, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":196 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":196   * BLEU = Scorer('IBM_BLEU')   * QCRI = Scorer('QCRI_BLEU')   * TER = Scorer('TER')             # <<<<<<<<<<<<<< @@ -26222,7 +27527,7 @@ PyMODINIT_FUNC PyInit__cdec(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s__TER, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":197 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":197   * QCRI = Scorer('QCRI_BLEU')   * TER = Scorer('TER')   * CER = Scorer('CER')             # <<<<<<<<<<<<<< @@ -26233,7 +27538,7 @@ PyMODINIT_FUNC PyInit__cdec(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s__CER, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/home/pks/src/cdec-dtrain/python/cdec/mteval.pxi":198 +  /* "/usr0/home/austinma/git/cdec/python/cdec/mteval.pxi":198   * TER = Scorer('TER')   * CER = Scorer('CER')   * SSK = Scorer('SSK')             # <<<<<<<<<<<<<< diff --git a/python/cdec/_cdec.pyx b/python/cdec/_cdec.pyx index 47d0c739..2e4265d4 100644 --- a/python/cdec/_cdec.pyx +++ b/python/cdec/_cdec.pyx @@ -51,7 +51,7 @@ cdef class Decoder:          if config_str is None:              formalism = config.get('formalism', None)              if formalism not in ('scfg', 'fst', 'lextrans', 'pb', -                    'csplit', 'tagger', 'lexalign'): +                    'csplit', 'tagger', 'lexalign', 't2s'):                  raise InvalidConfig('formalism "%s" unknown' % formalism)              config_str = '\n'.join('%s = %s' % kv for kv in _make_config(config))          cdef istringstream* config_stream = new istringstream(config_str) diff --git a/python/cdec/grammar.pxd b/python/cdec/grammar.pxd index 0ffe80fa..3607a544 100644 --- a/python/cdec/grammar.pxd +++ b/python/cdec/grammar.pxd @@ -16,6 +16,7 @@ cdef extern from "decoder/trule.h":          FastSparseVector[weight_t] scores_          WordID lhs_          int arity_ +        bint ReadFromString(string& line, bint monolingual)          bint IsUnary()          bint IsGoal()          void ComputeArity() diff --git a/python/cdec/grammar.pxi b/python/cdec/grammar.pxi index d523e4d2..b78c86ff 100644 --- a/python/cdec/grammar.pxi +++ b/python/cdec/grammar.pxi @@ -49,7 +49,7 @@ cdef TRule convert_rule(_sa.Rule rule):  cdef class TRule:      cdef shared_ptr[grammar.TRule]* rule -    def __init__(self, lhs, f, e, scores, a=None): +    def __init__(self, lhs, f, e, scores, a=None, text=None):          """TRule(lhs, f, e, scores, a=None) -> Translation rule.          lhs: left hand side non-terminal          f: source phrase (list of words/NT) @@ -57,12 +57,18 @@ cdef class TRule:          scores: dictionary of feature scores          a: optional list of alignment points"""          self.rule = new shared_ptr[grammar.TRule](new grammar.TRule()) -        self.lhs = lhs -        self.e = e -        self.f = f -        self.scores = scores +        if lhs: +          self.lhs = lhs +        if e: +          self.e = e +        if f: +          self.f = f +        if scores: +          self.scores = scores          if a: -            self.a = a +          self.a = a +        if text: +          self.rule.get().ReadFromString(text, 0)          self.rule.get().ComputeArity()      def __dealloc__(self): diff --git a/python/cdec/hypergraph.pxi b/python/cdec/hypergraph.pxi index 91cc8eec..1e0a1903 100644 --- a/python/cdec/hypergraph.pxi +++ b/python/cdec/hypergraph.pxi @@ -48,8 +48,8 @@ cdef class Hypergraph:      def kbest(self, size):          """hg.kbest(size) -> List of k-best hypotheses in the hypergraph.""" -        cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal](self.hg[0], size) -        cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal].Derivation* derivation +        cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.NoFilter[vector[int]]]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size) +        cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.NoFilter[vector[int]]].Derivation* derivation          cdef unsigned k          try:              for k in range(size): @@ -60,11 +60,11 @@ cdef class Hypergraph:              del derivations      def kbest_trees(self, size): -        """hg.kbest_trees(size) -> List of k-best trees in the hypergraph.""" -        cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal](self.hg[0], size) -        cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal].Derivation* f_derivation -        cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal]* e_derivations = new kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal](self.hg[0], size) -        cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal].Derivation* e_derivation +        """hg.kbest_trees(size) -> List of k-best trees in the hypergrapt.NoFilter.""" +        cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size) +        cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.NoFilter[vector[int]]].Derivation* f_derivation +        cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.NoFilter[vector[int]]]* e_derivations = new kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.NoFilter[vector[int]]](self.hg[0], size) +        cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.NoFilter[vector[int]]].Derivation* e_derivation          cdef unsigned k          try:              for k in range(size): @@ -80,8 +80,56 @@ cdef class Hypergraph:      def kbest_features(self, size):          """hg.kbest_trees(size) -> List of k-best feature vectors in the hypergraph.""" -        cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal](self.hg[0], size) -        cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal].Derivation* derivation +        cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]](self.hg[0], size) +        cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]].Derivation* derivation +        cdef SparseVector fmap +        cdef unsigned k +        try: +            for k in range(size): +                derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) +                if not derivation: break +                fmap = SparseVector.__new__(SparseVector) +                fmap.vector = new FastSparseVector[weight_t](derivation._yield) +                yield fmap +        finally: +            del derivations + +    def unique_kbest(self, size): +        """hg.kbest(size) -> List of unique k-best hypotheses in the hypergraph.""" +        cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.FilterUnique]* derivations = new kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.FilterUnique](self.hg[0], size) +        cdef kbest.KBestDerivations[vector[WordID], kbest.ESentenceTraversal, kbest.FilterUnique].Derivation* derivation +        cdef unsigned k +        try: +            for k in range(size): +                derivation = derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) +                if not derivation: break +                yield unicode(GetString(derivation._yield).c_str(), 'utf8') +        finally: +            del derivations + +    def unique_kbest_trees(self, size): +        """hg.kbest_trees(size) -> List of unique k-best trees in the hypergraph.""" +        cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique]* f_derivations = new kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique](self.hg[0], size) +        cdef kbest.KBestDerivations[vector[WordID], kbest.FTreeTraversal, kbest.FilterUnique].Derivation* f_derivation +        cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.FilterUnique]* e_derivations = new kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.FilterUnique](self.hg[0], size) +        cdef kbest.KBestDerivations[vector[WordID], kbest.ETreeTraversal, kbest.FilterUnique].Derivation* e_derivation +        cdef unsigned k +        try: +            for k in range(size): +                f_derivation = f_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) +                e_derivation = e_derivations.LazyKthBest(self.hg.nodes_.size() - 1, k) +                if not f_derivation or not e_derivation: break +                f_tree = unicode(GetString(f_derivation._yield).c_str(), 'utf8') +                e_tree = unicode(GetString(e_derivation._yield).c_str(), 'utf8') +                yield (f_tree, e_tree) +        finally: +            del f_derivations +            del e_derivations + +    def unique_kbest_features(self, size): +        """hg.kbest_trees(size) -> List of unique k-best feature vectors in the hypergraph.""" +        cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]]* derivations = new kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]](self.hg[0], size) +        cdef kbest.KBestDerivations[FastSparseVector[weight_t], kbest.FeatureVectorTraversal, kbest.NoFilter[FastSparseVector[double]]].Derivation* derivation          cdef SparseVector fmap          cdef unsigned k          try: diff --git a/python/cdec/kbest.pxd b/python/cdec/kbest.pxd index 44ecfbab..ecf1fc00 100644 --- a/python/cdec/kbest.pxd +++ b/python/cdec/kbest.pxd @@ -13,7 +13,13 @@ cdef extern from "decoder/viterbi.h":          pass  cdef extern from "decoder/kbest.h" namespace "KBest": -    cdef cppclass KBestDerivations[T, Traversal]: +    cdef cppclass NoFilter[Dummy]: +        pass + +    cdef cppclass FilterUnique: +        pass + +    cdef cppclass KBestDerivations[T, Traversal, Filter]:          cppclass Derivation:              T _yield "yield"          KBestDerivations(Hypergraph& hg, unsigned k) nogil diff --git a/python/cdec/mteval.pxi b/python/cdec/mteval.pxi index 436a1e01..777ff55a 100644 --- a/python/cdec/mteval.pxi +++ b/python/cdec/mteval.pxi @@ -27,6 +27,9 @@ cdef class SufficientStats:      cdef mteval.SufficientStats* stats      cdef mteval.EvaluationMetric* metric +    def __cinit__(self): +        self.stats = new mteval.SufficientStats() +      def __dealloc__(self):          del self.stats diff --git a/python/cdec/sa/_sa.cpp b/python/cdec/sa/_sa.cpp index 4c01ee79..bbea8c9c 100644 --- a/python/cdec/sa/_sa.cpp +++ b/python/cdec/sa/_sa.cpp @@ -1,4 +1,4 @@ -/* Generated by Cython 0.20.1 on Tue Mar 11 15:39:27 2014 */ +/* Generated by Cython 0.20.1 on Thu Apr 10 16:55:21 2014 */  #define PY_SSIZE_T_CLEAN  #ifndef CYTHON_USE_PYLONG_INTERNALS @@ -612,7 +612,7 @@ struct __pyx_t_4cdec_2sa_3_sa__Trie_Node;  struct __pyx_t_4cdec_2sa_3_sa_match_node;  struct __pyx_t_4cdec_2sa_3_sa_Matching; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":9 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":9   * from libc.string cimport memset, strcpy   *    * cdef struct _node:             # <<<<<<<<<<<<<< @@ -626,7 +626,7 @@ struct __pyx_t_4cdec_2sa_3_sa__node {    int val;  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":30 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":30   * _init_lower_mask()   *    * cdef struct _BitSet:             # <<<<<<<<<<<<<< @@ -640,7 +640,7 @@ struct __pyx_t_4cdec_2sa_3_sa__BitSet {    int size;  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":168 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":168   *     return result   *    * cdef struct _VEB:             # <<<<<<<<<<<<<< @@ -657,7 +657,7 @@ struct __pyx_t_4cdec_2sa_3_sa__VEB {    void **bottom;  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":10 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":10   * cdef struct _Trie_Node    # forward decl   *    * cdef struct _Trie_Edge:             # <<<<<<<<<<<<<< @@ -671,7 +671,7 @@ struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge {    struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge *smaller;  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":8 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":8   * from libc.string cimport memset, memcpy   *    * cdef struct _Trie_Node    # forward decl             # <<<<<<<<<<<<<< @@ -684,7 +684,7 @@ struct __pyx_t_4cdec_2sa_3_sa__Trie_Node {    int arr_len;  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":90 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":97   *    * # linked list structure for storing matches in BaselineRuleFactory   * cdef struct match_node:             # <<<<<<<<<<<<<< @@ -696,7 +696,7 @@ struct __pyx_t_4cdec_2sa_3_sa_match_node {    struct __pyx_t_4cdec_2sa_3_sa_match_node *next;  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":186 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":193   *    * # struct used to encapsulate a single matching   * cdef struct Matching:             # <<<<<<<<<<<<<< @@ -794,7 +794,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_Rule {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":8 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":8   *     char* stringmap_word(StrMap *vocab, int i)   *    * cdef class StringMap:             # <<<<<<<<<<<<<< @@ -808,7 +808,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_StringMap {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":9 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":9   * from libc.string cimport memset, strcpy   *    * cdef class DataArray:             # <<<<<<<<<<<<<< @@ -827,7 +827,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_DataArray {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":10 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":10   * cdef int ALIGNMENT_CODE = 1 << 16   *    * cdef class Alignment:             # <<<<<<<<<<<<<< @@ -842,7 +842,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_Alignment {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":47 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":47   *    *    * cdef class BiLex:             # <<<<<<<<<<<<<< @@ -863,7 +863,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_BiLex {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":100 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":100   *    *    * cdef class BitSetIterator:             # <<<<<<<<<<<<<< @@ -877,7 +877,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_BitSetIterator {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":118 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":118   * # (entirely C-implemented) _BitSet struct.   * # Very slow; use only for debugging   * cdef class BitSet:             # <<<<<<<<<<<<<< @@ -890,7 +890,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_BitSet {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":340 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":340   *    *    * cdef class VEBIterator:             # <<<<<<<<<<<<<< @@ -904,7 +904,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_VEBIterator {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":354 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":354   *    *    * cdef class VEB:             # <<<<<<<<<<<<<< @@ -918,7 +918,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_VEB {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":5 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":5   * as k most frequent n-grams"""   *    * cdef class LCP:             # <<<<<<<<<<<<<< @@ -932,7 +932,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_LCP {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":7 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":7   * cdef int INDEX_MASK = (1<<INDEX_SHIFT)-1   *    * cdef class Alphabet:             # <<<<<<<<<<<<<< @@ -950,7 +950,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_Alphabet {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":109 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":109   *         trie_node_to_map(edge.node, result, prefix, include_zeros)   *    * cdef class TrieMap:             # <<<<<<<<<<<<<< @@ -965,7 +965,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_TrieMap {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":188 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":188   *    *    * cdef class Precomputation:             # <<<<<<<<<<<<<< @@ -986,7 +986,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_Precomputation {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":6 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":6   * from libc.stdio cimport FILE, fclose, fopen   *    * cdef class SuffixArray:             # <<<<<<<<<<<<<< @@ -1002,7 +1002,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_SuffixArray {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":36 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":39   *     ])   *    * cdef class OnlineStats:             # <<<<<<<<<<<<<< @@ -1016,10 +1016,11 @@ struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats {    PyObject *phrases_e;    PyObject *phrases_fe;    PyObject *phrases_al; +  PyObject *bilex;  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":60 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":67   * cdef int EPSILON = sym_fromstring('*EPS*', True)   *    * cdef class TrieNode:             # <<<<<<<<<<<<<< @@ -1032,7 +1033,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_TrieNode {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":66 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":73   *         self.children = {}   *    * cdef class ExtendedTrieNode(TrieNode):             # <<<<<<<<<<<<<< @@ -1047,7 +1048,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_ExtendedTrieNode {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":77 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":84   *    *    * cdef class TrieTable:             # <<<<<<<<<<<<<< @@ -1062,7 +1063,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_TrieTable {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":98 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":105   * # in the suffix array; if discontiguous, it is the set of   * # actual locations (packed into an array)   * cdef class PhraseLocation:             # <<<<<<<<<<<<<< @@ -1081,7 +1082,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":120 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":127   *    *    * cdef class Sampler:             # <<<<<<<<<<<<<< @@ -1095,7 +1096,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_Sampler {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":242 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":249   *    *    * cdef class HieroCachingRuleFactory:             # <<<<<<<<<<<<<< @@ -1148,7 +1149,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_HieroCachingRuleFactory {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":23 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":23   *         return ' '.join('%s=%s' % feat for feat in self)   *    * cdef class Scorer:             # <<<<<<<<<<<<<< @@ -1162,7 +1163,7 @@ struct __pyx_obj_4cdec_2sa_3_sa_Scorer {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":81 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":81   *         free(self.arr)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -1178,7 +1179,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct____iter__ {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":72 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":72   *             self.read_text_data(fp)   *    *     def read_bitext(self, char* filename, int side):             # <<<<<<<<<<<<<< @@ -1192,7 +1193,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_1_read_bitext {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":74 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":74   *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:   *             data = (line.split(' ||| ')[side] for line in fp)             # <<<<<<<<<<<<<< @@ -1209,7 +1210,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_2_genexpr {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":36 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":36   *         logger.info("LCP array completed")   *    *     def compute_stats(self, int max_n):             # <<<<<<<<<<<<<< @@ -1240,7 +1241,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_3_compute_stats {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":110 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":110   *     return sym_isvar(sym)   *    * def make_lattice(words):             # <<<<<<<<<<<<<< @@ -1254,7 +1255,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_4_make_lattice {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":111 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":111   *    * def make_lattice(words):   *     word_ids = (sym_fromstring(word, True) for word in words)             # <<<<<<<<<<<<<< @@ -1271,7 +1272,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_5_genexpr {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":112 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":112   * def make_lattice(words):   *     word_ids = (sym_fromstring(word, True) for word in words)   *     return tuple(((word, None, 1), ) for word in word_ids)             # <<<<<<<<<<<<<< @@ -1288,7 +1289,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_6_genexpr {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":114 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":114   *     return tuple(((word, None, 1), ) for word in word_ids)   *    * def decode_lattice(lattice):             # <<<<<<<<<<<<<< @@ -1301,7 +1302,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_7_decode_lattice {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":115 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":115   *    * def decode_lattice(lattice):   *     return tuple((sym_tostring(sym), weight, dist) for (sym, weight, dist) in arc             # <<<<<<<<<<<<<< @@ -1328,7 +1329,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_8_genexpr {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":118 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":118   *             for arc in node for node in lattice)   *    * def decode_sentence(lattice):             # <<<<<<<<<<<<<< @@ -1341,7 +1342,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_9_decode_sentence {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":119 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":119   *    * def decode_sentence(lattice):   *     return tuple(sym_tostring(sym) for ((sym, _, _),) in lattice)             # <<<<<<<<<<<<<< @@ -1359,7 +1360,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_10_genexpr {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":121 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":121   *     return tuple(sym_tostring(sym) for ((sym, _, _),) in lattice)   *    * def encode_words(words):             # <<<<<<<<<<<<<< @@ -1372,7 +1373,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_11_encode_words {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":122 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":122   *    * def encode_words(words):   *     return tuple(sym_fromstring(word, True) for word in words)             # <<<<<<<<<<<<<< @@ -1389,7 +1390,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_12_genexpr {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":124 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":124   *     return tuple(sym_fromstring(word, True) for word in words)   *    * def decode_words(syms):             # <<<<<<<<<<<<<< @@ -1401,7 +1402,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_13_decode_words {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":125 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":125   *    * def decode_words(syms):   *     return tuple(sym_tostring(sym) for sym in syms)             # <<<<<<<<<<<<<< @@ -1416,7 +1417,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_14_genexpr {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":140 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":140   *         return self.syms[i]   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -1431,7 +1432,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_15___iter__ {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":182 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":182   *         return self.f.arity()   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -1444,7 +1445,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_16___str__ {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":186 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":186   *         fields = [sym_tostring(self.lhs), str(self.f), str(self.e), str(self.scores)]   *         if self.word_alignments is not None:   *             fields.append(' '.join('%d-%d' % a for a in self.alignments()))             # <<<<<<<<<<<<<< @@ -1461,7 +1462,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_17_genexpr {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":189 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":189   *         return ' ||| '.join(fields)   *    *     def alignments(self):             # <<<<<<<<<<<<<< @@ -1478,7 +1479,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_18_alignments {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":973 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":981   *         return sorted(result);   *    *     def input(self, fwords, meta, ctx_name=None):             # <<<<<<<<<<<<<< @@ -1575,7 +1576,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_19_input {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1188 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1196   *         if self.online:   *             stats = self.online_stats[ctx_name]   *             f_syms = tuple(word[0][0] for word in fwords)             # <<<<<<<<<<<<<< @@ -1592,7 +1593,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_20_genexpr {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1886 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1894   *     # Aggregate stats from a training instance   *     # (Extract rules, update counts)   *     def add_instance(self, f_words, e_words, alignment, ctx_name=None):             # <<<<<<<<<<<<<< @@ -1615,7 +1616,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_21_add_instance {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2056 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2061   *    *     # Create a rule from source, target, non-terminals, and alignments   *     def form_rule(self, f_i, e_i, f_span, e_span, nt, al):             # <<<<<<<<<<<<<< @@ -1629,7 +1630,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_22_form_rule {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2117 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2122   *         f = Phrase(f_sym)   *         e = Phrase(e_sym)   *         a = tuple(self.alignment.link(i, j) for i, j in links)             # <<<<<<<<<<<<<< @@ -1646,7 +1647,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_23_genexpr {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2121 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2126   *    *     # Rule string from rule   *     def fmt_rule(self, f, e, a):             # <<<<<<<<<<<<<< @@ -1660,7 +1661,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_24_fmt_rule {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2122 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2127   *     # Rule string from rule   *     def fmt_rule(self, f, e, a):   *         a_str = ' '.join('{0}-{1}'.format(*self.alignment.unlink(packed)) for packed in a)             # <<<<<<<<<<<<<< @@ -1677,7 +1678,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_25_genexpr {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2140 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2145   *     # (Used for EGivenFCoherent)   *     # Return set of (fphrase, lex_i, lex_j)   *     def get_f_phrases(self, f_words):             # <<<<<<<<<<<<<< @@ -1694,7 +1695,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_26_get_f_phrases {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":15 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":15   *         self.values.append(value)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -1710,7 +1711,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_27___iter__ {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":20 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":20   *             yield (FD.word(self.names[i]), self.values[i])   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -1723,7 +1724,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_28___str__ {  }; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":21 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":21   *    *     def __str__(self):   *         return ' '.join('%s=%s' % feat for feat in self)             # <<<<<<<<<<<<<< @@ -1741,7 +1742,7 @@ struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_29_genexpr { -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":9 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":9   * from libc.string cimport memset, strcpy, strlen   *    * cdef class FloatList:             # <<<<<<<<<<<<<< @@ -1769,7 +1770,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *__pyx_vtabptr_4cdec_2sa_3_sa_IntList; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":4 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":4   * from libc.string cimport strsep, strcpy, strlen   *    * cdef class Phrase:             # <<<<<<<<<<<<<< @@ -1784,7 +1785,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_Phrase {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_Phrase *__pyx_vtabptr_4cdec_2sa_3_sa_Phrase; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":8 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":8   *     char* stringmap_word(StrMap *vocab, int i)   *    * cdef class StringMap:             # <<<<<<<<<<<<<< @@ -1799,7 +1800,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_StringMap {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_StringMap *__pyx_vtabptr_4cdec_2sa_3_sa_StringMap; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":9 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":9   * from libc.string cimport memset, strcpy   *    * cdef class DataArray:             # <<<<<<<<<<<<<< @@ -1814,7 +1815,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_DataArray {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_DataArray *__pyx_vtabptr_4cdec_2sa_3_sa_DataArray; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":10 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":10   * cdef int ALIGNMENT_CODE = 1 << 16   *    * cdef class Alignment:             # <<<<<<<<<<<<<< @@ -1830,7 +1831,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alignment {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alignment *__pyx_vtabptr_4cdec_2sa_3_sa_Alignment; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":47 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":47   *    *    * cdef class BiLex:             # <<<<<<<<<<<<<< @@ -1849,7 +1850,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_BiLex {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_BiLex *__pyx_vtabptr_4cdec_2sa_3_sa_BiLex; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":354 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":354   *    *    * cdef class VEB:             # <<<<<<<<<<<<<< @@ -1865,7 +1866,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_VEB {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_VEB *__pyx_vtabptr_4cdec_2sa_3_sa_VEB; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":7 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":7   * cdef int INDEX_MASK = (1<<INDEX_SHIFT)-1   *    * cdef class Alphabet:             # <<<<<<<<<<<<<< @@ -1888,7 +1889,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet *__pyx_vtabptr_4cdec_2sa_3_sa_Alphabet; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":109 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":109   *         trie_node_to_map(edge.node, result, prefix, include_zeros)   *    * cdef class TrieMap:             # <<<<<<<<<<<<<< @@ -1903,7 +1904,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_TrieMap {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_TrieMap *__pyx_vtabptr_4cdec_2sa_3_sa_TrieMap; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":188 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":188   *    *    * cdef class Precomputation:             # <<<<<<<<<<<<<< @@ -1918,7 +1919,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_Precomputation {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_Precomputation *__pyx_vtabptr_4cdec_2sa_3_sa_Precomputation; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":6 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":6   * from libc.stdio cimport FILE, fclose, fopen   *    * cdef class SuffixArray:             # <<<<<<<<<<<<<< @@ -1935,7 +1936,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_SuffixArray {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_SuffixArray *__pyx_vtabptr_4cdec_2sa_3_sa_SuffixArray; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":98 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":105   * # in the suffix array; if discontiguous, it is the set of   * # actual locations (packed into an array)   * cdef class PhraseLocation:             # <<<<<<<<<<<<<< @@ -1949,7 +1950,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_PhraseLocation {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_PhraseLocation *__pyx_vtabptr_4cdec_2sa_3_sa_PhraseLocation; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":242 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":249   *    *    * cdef class HieroCachingRuleFactory:             # <<<<<<<<<<<<<< @@ -1977,7 +1978,7 @@ struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory {  static struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *__pyx_vtabptr_4cdec_2sa_3_sa_HieroCachingRuleFactory; -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":23 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":23   *         return ' '.join('%s=%s' % feat for feat in self)   *    * cdef class Scorer:             # <<<<<<<<<<<<<< @@ -2900,6 +2901,9 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_10phrases_fe_4__del__(struct __  static PyObject *__pyx_pf_4cdec_2sa_3_sa_11OnlineStats_10phrases_al___get__(struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *__pyx_v_self); /* proto */  static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_10phrases_al_2__set__(struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *__pyx_v_self, PyObject *__pyx_v_value); /* proto */  static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_10phrases_al_4__del__(struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_4cdec_2sa_3_sa_11OnlineStats_5bilex___get__(struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *__pyx_v_self); /* proto */ +static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_5bilex_2__set__(struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_5bilex_4__del__(struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *__pyx_v_self); /* proto */  static int __pyx_pf_4cdec_2sa_3_sa_8TrieNode___cinit__(struct __pyx_obj_4cdec_2sa_3_sa_TrieNode *__pyx_v_self); /* proto */  static PyObject *__pyx_pf_4cdec_2sa_3_sa_8TrieNode_8children___get__(struct __pyx_obj_4cdec_2sa_3_sa_TrieNode *__pyx_v_self); /* proto */  static int __pyx_pf_4cdec_2sa_3_sa_8TrieNode_8children_2__set__(struct __pyx_obj_4cdec_2sa_3_sa_TrieNode *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ @@ -3111,6 +3115,7 @@ static char __pyx_k_syms[] = "syms";  static char __pyx_k_test[] = "__test__";  static char __pyx_k_warn[] = "warn";  static char __pyx_k_word[] = "word"; +static char __pyx_k_Bilex[] = "Bilex";  static char __pyx_k_arity[] = "arity";  static char __pyx_k_bilex[] = "bilex";  static char __pyx_k_chain[] = "chain"; @@ -3196,7 +3201,6 @@ static char __pyx_k_pathlen[] = "pathlen";  static char __pyx_k_sa_high[] = "sa_high";  static char __pyx_k_sampler[] = "sampler";  static char __pyx_k_spanlen[] = "spanlen"; -static char __pyx_k_warning[] = "warning";  static char __pyx_k_GzipFile[] = "GzipFile";  static char __pyx_k_arr_high[] = "arr_high";  static char __pyx_k_category[] = "category"; @@ -3351,18 +3355,17 @@ static char __pyx_k_Precomputation_took_f_seconds[] = "Precomputation took %f se  static char __pyx_k_Sampling_strategy_no_sampling[] = "Sampling strategy: no sampling";  static char __pyx_k_Illegal_key_type_s_for_IntList[] = "Illegal key type %s for IntList";  static char __pyx_k_Unable_to_extract_basic_phrase[] = "Unable to extract basic phrase"; +static char __pyx_k_usr0_home_mdenkows_cdec_python[] = "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi";  static char __pyx_k_Processing_precomputations_took[] = "Processing precomputations took %f seconds";  static char __pyx_k_RANK_d_COUNT_COST_d_d_CUMUL_d_d[] = "RANK %d\tCOUNT, COST: %d    %d\tCUMUL: %d, %d";  static char __pyx_k_Requested_index_d_d_of_d_length[] = "Requested index %d:%d of %d-length IntList";  static char __pyx_k_d_d_out_of_bounds_I_d_J_d_in_li[] = "%d-%d out of bounds (I=%d,J=%d) in line %d\n"; -static char __pyx_k_usr0_home_mdenkows_cdec_git_pyt[] = "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi";  static char __pyx_k_Converting_d_hash_keys_on_precom[] = "Converting %d hash keys on precomputed inverted index... ";  static char __pyx_k_Didn_t_extract_anything_from_d_d[] = "Didn't extract anything from [%d, %d] -> [%d, %d]";  static char __pyx_k_ERROR_unexpected_pattern_s_in_se[] = "ERROR: unexpected pattern %s in set of precomputed collocations";  static char __pyx_k_Inside_edges_of_following_subphr[] = "Inside edges of following subphrase are not tight";  static char __pyx_k_Inside_edges_of_preceding_subphr[] = "Inside edges of preceding subphrase are not tight";  static char __pyx_k_Must_specify_an_alignment_object[] = "Must specify an alignment object"; -static char __pyx_k_No_online_bilexical_dictionary_s[] = "No online bilexical dictionary specified, not updating lexical weights";  static char __pyx_k_Precomputation_done_with_max_ini[] = "Precomputation done with max initial size %d, decoder uses %d";  static char __pyx_k_Precomputation_done_with_max_non[] = "Precomputation done with max nonterminals %d, decoder uses %d";  static char __pyx_k_Precomputation_done_with_max_ter[] = "Precomputation done with max terminals %d, decoder uses %d"; @@ -3379,13 +3382,14 @@ static char __pyx_k_Suffix_array_construction_took_f[] = "Suffix array construct  static char __pyx_k_Total_time_for_rule_lookup_extra[] = "Total time for rule lookup, extraction, and scoring = %f seconds";  static char __pyx_k_Unexpected_condition_found_in_q3[] = "Unexpected condition found in q3sort: sort from %d to %d";  static char __pyx_k_input_locals_lambda_locals_lambd[] = "input.<locals>.<lambda>.<locals>.<lambda>"; -static char __pyx_k_usr0_home_mdenkows_cdec_git_pyt_2[] = "/usr0/home/mdenkows/cdec-git/python/cdec/sa/_sa.pyx"; -static char __pyx_k_usr0_home_mdenkows_cdec_git_pyt_3[] = "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi"; +static char __pyx_k_usr0_home_mdenkows_cdec_python_2[] = "/usr0/home/mdenkows/cdec/python/cdec/sa/_sa.pyx"; +static char __pyx_k_usr0_home_mdenkows_cdec_python_3[] = "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi";  static char __pyx_k_Converting_d_hash_keys_on_precom_2[] = "Converting %d hash keys on precomputed collocations... ";  static PyObject *__pyx_kp_s_;  static PyObject *__pyx_kp_s_0;  static PyObject *__pyx_kp_s_0_1;  static PyObject *__pyx_kp_s_1; +static PyObject *__pyx_n_s_Bilex;  static PyObject *__pyx_kp_s_Bucket_sort_took_f_seconds;  static PyObject *__pyx_kp_s_Computing_collocations;  static PyObject *__pyx_kp_s_Computing_inverted_indexes; @@ -3417,7 +3421,6 @@ static PyObject *__pyx_kp_s_LCP_array_completed;  static PyObject *__pyx_kp_s_Must_specify_an_alignment_object;  static PyObject *__pyx_n_s_NULL;  static PyObject *__pyx_kp_s_No_aligned_terminals; -static PyObject *__pyx_kp_s_No_online_bilexical_dictionary_s;  static PyObject *__pyx_n_s_OnlineFeatureContext;  static PyObject *__pyx_kp_s_Precomputation_done_with_max_ini;  static PyObject *__pyx_kp_s_Precomputation_done_with_max_non; @@ -3723,14 +3726,13 @@ static PyObject *__pyx_n_s_use_baeza_yates;  static PyObject *__pyx_n_s_use_collocations;  static PyObject *__pyx_n_s_use_index;  static PyObject *__pyx_n_s_use_sent_id; -static PyObject *__pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt; -static PyObject *__pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_2; -static PyObject *__pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_3; +static PyObject *__pyx_kp_s_usr0_home_mdenkows_cdec_python; +static PyObject *__pyx_kp_s_usr0_home_mdenkows_cdec_python_2; +static PyObject *__pyx_kp_s_usr0_home_mdenkows_cdec_python_3;  static PyObject *__pyx_n_s_value;  static PyObject *__pyx_n_s_vec;  static PyObject *__pyx_n_s_w;  static PyObject *__pyx_n_s_warn; -static PyObject *__pyx_n_s_warning;  static PyObject *__pyx_n_s_wc;  static PyObject *__pyx_n_s_word;  static PyObject *__pyx_n_s_word_alignments; @@ -3761,8 +3763,8 @@ static PyObject *__pyx_tuple__9;  static PyObject *__pyx_slice__13;  static PyObject *__pyx_slice__67;  static PyObject *__pyx_slice__70; +static PyObject *__pyx_slice__71;  static PyObject *__pyx_slice__72; -static PyObject *__pyx_slice__73;  static PyObject *__pyx_tuple__11;  static PyObject *__pyx_tuple__12;  static PyObject *__pyx_tuple__14; @@ -3809,32 +3811,31 @@ static PyObject *__pyx_tuple__61;  static PyObject *__pyx_tuple__62;  static PyObject *__pyx_tuple__66;  static PyObject *__pyx_tuple__68; -static PyObject *__pyx_tuple__71; -static PyObject *__pyx_tuple__74; -static PyObject *__pyx_tuple__77; +static PyObject *__pyx_tuple__73; +static PyObject *__pyx_tuple__76; +static PyObject *__pyx_tuple__78;  static PyObject *__pyx_tuple__79; -static PyObject *__pyx_tuple__80; -static PyObject *__pyx_tuple__82; -static PyObject *__pyx_tuple__84; -static PyObject *__pyx_tuple__86; -static PyObject *__pyx_tuple__88; -static PyObject *__pyx_tuple__90; -static PyObject *__pyx_tuple__92; -static PyObject *__pyx_tuple__94; -static PyObject *__pyx_tuple__96; +static PyObject *__pyx_tuple__81; +static PyObject *__pyx_tuple__83; +static PyObject *__pyx_tuple__85; +static PyObject *__pyx_tuple__87; +static PyObject *__pyx_tuple__89; +static PyObject *__pyx_tuple__91; +static PyObject *__pyx_tuple__93; +static PyObject *__pyx_tuple__95;  static PyObject *__pyx_codeobj__69; +static PyObject *__pyx_codeobj__74;  static PyObject *__pyx_codeobj__75; -static PyObject *__pyx_codeobj__76; -static PyObject *__pyx_codeobj__78; -static PyObject *__pyx_codeobj__81; -static PyObject *__pyx_codeobj__83; -static PyObject *__pyx_codeobj__85; -static PyObject *__pyx_codeobj__87; -static PyObject *__pyx_codeobj__89; -static PyObject *__pyx_codeobj__91; -static PyObject *__pyx_codeobj__93; -static PyObject *__pyx_codeobj__95; -static PyObject *__pyx_codeobj__97; +static PyObject *__pyx_codeobj__77; +static PyObject *__pyx_codeobj__80; +static PyObject *__pyx_codeobj__82; +static PyObject *__pyx_codeobj__84; +static PyObject *__pyx_codeobj__86; +static PyObject *__pyx_codeobj__88; +static PyObject *__pyx_codeobj__90; +static PyObject *__pyx_codeobj__92; +static PyObject *__pyx_codeobj__94; +static PyObject *__pyx_codeobj__96;  /* "cdec/sa/_sa.pyx":5   * import gzip @@ -4102,7 +4103,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_2gzip_or_text(CYTHON_UNUSED PyObject *_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":11 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":11   * cdef class FloatList:   *    *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):             # <<<<<<<<<<<<<< @@ -4202,7 +4203,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList___cinit__(struct __pyx_obj_4cdec_2    int __pyx_t_1;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":12 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":12   *    *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):   *         if initial_len > size:             # <<<<<<<<<<<<<< @@ -4212,7 +4213,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList___cinit__(struct __pyx_obj_4cdec_2    __pyx_t_1 = ((__pyx_v_initial_len > __pyx_v_size) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":13 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":13   *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):   *         if initial_len > size:   *             size = initial_len             # <<<<<<<<<<<<<< @@ -4224,7 +4225,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList___cinit__(struct __pyx_obj_4cdec_2    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":14 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":14   *         if initial_len > size:   *             size = initial_len   *         self.size = size             # <<<<<<<<<<<<<< @@ -4233,7 +4234,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList___cinit__(struct __pyx_obj_4cdec_2   */    __pyx_v_self->size = __pyx_v_size; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":15 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":15   *             size = initial_len   *         self.size = size   *         self.increment = increment             # <<<<<<<<<<<<<< @@ -4242,7 +4243,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList___cinit__(struct __pyx_obj_4cdec_2   */    __pyx_v_self->increment = __pyx_v_increment; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":16 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":16   *         self.size = size   *         self.increment = increment   *         self.len = initial_len             # <<<<<<<<<<<<<< @@ -4251,7 +4252,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList___cinit__(struct __pyx_obj_4cdec_2   */    __pyx_v_self->len = __pyx_v_initial_len; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":17 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":17   *         self.increment = increment   *         self.len = initial_len   *         self.arr = <float*> malloc(size*sizeof(float))             # <<<<<<<<<<<<<< @@ -4260,7 +4261,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList___cinit__(struct __pyx_obj_4cdec_2   */    __pyx_v_self->arr = ((float *)malloc((__pyx_v_size * (sizeof(float))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":18 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":18   *         self.len = initial_len   *         self.arr = <float*> malloc(size*sizeof(float))   *         memset(self.arr, 0, initial_len*sizeof(float))             # <<<<<<<<<<<<<< @@ -4269,7 +4270,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList___cinit__(struct __pyx_obj_4cdec_2   */    memset(__pyx_v_self->arr, 0, (__pyx_v_initial_len * (sizeof(float)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":11 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":11   * cdef class FloatList:   *    *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):             # <<<<<<<<<<<<<< @@ -4283,7 +4284,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList___cinit__(struct __pyx_obj_4cdec_2    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":20 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":20   *         memset(self.arr, 0, initial_len*sizeof(float))   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -4306,7 +4307,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_9FloatList_2__dealloc__(struct __pyx_obj_4cd    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":21 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":21   *    *     def __dealloc__(self):   *         free(self.arr)             # <<<<<<<<<<<<<< @@ -4315,7 +4316,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_9FloatList_2__dealloc__(struct __pyx_obj_4cd   */    free(__pyx_v_self->arr); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":20 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":20   *         memset(self.arr, 0, initial_len*sizeof(float))   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -4327,7 +4328,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_9FloatList_2__dealloc__(struct __pyx_obj_4cd    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":23 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":23   *         free(self.arr)   *    *     def __getitem__(self, i):             # <<<<<<<<<<<<<< @@ -4363,7 +4364,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_4__getitem__(struct __pyx_ob    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__getitem__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":24 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":24   *    *     def __getitem__(self, i):   *         j = i             # <<<<<<<<<<<<<< @@ -4373,7 +4374,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_4__getitem__(struct __pyx_ob    __Pyx_INCREF(__pyx_v_i);    __pyx_v_j = __pyx_v_i; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":25 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":25   *     def __getitem__(self, i):   *         j = i   *         if i<0:             # <<<<<<<<<<<<<< @@ -4385,7 +4386,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_4__getitem__(struct __pyx_ob    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":26 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":26   *         j = i   *         if i<0:   *             j = self.len + i             # <<<<<<<<<<<<<< @@ -4403,7 +4404,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_4__getitem__(struct __pyx_ob    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":27 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":27   *         if i<0:   *             j = self.len + i   *         if j<0 or j>=self.len:             # <<<<<<<<<<<<<< @@ -4426,7 +4427,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_4__getitem__(struct __pyx_ob    }    if (__pyx_t_5) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":28 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":28   *             j = self.len + i   *         if j<0 or j>=self.len:   *             raise IndexError("Requested index %d of %d-length FloatList" % (i, self.len))             # <<<<<<<<<<<<<< @@ -4459,7 +4460,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_4__getitem__(struct __pyx_ob      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":29 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":29   *         if j<0 or j>=self.len:   *             raise IndexError("Requested index %d of %d-length FloatList" % (i, self.len))   *         return self.arr[j]             # <<<<<<<<<<<<<< @@ -4474,7 +4475,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_4__getitem__(struct __pyx_ob    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":23 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":23   *         free(self.arr)   *    *     def __getitem__(self, i):             # <<<<<<<<<<<<<< @@ -4495,7 +4496,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_4__getitem__(struct __pyx_ob    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":31 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":31   *         return self.arr[j]   *    *     cdef void set(self, int i, float v):             # <<<<<<<<<<<<<< @@ -4517,7 +4518,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_set(struct __pyx_obj_4cdec_2sa_3_s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("set", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":32 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":32   *    *     cdef void set(self, int i, float v):   *         j = i             # <<<<<<<<<<<<<< @@ -4526,7 +4527,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_set(struct __pyx_obj_4cdec_2sa_3_s   */    __pyx_v_j = __pyx_v_i; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":33 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":33   *     cdef void set(self, int i, float v):   *         j = i   *         if i<0:             # <<<<<<<<<<<<<< @@ -4536,7 +4537,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_set(struct __pyx_obj_4cdec_2sa_3_s    __pyx_t_1 = ((__pyx_v_i < 0) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":34 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":34   *         j = i   *         if i<0:   *             j = self.len + i             # <<<<<<<<<<<<<< @@ -4548,7 +4549,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_set(struct __pyx_obj_4cdec_2sa_3_s    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":35 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":35   *         if i<0:   *             j = self.len + i   *         if j<0 or j>=self.len:             # <<<<<<<<<<<<<< @@ -4564,7 +4565,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_set(struct __pyx_obj_4cdec_2sa_3_s    }    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":36 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":36   *             j = self.len + i   *         if j<0 or j>=self.len:   *             raise IndexError("Requested index %d of %d-length FloatList" % (i, self.len))             # <<<<<<<<<<<<<< @@ -4599,7 +4600,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_set(struct __pyx_obj_4cdec_2sa_3_s      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":37 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":37   *         if j<0 or j>=self.len:   *             raise IndexError("Requested index %d of %d-length FloatList" % (i, self.len))   *         self.arr[j] = v             # <<<<<<<<<<<<<< @@ -4608,7 +4609,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_set(struct __pyx_obj_4cdec_2sa_3_s   */    (__pyx_v_self->arr[__pyx_v_j]) = __pyx_v_v; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":31 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":31   *         return self.arr[j]   *    *     cdef void set(self, int i, float v):             # <<<<<<<<<<<<<< @@ -4627,7 +4628,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_set(struct __pyx_obj_4cdec_2sa_3_s    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":39 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":39   *         self.arr[j] = v   *    *     def __setitem__(self, i, val):             # <<<<<<<<<<<<<< @@ -4658,7 +4659,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList_6__setitem__(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__setitem__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":40 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":40   *    *     def __setitem__(self, i, val):   *         self.set(i, val)             # <<<<<<<<<<<<<< @@ -4669,7 +4670,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList_6__setitem__(struct __pyx_obj_4cde    __pyx_t_2 = __pyx_PyFloat_AsFloat(__pyx_v_val); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_FloatList *)__pyx_v_self->__pyx_vtab)->set(__pyx_v_self, __pyx_t_1, __pyx_t_2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":39 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":39   *         self.arr[j] = v   *    *     def __setitem__(self, i, val):             # <<<<<<<<<<<<<< @@ -4688,7 +4689,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9FloatList_6__setitem__(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":42 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":42   *         self.set(i, val)   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -4714,7 +4715,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_9FloatList_8__len__(struct __pyx_obj_4    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":43 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":43   *    *     def __len__(self):   *         return self.len             # <<<<<<<<<<<<<< @@ -4724,7 +4725,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_9FloatList_8__len__(struct __pyx_obj_4    __pyx_r = __pyx_v_self->len;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":42 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":42   *         self.set(i, val)   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -4738,7 +4739,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_9FloatList_8__len__(struct __pyx_obj_4    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":45 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":45   *         return self.len   *    *     def append(self, float val):             # <<<<<<<<<<<<<< @@ -4778,7 +4779,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_10append(struct __pyx_obj_4c    int __pyx_t_1;    __Pyx_RefNannySetupContext("append", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":46 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":46   *    *     def append(self, float val):   *         if self.len == self.size:             # <<<<<<<<<<<<<< @@ -4788,7 +4789,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_10append(struct __pyx_obj_4c    __pyx_t_1 = ((__pyx_v_self->len == __pyx_v_self->size) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":47 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":47   *     def append(self, float val):   *         if self.len == self.size:   *             self.size = self.size + self.increment             # <<<<<<<<<<<<<< @@ -4797,7 +4798,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_10append(struct __pyx_obj_4c   */      __pyx_v_self->size = (__pyx_v_self->size + __pyx_v_self->increment); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":48 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":48   *         if self.len == self.size:   *             self.size = self.size + self.increment   *             self.arr = <float*> realloc(self.arr, self.size*sizeof(float))             # <<<<<<<<<<<<<< @@ -4809,7 +4810,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_10append(struct __pyx_obj_4c    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":49 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":49   *             self.size = self.size + self.increment   *             self.arr = <float*> realloc(self.arr, self.size*sizeof(float))   *         self.arr[self.len] = val             # <<<<<<<<<<<<<< @@ -4818,7 +4819,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_10append(struct __pyx_obj_4c   */    (__pyx_v_self->arr[__pyx_v_self->len]) = __pyx_v_val; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":50 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":50   *             self.arr = <float*> realloc(self.arr, self.size*sizeof(float))   *         self.arr[self.len] = val   *         self.len = self.len + 1             # <<<<<<<<<<<<<< @@ -4827,7 +4828,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_10append(struct __pyx_obj_4c   */    __pyx_v_self->len = (__pyx_v_self->len + 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":45 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":45   *         return self.len   *    *     def append(self, float val):             # <<<<<<<<<<<<<< @@ -4842,7 +4843,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_10append(struct __pyx_obj_4c    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":52 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":52   *         self.len = self.len + 1   *    *     cdef void write_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -4854,7 +4855,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_write_handle(struct __pyx_obj_4cde    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("write_handle", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":53 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":53   *    *     cdef void write_handle(self, FILE* f):   *         fwrite(&(self.len), sizeof(float), 1, f)             # <<<<<<<<<<<<<< @@ -4863,7 +4864,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_write_handle(struct __pyx_obj_4cde   */    fwrite((&__pyx_v_self->len), (sizeof(float)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":54 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":54   *     cdef void write_handle(self, FILE* f):   *         fwrite(&(self.len), sizeof(float), 1, f)   *         fwrite(self.arr, sizeof(float), self.len, f)             # <<<<<<<<<<<<<< @@ -4872,7 +4873,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_write_handle(struct __pyx_obj_4cde   */    fwrite(__pyx_v_self->arr, (sizeof(float)), __pyx_v_self->len, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":52 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":52   *         self.len = self.len + 1   *    *     cdef void write_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -4884,7 +4885,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_write_handle(struct __pyx_obj_4cde    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":56 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":56   *         fwrite(self.arr, sizeof(float), self.len, f)   *    *     def write(self, char* filename):             # <<<<<<<<<<<<<< @@ -4924,7 +4925,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_12write(struct __pyx_obj_4cd    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("write", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":58 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":58   *     def write(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "w")             # <<<<<<<<<<<<<< @@ -4933,7 +4934,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_12write(struct __pyx_obj_4cd   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_w); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":59 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":59   *         cdef FILE* f   *         f = fopen(filename, "w")   *         self.write_handle(f)             # <<<<<<<<<<<<<< @@ -4942,7 +4943,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_12write(struct __pyx_obj_4cd   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_FloatList *)__pyx_v_self->__pyx_vtab)->write_handle(__pyx_v_self, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":60 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":60   *         f = fopen(filename, "w")   *         self.write_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -4951,7 +4952,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_12write(struct __pyx_obj_4cd   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":56 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":56   *         fwrite(self.arr, sizeof(float), self.len, f)   *    *     def write(self, char* filename):             # <<<<<<<<<<<<<< @@ -4966,7 +4967,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_12write(struct __pyx_obj_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":62 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":62   *         fclose(f)   *    *     cdef void read_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -4979,7 +4980,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_read_handle(struct __pyx_obj_4cdec    int __pyx_t_1;    __Pyx_RefNannySetupContext("read_handle", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":63 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":63   *    *     cdef void read_handle(self, FILE* f):   *         free(self.arr)             # <<<<<<<<<<<<<< @@ -4988,7 +4989,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_read_handle(struct __pyx_obj_4cdec   */    free(__pyx_v_self->arr); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":64 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":64   *     cdef void read_handle(self, FILE* f):   *         free(self.arr)   *         fread(&(self.len), sizeof(float), 1, f)             # <<<<<<<<<<<<<< @@ -4997,7 +4998,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_read_handle(struct __pyx_obj_4cdec   */    fread((&__pyx_v_self->len), (sizeof(float)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":65 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":65   *         free(self.arr)   *         fread(&(self.len), sizeof(float), 1, f)   *         self.arr = <float*> malloc(self.len * sizeof(float))             # <<<<<<<<<<<<<< @@ -5006,7 +5007,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_read_handle(struct __pyx_obj_4cdec   */    __pyx_v_self->arr = ((float *)malloc((__pyx_v_self->len * (sizeof(float))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":66 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":66   *         fread(&(self.len), sizeof(float), 1, f)   *         self.arr = <float*> malloc(self.len * sizeof(float))   *         self.size = self.len             # <<<<<<<<<<<<<< @@ -5016,7 +5017,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_read_handle(struct __pyx_obj_4cdec    __pyx_t_1 = __pyx_v_self->len;    __pyx_v_self->size = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":67 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":67   *         self.arr = <float*> malloc(self.len * sizeof(float))   *         self.size = self.len   *         fread(self.arr, sizeof(float), self.len, f)             # <<<<<<<<<<<<<< @@ -5025,7 +5026,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_read_handle(struct __pyx_obj_4cdec   */    fread(__pyx_v_self->arr, (sizeof(float)), __pyx_v_self->len, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":62 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":62   *         fclose(f)   *    *     cdef void read_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -5037,7 +5038,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9FloatList_read_handle(struct __pyx_obj_4cdec    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":69 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":69   *         fread(self.arr, sizeof(float), self.len, f)   *    *     def read(self, char* filename):             # <<<<<<<<<<<<<< @@ -5077,7 +5078,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_14read(struct __pyx_obj_4cde    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("read", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":71 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":71   *     def read(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "r")             # <<<<<<<<<<<<<< @@ -5086,7 +5087,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_14read(struct __pyx_obj_4cde   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_r); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":72 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":72   *         cdef FILE* f   *         f = fopen(filename, "r")   *         self.read_handle(f)             # <<<<<<<<<<<<<< @@ -5094,14 +5095,14 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_14read(struct __pyx_obj_4cde   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_FloatList *)__pyx_v_self->__pyx_vtab)->read_handle(__pyx_v_self, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":73 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":73   *         f = fopen(filename, "r")   *         self.read_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<<   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/float_list.pxi":69 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/float_list.pxi":69   *         fread(self.arr, sizeof(float), self.len, f)   *    *     def read(self, char* filename):             # <<<<<<<<<<<<<< @@ -5116,7 +5117,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9FloatList_14read(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":11 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":11   * cdef class IntList:   *    *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):             # <<<<<<<<<<<<<< @@ -5216,7 +5217,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList___cinit__(struct __pyx_obj_4cdec_2sa    int __pyx_t_1;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":12 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":12   *    *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):   *         if initial_len > size:             # <<<<<<<<<<<<<< @@ -5226,7 +5227,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList___cinit__(struct __pyx_obj_4cdec_2sa    __pyx_t_1 = ((__pyx_v_initial_len > __pyx_v_size) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":13 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":13   *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):   *         if initial_len > size:   *             size = initial_len             # <<<<<<<<<<<<<< @@ -5238,7 +5239,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList___cinit__(struct __pyx_obj_4cdec_2sa    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":14 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":14   *         if initial_len > size:   *             size = initial_len   *         self.size = size             # <<<<<<<<<<<<<< @@ -5247,7 +5248,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList___cinit__(struct __pyx_obj_4cdec_2sa   */    __pyx_v_self->size = __pyx_v_size; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":15 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":15   *             size = initial_len   *         self.size = size   *         self.increment = increment             # <<<<<<<<<<<<<< @@ -5256,7 +5257,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList___cinit__(struct __pyx_obj_4cdec_2sa   */    __pyx_v_self->increment = __pyx_v_increment; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":16 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":16   *         self.size = size   *         self.increment = increment   *         self.len = initial_len             # <<<<<<<<<<<<<< @@ -5265,7 +5266,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList___cinit__(struct __pyx_obj_4cdec_2sa   */    __pyx_v_self->len = __pyx_v_initial_len; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":17 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":17   *         self.increment = increment   *         self.len = initial_len   *         self.arr = <int*> malloc(size*sizeof(int))             # <<<<<<<<<<<<<< @@ -5274,7 +5275,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList___cinit__(struct __pyx_obj_4cdec_2sa   */    __pyx_v_self->arr = ((int *)malloc((__pyx_v_size * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":18 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":18   *         self.len = initial_len   *         self.arr = <int*> malloc(size*sizeof(int))   *         memset(self.arr, 0, initial_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -5283,7 +5284,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList___cinit__(struct __pyx_obj_4cdec_2sa   */    memset(__pyx_v_self->arr, 0, (__pyx_v_initial_len * (sizeof(int)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":11 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":11   * cdef class IntList:   *    *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):             # <<<<<<<<<<<<<< @@ -5297,7 +5298,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList___cinit__(struct __pyx_obj_4cdec_2sa    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":20 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":20   *         memset(self.arr, 0, initial_len*sizeof(int))   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -5333,7 +5334,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_2__str__(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__str__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":22 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":22   *     def __str__(self):   *         cdef unsigned i   *         ret = "IntList["             # <<<<<<<<<<<<<< @@ -5343,7 +5344,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_2__str__(struct __pyx_obj_4cde    __Pyx_INCREF(__pyx_kp_s_IntList);    __pyx_v_ret = __pyx_kp_s_IntList; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":23 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":23   *         cdef unsigned i   *         ret = "IntList["   *         for idx in range(self.size):             # <<<<<<<<<<<<<< @@ -5354,7 +5355,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_2__str__(struct __pyx_obj_4cde    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_v_idx = __pyx_t_2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":24 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":24   *         ret = "IntList["   *         for idx in range(self.size):   *             if idx>0:             # <<<<<<<<<<<<<< @@ -5364,7 +5365,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_2__str__(struct __pyx_obj_4cde      __pyx_t_3 = ((__pyx_v_idx > 0) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":25 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":25   *         for idx in range(self.size):   *             if idx>0:   *                 ret += ","             # <<<<<<<<<<<<<< @@ -5379,7 +5380,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_2__str__(struct __pyx_obj_4cde      }      __pyx_L5:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":26 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":26   *             if idx>0:   *                 ret += ","   *             ret += str(self.arr[idx])             # <<<<<<<<<<<<<< @@ -5403,7 +5404,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_2__str__(struct __pyx_obj_4cde      __pyx_t_5 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":27 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":27   *                 ret += ","   *             ret += str(self.arr[idx])   *         ret += "]"             # <<<<<<<<<<<<<< @@ -5415,7 +5416,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_2__str__(struct __pyx_obj_4cde    __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_5);    __pyx_t_5 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":28 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":28   *             ret += str(self.arr[idx])   *         ret += "]"   *         ret += "len="             # <<<<<<<<<<<<<< @@ -5427,7 +5428,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_2__str__(struct __pyx_obj_4cde    __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_5);    __pyx_t_5 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":29 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":29   *         ret += "]"   *         ret += "len="   *         ret += str(self.len)             # <<<<<<<<<<<<<< @@ -5450,7 +5451,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_2__str__(struct __pyx_obj_4cde    __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_4);    __pyx_t_4 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":30 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":30   *         ret += "len="   *         ret += str(self.len)   *         return ret             # <<<<<<<<<<<<<< @@ -5462,7 +5463,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_2__str__(struct __pyx_obj_4cde    __pyx_r = __pyx_v_ret;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":20 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":20   *         memset(self.arr, 0, initial_len*sizeof(int))   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -5483,7 +5484,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_2__str__(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":32 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":32   *         return ret   *    *     def index(self, int val):             # <<<<<<<<<<<<<< @@ -5531,7 +5532,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_4index(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("index", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":34 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":34   *     def index(self, int val):   *         cdef unsigned i   *         for i in range(self.len):             # <<<<<<<<<<<<<< @@ -5542,7 +5543,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_4index(struct __pyx_obj_4cdec_    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_v_i = __pyx_t_2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":35 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":35   *         cdef unsigned i   *         for i in range(self.len):   *             if self.arr[i] == val:             # <<<<<<<<<<<<<< @@ -5552,7 +5553,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_4index(struct __pyx_obj_4cdec_      __pyx_t_3 = (((__pyx_v_self->arr[__pyx_v_i]) == __pyx_v_val) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":36 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":36   *         for i in range(self.len):   *             if self.arr[i] == val:   *                 return i             # <<<<<<<<<<<<<< @@ -5568,7 +5569,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_4index(struct __pyx_obj_4cdec_      }    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":37 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":37   *             if self.arr[i] == val:   *                 return i   *         raise ValueError('%s not in IntList' % val)             # <<<<<<<<<<<<<< @@ -5592,7 +5593,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_4index(struct __pyx_obj_4cdec_    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":32 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":32   *         return ret   *    *     def index(self, int val):             # <<<<<<<<<<<<<< @@ -5612,7 +5613,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_4index(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":39 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":39   *         raise ValueError('%s not in IntList' % val)   *    *     def partition(self,start,end):             # <<<<<<<<<<<<<< @@ -5699,7 +5700,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("partition", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":40 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":40   *    *     def partition(self,start,end):   *         pivot = self.arr[end]             # <<<<<<<<<<<<<< @@ -5712,7 +5713,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c    __pyx_v_pivot = __pyx_t_2;    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":41 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":41   *     def partition(self,start,end):   *         pivot = self.arr[end]   *         bottom = start-1             # <<<<<<<<<<<<<< @@ -5724,7 +5725,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c    __pyx_v_bottom = __pyx_t_2;    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":42 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":42   *         pivot = self.arr[end]   *         bottom = start-1   *         top = end             # <<<<<<<<<<<<<< @@ -5734,7 +5735,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c    __Pyx_INCREF(__pyx_v_end);    __pyx_v_top = __pyx_v_end; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":43 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":43   *         bottom = start-1   *         top = end   *         done = 0             # <<<<<<<<<<<<<< @@ -5743,7 +5744,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c   */    __pyx_v_done = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":44 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":44   *         top = end   *         done = 0   *         while not done:             # <<<<<<<<<<<<<< @@ -5754,7 +5755,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c      __pyx_t_3 = ((!(__pyx_v_done != 0)) != 0);      if (!__pyx_t_3) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":45 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":45   *         done = 0   *         while not done:   *             while not done:             # <<<<<<<<<<<<<< @@ -5765,7 +5766,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c        __pyx_t_3 = ((!(__pyx_v_done != 0)) != 0);        if (!__pyx_t_3) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":46 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":46   *         while not done:   *             while not done:   *                 bottom += 1             # <<<<<<<<<<<<<< @@ -5777,7 +5778,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c        __Pyx_DECREF_SET(__pyx_v_bottom, __pyx_t_2);        __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":47 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":47   *             while not done:   *                 bottom += 1   *                 if bottom == top:             # <<<<<<<<<<<<<< @@ -5789,7 +5790,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":48 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":48   *                 bottom += 1   *                 if bottom == top:   *                     done = 1             # <<<<<<<<<<<<<< @@ -5798,7 +5799,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c   */          __pyx_v_done = 1; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":49 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":49   *                 if bottom == top:   *                     done = 1   *                     break             # <<<<<<<<<<<<<< @@ -5808,7 +5809,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c          goto __pyx_L6_break;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":50 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":50   *                     done = 1   *                     break   *                 if self.arr[bottom] > pivot:             # <<<<<<<<<<<<<< @@ -5824,7 +5825,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":51 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":51   *                     break   *                 if self.arr[bottom] > pivot:   *                     self.arr[top] = self.arr[bottom]             # <<<<<<<<<<<<<< @@ -5835,7 +5836,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_top); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          (__pyx_v_self->arr[__pyx_t_5]) = (__pyx_v_self->arr[__pyx_t_1]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":52 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":52   *                 if self.arr[bottom] > pivot:   *                     self.arr[top] = self.arr[bottom]   *                     break             # <<<<<<<<<<<<<< @@ -5847,7 +5848,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c      }      __pyx_L6_break:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":53 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":53   *                     self.arr[top] = self.arr[bottom]   *                     break   *             while not done:             # <<<<<<<<<<<<<< @@ -5858,7 +5859,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c        __pyx_t_3 = ((!(__pyx_v_done != 0)) != 0);        if (!__pyx_t_3) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":54 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":54   *                     break   *             while not done:   *                 top -= 1             # <<<<<<<<<<<<<< @@ -5870,7 +5871,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c        __Pyx_DECREF_SET(__pyx_v_top, __pyx_t_4);        __pyx_t_4 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":55 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":55   *             while not done:   *                 top -= 1   *                 if top == bottom:             # <<<<<<<<<<<<<< @@ -5882,7 +5883,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":56 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":56   *                 top -= 1   *                 if top == bottom:   *                     done = 1             # <<<<<<<<<<<<<< @@ -5891,7 +5892,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c   */          __pyx_v_done = 1; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":57 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":57   *                 if top == bottom:   *                     done = 1   *                     break             # <<<<<<<<<<<<<< @@ -5901,7 +5902,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c          goto __pyx_L10_break;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":58 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":58   *                     done = 1   *                     break   *                 if self.arr[top] < pivot:             # <<<<<<<<<<<<<< @@ -5917,7 +5918,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":59 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":59   *                     break   *                 if self.arr[top] < pivot:   *                     self.arr[bottom] = self.arr[top]             # <<<<<<<<<<<<<< @@ -5928,7 +5929,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_bottom); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          (__pyx_v_self->arr[__pyx_t_5]) = (__pyx_v_self->arr[__pyx_t_1]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":60 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":60   *                 if self.arr[top] < pivot:   *                     self.arr[bottom] = self.arr[top]   *                     break             # <<<<<<<<<<<<<< @@ -5941,7 +5942,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c      __pyx_L10_break:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":61 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":61   *                     self.arr[bottom] = self.arr[top]   *                     break   *         self.arr[top] = pivot             # <<<<<<<<<<<<<< @@ -5952,7 +5953,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c    __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(__pyx_v_top); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    (__pyx_v_self->arr[__pyx_t_1]) = __pyx_t_6; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":62 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":62   *                     break   *         self.arr[top] = pivot   *         return top             # <<<<<<<<<<<<<< @@ -5964,7 +5965,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c    __pyx_r = __pyx_v_top;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":39 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":39   *         raise ValueError('%s not in IntList' % val)   *    *     def partition(self,start,end):             # <<<<<<<<<<<<<< @@ -5987,7 +5988,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_6partition(struct __pyx_obj_4c    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":64 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":64   *         return top   *    *     def _doquicksort(self,start,end):             # <<<<<<<<<<<<<< @@ -6069,7 +6070,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_8_doquicksort(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("_doquicksort", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":65 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":65   *    *     def _doquicksort(self,start,end):   *         if start < end:             # <<<<<<<<<<<<<< @@ -6081,7 +6082,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_8_doquicksort(struct __pyx_obj    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":66 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":66   *     def _doquicksort(self,start,end):   *         if start < end:   *             split = self.partition(start,end)             # <<<<<<<<<<<<<< @@ -6105,7 +6106,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_8_doquicksort(struct __pyx_obj      __pyx_v_split = __pyx_t_4;      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":67 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":67   *         if start < end:   *             split = self.partition(start,end)   *             self._doquicksort(start,split-1)             # <<<<<<<<<<<<<< @@ -6130,7 +6131,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_8_doquicksort(struct __pyx_obj      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":68 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":68   *             split = self.partition(start,end)   *             self._doquicksort(start,split-1)   *             self._doquicksort(split+1,end)             # <<<<<<<<<<<<<< @@ -6158,7 +6159,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_8_doquicksort(struct __pyx_obj    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":70 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":70   *             self._doquicksort(split+1,end)   *         else:   *             return             # <<<<<<<<<<<<<< @@ -6171,7 +6172,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_8_doquicksort(struct __pyx_obj    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":64 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":64   *         return top   *    *     def _doquicksort(self,start,end):             # <<<<<<<<<<<<<< @@ -6195,7 +6196,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_8_doquicksort(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":72 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":72   *             return   *    *     def sort(self):             # <<<<<<<<<<<<<< @@ -6227,7 +6228,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_10sort(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("sort", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":73 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":73   *    *     def sort(self):   *         self._doquicksort(0,self.len-1)             # <<<<<<<<<<<<<< @@ -6252,7 +6253,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_10sort(struct __pyx_obj_4cdec_    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":72 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":72   *             return   *    *     def sort(self):             # <<<<<<<<<<<<<< @@ -6275,7 +6276,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_10sort(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":75 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":75   *         self._doquicksort(0,self.len-1)   *    *     def reset(self):             # <<<<<<<<<<<<<< @@ -6301,7 +6302,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_12reset(struct __pyx_obj_4cdec    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("reset", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":76 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":76   *    *     def reset(self):   *         self.len = 0             # <<<<<<<<<<<<<< @@ -6310,7 +6311,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_12reset(struct __pyx_obj_4cdec   */    __pyx_v_self->len = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":75 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":75   *         self._doquicksort(0,self.len-1)   *    *     def reset(self):             # <<<<<<<<<<<<<< @@ -6325,7 +6326,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_12reset(struct __pyx_obj_4cdec    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":78 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":78   *         self.len = 0   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -6348,7 +6349,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_7IntList_14__dealloc__(struct __pyx_obj_4cde    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":79 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":79   *    *     def __dealloc__(self):   *         free(self.arr)             # <<<<<<<<<<<<<< @@ -6357,7 +6358,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_7IntList_14__dealloc__(struct __pyx_obj_4cde   */    free(__pyx_v_self->arr); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":78 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":78   *         self.len = 0   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -6370,7 +6371,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_7IntList_14__dealloc__(struct __pyx_obj_4cde  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_7IntList_18generator(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":81 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":81   *         free(self.arr)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -6450,7 +6451,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_7IntList_18generator(__pyx_GeneratorObj    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":83 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":83   *     def __iter__(self):   *         cdef int i   *         for i in range(self.len):             # <<<<<<<<<<<<<< @@ -6461,7 +6462,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_7IntList_18generator(__pyx_GeneratorObj    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":84 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":84   *         cdef int i   *         for i in range(self.len):   *             yield self.arr[i]             # <<<<<<<<<<<<<< @@ -6485,7 +6486,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_7IntList_18generator(__pyx_GeneratorObj      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":81 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":81   *         free(self.arr)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -6507,7 +6508,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_7IntList_18generator(__pyx_GeneratorObj    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":86 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":86   *             yield self.arr[i]   *    *     def __getitem__(self, index):             # <<<<<<<<<<<<<< @@ -6550,7 +6551,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__getitem__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":88 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":88   *     def __getitem__(self, index):   *         cdef int i, j, k   *         if isinstance(index, int):             # <<<<<<<<<<<<<< @@ -6561,7 +6562,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":89 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":89   *         cdef int i, j, k   *         if isinstance(index, int):   *             j = index             # <<<<<<<<<<<<<< @@ -6571,7 +6572,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_index); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_v_j = __pyx_t_3; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":90 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":90   *         if isinstance(index, int):   *             j = index   *             if j < 0:             # <<<<<<<<<<<<<< @@ -6581,7 +6582,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      __pyx_t_2 = ((__pyx_v_j < 0) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":91 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":91   *             j = index   *             if j < 0:   *                 j = self.len + j             # <<<<<<<<<<<<<< @@ -6593,7 +6594,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      }      __pyx_L4:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":92 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":92   *             if j < 0:   *                 j = self.len + j   *             if j<0 or j>=self.len:             # <<<<<<<<<<<<<< @@ -6609,7 +6610,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      }      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":93 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":93   *                 j = self.len + j   *             if j<0 or j>=self.len:   *                 raise IndexError("Requested index %d of %d-length IntList" % (index, self.len))             # <<<<<<<<<<<<<< @@ -6642,7 +6643,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":94 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":94   *             if j<0 or j>=self.len:   *                 raise IndexError("Requested index %d of %d-length IntList" % (index, self.len))   *             return self.arr[j]             # <<<<<<<<<<<<<< @@ -6657,7 +6658,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":95 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":95   *                 raise IndexError("Requested index %d of %d-length IntList" % (index, self.len))   *             return self.arr[j]   *         elif isinstance(index, slice):             # <<<<<<<<<<<<<< @@ -6668,7 +6669,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj    __pyx_t_2 = (__pyx_t_4 != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":96 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":96   *             return self.arr[j]   *         elif isinstance(index, slice):   *             i = index.start             # <<<<<<<<<<<<<< @@ -6681,7 +6682,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __pyx_v_i = __pyx_t_3; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":97 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":97   *         elif isinstance(index, slice):   *             i = index.start   *             j = index.stop             # <<<<<<<<<<<<<< @@ -6694,7 +6695,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __pyx_v_j = __pyx_t_3; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":98 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":98   *             i = index.start   *             j = index.stop   *             if i < 0:             # <<<<<<<<<<<<<< @@ -6704,7 +6705,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      __pyx_t_2 = ((__pyx_v_i < 0) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":99 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":99   *             j = index.stop   *             if i < 0:   *                 i = self.len + i             # <<<<<<<<<<<<<< @@ -6716,7 +6717,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      }      __pyx_L6:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":100 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":100   *             if i < 0:   *                 i = self.len + i   *             if j < 0:             # <<<<<<<<<<<<<< @@ -6726,7 +6727,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      __pyx_t_2 = ((__pyx_v_j < 0) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":101 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":101   *                 i = self.len + i   *             if j < 0:   *                 j = self.len + j             # <<<<<<<<<<<<<< @@ -6738,7 +6739,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      }      __pyx_L7:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":102 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":102   *             if j < 0:   *                 j = self.len + j   *             if i < 0 or i >= self.len or j < 0 or j > self.len:             # <<<<<<<<<<<<<< @@ -6766,7 +6767,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      }      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":103 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":103   *                 j = self.len + j   *             if i < 0 or i >= self.len or j < 0 or j > self.len:   *                 raise IndexError("Requested index %d:%d of %d-length IntList" % (index.start, index.stop, self.len))             # <<<<<<<<<<<<<< @@ -6806,7 +6807,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":104 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":104   *             if i < 0 or i >= self.len or j < 0 or j > self.len:   *                 raise IndexError("Requested index %d:%d of %d-length IntList" % (index.start, index.stop, self.len))   *             result = ()             # <<<<<<<<<<<<<< @@ -6816,7 +6817,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      __Pyx_INCREF(__pyx_empty_tuple);      __pyx_v_result = __pyx_empty_tuple; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":105 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":105   *                 raise IndexError("Requested index %d:%d of %d-length IntList" % (index.start, index.stop, self.len))   *             result = ()   *             for k from i <= k < j:             # <<<<<<<<<<<<<< @@ -6826,7 +6827,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      __pyx_t_3 = __pyx_v_j;      for (__pyx_v_k = __pyx_v_i; __pyx_v_k < __pyx_t_3; __pyx_v_k++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":106 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":106   *             result = ()   *             for k from i <= k < j:   *                 result = result + (self.arr[k],)             # <<<<<<<<<<<<<< @@ -6847,7 +6848,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj        __pyx_t_9 = 0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":107 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":107   *             for k from i <= k < j:   *                 result = result + (self.arr[k],)   *             return result             # <<<<<<<<<<<<<< @@ -6861,7 +6862,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":109 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":109   *             return result   *         else:   *             raise TypeError("Illegal key type %s for IntList" % type(index))             # <<<<<<<<<<<<<< @@ -6883,7 +6884,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":86 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":86   *             yield self.arr[i]   *    *     def __getitem__(self, index):             # <<<<<<<<<<<<<< @@ -6906,7 +6907,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_19__getitem__(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":111 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":111   *             raise TypeError("Illegal key type %s for IntList" % type(index))   *    *     cdef void set(self, int i, int val):             # <<<<<<<<<<<<<< @@ -6928,7 +6929,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_set(struct __pyx_obj_4cdec_2sa_3_sa_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("set", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":112 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":112   *    *     cdef void set(self, int i, int val):   *         j = i             # <<<<<<<<<<<<<< @@ -6937,7 +6938,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_set(struct __pyx_obj_4cdec_2sa_3_sa_   */    __pyx_v_j = __pyx_v_i; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":113 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":113   *     cdef void set(self, int i, int val):   *         j = i   *         if i<0:             # <<<<<<<<<<<<<< @@ -6947,7 +6948,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_set(struct __pyx_obj_4cdec_2sa_3_sa_    __pyx_t_1 = ((__pyx_v_i < 0) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":114 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":114   *         j = i   *         if i<0:   *             j = self.len + i             # <<<<<<<<<<<<<< @@ -6959,7 +6960,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_set(struct __pyx_obj_4cdec_2sa_3_sa_    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":115 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":115   *         if i<0:   *             j = self.len + i   *         if j<0 or j>=self.len:             # <<<<<<<<<<<<<< @@ -6975,7 +6976,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_set(struct __pyx_obj_4cdec_2sa_3_sa_    }    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":116 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":116   *             j = self.len + i   *         if j<0 or j>=self.len:   *             raise IndexError("Requested index %d of %d-length IntList" % (i, self.len))             # <<<<<<<<<<<<<< @@ -7010,7 +7011,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_set(struct __pyx_obj_4cdec_2sa_3_sa_      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":117 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":117   *         if j<0 or j>=self.len:   *             raise IndexError("Requested index %d of %d-length IntList" % (i, self.len))   *         self.arr[j] = val             # <<<<<<<<<<<<<< @@ -7019,7 +7020,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_set(struct __pyx_obj_4cdec_2sa_3_sa_   */    (__pyx_v_self->arr[__pyx_v_j]) = __pyx_v_val; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":111 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":111   *             raise TypeError("Illegal key type %s for IntList" % type(index))   *    *     cdef void set(self, int i, int val):             # <<<<<<<<<<<<<< @@ -7038,7 +7039,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_set(struct __pyx_obj_4cdec_2sa_3_sa_    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":119 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":119   *         self.arr[j] = val   *    *     def __setitem__(self, i, val):             # <<<<<<<<<<<<<< @@ -7069,7 +7070,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList_21__setitem__(struct __pyx_obj_4cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__setitem__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":120 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":120   *    *     def __setitem__(self, i, val):   *         self.set(i, val)             # <<<<<<<<<<<<<< @@ -7080,7 +7081,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList_21__setitem__(struct __pyx_obj_4cdec    __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_val); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->__pyx_vtab)->set(__pyx_v_self, __pyx_t_1, __pyx_t_2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":119 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":119   *         self.arr[j] = val   *    *     def __setitem__(self, i, val):             # <<<<<<<<<<<<<< @@ -7099,7 +7100,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7IntList_21__setitem__(struct __pyx_obj_4cdec    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":122 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":122   *         self.set(i, val)   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -7125,7 +7126,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_7IntList_23__len__(struct __pyx_obj_4c    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":123 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":123   *    *     def __len__(self):   *         return self.len             # <<<<<<<<<<<<<< @@ -7135,7 +7136,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_7IntList_23__len__(struct __pyx_obj_4c    __pyx_r = __pyx_v_self->len;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":122 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":122   *         self.set(i, val)   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -7149,7 +7150,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_7IntList_23__len__(struct __pyx_obj_4c    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":125 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":125   *         return self.len   *    *     def get_size(self):             # <<<<<<<<<<<<<< @@ -7179,7 +7180,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_25get_size(struct __pyx_obj_4c    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("get_size", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":126 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":126   *    *     def get_size(self):   *         return self.size             # <<<<<<<<<<<<<< @@ -7193,7 +7194,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_25get_size(struct __pyx_obj_4c    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":125 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":125   *         return self.len   *    *     def get_size(self):             # <<<<<<<<<<<<<< @@ -7212,7 +7213,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_25get_size(struct __pyx_obj_4c    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":128 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":128   *         return self.size   *    *     def append(self, int val):             # <<<<<<<<<<<<<< @@ -7251,7 +7252,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_27append(struct __pyx_obj_4cde    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("append", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":129 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":129   *    *     def append(self, int val):   *         self._append(val)             # <<<<<<<<<<<<<< @@ -7260,7 +7261,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_27append(struct __pyx_obj_4cde   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->__pyx_vtab)->_append(__pyx_v_self, __pyx_v_val); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":128 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":128   *         return self.size   *    *     def append(self, int val):             # <<<<<<<<<<<<<< @@ -7275,7 +7276,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_27append(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":131 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":131   *         self._append(val)   *    *     cdef void _append(self, int val):             # <<<<<<<<<<<<<< @@ -7288,7 +7289,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__append(struct __pyx_obj_4cdec_2sa_3    int __pyx_t_1;    __Pyx_RefNannySetupContext("_append", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":132 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":132   *    *     cdef void _append(self, int val):   *         if self.len == self.size:             # <<<<<<<<<<<<<< @@ -7298,7 +7299,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__append(struct __pyx_obj_4cdec_2sa_3    __pyx_t_1 = ((__pyx_v_self->len == __pyx_v_self->size) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":133 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":133   *     cdef void _append(self, int val):   *         if self.len == self.size:   *             self.size = self.size + self.increment             # <<<<<<<<<<<<<< @@ -7307,7 +7308,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__append(struct __pyx_obj_4cdec_2sa_3   */      __pyx_v_self->size = (__pyx_v_self->size + __pyx_v_self->increment); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":134 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":134   *         if self.len == self.size:   *             self.size = self.size + self.increment   *             self.arr = <int*> realloc(self.arr, self.size*sizeof(int))             # <<<<<<<<<<<<<< @@ -7319,7 +7320,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__append(struct __pyx_obj_4cdec_2sa_3    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":135 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":135   *             self.size = self.size + self.increment   *             self.arr = <int*> realloc(self.arr, self.size*sizeof(int))   *         self.arr[self.len] = val             # <<<<<<<<<<<<<< @@ -7328,7 +7329,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__append(struct __pyx_obj_4cdec_2sa_3   */    (__pyx_v_self->arr[__pyx_v_self->len]) = __pyx_v_val; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":136 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":136   *             self.arr = <int*> realloc(self.arr, self.size*sizeof(int))   *         self.arr[self.len] = val   *         self.len = self.len + 1             # <<<<<<<<<<<<<< @@ -7337,7 +7338,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__append(struct __pyx_obj_4cdec_2sa_3   */    __pyx_v_self->len = (__pyx_v_self->len + 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":131 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":131   *         self._append(val)   *    *     cdef void _append(self, int val):             # <<<<<<<<<<<<<< @@ -7349,7 +7350,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__append(struct __pyx_obj_4cdec_2sa_3    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":138 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":138   *         self.len = self.len + 1   *    *     def extend(self, other):             # <<<<<<<<<<<<<< @@ -7378,7 +7379,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_29extend(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("extend", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":139 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":139   *    *     def extend(self, other):   *         self._extend(other)             # <<<<<<<<<<<<<< @@ -7388,7 +7389,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_29extend(struct __pyx_obj_4cde    if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->__pyx_vtab)->_extend(__pyx_v_self, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_v_other)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":138 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":138   *         self.len = self.len + 1   *    *     def extend(self, other):             # <<<<<<<<<<<<<< @@ -7408,7 +7409,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_29extend(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":141 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":141   *         self._extend(other)   *    *     cdef void _extend(self, IntList other):             # <<<<<<<<<<<<<< @@ -7420,7 +7421,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__extend(struct __pyx_obj_4cdec_2sa_3    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("_extend", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":142 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":142   *    *     cdef void _extend(self, IntList other):   *         self._extend_arr(other.arr, other.len)             # <<<<<<<<<<<<<< @@ -7429,7 +7430,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__extend(struct __pyx_obj_4cdec_2sa_3   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->__pyx_vtab)->_extend_arr(__pyx_v_self, __pyx_v_other->arr, __pyx_v_other->len); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":141 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":141   *         self._extend(other)   *    *     cdef void _extend(self, IntList other):             # <<<<<<<<<<<<<< @@ -7441,7 +7442,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__extend(struct __pyx_obj_4cdec_2sa_3    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":144 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":144   *         self._extend_arr(other.arr, other.len)   *    *     cdef void _extend_arr(self, int* other, int other_len):             # <<<<<<<<<<<<<< @@ -7454,7 +7455,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__extend_arr(struct __pyx_obj_4cdec_2    int __pyx_t_1;    __Pyx_RefNannySetupContext("_extend_arr", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":145 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":145   *    *     cdef void _extend_arr(self, int* other, int other_len):   *         if self.size < self.len + other_len:             # <<<<<<<<<<<<<< @@ -7464,7 +7465,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__extend_arr(struct __pyx_obj_4cdec_2    __pyx_t_1 = ((__pyx_v_self->size < (__pyx_v_self->len + __pyx_v_other_len)) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":146 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":146   *     cdef void _extend_arr(self, int* other, int other_len):   *         if self.size < self.len + other_len:   *             self.size = self.len + other_len             # <<<<<<<<<<<<<< @@ -7473,7 +7474,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__extend_arr(struct __pyx_obj_4cdec_2   */      __pyx_v_self->size = (__pyx_v_self->len + __pyx_v_other_len); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":147 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":147   *         if self.size < self.len + other_len:   *             self.size = self.len + other_len   *             self.arr = <int*> realloc(self.arr, self.size*sizeof(int))             # <<<<<<<<<<<<<< @@ -7485,7 +7486,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__extend_arr(struct __pyx_obj_4cdec_2    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":148 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":148   *             self.size = self.len + other_len   *             self.arr = <int*> realloc(self.arr, self.size*sizeof(int))   *         memcpy(self.arr+self.len, other, other_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -7494,7 +7495,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__extend_arr(struct __pyx_obj_4cdec_2   */    memcpy((__pyx_v_self->arr + __pyx_v_self->len), __pyx_v_other, (__pyx_v_other_len * (sizeof(int)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":149 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":149   *             self.arr = <int*> realloc(self.arr, self.size*sizeof(int))   *         memcpy(self.arr+self.len, other, other_len*sizeof(int))   *         self.len = self.len + other_len             # <<<<<<<<<<<<<< @@ -7503,7 +7504,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__extend_arr(struct __pyx_obj_4cdec_2   */    __pyx_v_self->len = (__pyx_v_self->len + __pyx_v_other_len); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":144 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":144   *         self._extend_arr(other.arr, other.len)   *    *     cdef void _extend_arr(self, int* other, int other_len):             # <<<<<<<<<<<<<< @@ -7515,7 +7516,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__extend_arr(struct __pyx_obj_4cdec_2    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":151 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":151   *         self.len = self.len + other_len   *    *     cdef void _clear(self):             # <<<<<<<<<<<<<< @@ -7527,7 +7528,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__clear(struct __pyx_obj_4cdec_2sa_3_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("_clear", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":152 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":152   *    *     cdef void _clear(self):   *         free(self.arr)             # <<<<<<<<<<<<<< @@ -7536,7 +7537,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__clear(struct __pyx_obj_4cdec_2sa_3_   */    free(__pyx_v_self->arr); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":153 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":153   *     cdef void _clear(self):   *         free(self.arr)   *         self.len = 0             # <<<<<<<<<<<<<< @@ -7545,7 +7546,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__clear(struct __pyx_obj_4cdec_2sa_3_   */    __pyx_v_self->len = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":154 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":154   *         free(self.arr)   *         self.len = 0   *         self.size = 0             # <<<<<<<<<<<<<< @@ -7554,7 +7555,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__clear(struct __pyx_obj_4cdec_2sa_3_   */    __pyx_v_self->size = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":155 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":155   *         self.len = 0   *         self.size = 0   *         self.arr = <int*> malloc(0)             # <<<<<<<<<<<<<< @@ -7563,7 +7564,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__clear(struct __pyx_obj_4cdec_2sa_3_   */    __pyx_v_self->arr = ((int *)malloc(0)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":151 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":151   *         self.len = self.len + other_len   *    *     cdef void _clear(self):             # <<<<<<<<<<<<<< @@ -7575,7 +7576,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList__clear(struct __pyx_obj_4cdec_2sa_3_    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":157 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":157   *         self.arr = <int*> malloc(0)   *    *     cdef void write_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -7587,7 +7588,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_write_handle(struct __pyx_obj_4cdec_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("write_handle", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":158 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":158   *    *     cdef void write_handle(self, FILE* f):   *         fwrite(&(self.len), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -7596,7 +7597,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_write_handle(struct __pyx_obj_4cdec_   */    fwrite((&__pyx_v_self->len), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":159 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":159   *     cdef void write_handle(self, FILE* f):   *         fwrite(&(self.len), sizeof(int), 1, f)   *         fwrite(self.arr, sizeof(int), self.len, f)             # <<<<<<<<<<<<<< @@ -7605,7 +7606,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_write_handle(struct __pyx_obj_4cdec_   */    fwrite(__pyx_v_self->arr, (sizeof(int)), __pyx_v_self->len, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":157 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":157   *         self.arr = <int*> malloc(0)   *    *     cdef void write_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -7617,7 +7618,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_write_handle(struct __pyx_obj_4cdec_    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":161 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":161   *         fwrite(self.arr, sizeof(int), self.len, f)   *    *     def write(self, char* filename):             # <<<<<<<<<<<<<< @@ -7657,7 +7658,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_31write(struct __pyx_obj_4cdec    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("write", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":163 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":163   *     def write(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "w")             # <<<<<<<<<<<<<< @@ -7666,7 +7667,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_31write(struct __pyx_obj_4cdec   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_w); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":164 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":164   *         cdef FILE* f   *         f = fopen(filename, "w")   *         self.write_handle(f)             # <<<<<<<<<<<<<< @@ -7675,7 +7676,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_31write(struct __pyx_obj_4cdec   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->__pyx_vtab)->write_handle(__pyx_v_self, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":165 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":165   *         f = fopen(filename, "w")   *         self.write_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -7684,7 +7685,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_31write(struct __pyx_obj_4cdec   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":161 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":161   *         fwrite(self.arr, sizeof(int), self.len, f)   *    *     def write(self, char* filename):             # <<<<<<<<<<<<<< @@ -7699,7 +7700,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_31write(struct __pyx_obj_4cdec    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":167 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":167   *         fclose(f)   *    *     cdef void read_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -7712,7 +7713,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_read_handle(struct __pyx_obj_4cdec_2    int __pyx_t_1;    __Pyx_RefNannySetupContext("read_handle", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":168 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":168   *    *     cdef void read_handle(self, FILE* f):   *         (self.arr)             # <<<<<<<<<<<<<< @@ -7721,7 +7722,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_read_handle(struct __pyx_obj_4cdec_2   */    __pyx_v_self->arr; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":169 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":169   *     cdef void read_handle(self, FILE* f):   *         (self.arr)   *         fread(&(self.len), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -7730,7 +7731,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_read_handle(struct __pyx_obj_4cdec_2   */    fread((&__pyx_v_self->len), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":170 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":170   *         (self.arr)   *         fread(&(self.len), sizeof(int), 1, f)   *         self.arr = <int*> malloc(self.len * sizeof(int))             # <<<<<<<<<<<<<< @@ -7739,7 +7740,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_read_handle(struct __pyx_obj_4cdec_2   */    __pyx_v_self->arr = ((int *)malloc((__pyx_v_self->len * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":171 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":171   *         fread(&(self.len), sizeof(int), 1, f)   *         self.arr = <int*> malloc(self.len * sizeof(int))   *         self.size = self.len             # <<<<<<<<<<<<<< @@ -7749,7 +7750,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_read_handle(struct __pyx_obj_4cdec_2    __pyx_t_1 = __pyx_v_self->len;    __pyx_v_self->size = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":172 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":172   *         self.arr = <int*> malloc(self.len * sizeof(int))   *         self.size = self.len   *         fread(self.arr, sizeof(int), self.len, f)             # <<<<<<<<<<<<<< @@ -7758,7 +7759,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_read_handle(struct __pyx_obj_4cdec_2   */    fread(__pyx_v_self->arr, (sizeof(int)), __pyx_v_self->len, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":167 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":167   *         fclose(f)   *    *     cdef void read_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -7770,7 +7771,7 @@ static void __pyx_f_4cdec_2sa_3_sa_7IntList_read_handle(struct __pyx_obj_4cdec_2    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":174 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":174   *         fread(self.arr, sizeof(int), self.len, f)   *    *     def read(self, char* filename):             # <<<<<<<<<<<<<< @@ -7810,7 +7811,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_33read(struct __pyx_obj_4cdec_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("read", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":176 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":176   *     def read(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "r")             # <<<<<<<<<<<<<< @@ -7819,7 +7820,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_33read(struct __pyx_obj_4cdec_   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_r); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":177 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":177   *         cdef FILE* f   *         f = fopen(filename, "r")   *         self.read_handle(f)             # <<<<<<<<<<<<<< @@ -7827,14 +7828,14 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_33read(struct __pyx_obj_4cdec_   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->__pyx_vtab)->read_handle(__pyx_v_self, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":178 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":178   *         f = fopen(filename, "r")   *         self.read_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<<   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/int_list.pxi":174 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/int_list.pxi":174   *         fread(self.arr, sizeof(int), self.len, f)   *    *     def read(self, char* filename):             # <<<<<<<<<<<<<< @@ -7849,7 +7850,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7IntList_33read(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":13 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":13   *     cdef int index(self, char *s)   *    *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -7878,7 +7879,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9StringMap___cinit__(struct __pyx_obj_4cdec_2    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":14 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":14   *    *     def __cinit__(self):   *         self.vocab = stringmap_new()             # <<<<<<<<<<<<<< @@ -7887,7 +7888,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9StringMap___cinit__(struct __pyx_obj_4cdec_2   */    __pyx_v_self->vocab = stringmap_new(); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":13 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":13   *     cdef int index(self, char *s)   *    *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -7901,7 +7902,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9StringMap___cinit__(struct __pyx_obj_4cdec_2    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":16 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":16   *         self.vocab = stringmap_new()   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -7924,7 +7925,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_9StringMap_2__dealloc__(struct __pyx_obj_4cd    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":17 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":17   *    *     def __dealloc__(self):   *         stringmap_delete(self.vocab)             # <<<<<<<<<<<<<< @@ -7933,7 +7934,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_9StringMap_2__dealloc__(struct __pyx_obj_4cd   */    stringmap_delete(__pyx_v_self->vocab); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":16 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":16   *         self.vocab = stringmap_new()   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -7945,7 +7946,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_9StringMap_2__dealloc__(struct __pyx_obj_4cd    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":19 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":19   *         stringmap_delete(self.vocab)   *    *     cdef char *word(self, int i):             # <<<<<<<<<<<<<< @@ -7958,7 +7959,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_9StringMap_word(struct __pyx_obj_4cdec_2sa_3    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("word", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":20 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":20   *    *     cdef char *word(self, int i):   *         return stringmap_word(self.vocab, i)             # <<<<<<<<<<<<<< @@ -7968,7 +7969,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_9StringMap_word(struct __pyx_obj_4cdec_2sa_3    __pyx_r = stringmap_word(__pyx_v_self->vocab, __pyx_v_i);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":19 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":19   *         stringmap_delete(self.vocab)   *    *     cdef char *word(self, int i):             # <<<<<<<<<<<<<< @@ -7982,7 +7983,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_9StringMap_word(struct __pyx_obj_4cdec_2sa_3    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":22 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":22   *         return stringmap_word(self.vocab, i)   *    *     cdef int index(self, char *s):             # <<<<<<<<<<<<<< @@ -7994,7 +7995,7 @@ static int __pyx_f_4cdec_2sa_3_sa_9StringMap_index(struct __pyx_obj_4cdec_2sa_3_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("index", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":23 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":23   *    *     cdef int index(self, char *s):   *         return stringmap_index(self.vocab, s)             # <<<<<<<<<<<<<< @@ -8002,7 +8003,7 @@ static int __pyx_f_4cdec_2sa_3_sa_9StringMap_index(struct __pyx_obj_4cdec_2sa_3_    __pyx_r = stringmap_index(__pyx_v_self->vocab, __pyx_v_s);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/str_map.pxi":22 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/str_map.pxi":22   *         return stringmap_word(self.vocab, i)   *    *     cdef int index(self, char *s):             # <<<<<<<<<<<<<< @@ -8015,7 +8016,7 @@ static int __pyx_f_4cdec_2sa_3_sa_9StringMap_index(struct __pyx_obj_4cdec_2sa_3_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":17 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":17   *     cdef bint use_sent_id   *    *     def __cinit__(self, from_binary=None, from_text=None, side=None, bint use_sent_id=False):             # <<<<<<<<<<<<<< @@ -8125,7 +8126,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":18 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":18   *    *     def __cinit__(self, from_binary=None, from_text=None, side=None, bint use_sent_id=False):   *         self.word2id = {"END_OF_FILE":0, "END_OF_LINE":1}             # <<<<<<<<<<<<<< @@ -8142,7 +8143,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2    __pyx_v_self->word2id = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":19 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":19   *     def __cinit__(self, from_binary=None, from_text=None, side=None, bint use_sent_id=False):   *         self.word2id = {"END_OF_FILE":0, "END_OF_LINE":1}   *         self.id2word = ["END_OF_FILE", "END_OF_LINE"]             # <<<<<<<<<<<<<< @@ -8163,7 +8164,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2    __pyx_v_self->id2word = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":20 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":20   *         self.word2id = {"END_OF_FILE":0, "END_OF_LINE":1}   *         self.id2word = ["END_OF_FILE", "END_OF_LINE"]   *         self.data = IntList(1000,1000)             # <<<<<<<<<<<<<< @@ -8178,7 +8179,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2    __pyx_v_self->data = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":21 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":21   *         self.id2word = ["END_OF_FILE", "END_OF_LINE"]   *         self.data = IntList(1000,1000)   *         self.sent_id = IntList(1000,1000)             # <<<<<<<<<<<<<< @@ -8193,7 +8194,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2    __pyx_v_self->sent_id = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":22 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":22   *         self.data = IntList(1000,1000)   *         self.sent_id = IntList(1000,1000)   *         self.sent_index = IntList(1000,1000)             # <<<<<<<<<<<<<< @@ -8208,7 +8209,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2    __pyx_v_self->sent_index = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":23 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":23   *         self.sent_id = IntList(1000,1000)   *         self.sent_index = IntList(1000,1000)   *         self.use_sent_id = use_sent_id             # <<<<<<<<<<<<<< @@ -8217,7 +8218,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2   */    __pyx_v_self->use_sent_id = __pyx_v_use_sent_id; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":24 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":24   *         self.sent_index = IntList(1000,1000)   *         self.use_sent_id = use_sent_id   *         if from_binary:             # <<<<<<<<<<<<<< @@ -8227,7 +8228,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_from_binary); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":25 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":25   *         self.use_sent_id = use_sent_id   *         if from_binary:   *             self.read_binary(from_binary)             # <<<<<<<<<<<<<< @@ -8249,7 +8250,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2      goto __pyx_L3;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":26 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":26   *         if from_binary:   *             self.read_binary(from_binary)   *         elif from_text:             # <<<<<<<<<<<<<< @@ -8259,7 +8260,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_from_text); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":27 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":27   *             self.read_binary(from_binary)   *         elif from_text:   *             if side:             # <<<<<<<<<<<<<< @@ -8269,7 +8270,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_side); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":28 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":28   *         elif from_text:   *             if side:   *                 self.read_bitext(from_text, (0 if side == 'source' else 1))             # <<<<<<<<<<<<<< @@ -8303,7 +8304,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":30 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":30   *                 self.read_bitext(from_text, (0 if side == 'source' else 1))   *             else:   *                 self.read_text(from_text)             # <<<<<<<<<<<<<< @@ -8328,7 +8329,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":17 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":17   *     cdef bint use_sent_id   *    *     def __cinit__(self, from_binary=None, from_text=None, side=None, bint use_sent_id=False):             # <<<<<<<<<<<<<< @@ -8350,7 +8351,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray___cinit__(struct __pyx_obj_4cdec_2    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":32 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":32   *                 self.read_text(from_text)   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -8381,7 +8382,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_9DataArray_2__len__(struct __pyx_obj_4    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":33 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":33   *    *     def __len__(self):   *         return len(self.data)             # <<<<<<<<<<<<<< @@ -8395,7 +8396,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_9DataArray_2__len__(struct __pyx_obj_4    __pyx_r = __pyx_t_2;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":32 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":32   *                 self.read_text(from_text)   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -8413,7 +8414,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_9DataArray_2__len__(struct __pyx_obj_4    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":35 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":35   *         return len(self.data)   *    *     def get_sentence_id(self, i):             # <<<<<<<<<<<<<< @@ -8444,7 +8445,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_4get_sentence_id(struct __py    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("get_sentence_id", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":36 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":36   *    *     def get_sentence_id(self, i):   *         return self.sent_id.arr[i]             # <<<<<<<<<<<<<< @@ -8459,7 +8460,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_4get_sentence_id(struct __py    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":35 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":35   *         return len(self.data)   *    *     def get_sentence_id(self, i):             # <<<<<<<<<<<<<< @@ -8478,7 +8479,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_4get_sentence_id(struct __py    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":38 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":38   *         return self.sent_id.arr[i]   *    *     def get_sentence(self, i):             # <<<<<<<<<<<<<< @@ -8516,7 +8517,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_6get_sentence(struct __pyx_o    __Pyx_RefNannySetupContext("get_sentence", 0);    __Pyx_INCREF(__pyx_v_i); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":40 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":40   *     def get_sentence(self, i):   *         cdef int j, start, stop   *         sent = []             # <<<<<<<<<<<<<< @@ -8528,7 +8529,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_6get_sentence(struct __pyx_o    __pyx_v_sent = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":41 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":41   *         cdef int j, start, stop   *         sent = []   *         start = self.sent_index.arr[i]             # <<<<<<<<<<<<<< @@ -8538,7 +8539,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_6get_sentence(struct __pyx_o    __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_start = (__pyx_v_self->sent_index->arr[__pyx_t_2]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":42 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":42   *         sent = []   *         start = self.sent_index.arr[i]   *         stop = self.sent_index.arr[i+1]             # <<<<<<<<<<<<<< @@ -8551,7 +8552,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_6get_sentence(struct __pyx_o    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_stop = (__pyx_v_self->sent_index->arr[__pyx_t_2]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":43 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":43   *         start = self.sent_index.arr[i]   *         stop = self.sent_index.arr[i+1]   *         for i from start <= i < stop:             # <<<<<<<<<<<<<< @@ -8565,7 +8566,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_6get_sentence(struct __pyx_o      __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_1);      __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":44 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":44   *         stop = self.sent_index.arr[i+1]   *         for i from start <= i < stop:   *             sent.append(self.id2word[self.data.arr[i]])             # <<<<<<<<<<<<<< @@ -8580,7 +8581,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_6get_sentence(struct __pyx_o      __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":43 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":43   *         start = self.sent_index.arr[i]   *         stop = self.sent_index.arr[i+1]   *         for i from start <= i < stop:             # <<<<<<<<<<<<<< @@ -8592,7 +8593,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_6get_sentence(struct __pyx_o    __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":45 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":45   *         for i from start <= i < stop:   *             sent.append(self.id2word[self.data.arr[i]])   *         return sent             # <<<<<<<<<<<<<< @@ -8604,7 +8605,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_6get_sentence(struct __pyx_o    __pyx_r = __pyx_v_sent;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":38 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":38   *         return self.sent_id.arr[i]   *    *     def get_sentence(self, i):             # <<<<<<<<<<<<<< @@ -8625,7 +8626,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_6get_sentence(struct __pyx_o    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":47 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":47   *         return sent   *    *     def get_id(self, word):             # <<<<<<<<<<<<<< @@ -8659,7 +8660,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_8get_id(struct __pyx_obj_4cd    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("get_id", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":48 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":48   *    *     def get_id(self, word):   *         if not word in self.word2id:             # <<<<<<<<<<<<<< @@ -8670,7 +8671,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_8get_id(struct __pyx_obj_4cd    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":49 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":49   *     def get_id(self, word):   *         if not word in self.word2id:   *             self.word2id[word] = len(self.id2word)             # <<<<<<<<<<<<<< @@ -8686,7 +8687,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_8get_id(struct __pyx_obj_4cd      if (unlikely(PyObject_SetItem(__pyx_v_self->word2id, __pyx_v_word, __pyx_t_3) < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":50 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":50   *         if not word in self.word2id:   *             self.word2id[word] = len(self.id2word)   *             self.id2word.append(word)             # <<<<<<<<<<<<<< @@ -8698,7 +8699,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_8get_id(struct __pyx_obj_4cd    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":51 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":51   *             self.word2id[word] = len(self.id2word)   *             self.id2word.append(word)   *         return self.word2id[word]             # <<<<<<<<<<<<<< @@ -8712,7 +8713,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_8get_id(struct __pyx_obj_4cd    __pyx_t_3 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":47 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":47   *         return sent   *    *     def get_id(self, word):             # <<<<<<<<<<<<<< @@ -8731,7 +8732,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_8get_id(struct __pyx_obj_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":53 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":53   *         return self.word2id[word]   *    *     def __getitem__(self, loc):             # <<<<<<<<<<<<<< @@ -8762,7 +8763,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_10__getitem__(struct __pyx_o    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__getitem__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":54 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":54   *    *     def __getitem__(self, loc):   *         return self.id2word[self.data.arr[loc]]             # <<<<<<<<<<<<<< @@ -8777,7 +8778,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_10__getitem__(struct __pyx_o    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":53 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":53   *         return self.word2id[word]   *    *     def __getitem__(self, loc):             # <<<<<<<<<<<<<< @@ -8796,7 +8797,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_10__getitem__(struct __pyx_o    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":56 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":56   *         return self.id2word[self.data.arr[loc]]   *    *     def get_sentence_bounds(self, loc):             # <<<<<<<<<<<<<< @@ -8830,7 +8831,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_12get_sentence_bounds(struct    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("get_sentence_bounds", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":57 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":57   *    *     def get_sentence_bounds(self, loc):   *         cdef int sid = self.sent_id.arr[loc]             # <<<<<<<<<<<<<< @@ -8840,7 +8841,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_12get_sentence_bounds(struct    __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(__pyx_v_loc); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_sid = (__pyx_v_self->sent_id->arr[__pyx_t_1]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":58 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":58   *     def get_sentence_bounds(self, loc):   *         cdef int sid = self.sent_id.arr[loc]   *         return (self.sent_index.arr[sid], self.sent_index.arr[sid+1])             # <<<<<<<<<<<<<< @@ -8864,7 +8865,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_12get_sentence_bounds(struct    __pyx_t_4 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":56 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":56   *         return self.id2word[self.data.arr[loc]]   *    *     def get_sentence_bounds(self, loc):             # <<<<<<<<<<<<<< @@ -8885,7 +8886,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_12get_sentence_bounds(struct    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":60 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":60   *         return (self.sent_index.arr[sid], self.sent_index.arr[sid+1])   *    *     def write_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -8943,7 +8944,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_14write_text(struct __pyx_ob    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_text", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":61 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":61   *    *     def write_text(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -8983,7 +8984,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_14write_text(struct __pyx_ob            __pyx_v_f = __pyx_t_4;            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":62 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":62   *     def write_text(self, char* filename):   *         with open(filename, "w") as f:   *             for w_id in self.data:             # <<<<<<<<<<<<<< @@ -9028,7 +9029,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_14write_text(struct __pyx_ob              __Pyx_XDECREF_SET(__pyx_v_w_id, __pyx_t_1);              __pyx_t_1 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":63 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":63   *         with open(filename, "w") as f:   *             for w_id in self.data:   *                 if w_id > 1:             # <<<<<<<<<<<<<< @@ -9040,7 +9041,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_14write_text(struct __pyx_ob              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;              if (__pyx_t_10) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":64 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":64   *             for w_id in self.data:   *                 if w_id > 1:   *                     f.write("%s " % self.get_word(w_id))             # <<<<<<<<<<<<<< @@ -9077,7 +9078,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_14write_text(struct __pyx_ob              }              __pyx_L18:; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":65 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":65   *                 if w_id > 1:   *                     f.write("%s " % self.get_word(w_id))   *                 if w_id == 1:             # <<<<<<<<<<<<<< @@ -9089,7 +9090,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_14write_text(struct __pyx_ob              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;              if (__pyx_t_10) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":66 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":66   *                     f.write("%s " % self.get_word(w_id))   *                 if w_id == 1:   *                     f.write("\n")             # <<<<<<<<<<<<<< @@ -9119,7 +9120,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_14write_text(struct __pyx_ob          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":61 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":61   *    *     def write_text(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -9190,7 +9191,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_14write_text(struct __pyx_ob      __pyx_L23:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":60 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":60   *         return (self.sent_index.arr[sid], self.sent_index.arr[sid+1])   *    *     def write_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -9217,7 +9218,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_14write_text(struct __pyx_ob    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":68 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":68   *                     f.write("\n")   *    *     def read_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -9271,7 +9272,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_16read_text(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("read_text", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":69 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":69   *    *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<< @@ -9311,7 +9312,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_16read_text(struct __pyx_obj            __pyx_v_fp = __pyx_t_1;            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":70 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":70   *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as fp:   *             self.read_text_data(fp)             # <<<<<<<<<<<<<< @@ -9340,7 +9341,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_16read_text(struct __pyx_obj          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":69 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":69   *    *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<< @@ -9411,7 +9412,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_16read_text(struct __pyx_obj      __pyx_L19:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":68 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":68   *                     f.write("\n")   *    *     def read_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -9436,7 +9437,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_16read_text(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":72 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":72   *             self.read_text_data(fp)   *    *     def read_bitext(self, char* filename, int side):             # <<<<<<<<<<<<<< @@ -9506,7 +9507,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_9DataArray_19read_bitext(PyObject *__py  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_9DataArray_11read_bitext_2generator6(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":74 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":74   *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:   *             data = (line.split(' ||| ')[side] for line in fp)             # <<<<<<<<<<<<<< @@ -9659,7 +9660,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_9DataArray_11read_bitext_2generator6(__    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":72 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":72   *             self.read_text_data(fp)   *    *     def read_bitext(self, char* filename, int side):             # <<<<<<<<<<<<<< @@ -9695,7 +9696,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_18read_bitext(struct __pyx_o    __Pyx_GOTREF(__pyx_cur_scope);    __pyx_cur_scope->__pyx_v_side = __pyx_v_side; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":73 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":73   *    *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<< @@ -9736,7 +9737,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_18read_bitext(struct __pyx_o            __pyx_cur_scope->__pyx_v_fp = __pyx_t_1;            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":74 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":74   *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:   *             data = (line.split(' ||| ')[side] for line in fp)             # <<<<<<<<<<<<<< @@ -9748,7 +9749,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_18read_bitext(struct __pyx_o            __pyx_v_data = __pyx_t_1;            __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":75 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":75   *         with gzip_or_text(filename) as fp:   *             data = (line.split(' ||| ')[side] for line in fp)   *             self.read_text_data(data)             # <<<<<<<<<<<<<< @@ -9777,7 +9778,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_18read_bitext(struct __pyx_o          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":73 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":73   *    *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<< @@ -9848,7 +9849,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_18read_bitext(struct __pyx_o      __pyx_L19:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":72 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":72   *             self.read_text_data(fp)   *    *     def read_bitext(self, char* filename, int side):             # <<<<<<<<<<<<<< @@ -9874,7 +9875,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_18read_bitext(struct __pyx_o    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":77 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":77   *             self.read_text_data(data)   *    *     def read_text_data(self, data):             # <<<<<<<<<<<<<< @@ -9919,7 +9920,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("read_text_data", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":78 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":78   *    *     def read_text_data(self, data):   *         cdef int word_count = 0             # <<<<<<<<<<<<<< @@ -9928,7 +9929,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py   */    __pyx_v_word_count = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":79 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":79   *     def read_text_data(self, data):   *         cdef int word_count = 0   *         for line_num, line in enumerate(data):             # <<<<<<<<<<<<<< @@ -9982,7 +9983,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py      __pyx_t_1 = __pyx_t_5;      __pyx_t_5 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":80 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":80   *         cdef int word_count = 0   *         for line_num, line in enumerate(data):   *             self.sent_index.append(word_count)             # <<<<<<<<<<<<<< @@ -9994,7 +9995,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py      __pyx_t_6 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->sent_index), __pyx_t_5); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":81 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":81   *         for line_num, line in enumerate(data):   *             self.sent_index.append(word_count)   *             for word in line.split():             # <<<<<<<<<<<<<< @@ -10045,7 +10046,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py        __Pyx_XDECREF_SET(__pyx_v_word, __pyx_t_7);        __pyx_t_7 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":82 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":82   *             self.sent_index.append(word_count)   *             for word in line.split():   *                 self.data.append(self.get_id(word))             # <<<<<<<<<<<<<< @@ -10066,7 +10067,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py        __pyx_t_6 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->data), __pyx_t_11); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":83 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":83   *             for word in line.split():   *                 self.data.append(self.get_id(word))   *                 if self.use_sent_id:             # <<<<<<<<<<<<<< @@ -10076,7 +10077,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py        __pyx_t_12 = (__pyx_v_self->use_sent_id != 0);        if (__pyx_t_12) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":84 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":84   *                 self.data.append(self.get_id(word))   *                 if self.use_sent_id:   *                     self.sent_id.append(line_num)             # <<<<<<<<<<<<<< @@ -10088,7 +10089,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py        }        __pyx_L7:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":85 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":85   *                 if self.use_sent_id:   *                     self.sent_id.append(line_num)   *                 word_count = word_count + 1             # <<<<<<<<<<<<<< @@ -10099,7 +10100,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py      }      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":86 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":86   *                     self.sent_id.append(line_num)   *                 word_count = word_count + 1   *             self.data.append(1)             # <<<<<<<<<<<<<< @@ -10108,7 +10109,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py   */      __pyx_t_6 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->data), __pyx_int_1); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":87 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":87   *                 word_count = word_count + 1   *             self.data.append(1)   *             if self.use_sent_id:             # <<<<<<<<<<<<<< @@ -10118,7 +10119,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py      __pyx_t_12 = (__pyx_v_self->use_sent_id != 0);      if (__pyx_t_12) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":88 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":88   *             self.data.append(1)   *             if self.use_sent_id:   *                 self.sent_id.append(line_num)             # <<<<<<<<<<<<<< @@ -10130,7 +10131,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py      }      __pyx_L8:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":89 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":89   *             if self.use_sent_id:   *                 self.sent_id.append(line_num)   *             word_count = word_count + 1             # <<<<<<<<<<<<<< @@ -10142,7 +10143,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":90 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":90   *                 self.sent_id.append(line_num)   *             word_count = word_count + 1   *         self.data.append(0)             # <<<<<<<<<<<<<< @@ -10151,7 +10152,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py   */    __pyx_t_6 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->data), __pyx_int_0); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":91 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":91   *             word_count = word_count + 1   *         self.data.append(0)   *         self.sent_index.append(word_count)             # <<<<<<<<<<<<<< @@ -10163,7 +10164,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py    __pyx_t_6 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->sent_index), __pyx_t_1); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":77 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":77   *             self.read_text_data(data)   *    *     def read_text_data(self, data):             # <<<<<<<<<<<<<< @@ -10192,7 +10193,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_20read_text_data(struct __py    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":94 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":94   *    *    *     def read_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -10232,7 +10233,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_22read_binary(struct __pyx_o    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("read_binary", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":96 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":96   *     def read_binary(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "r")             # <<<<<<<<<<<<<< @@ -10241,7 +10242,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_22read_binary(struct __pyx_o   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_r); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":97 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":97   *         cdef FILE* f   *         f = fopen(filename, "r")   *         self.read_handle(f)             # <<<<<<<<<<<<<< @@ -10250,7 +10251,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_22read_binary(struct __pyx_o   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_DataArray *)__pyx_v_self->__pyx_vtab)->read_handle(__pyx_v_self, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":98 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":98   *         f = fopen(filename, "r")   *         self.read_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -10259,7 +10260,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_22read_binary(struct __pyx_o   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":94 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":94   *    *    *     def read_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -10274,7 +10275,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_22read_binary(struct __pyx_o    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":100 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":100   *         fclose(f)   *    *     cdef void read_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -10300,7 +10301,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("read_handle", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":105 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":105   *         cdef char* word   *    *         self.data.read_handle(f)             # <<<<<<<<<<<<<< @@ -10309,7 +10310,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->data->__pyx_vtab)->read_handle(__pyx_v_self->data, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":106 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":106   *    *         self.data.read_handle(f)   *         self.sent_index.read_handle(f)             # <<<<<<<<<<<<<< @@ -10318,7 +10319,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->sent_index->__pyx_vtab)->read_handle(__pyx_v_self->sent_index, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":107 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":107   *         self.data.read_handle(f)   *         self.sent_index.read_handle(f)   *         self.sent_id.read_handle(f)             # <<<<<<<<<<<<<< @@ -10327,7 +10328,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->sent_id->__pyx_vtab)->read_handle(__pyx_v_self->sent_id, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":108 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":108   *         self.sent_index.read_handle(f)   *         self.sent_id.read_handle(f)   *         fread(&(num_words), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -10336,7 +10337,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec   */    fread((&__pyx_v_num_words), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":109 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":109   *         self.sent_id.read_handle(f)   *         fread(&(num_words), sizeof(int), 1, f)   *         for i in range(num_words):             # <<<<<<<<<<<<<< @@ -10347,7 +10348,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_v_i = __pyx_t_2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":110 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":110   *         fread(&(num_words), sizeof(int), 1, f)   *         for i in range(num_words):   *             fread(&(word_len), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -10356,7 +10357,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec   */      fread((&__pyx_v_word_len), (sizeof(int)), 1, __pyx_v_f); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":111 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":111   *         for i in range(num_words):   *             fread(&(word_len), sizeof(int), 1, f)   *             word = <char*> malloc (word_len * sizeof(char))             # <<<<<<<<<<<<<< @@ -10365,7 +10366,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec   */      __pyx_v_word = ((char *)malloc((__pyx_v_word_len * (sizeof(char))))); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":112 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":112   *             fread(&(word_len), sizeof(int), 1, f)   *             word = <char*> malloc (word_len * sizeof(char))   *             fread(word, sizeof(char), word_len, f)             # <<<<<<<<<<<<<< @@ -10374,7 +10375,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec   */      fread(__pyx_v_word, (sizeof(char)), __pyx_v_word_len, __pyx_v_f); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":113 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":113   *             word = <char*> malloc (word_len * sizeof(char))   *             fread(word, sizeof(char), word_len, f)   *             self.word2id[word] = len(self.id2word)             # <<<<<<<<<<<<<< @@ -10393,7 +10394,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":114 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":114   *             fread(word, sizeof(char), word_len, f)   *             self.word2id[word] = len(self.id2word)   *             self.id2word.append(word)             # <<<<<<<<<<<<<< @@ -10405,7 +10406,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec      __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_self->id2word, __pyx_t_3); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":115 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":115   *             self.word2id[word] = len(self.id2word)   *             self.id2word.append(word)   *             free(word)             # <<<<<<<<<<<<<< @@ -10415,7 +10416,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec      free(__pyx_v_word);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":116 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":116   *             self.id2word.append(word)   *             free(word)   *         if len(self.sent_id) == 0:             # <<<<<<<<<<<<<< @@ -10429,7 +10430,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec    __pyx_t_7 = ((__pyx_t_4 == 0) != 0);    if (__pyx_t_7) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":117 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":117   *             free(word)   *         if len(self.sent_id) == 0:   *             self.use_sent_id = False             # <<<<<<<<<<<<<< @@ -10441,7 +10442,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":119 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":119   *             self.use_sent_id = False   *         else:   *             self.use_sent_id = True             # <<<<<<<<<<<<<< @@ -10452,7 +10453,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec    }    __pyx_L5:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":100 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":100   *         fclose(f)   *    *     cdef void read_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -10470,7 +10471,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_read_handle(struct __pyx_obj_4cdec    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":121 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":121   *             self.use_sent_id = True   *    *     cdef void write_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -10494,7 +10495,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_write_handle(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_handle", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":125 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":125   *         cdef int num_words   *    *         self.data.write_handle(f)             # <<<<<<<<<<<<<< @@ -10503,7 +10504,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_write_handle(struct __pyx_obj_4cde   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->data->__pyx_vtab)->write_handle(__pyx_v_self->data, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":126 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":126   *    *         self.data.write_handle(f)   *         self.sent_index.write_handle(f)             # <<<<<<<<<<<<<< @@ -10512,7 +10513,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_write_handle(struct __pyx_obj_4cde   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->sent_index->__pyx_vtab)->write_handle(__pyx_v_self->sent_index, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":127 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":127   *         self.data.write_handle(f)   *         self.sent_index.write_handle(f)   *         self.sent_id.write_handle(f)             # <<<<<<<<<<<<<< @@ -10521,7 +10522,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_write_handle(struct __pyx_obj_4cde   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->sent_id->__pyx_vtab)->write_handle(__pyx_v_self->sent_id, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":128 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":128   *         self.sent_index.write_handle(f)   *         self.sent_id.write_handle(f)   *         num_words = len(self.id2word) - 2             # <<<<<<<<<<<<<< @@ -10534,7 +10535,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_write_handle(struct __pyx_obj_4cde    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_num_words = (__pyx_t_2 - 2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":129 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":129   *         self.sent_id.write_handle(f)   *         num_words = len(self.id2word) - 2   *         fwrite(&(num_words), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -10543,7 +10544,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_write_handle(struct __pyx_obj_4cde   */    fwrite((&__pyx_v_num_words), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":130 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":130   *         num_words = len(self.id2word) - 2   *         fwrite(&(num_words), sizeof(int), 1, f)   *         for word in self.id2word[2:]:             # <<<<<<<<<<<<<< @@ -10591,7 +10592,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_write_handle(struct __pyx_obj_4cde      __Pyx_XDECREF_SET(__pyx_v_word, __pyx_t_1);      __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":131 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":131   *         fwrite(&(num_words), sizeof(int), 1, f)   *         for word in self.id2word[2:]:   *             word_len = len(word) + 1             # <<<<<<<<<<<<<< @@ -10601,7 +10602,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_write_handle(struct __pyx_obj_4cde      __pyx_t_5 = PyObject_Length(__pyx_v_word); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_v_word_len = (__pyx_t_5 + 1); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":132 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":132   *         for word in self.id2word[2:]:   *             word_len = len(word) + 1   *             fwrite(&(word_len), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -10610,7 +10611,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_write_handle(struct __pyx_obj_4cde   */      fwrite((&__pyx_v_word_len), (sizeof(int)), 1, __pyx_v_f); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":133 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":133   *             word_len = len(word) + 1   *             fwrite(&(word_len), sizeof(int), 1, f)   *             fwrite(<char *>word, sizeof(char), word_len, f)             # <<<<<<<<<<<<<< @@ -10622,7 +10623,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_write_handle(struct __pyx_obj_4cde    }    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":121 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":121   *             self.use_sent_id = True   *    *     cdef void write_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -10641,7 +10642,7 @@ static void __pyx_f_4cdec_2sa_3_sa_9DataArray_write_handle(struct __pyx_obj_4cde    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":135 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":135   *             fwrite(<char *>word, sizeof(char), word_len, f)   *    *     def write_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -10681,7 +10682,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_24write_binary(struct __pyx_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("write_binary", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":137 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":137   *     def write_binary(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "w")             # <<<<<<<<<<<<<< @@ -10690,7 +10691,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_24write_binary(struct __pyx_   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_w); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":138 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":138   *         cdef FILE* f   *         f = fopen(filename, "w")   *         self.write_handle(f)             # <<<<<<<<<<<<<< @@ -10699,7 +10700,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_24write_binary(struct __pyx_   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_DataArray *)__pyx_v_self->__pyx_vtab)->write_handle(__pyx_v_self, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":139 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":139   *         f = fopen(filename, "w")   *         self.write_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -10708,7 +10709,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_24write_binary(struct __pyx_   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":135 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":135   *             fwrite(<char *>word, sizeof(char), word_len, f)   *    *     def write_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -10723,7 +10724,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_24write_binary(struct __pyx_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":141 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":141   *         fclose(f)   *    *     def write_enhanced_handle(self, f):             # <<<<<<<<<<<<<< @@ -10760,7 +10761,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_enhanced_handle", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":142 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":142   *    *     def write_enhanced_handle(self, f):   *         for i in self.data:             # <<<<<<<<<<<<<< @@ -10805,7 +10806,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":143 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":143   *     def write_enhanced_handle(self, f):   *         for i in self.data:   *             f.write("%d " %i)             # <<<<<<<<<<<<<< @@ -10829,7 +10830,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":144 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":144   *         for i in self.data:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<< @@ -10843,7 +10844,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":145 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":145   *             f.write("%d " %i)   *         f.write("\n")   *         for i in self.sent_index:             # <<<<<<<<<<<<<< @@ -10888,7 +10889,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);      __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":146 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":146   *         f.write("\n")   *         for i in self.sent_index:   *             f.write("%d " %i)             # <<<<<<<<<<<<<< @@ -10912,7 +10913,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru    }    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":147 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":147   *         for i in self.sent_index:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<< @@ -10926,7 +10927,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":148 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":148   *             f.write("%d " %i)   *         f.write("\n")   *         for i in self.sent_id:             # <<<<<<<<<<<<<< @@ -10971,7 +10972,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);      __pyx_t_5 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":149 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":149   *         f.write("\n")   *         for i in self.sent_id:   *             f.write("%d " %i)             # <<<<<<<<<<<<<< @@ -10995,7 +10996,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru    }    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":150 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":150   *         for i in self.sent_id:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<< @@ -11009,7 +11010,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":151 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":151   *             f.write("%d " %i)   *         f.write("\n")   *         for word in self.id2word:             # <<<<<<<<<<<<<< @@ -11054,7 +11055,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru      __Pyx_XDECREF_SET(__pyx_v_word, __pyx_t_6);      __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":152 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":152   *         f.write("\n")   *         for word in self.id2word:   *             f.write("%s %d " % (word, self.word2id[word]))             # <<<<<<<<<<<<<< @@ -11089,7 +11090,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru    }    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":153 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":153   *         for word in self.id2word:   *             f.write("%s %d " % (word, self.word2id[word]))   *         f.write("\n")             # <<<<<<<<<<<<<< @@ -11103,7 +11104,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":141 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":141   *         fclose(f)   *    *     def write_enhanced_handle(self, f):             # <<<<<<<<<<<<<< @@ -11129,7 +11130,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_26write_enhanced_handle(stru    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":155 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":155   *         f.write("\n")   *    *     def write_enhanced(self, char* filename):             # <<<<<<<<<<<<<< @@ -11183,7 +11184,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_28write_enhanced(struct __py    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_enhanced", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":156 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":156   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -11222,7 +11223,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_28write_enhanced(struct __py            __pyx_v_f = __pyx_t_4;            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":157 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":157   *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:   *             self.write_enhanced_handle(self, f)             # <<<<<<<<<<<<<< @@ -11252,7 +11253,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_28write_enhanced(struct __py          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":156 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":156   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -11322,7 +11323,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_28write_enhanced(struct __py      __pyx_L19:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":155 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":155   *         f.write("\n")   *    *     def write_enhanced(self, char* filename):             # <<<<<<<<<<<<<< @@ -11347,7 +11348,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9DataArray_28write_enhanced(struct __py    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":10 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":10   *    * cdef class DataArray:   *     cdef public word2id             # <<<<<<<<<<<<<< @@ -11442,7 +11443,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray_7word2id_4__del__(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":11 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":11   * cdef class DataArray:   *     cdef public word2id   *     cdef public id2word             # <<<<<<<<<<<<<< @@ -11537,7 +11538,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray_7id2word_4__del__(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":12 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":12   *     cdef public word2id   *     cdef public id2word   *     cdef public IntList data             # <<<<<<<<<<<<<< @@ -11645,7 +11646,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray_4data_4__del__(struct __pyx_obj_4c    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":13 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":13   *     cdef public id2word   *     cdef public IntList data   *     cdef public IntList sent_id             # <<<<<<<<<<<<<< @@ -11753,7 +11754,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9DataArray_7sent_id_4__del__(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":14 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":14   *     cdef public IntList data   *     cdef public IntList sent_id   *     cdef public IntList sent_index             # <<<<<<<<<<<<<< @@ -11866,7 +11867,7 @@ static int __pyx_f_4cdec_2sa_3_sa_9Alignment_link(CYTHON_UNUSED struct __pyx_obj    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("link", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":16 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":16   *     cdef int link(self, int i, int j):   *         """Integerizes an alignment link pair"""   *         return i * ALIGNMENT_CODE + j             # <<<<<<<<<<<<<< @@ -11876,7 +11877,7 @@ static int __pyx_f_4cdec_2sa_3_sa_9Alignment_link(CYTHON_UNUSED struct __pyx_obj    __pyx_r = ((__pyx_v_i * __pyx_v_4cdec_2sa_3_sa_ALIGNMENT_CODE) + __pyx_v_j);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":14 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":14   *     cdef IntList sent_index   *    *     cdef int link(self, int i, int j):             # <<<<<<<<<<<<<< @@ -11890,7 +11891,7 @@ static int __pyx_f_4cdec_2sa_3_sa_9Alignment_link(CYTHON_UNUSED struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":18 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":18   *         return i * ALIGNMENT_CODE + j   *    *     def unlink(self, link):             # <<<<<<<<<<<<<< @@ -11923,7 +11924,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_unlink(CYTHON_UNUSED struct    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("unlink", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":20 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":20   *     def unlink(self, link):   *         """De-integerizes an alignment link pair"""   *         return (link / ALIGNMENT_CODE, link % ALIGNMENT_CODE)             # <<<<<<<<<<<<<< @@ -11953,7 +11954,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_unlink(CYTHON_UNUSED struct    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":18 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":18   *         return i * ALIGNMENT_CODE + j   *    *     def unlink(self, link):             # <<<<<<<<<<<<<< @@ -11974,7 +11975,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_unlink(CYTHON_UNUSED struct    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":22 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":22   *         return (link / ALIGNMENT_CODE, link % ALIGNMENT_CODE)   *    *     cdef _unlink(self, int link, int* f, int* e):             # <<<<<<<<<<<<<< @@ -11990,7 +11991,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_9Alignment__unlink(CYTHON_UNUSED struct    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("_unlink", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":23 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":23   *    *     cdef _unlink(self, int link, int* f, int* e):   *         f[0] = link / ALIGNMENT_CODE             # <<<<<<<<<<<<<< @@ -12019,7 +12020,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_9Alignment__unlink(CYTHON_UNUSED struct    }    (__pyx_v_f[0]) = __Pyx_div_int(__pyx_v_link, __pyx_v_4cdec_2sa_3_sa_ALIGNMENT_CODE); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":24 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":24   *     cdef _unlink(self, int link, int* f, int* e):   *         f[0] = link / ALIGNMENT_CODE   *         e[0] = link % ALIGNMENT_CODE             # <<<<<<<<<<<<<< @@ -12038,7 +12039,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_9Alignment__unlink(CYTHON_UNUSED struct    }    (__pyx_v_e[0]) = __Pyx_mod_int(__pyx_v_link, __pyx_v_4cdec_2sa_3_sa_ALIGNMENT_CODE); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":22 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":22   *         return (link / ALIGNMENT_CODE, link % ALIGNMENT_CODE)   *    *     cdef _unlink(self, int link, int* f, int* e):             # <<<<<<<<<<<<<< @@ -12058,7 +12059,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_9Alignment__unlink(CYTHON_UNUSED struct    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":26 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":26   *         e[0] = link % ALIGNMENT_CODE   *    *     def get_sent_links(self, int sent_id):             # <<<<<<<<<<<<<< @@ -12104,7 +12105,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_2get_sent_links(struct __pyx    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("get_sent_links", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":30 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":30   *         cdef int* arr   *         cdef int arr_len   *         sent_links = IntList()             # <<<<<<<<<<<<<< @@ -12116,7 +12117,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_2get_sent_links(struct __pyx    __pyx_v_sent_links = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":31 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":31   *         cdef int arr_len   *         sent_links = IntList()   *         arr = self._get_sent_links(sent_id, &arr_len)             # <<<<<<<<<<<<<< @@ -12125,7 +12126,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_2get_sent_links(struct __pyx   */    __pyx_v_arr = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alignment *)__pyx_v_self->__pyx_vtab)->_get_sent_links(__pyx_v_self, __pyx_v_sent_id, (&__pyx_v_arr_len)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":32 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":32   *         sent_links = IntList()   *         arr = self._get_sent_links(sent_id, &arr_len)   *         sent_links._extend_arr(arr, arr_len*2)             # <<<<<<<<<<<<<< @@ -12134,7 +12135,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_2get_sent_links(struct __pyx   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_sent_links->__pyx_vtab)->_extend_arr(__pyx_v_sent_links, __pyx_v_arr, (__pyx_v_arr_len * 2)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":33 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":33   *         arr = self._get_sent_links(sent_id, &arr_len)   *         sent_links._extend_arr(arr, arr_len*2)   *         free(arr)             # <<<<<<<<<<<<<< @@ -12143,7 +12144,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_2get_sent_links(struct __pyx   */    free(__pyx_v_arr); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":34 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":34   *         sent_links._extend_arr(arr, arr_len*2)   *         free(arr)   *         return sent_links             # <<<<<<<<<<<<<< @@ -12155,7 +12156,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_2get_sent_links(struct __pyx    __pyx_r = ((PyObject *)__pyx_v_sent_links);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":26 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":26   *         e[0] = link % ALIGNMENT_CODE   *    *     def get_sent_links(self, int sent_id):             # <<<<<<<<<<<<<< @@ -12175,7 +12176,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_2get_sent_links(struct __pyx    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":36 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":36   *         return sent_links   *    *     cdef int* _get_sent_links(self, int sent_id, int* num_links):             # <<<<<<<<<<<<<< @@ -12197,7 +12198,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_9Alignment__get_sent_links(struct __pyx_obj_4    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("_get_sent_links", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":39 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":39   *         cdef int* sent_links   *         cdef int i, start, end   *         start = self.sent_index.arr[sent_id]             # <<<<<<<<<<<<<< @@ -12206,7 +12207,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_9Alignment__get_sent_links(struct __pyx_obj_4   */    __pyx_v_start = (__pyx_v_self->sent_index->arr[__pyx_v_sent_id]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":40 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":40   *         cdef int i, start, end   *         start = self.sent_index.arr[sent_id]   *         end = self.sent_index.arr[sent_id+1]             # <<<<<<<<<<<<<< @@ -12215,7 +12216,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_9Alignment__get_sent_links(struct __pyx_obj_4   */    __pyx_v_end = (__pyx_v_self->sent_index->arr[(__pyx_v_sent_id + 1)]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":41 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":41   *         start = self.sent_index.arr[sent_id]   *         end = self.sent_index.arr[sent_id+1]   *         num_links[0] = end - start             # <<<<<<<<<<<<<< @@ -12224,7 +12225,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_9Alignment__get_sent_links(struct __pyx_obj_4   */    (__pyx_v_num_links[0]) = (__pyx_v_end - __pyx_v_start); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":42 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":42   *         end = self.sent_index.arr[sent_id+1]   *         num_links[0] = end - start   *         sent_links = <int*> malloc(2*num_links[0]*sizeof(int))             # <<<<<<<<<<<<<< @@ -12233,7 +12234,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_9Alignment__get_sent_links(struct __pyx_obj_4   */    __pyx_v_sent_links = ((int *)malloc(((2 * (__pyx_v_num_links[0])) * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":43 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":43   *         num_links[0] = end - start   *         sent_links = <int*> malloc(2*num_links[0]*sizeof(int))   *         for i from 0 <= i < num_links[0]:             # <<<<<<<<<<<<<< @@ -12243,7 +12244,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_9Alignment__get_sent_links(struct __pyx_obj_4    __pyx_t_1 = (__pyx_v_num_links[0]);    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":44 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":44   *         sent_links = <int*> malloc(2*num_links[0]*sizeof(int))   *         for i from 0 <= i < num_links[0]:   *             self._unlink(self.links.arr[start + i], sent_links + (2*i), sent_links + (2*i) + 1)             # <<<<<<<<<<<<<< @@ -12255,7 +12256,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_9Alignment__get_sent_links(struct __pyx_obj_4      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":45 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":45   *         for i from 0 <= i < num_links[0]:   *             self._unlink(self.links.arr[start + i], sent_links + (2*i), sent_links + (2*i) + 1)   *         return sent_links             # <<<<<<<<<<<<<< @@ -12265,7 +12266,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_9Alignment__get_sent_links(struct __pyx_obj_4    __pyx_r = __pyx_v_sent_links;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":36 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":36   *         return sent_links   *    *     cdef int* _get_sent_links(self, int sent_id, int* num_links):             # <<<<<<<<<<<<<< @@ -12283,7 +12284,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_9Alignment__get_sent_links(struct __pyx_obj_4    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":47 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":47   *         return sent_links   *    *     def __cinit__(self, from_binary=None, from_text=None):             # <<<<<<<<<<<<<< @@ -12370,7 +12371,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9Alignment_4__cinit__(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":48 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":48   *    *     def __cinit__(self, from_binary=None, from_text=None):   *         self.links = IntList(1000,1000)             # <<<<<<<<<<<<<< @@ -12385,7 +12386,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9Alignment_4__cinit__(struct __pyx_obj_4cdec_    __pyx_v_self->links = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":49 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":49   *     def __cinit__(self, from_binary=None, from_text=None):   *         self.links = IntList(1000,1000)   *         self.sent_index = IntList(1000,1000)             # <<<<<<<<<<<<<< @@ -12400,7 +12401,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9Alignment_4__cinit__(struct __pyx_obj_4cdec_    __pyx_v_self->sent_index = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":50 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":50   *         self.links = IntList(1000,1000)   *         self.sent_index = IntList(1000,1000)   *         if from_binary:             # <<<<<<<<<<<<<< @@ -12410,7 +12411,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9Alignment_4__cinit__(struct __pyx_obj_4cdec_    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_from_binary); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":51 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":51   *         self.sent_index = IntList(1000,1000)   *         if from_binary:   *             self.read_binary(from_binary)             # <<<<<<<<<<<<<< @@ -12432,7 +12433,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9Alignment_4__cinit__(struct __pyx_obj_4cdec_      goto __pyx_L3;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":52 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":52   *         if from_binary:   *             self.read_binary(from_binary)   *         elif from_text:             # <<<<<<<<<<<<<< @@ -12442,7 +12443,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9Alignment_4__cinit__(struct __pyx_obj_4cdec_    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_from_text); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":53 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":53   *             self.read_binary(from_binary)   *         elif from_text:   *             self.read_text(from_text)             # <<<<<<<<<<<<<< @@ -12465,7 +12466,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9Alignment_4__cinit__(struct __pyx_obj_4cdec_    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":47 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":47   *         return sent_links   *    *     def __cinit__(self, from_binary=None, from_text=None):             # <<<<<<<<<<<<<< @@ -12487,7 +12488,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9Alignment_4__cinit__(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":55 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":55   *             self.read_text(from_text)   *    *     def read_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -12556,7 +12557,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_6read_text(struct __pyx_obj_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("read_text", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":56 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":56   *    *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as f:             # <<<<<<<<<<<<<< @@ -12596,7 +12597,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_6read_text(struct __pyx_obj_            __pyx_v_f = __pyx_t_1;            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":57 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":57   *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as f:   *             for line in f:             # <<<<<<<<<<<<<< @@ -12641,7 +12642,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_6read_text(struct __pyx_obj_              __Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_2);              __pyx_t_2 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":58 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":58   *         with gzip_or_text(filename) as f:   *             for line in f:   *                 self.sent_index.append(len(self.links))             # <<<<<<<<<<<<<< @@ -12657,7 +12658,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_6read_text(struct __pyx_obj_              __pyx_t_11 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->sent_index), __pyx_t_2); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L7_error;}              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":59 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":59   *             for line in f:   *                 self.sent_index.append(len(self.links))   *                 pairs = line.split()             # <<<<<<<<<<<<<< @@ -12672,7 +12673,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_6read_text(struct __pyx_obj_              __Pyx_XDECREF_SET(__pyx_v_pairs, __pyx_t_3);              __pyx_t_3 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":60 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":60   *                 self.sent_index.append(len(self.links))   *                 pairs = line.split()   *                 for pair in pairs:             # <<<<<<<<<<<<<< @@ -12717,7 +12718,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_6read_text(struct __pyx_obj_                __Pyx_XDECREF_SET(__pyx_v_pair, __pyx_t_2);                __pyx_t_2 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":61 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":61   *                 pairs = line.split()   *                 for pair in pairs:   *                     (i, j) = map(int, pair.split('-'))             # <<<<<<<<<<<<<< @@ -12795,7 +12796,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_6read_text(struct __pyx_obj_                __Pyx_XDECREF_SET(__pyx_v_j, __pyx_t_14);                __pyx_t_14 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":62 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":62   *                 for pair in pairs:   *                     (i, j) = map(int, pair.split('-'))   *                     self.links.append(self.link(i, j))             # <<<<<<<<<<<<<< @@ -12813,7 +12814,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_6read_text(struct __pyx_obj_            }            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":63 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":63   *                     (i, j) = map(int, pair.split('-'))   *                     self.links.append(self.link(i, j))   *             self.sent_index.append(len(self.links))             # <<<<<<<<<<<<<< @@ -12841,7 +12842,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_6read_text(struct __pyx_obj_          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":56 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":56   *    *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as f:             # <<<<<<<<<<<<<< @@ -12912,7 +12913,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_6read_text(struct __pyx_obj_      __pyx_L25:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":55 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":55   *             self.read_text(from_text)   *    *     def read_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -12944,7 +12945,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_6read_text(struct __pyx_obj_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":65 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":65   *             self.sent_index.append(len(self.links))   *    *     def read_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -12984,7 +12985,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_8read_binary(struct __pyx_ob    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("read_binary", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":67 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":67   *     def read_binary(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "r")             # <<<<<<<<<<<<<< @@ -12993,7 +12994,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_8read_binary(struct __pyx_ob   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_r); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":68 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":68   *         cdef FILE* f   *         f = fopen(filename, "r")   *         self.links.read_handle(f)             # <<<<<<<<<<<<<< @@ -13002,7 +13003,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_8read_binary(struct __pyx_ob   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->links->__pyx_vtab)->read_handle(__pyx_v_self->links, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":69 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":69   *         f = fopen(filename, "r")   *         self.links.read_handle(f)   *         self.sent_index.read_handle(f)             # <<<<<<<<<<<<<< @@ -13011,7 +13012,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_8read_binary(struct __pyx_ob   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->sent_index->__pyx_vtab)->read_handle(__pyx_v_self->sent_index, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":70 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":70   *         self.links.read_handle(f)   *         self.sent_index.read_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -13020,7 +13021,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_8read_binary(struct __pyx_ob   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":65 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":65   *             self.sent_index.append(len(self.links))   *    *     def read_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -13035,7 +13036,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_8read_binary(struct __pyx_ob    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":72 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":72   *         fclose(f)   *    *     def write_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -13096,7 +13097,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_10write_text(struct __pyx_ob    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_text", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":73 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":73   *    *     def write_text(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -13136,7 +13137,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_10write_text(struct __pyx_ob            __pyx_v_f = __pyx_t_4;            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":74 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":74   *     def write_text(self, char* filename):   *         with open(filename, "w") as f:   *             sent_num = 0             # <<<<<<<<<<<<<< @@ -13146,7 +13147,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_10write_text(struct __pyx_ob            __Pyx_INCREF(__pyx_int_0);            __pyx_v_sent_num = __pyx_int_0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":75 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":75   *         with open(filename, "w") as f:   *             sent_num = 0   *             for i, link in enumerate(self.links):             # <<<<<<<<<<<<<< @@ -13200,7 +13201,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_10write_text(struct __pyx_ob              __pyx_t_4 = __pyx_t_2;              __pyx_t_2 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":76 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":76   *             sent_num = 0   *             for i, link in enumerate(self.links):   *                 while i >= self.sent_index[sent_num]:             # <<<<<<<<<<<<<< @@ -13216,7 +13217,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_10write_text(struct __pyx_ob                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;                if (!__pyx_t_11) break; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":77 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":77   *             for i, link in enumerate(self.links):   *                 while i >= self.sent_index[sent_num]:   *                     f.write("\n")             # <<<<<<<<<<<<<< @@ -13230,7 +13231,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_10write_text(struct __pyx_ob                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":78 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":78   *                 while i >= self.sent_index[sent_num]:   *                     f.write("\n")   *                     sent_num = sent_num + 1             # <<<<<<<<<<<<<< @@ -13243,7 +13244,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_10write_text(struct __pyx_ob                __pyx_t_2 = 0;              } -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":79 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":79   *                     f.write("\n")   *                     sent_num = sent_num + 1   *                 f.write("%d-%d " % self.unlink(link))             # <<<<<<<<<<<<<< @@ -13280,7 +13281,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_10write_text(struct __pyx_ob            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":80 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":80   *                     sent_num = sent_num + 1   *                 f.write("%d-%d " % self.unlink(link))   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -13306,7 +13307,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_10write_text(struct __pyx_ob          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":73 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":73   *    *     def write_text(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -13377,7 +13378,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_10write_text(struct __pyx_ob      __pyx_L23:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":72 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":72   *         fclose(f)   *    *     def write_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -13407,7 +13408,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_10write_text(struct __pyx_ob    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":82 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":82   *             f.write("\n")   *    *     def write_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -13447,7 +13448,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_12write_binary(struct __pyx_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("write_binary", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":84 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":84   *     def write_binary(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "w")             # <<<<<<<<<<<<<< @@ -13456,7 +13457,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_12write_binary(struct __pyx_   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_w); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":85 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":85   *         cdef FILE* f   *         f = fopen(filename, "w")   *         self.links.write_handle(f)             # <<<<<<<<<<<<<< @@ -13465,7 +13466,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_12write_binary(struct __pyx_   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->links->__pyx_vtab)->write_handle(__pyx_v_self->links, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":86 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":86   *         f = fopen(filename, "w")   *         self.links.write_handle(f)   *         self.sent_index.write_handle(f)             # <<<<<<<<<<<<<< @@ -13474,7 +13475,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_12write_binary(struct __pyx_   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->sent_index->__pyx_vtab)->write_handle(__pyx_v_self->sent_index, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":87 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":87   *         self.links.write_handle(f)   *         self.sent_index.write_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -13483,7 +13484,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_12write_binary(struct __pyx_   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":82 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":82   *             f.write("\n")   *    *     def write_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -13498,7 +13499,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_12write_binary(struct __pyx_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":89 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":89   *         fclose(f)   *    *     def write_enhanced(self, char* filename):             # <<<<<<<<<<<<<< @@ -13556,7 +13557,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_14write_enhanced(struct __py    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_enhanced", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":90 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":90   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -13596,7 +13597,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_14write_enhanced(struct __py            __pyx_v_f = __pyx_t_4;            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":91 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":91   *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:   *             for link in self.links:             # <<<<<<<<<<<<<< @@ -13641,7 +13642,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_14write_enhanced(struct __py              __Pyx_XDECREF_SET(__pyx_v_link, __pyx_t_1);              __pyx_t_1 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":92 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":92   *         with open(filename, "w") as f:   *             for link in self.links:   *                 f.write("%d " % link)             # <<<<<<<<<<<<<< @@ -13665,7 +13666,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_14write_enhanced(struct __py            }            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":93 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":93   *             for link in self.links:   *                 f.write("%d " % link)   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -13679,7 +13680,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_14write_enhanced(struct __py            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":94 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":94   *                 f.write("%d " % link)   *             f.write("\n")   *             for i in self.sent_index:             # <<<<<<<<<<<<<< @@ -13724,7 +13725,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_14write_enhanced(struct __py              __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);              __pyx_t_4 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":95 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":95   *             f.write("\n")   *             for i in self.sent_index:   *                 f.write("%d " % i)             # <<<<<<<<<<<<<< @@ -13748,7 +13749,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_14write_enhanced(struct __py            }            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":96 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":96   *             for i in self.sent_index:   *                 f.write("%d " % i)   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -13772,7 +13773,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_14write_enhanced(struct __py          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":90 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":90   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -13843,7 +13844,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_14write_enhanced(struct __py      __pyx_L23:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":89 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":89   *         fclose(f)   *    *     def write_enhanced(self, char* filename):             # <<<<<<<<<<<<<< @@ -13870,7 +13871,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_14write_enhanced(struct __py    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":98 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":98   *             f.write("\n")   *    *     def alignment(self, i):             # <<<<<<<<<<<<<< @@ -13910,7 +13911,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_16alignment(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("alignment", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":101 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":101   *         """Return all (e,f) pairs for sentence i"""   *         cdef int j, start, end   *         result = []             # <<<<<<<<<<<<<< @@ -13922,7 +13923,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_16alignment(struct __pyx_obj    __pyx_v_result = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":102 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":102   *         cdef int j, start, end   *         result = []   *         start = self.sent_index.arr[i]             # <<<<<<<<<<<<<< @@ -13932,7 +13933,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_16alignment(struct __pyx_obj    __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_start = (__pyx_v_self->sent_index->arr[__pyx_t_2]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":103 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":103   *         result = []   *         start = self.sent_index.arr[i]   *         end = self.sent_index.arr[i+1]             # <<<<<<<<<<<<<< @@ -13945,7 +13946,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_16alignment(struct __pyx_obj    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_end = (__pyx_v_self->sent_index->arr[__pyx_t_2]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":104 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":104   *         start = self.sent_index.arr[i]   *         end = self.sent_index.arr[i+1]   *         for j from start <= j < end:             # <<<<<<<<<<<<<< @@ -13955,7 +13956,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_16alignment(struct __pyx_obj    __pyx_t_3 = __pyx_v_end;    for (__pyx_v_j = __pyx_v_start; __pyx_v_j < __pyx_t_3; __pyx_v_j++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":105 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":105   *         end = self.sent_index.arr[i+1]   *         for j from start <= j < end:   *             result.append(self.unlink(self.links.arr[j]))             # <<<<<<<<<<<<<< @@ -13978,7 +13979,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_16alignment(struct __pyx_obj      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":106 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":106   *         for j from start <= j < end:   *             result.append(self.unlink(self.links.arr[j]))   *         return result             # <<<<<<<<<<<<<< @@ -13988,7 +13989,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_16alignment(struct __pyx_obj    __pyx_r = __pyx_v_result;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":98 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":98   *             f.write("\n")   *    *     def alignment(self, i):             # <<<<<<<<<<<<<< @@ -14010,7 +14011,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9Alignment_16alignment(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":15 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":15   *     int val   *    * cdef _node* new_node(int key):             # <<<<<<<<<<<<<< @@ -14024,7 +14025,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__node *__pyx_f_4cdec_2sa_3_sa_new_node(int    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("new_node", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":17 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":17   * cdef _node* new_node(int key):   *     cdef _node* n   *     n = <_node*> malloc(sizeof(_node))             # <<<<<<<<<<<<<< @@ -14033,7 +14034,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__node *__pyx_f_4cdec_2sa_3_sa_new_node(int   */    __pyx_v_n = ((struct __pyx_t_4cdec_2sa_3_sa__node *)malloc((sizeof(struct __pyx_t_4cdec_2sa_3_sa__node)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":18 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":18   *     cdef _node* n   *     n = <_node*> malloc(sizeof(_node))   *     n.smaller = NULL             # <<<<<<<<<<<<<< @@ -14042,7 +14043,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__node *__pyx_f_4cdec_2sa_3_sa_new_node(int   */    __pyx_v_n->smaller = NULL; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":19 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":19   *     n = <_node*> malloc(sizeof(_node))   *     n.smaller = NULL   *     n.bigger = NULL             # <<<<<<<<<<<<<< @@ -14051,7 +14052,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__node *__pyx_f_4cdec_2sa_3_sa_new_node(int   */    __pyx_v_n->bigger = NULL; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":20 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":20   *     n.smaller = NULL   *     n.bigger = NULL   *     n.key = key             # <<<<<<<<<<<<<< @@ -14060,7 +14061,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__node *__pyx_f_4cdec_2sa_3_sa_new_node(int   */    __pyx_v_n->key = __pyx_v_key; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":21 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":21   *     n.bigger = NULL   *     n.key = key   *     n.val = 0             # <<<<<<<<<<<<<< @@ -14069,7 +14070,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__node *__pyx_f_4cdec_2sa_3_sa_new_node(int   */    __pyx_v_n->val = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":22 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":22   *     n.key = key   *     n.val = 0   *     return n             # <<<<<<<<<<<<<< @@ -14079,7 +14080,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__node *__pyx_f_4cdec_2sa_3_sa_new_node(int    __pyx_r = __pyx_v_n;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":15 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":15   *     int val   *    * cdef _node* new_node(int key):             # <<<<<<<<<<<<<< @@ -14093,7 +14094,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__node *__pyx_f_4cdec_2sa_3_sa_new_node(int    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":25 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":25   *    *    * cdef del_node(_node* n):             # <<<<<<<<<<<<<< @@ -14111,7 +14112,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_node(struct __pyx_t_4cdec_2sa_3_sa__    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("del_node", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":26 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":26   *    * cdef del_node(_node* n):   *     if n.smaller != NULL:             # <<<<<<<<<<<<<< @@ -14121,7 +14122,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_node(struct __pyx_t_4cdec_2sa_3_sa__    __pyx_t_1 = ((__pyx_v_n->smaller != NULL) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":27 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":27   * cdef del_node(_node* n):   *     if n.smaller != NULL:   *         del_node(n.smaller)             # <<<<<<<<<<<<<< @@ -14135,7 +14136,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_node(struct __pyx_t_4cdec_2sa_3_sa__    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":28 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":28   *     if n.smaller != NULL:   *         del_node(n.smaller)   *     if n.bigger != NULL:             # <<<<<<<<<<<<<< @@ -14145,7 +14146,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_node(struct __pyx_t_4cdec_2sa_3_sa__    __pyx_t_1 = ((__pyx_v_n->bigger != NULL) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":29 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":29   *         del_node(n.smaller)   *     if n.bigger != NULL:   *         del_node(n.bigger)             # <<<<<<<<<<<<<< @@ -14159,7 +14160,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_node(struct __pyx_t_4cdec_2sa_3_sa__    }    __pyx_L4:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":30 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":30   *     if n.bigger != NULL:   *         del_node(n.bigger)   *     free(n)             # <<<<<<<<<<<<<< @@ -14168,7 +14169,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_node(struct __pyx_t_4cdec_2sa_3_sa__   */    free(__pyx_v_n); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":25 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":25   *    *    * cdef del_node(_node* n):             # <<<<<<<<<<<<<< @@ -14189,7 +14190,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_node(struct __pyx_t_4cdec_2sa_3_sa__    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":32 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":32   *     free(n)   *    * cdef int* get_val(_node* n, int key):             # <<<<<<<<<<<<<< @@ -14203,7 +14204,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *    int __pyx_t_1;    __Pyx_RefNannySetupContext("get_val", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":33 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":33   *    * cdef int* get_val(_node* n, int key):   *     if key == n.key:             # <<<<<<<<<<<<<< @@ -14213,7 +14214,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *    __pyx_t_1 = ((__pyx_v_key == __pyx_v_n->key) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":34 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":34   * cdef int* get_val(_node* n, int key):   *     if key == n.key:   *         return &n.val             # <<<<<<<<<<<<<< @@ -14224,7 +14225,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":35 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":35   *     if key == n.key:   *         return &n.val   *     elif key < n.key:             # <<<<<<<<<<<<<< @@ -14234,7 +14235,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *    __pyx_t_1 = ((__pyx_v_key < __pyx_v_n->key) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":36 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":36   *         return &n.val   *     elif key < n.key:   *         if n.smaller == NULL:             # <<<<<<<<<<<<<< @@ -14244,7 +14245,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *      __pyx_t_1 = ((__pyx_v_n->smaller == NULL) != 0);      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":37 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":37   *     elif key < n.key:   *         if n.smaller == NULL:   *             n.smaller = new_node(key)             # <<<<<<<<<<<<<< @@ -14253,7 +14254,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *   */        __pyx_v_n->smaller = __pyx_f_4cdec_2sa_3_sa_new_node(__pyx_v_key); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":38 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":38   *         if n.smaller == NULL:   *             n.smaller = new_node(key)   *             return &(n.smaller.val)             # <<<<<<<<<<<<<< @@ -14264,7 +14265,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":39 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":39   *             n.smaller = new_node(key)   *             return &(n.smaller.val)   *         return get_val(n.smaller, key)             # <<<<<<<<<<<<<< @@ -14276,7 +14277,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":41 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":41   *         return get_val(n.smaller, key)   *     else:   *         if n.bigger == NULL:             # <<<<<<<<<<<<<< @@ -14286,7 +14287,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *      __pyx_t_1 = ((__pyx_v_n->bigger == NULL) != 0);      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":42 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":42   *     else:   *         if n.bigger == NULL:   *             n.bigger = new_node(key)             # <<<<<<<<<<<<<< @@ -14295,7 +14296,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *   */        __pyx_v_n->bigger = __pyx_f_4cdec_2sa_3_sa_new_node(__pyx_v_key); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":43 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":43   *         if n.bigger == NULL:   *             n.bigger = new_node(key)   *             return &(n.bigger.val)             # <<<<<<<<<<<<<< @@ -14306,7 +14307,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":44 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":44   *             n.bigger = new_node(key)   *             return &(n.bigger.val)   *         return get_val(n.bigger, key)             # <<<<<<<<<<<<<< @@ -14317,7 +14318,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":32 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":32   *     free(n)   *    * cdef int* get_val(_node* n, int key):             # <<<<<<<<<<<<<< @@ -14331,7 +14332,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_get_val(struct __pyx_t_4cdec_2sa_3_sa__node *    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":54 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":54   *     cdef id2eword, id2fword, eword2id, fword2id   *    *     def __cinit__(self, from_text=None, from_data=False, from_binary=None,             # <<<<<<<<<<<<<< @@ -14361,7 +14362,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_5BiLex_1__cinit__(PyObject *__pyx_v_self, PyO      values[1] = ((PyObject *)Py_False);      values[2] = ((PyObject *)Py_None); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":55 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":55   *    *     def __cinit__(self, from_text=None, from_data=False, from_binary=None,   *             earray=None, fsarray=None, alignment=None):             # <<<<<<<<<<<<<< @@ -14449,7 +14450,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_5BiLex_1__cinit__(PyObject *__pyx_v_self, PyO    __pyx_L4_argument_unpacking_done:;    __pyx_r = __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(((struct __pyx_obj_4cdec_2sa_3_sa_BiLex *)__pyx_v_self), __pyx_v_from_text, __pyx_v_from_data, __pyx_v_from_binary, __pyx_v_earray, __pyx_v_fsarray, __pyx_v_alignment); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":54 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":54   *     cdef id2eword, id2fword, eword2id, fword2id   *    *     def __cinit__(self, from_text=None, from_data=False, from_binary=None,             # <<<<<<<<<<<<<< @@ -14474,7 +14475,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":56 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":56   *     def __cinit__(self, from_text=None, from_data=False, from_binary=None,   *             earray=None, fsarray=None, alignment=None):   *         self.id2eword = []             # <<<<<<<<<<<<<< @@ -14489,7 +14490,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    __pyx_v_self->id2eword = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":57 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":57   *             earray=None, fsarray=None, alignment=None):   *         self.id2eword = []   *         self.id2fword = []             # <<<<<<<<<<<<<< @@ -14504,7 +14505,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    __pyx_v_self->id2fword = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":58 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":58   *         self.id2eword = []   *         self.id2fword = []   *         self.eword2id = {}             # <<<<<<<<<<<<<< @@ -14519,7 +14520,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    __pyx_v_self->eword2id = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":59 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":59   *         self.id2fword = []   *         self.eword2id = {}   *         self.fword2id = {}             # <<<<<<<<<<<<<< @@ -14534,7 +14535,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    __pyx_v_self->fword2id = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":60 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":60   *         self.eword2id = {}   *         self.fword2id = {}   *         self.e_index = IntList()             # <<<<<<<<<<<<<< @@ -14549,7 +14550,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    __pyx_v_self->e_index = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":61 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":61   *         self.fword2id = {}   *         self.e_index = IntList()   *         self.f_index = IntList()             # <<<<<<<<<<<<<< @@ -14564,7 +14565,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    __pyx_v_self->f_index = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":62 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":62   *         self.e_index = IntList()   *         self.f_index = IntList()   *         self.col1 = FloatList()             # <<<<<<<<<<<<<< @@ -14579,7 +14580,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    __pyx_v_self->col1 = ((struct __pyx_obj_4cdec_2sa_3_sa_FloatList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":63 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":63   *         self.f_index = IntList()   *         self.col1 = FloatList()   *         self.col2 = FloatList()             # <<<<<<<<<<<<<< @@ -14594,7 +14595,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    __pyx_v_self->col2 = ((struct __pyx_obj_4cdec_2sa_3_sa_FloatList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":64 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":64   *         self.col1 = FloatList()   *         self.col2 = FloatList()   *         if from_binary:             # <<<<<<<<<<<<<< @@ -14604,7 +14605,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_from_binary); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":65 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":65   *         self.col2 = FloatList()   *         if from_binary:   *             self.read_binary(from_binary)             # <<<<<<<<<<<<<< @@ -14626,7 +14627,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3      goto __pyx_L3;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":66 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":66   *         if from_binary:   *             self.read_binary(from_binary)   *         elif from_data:             # <<<<<<<<<<<<<< @@ -14636,7 +14637,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_from_data); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":67 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":67   *             self.read_binary(from_binary)   *         elif from_data:   *             self.compute_from_data(fsarray, earray, alignment)             # <<<<<<<<<<<<<< @@ -14653,7 +14654,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":69 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":69   *             self.compute_from_data(fsarray, earray, alignment)   *         else:   *             self.read_text(from_text)             # <<<<<<<<<<<<<< @@ -14675,7 +14676,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":54 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":54   *     cdef id2eword, id2fword, eword2id, fword2id   *    *     def __cinit__(self, from_text=None, from_data=False, from_binary=None,             # <<<<<<<<<<<<<< @@ -14697,7 +14698,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_5BiLex___cinit__(struct __pyx_obj_4cdec_2sa_3    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":72 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":72   *    *    *     cdef compute_from_data(self, SuffixArray fsa, DataArray eda, Alignment aa):             # <<<<<<<<<<<<<< @@ -14752,7 +14753,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("compute_from_data", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":79 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":79   *         cdef int null_word   *    *         null_word = 0             # <<<<<<<<<<<<<< @@ -14761,7 +14762,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    __pyx_v_null_word = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":80 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":80   *    *         null_word = 0   *         for word in fsa.darray.id2word: # I miss list comprehensions             # <<<<<<<<<<<<<< @@ -14806,7 +14807,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob      __Pyx_XDECREF_SET(__pyx_v_word, __pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":81 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":81   *         null_word = 0   *         for word in fsa.darray.id2word: # I miss list comprehensions   *             self.id2fword.append(word)             # <<<<<<<<<<<<<< @@ -14817,7 +14818,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":82 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":82   *         for word in fsa.darray.id2word: # I miss list comprehensions   *             self.id2fword.append(word)   *         self.id2fword[null_word] = "NULL"             # <<<<<<<<<<<<<< @@ -14826,7 +14827,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    if (unlikely(__Pyx_SetItemInt(__pyx_v_self->id2fword, __pyx_v_null_word, __pyx_n_s_NULL, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":83 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":83   *             self.id2fword.append(word)   *         self.id2fword[null_word] = "NULL"   *         for id, word in enumerate(self.id2fword):             # <<<<<<<<<<<<<< @@ -14880,7 +14881,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob      __pyx_t_1 = __pyx_t_6;      __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":84 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":84   *         self.id2fword[null_word] = "NULL"   *         for id, word in enumerate(self.id2fword):   *             self.fword2id[word] = id             # <<<<<<<<<<<<<< @@ -14892,7 +14893,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":86 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":86   *             self.fword2id[word] = id   *    *         for word in eda.id2word:             # <<<<<<<<<<<<<< @@ -14937,7 +14938,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob      __Pyx_XDECREF_SET(__pyx_v_word, __pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":87 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":87   *    *         for word in eda.id2word:   *             self.id2eword.append(word)             # <<<<<<<<<<<<<< @@ -14948,7 +14949,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":88 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":88   *         for word in eda.id2word:   *             self.id2eword.append(word)   *         self.id2eword[null_word] = "NULL"             # <<<<<<<<<<<<<< @@ -14957,7 +14958,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    if (unlikely(__Pyx_SetItemInt(__pyx_v_self->id2eword, __pyx_v_null_word, __pyx_n_s_NULL, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":89 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":89   *             self.id2eword.append(word)   *         self.id2eword[null_word] = "NULL"   *         for id, word in enumerate(self.id2eword):             # <<<<<<<<<<<<<< @@ -15011,7 +15012,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob      __pyx_t_1 = __pyx_t_6;      __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":90 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":90   *         self.id2eword[null_word] = "NULL"   *         for id, word in enumerate(self.id2eword):   *             self.eword2id[word] = id             # <<<<<<<<<<<<<< @@ -15023,7 +15024,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":92 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":92   *             self.eword2id[word] = id   *    *         num_pairs = 0             # <<<<<<<<<<<<<< @@ -15032,7 +15033,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    __pyx_v_num_pairs = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":94 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":94   *         num_pairs = 0   *    *         V_E = len(eda.id2word)             # <<<<<<<<<<<<<< @@ -15045,7 +15046,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_V_E = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":95 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":95   *    *         V_E = len(eda.id2word)   *         V_F = len(fsa.darray.id2word)             # <<<<<<<<<<<<<< @@ -15058,7 +15059,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_V_F = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":96 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":96   *         V_E = len(eda.id2word)   *         V_F = len(fsa.darray.id2word)   *         fmargin = <int*> malloc(V_F*sizeof(int))             # <<<<<<<<<<<<<< @@ -15067,7 +15068,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    __pyx_v_fmargin = ((int *)malloc((__pyx_v_V_F * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":97 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":97   *         V_F = len(fsa.darray.id2word)   *         fmargin = <int*> malloc(V_F*sizeof(int))   *         emargin = <int*> malloc(V_E*sizeof(int))             # <<<<<<<<<<<<<< @@ -15076,7 +15077,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    __pyx_v_emargin = ((int *)malloc((__pyx_v_V_E * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":98 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":98   *         fmargin = <int*> malloc(V_F*sizeof(int))   *         emargin = <int*> malloc(V_E*sizeof(int))   *         memset(fmargin, 0, V_F*sizeof(int))             # <<<<<<<<<<<<<< @@ -15085,7 +15086,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    memset(__pyx_v_fmargin, 0, (__pyx_v_V_F * (sizeof(int)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":99 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":99   *         emargin = <int*> malloc(V_E*sizeof(int))   *         memset(fmargin, 0, V_F*sizeof(int))   *         memset(emargin, 0, V_E*sizeof(int))             # <<<<<<<<<<<<<< @@ -15094,7 +15095,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    memset(__pyx_v_emargin, 0, (__pyx_v_V_E * (sizeof(int)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":101 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":101   *         memset(emargin, 0, V_E*sizeof(int))   *    *         dict = <_node**> malloc(V_F*sizeof(_node*))             # <<<<<<<<<<<<<< @@ -15103,7 +15104,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    __pyx_v_dict = ((struct __pyx_t_4cdec_2sa_3_sa__node **)malloc((__pyx_v_V_F * (sizeof(struct __pyx_t_4cdec_2sa_3_sa__node *))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":102 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":102   *    *         dict = <_node**> malloc(V_F*sizeof(_node*))   *         memset(dict, 0, V_F*sizeof(_node*))             # <<<<<<<<<<<<<< @@ -15112,7 +15113,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    memset(__pyx_v_dict, 0, (__pyx_v_V_F * (sizeof(struct __pyx_t_4cdec_2sa_3_sa__node *)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":104 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":104   *         memset(dict, 0, V_F*sizeof(_node*))   *    *         num_sents = len(fsa.darray.sent_index)             # <<<<<<<<<<<<<< @@ -15128,7 +15129,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __pyx_v_num_sents = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":105 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":105   *    *         num_sents = len(fsa.darray.sent_index)   *         for sent_id from 0 <= sent_id < num_sents-1:             # <<<<<<<<<<<<<< @@ -15141,7 +15142,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    for (__pyx_v_sent_id = 0; __pyx_v_sent_id < __pyx_t_7; __pyx_v_sent_id++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":107 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":107   *         for sent_id from 0 <= sent_id < num_sents-1:   *    *             fsent = fsa.darray.data.arr + fsa.darray.sent_index.arr[sent_id]             # <<<<<<<<<<<<<< @@ -15150,7 +15151,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      __pyx_v_fsent = (__pyx_v_fsa->darray->data->arr + (__pyx_v_fsa->darray->sent_index->arr[__pyx_v_sent_id])); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":108 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":108   *    *             fsent = fsa.darray.data.arr + fsa.darray.sent_index.arr[sent_id]   *             I = fsa.darray.sent_index.arr[sent_id+1] - fsa.darray.sent_index.arr[sent_id] - 1             # <<<<<<<<<<<<<< @@ -15159,7 +15160,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      __pyx_v_I = (((__pyx_v_fsa->darray->sent_index->arr[(__pyx_v_sent_id + 1)]) - (__pyx_v_fsa->darray->sent_index->arr[__pyx_v_sent_id])) - 1); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":109 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":109   *             fsent = fsa.darray.data.arr + fsa.darray.sent_index.arr[sent_id]   *             I = fsa.darray.sent_index.arr[sent_id+1] - fsa.darray.sent_index.arr[sent_id] - 1   *             faligned = <int*> malloc(I*sizeof(int))             # <<<<<<<<<<<<<< @@ -15168,7 +15169,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      __pyx_v_faligned = ((int *)malloc((__pyx_v_I * (sizeof(int))))); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":110 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":110   *             I = fsa.darray.sent_index.arr[sent_id+1] - fsa.darray.sent_index.arr[sent_id] - 1   *             faligned = <int*> malloc(I*sizeof(int))   *             memset(faligned, 0, I*sizeof(int))             # <<<<<<<<<<<<<< @@ -15177,7 +15178,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      memset(__pyx_v_faligned, 0, (__pyx_v_I * (sizeof(int)))); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":112 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":112   *             memset(faligned, 0, I*sizeof(int))   *    *             esent = eda.data.arr + eda.sent_index.arr[sent_id]             # <<<<<<<<<<<<<< @@ -15186,7 +15187,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      __pyx_v_esent = (__pyx_v_eda->data->arr + (__pyx_v_eda->sent_index->arr[__pyx_v_sent_id])); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":113 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":113   *    *             esent = eda.data.arr + eda.sent_index.arr[sent_id]   *             J = eda.sent_index.arr[sent_id+1] - eda.sent_index.arr[sent_id] - 1             # <<<<<<<<<<<<<< @@ -15195,7 +15196,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      __pyx_v_J = (((__pyx_v_eda->sent_index->arr[(__pyx_v_sent_id + 1)]) - (__pyx_v_eda->sent_index->arr[__pyx_v_sent_id])) - 1); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":114 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":114   *             esent = eda.data.arr + eda.sent_index.arr[sent_id]   *             J = eda.sent_index.arr[sent_id+1] - eda.sent_index.arr[sent_id] - 1   *             ealigned = <int*> malloc(J*sizeof(int))             # <<<<<<<<<<<<<< @@ -15204,7 +15205,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      __pyx_v_ealigned = ((int *)malloc((__pyx_v_J * (sizeof(int))))); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":115 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":115   *             J = eda.sent_index.arr[sent_id+1] - eda.sent_index.arr[sent_id] - 1   *             ealigned = <int*> malloc(J*sizeof(int))   *             memset(ealigned, 0, J*sizeof(int))             # <<<<<<<<<<<<<< @@ -15213,7 +15214,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      memset(__pyx_v_ealigned, 0, (__pyx_v_J * (sizeof(int)))); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":117 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":117   *             memset(ealigned, 0, J*sizeof(int))   *    *             links = aa._get_sent_links(sent_id, &num_links)             # <<<<<<<<<<<<<< @@ -15222,7 +15223,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      __pyx_v_links = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alignment *)__pyx_v_aa->__pyx_vtab)->_get_sent_links(__pyx_v_aa, __pyx_v_sent_id, (&__pyx_v_num_links)); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":119 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":119   *             links = aa._get_sent_links(sent_id, &num_links)   *    *             for l from 0 <= l < num_links:             # <<<<<<<<<<<<<< @@ -15232,7 +15233,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob      __pyx_t_8 = __pyx_v_num_links;      for (__pyx_v_l = 0; __pyx_v_l < __pyx_t_8; __pyx_v_l++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":120 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":120   *    *             for l from 0 <= l < num_links:   *                 i = links[l*2]             # <<<<<<<<<<<<<< @@ -15241,7 +15242,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */        __pyx_v_i = (__pyx_v_links[(__pyx_v_l * 2)]); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":121 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":121   *             for l from 0 <= l < num_links:   *                 i = links[l*2]   *                 j = links[l*2+1]             # <<<<<<<<<<<<<< @@ -15250,7 +15251,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */        __pyx_v_j = (__pyx_v_links[((__pyx_v_l * 2) + 1)]); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":122 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":122   *                 i = links[l*2]   *                 j = links[l*2+1]   *                 if i >= I or j >= J:             # <<<<<<<<<<<<<< @@ -15266,7 +15267,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob        }        if (__pyx_t_11) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":123 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":123   *                 j = links[l*2+1]   *                 if i >= I or j >= J:   *                     raise Exception("%d-%d out of bounds (I=%d,J=%d) in line %d\n" % (i,j,I,J,sent_id+1))             # <<<<<<<<<<<<<< @@ -15316,7 +15317,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob          {__pyx_filename = __pyx_f[5]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":124 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":124   *                 if i >= I or j >= J:   *                     raise Exception("%d-%d out of bounds (I=%d,J=%d) in line %d\n" % (i,j,I,J,sent_id+1))   *                 f_i = fsent[i]             # <<<<<<<<<<<<<< @@ -15325,7 +15326,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */        __pyx_v_f_i = (__pyx_v_fsent[__pyx_v_i]); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":125 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":125   *                     raise Exception("%d-%d out of bounds (I=%d,J=%d) in line %d\n" % (i,j,I,J,sent_id+1))   *                 f_i = fsent[i]   *                 e_j = esent[j]             # <<<<<<<<<<<<<< @@ -15334,7 +15335,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */        __pyx_v_e_j = (__pyx_v_esent[__pyx_v_j]); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":126 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":126   *                 f_i = fsent[i]   *                 e_j = esent[j]   *                 fmargin[f_i] = fmargin[f_i]+1             # <<<<<<<<<<<<<< @@ -15343,7 +15344,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */        (__pyx_v_fmargin[__pyx_v_f_i]) = ((__pyx_v_fmargin[__pyx_v_f_i]) + 1); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":127 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":127   *                 e_j = esent[j]   *                 fmargin[f_i] = fmargin[f_i]+1   *                 emargin[e_j] = emargin[e_j]+1             # <<<<<<<<<<<<<< @@ -15352,7 +15353,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */        (__pyx_v_emargin[__pyx_v_e_j]) = ((__pyx_v_emargin[__pyx_v_e_j]) + 1); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":128 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":128   *                 fmargin[f_i] = fmargin[f_i]+1   *                 emargin[e_j] = emargin[e_j]+1   *                 if dict[f_i] == NULL:             # <<<<<<<<<<<<<< @@ -15362,7 +15363,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob        __pyx_t_11 = (((__pyx_v_dict[__pyx_v_f_i]) == NULL) != 0);        if (__pyx_t_11) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":129 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":129   *                 emargin[e_j] = emargin[e_j]+1   *                 if dict[f_i] == NULL:   *                     dict[f_i] = new_node(e_j)             # <<<<<<<<<<<<<< @@ -15371,7 +15372,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */          (__pyx_v_dict[__pyx_v_f_i]) = __pyx_f_4cdec_2sa_3_sa_new_node(__pyx_v_e_j); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":130 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":130   *                 if dict[f_i] == NULL:   *                     dict[f_i] = new_node(e_j)   *                     dict[f_i].val = 1             # <<<<<<<<<<<<<< @@ -15380,7 +15381,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */          (__pyx_v_dict[__pyx_v_f_i])->val = 1; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":131 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":131   *                     dict[f_i] = new_node(e_j)   *                     dict[f_i].val = 1   *                     num_pairs = num_pairs + 1             # <<<<<<<<<<<<<< @@ -15392,7 +15393,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob        }        /*else*/ { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":133 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":133   *                     num_pairs = num_pairs + 1   *                 else:   *                     count = get_val(dict[f_i], e_j)             # <<<<<<<<<<<<<< @@ -15401,7 +15402,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */          __pyx_v_count = __pyx_f_4cdec_2sa_3_sa_get_val((__pyx_v_dict[__pyx_v_f_i]), __pyx_v_e_j); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":134 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":134   *                 else:   *                     count = get_val(dict[f_i], e_j)   *                     if count[0] == 0:             # <<<<<<<<<<<<<< @@ -15411,7 +15412,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob          __pyx_t_11 = (((__pyx_v_count[0]) == 0) != 0);          if (__pyx_t_11) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":135 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":135   *                     count = get_val(dict[f_i], e_j)   *                     if count[0] == 0:   *                         num_pairs = num_pairs + 1             # <<<<<<<<<<<<<< @@ -15423,7 +15424,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob          }          __pyx_L17:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":136 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":136   *                     if count[0] == 0:   *                         num_pairs = num_pairs + 1   *                     count[0] = count[0] + 1             # <<<<<<<<<<<<<< @@ -15434,7 +15435,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob        }        __pyx_L16:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":138 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":138   *                     count[0] = count[0] + 1   *                 # add count   *                 faligned[i] = 1             # <<<<<<<<<<<<<< @@ -15443,7 +15444,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */        (__pyx_v_faligned[__pyx_v_i]) = 1; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":139 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":139   *                 # add count   *                 faligned[i] = 1   *                 ealigned[j] = 1             # <<<<<<<<<<<<<< @@ -15453,7 +15454,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob        (__pyx_v_ealigned[__pyx_v_j]) = 1;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":140 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":140   *                 faligned[i] = 1   *                 ealigned[j] = 1   *             for i from 0 <= i < I:             # <<<<<<<<<<<<<< @@ -15463,7 +15464,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob      __pyx_t_8 = __pyx_v_I;      for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_8; __pyx_v_i++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":141 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":141   *                 ealigned[j] = 1   *             for i from 0 <= i < I:   *                 if faligned[i] == 0:             # <<<<<<<<<<<<<< @@ -15473,7 +15474,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob        __pyx_t_11 = (((__pyx_v_faligned[__pyx_v_i]) == 0) != 0);        if (__pyx_t_11) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":142 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":142   *             for i from 0 <= i < I:   *                 if faligned[i] == 0:   *                     f_i = fsent[i]             # <<<<<<<<<<<<<< @@ -15482,7 +15483,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */          __pyx_v_f_i = (__pyx_v_fsent[__pyx_v_i]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":143 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":143   *                 if faligned[i] == 0:   *                     f_i = fsent[i]   *                     fmargin[f_i] = fmargin[f_i] + 1             # <<<<<<<<<<<<<< @@ -15491,7 +15492,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */          (__pyx_v_fmargin[__pyx_v_f_i]) = ((__pyx_v_fmargin[__pyx_v_f_i]) + 1); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":144 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":144   *                     f_i = fsent[i]   *                     fmargin[f_i] = fmargin[f_i] + 1   *                     emargin[null_word] = emargin[null_word] + 1             # <<<<<<<<<<<<<< @@ -15500,7 +15501,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */          (__pyx_v_emargin[__pyx_v_null_word]) = ((__pyx_v_emargin[__pyx_v_null_word]) + 1); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":145 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":145   *                     fmargin[f_i] = fmargin[f_i] + 1   *                     emargin[null_word] = emargin[null_word] + 1   *                     if dict[f_i] == NULL:             # <<<<<<<<<<<<<< @@ -15510,7 +15511,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob          __pyx_t_11 = (((__pyx_v_dict[__pyx_v_f_i]) == NULL) != 0);          if (__pyx_t_11) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":146 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":146   *                     emargin[null_word] = emargin[null_word] + 1   *                     if dict[f_i] == NULL:   *                         dict[f_i] = new_node(null_word)             # <<<<<<<<<<<<<< @@ -15519,7 +15520,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */            (__pyx_v_dict[__pyx_v_f_i]) = __pyx_f_4cdec_2sa_3_sa_new_node(__pyx_v_null_word); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":147 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":147   *                     if dict[f_i] == NULL:   *                         dict[f_i] = new_node(null_word)   *                         dict[f_i].val = 1             # <<<<<<<<<<<<<< @@ -15528,7 +15529,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */            (__pyx_v_dict[__pyx_v_f_i])->val = 1; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":148 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":148   *                         dict[f_i] = new_node(null_word)   *                         dict[f_i].val = 1   *                         num_pairs = num_pairs + 1             # <<<<<<<<<<<<<< @@ -15540,7 +15541,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":150 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":150   *                         num_pairs = num_pairs + 1   *                     else:   *                         count = get_val(dict[f_i], null_word)             # <<<<<<<<<<<<<< @@ -15549,7 +15550,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */            __pyx_v_count = __pyx_f_4cdec_2sa_3_sa_get_val((__pyx_v_dict[__pyx_v_f_i]), __pyx_v_null_word); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":151 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":151   *                     else:   *                         count = get_val(dict[f_i], null_word)   *                         if count[0] == 0:             # <<<<<<<<<<<<<< @@ -15559,7 +15560,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob            __pyx_t_11 = (((__pyx_v_count[0]) == 0) != 0);            if (__pyx_t_11) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":152 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":152   *                         count = get_val(dict[f_i], null_word)   *                         if count[0] == 0:   *                             num_pairs = num_pairs + 1             # <<<<<<<<<<<<<< @@ -15571,7 +15572,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob            }            __pyx_L22:; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":153 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":153   *                         if count[0] == 0:   *                             num_pairs = num_pairs + 1   *                         count[0] = count[0] + 1             # <<<<<<<<<<<<<< @@ -15586,7 +15587,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob        __pyx_L20:;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":154 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":154   *                             num_pairs = num_pairs + 1   *                         count[0] = count[0] + 1   *             for j from 0 <= j < J:             # <<<<<<<<<<<<<< @@ -15596,7 +15597,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob      __pyx_t_8 = __pyx_v_J;      for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_8; __pyx_v_j++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":155 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":155   *                         count[0] = count[0] + 1   *             for j from 0 <= j < J:   *                 if ealigned[j] == 0:             # <<<<<<<<<<<<<< @@ -15606,7 +15607,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob        __pyx_t_11 = (((__pyx_v_ealigned[__pyx_v_j]) == 0) != 0);        if (__pyx_t_11) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":156 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":156   *             for j from 0 <= j < J:   *                 if ealigned[j] == 0:   *                     e_j = esent[j]             # <<<<<<<<<<<<<< @@ -15615,7 +15616,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */          __pyx_v_e_j = (__pyx_v_esent[__pyx_v_j]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":157 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":157   *                 if ealigned[j] == 0:   *                     e_j = esent[j]   *                     fmargin[null_word] = fmargin[null_word] + 1             # <<<<<<<<<<<<<< @@ -15624,7 +15625,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */          (__pyx_v_fmargin[__pyx_v_null_word]) = ((__pyx_v_fmargin[__pyx_v_null_word]) + 1); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":158 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":158   *                     e_j = esent[j]   *                     fmargin[null_word] = fmargin[null_word] + 1   *                     emargin[e_j] = emargin[e_j] + 1             # <<<<<<<<<<<<<< @@ -15633,7 +15634,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */          (__pyx_v_emargin[__pyx_v_e_j]) = ((__pyx_v_emargin[__pyx_v_e_j]) + 1); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":159 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":159   *                     fmargin[null_word] = fmargin[null_word] + 1   *                     emargin[e_j] = emargin[e_j] + 1   *                     if dict[null_word] == NULL:             # <<<<<<<<<<<<<< @@ -15643,7 +15644,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob          __pyx_t_11 = (((__pyx_v_dict[__pyx_v_null_word]) == NULL) != 0);          if (__pyx_t_11) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":160 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":160   *                     emargin[e_j] = emargin[e_j] + 1   *                     if dict[null_word] == NULL:   *                         dict[null_word] = new_node(e_j)             # <<<<<<<<<<<<<< @@ -15652,7 +15653,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */            (__pyx_v_dict[__pyx_v_null_word]) = __pyx_f_4cdec_2sa_3_sa_new_node(__pyx_v_e_j); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":161 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":161   *                     if dict[null_word] == NULL:   *                         dict[null_word] = new_node(e_j)   *                         dict[null_word].val = 1             # <<<<<<<<<<<<<< @@ -15661,7 +15662,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */            (__pyx_v_dict[__pyx_v_null_word])->val = 1; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":162 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":162   *                         dict[null_word] = new_node(e_j)   *                         dict[null_word].val = 1   *                         num_pairs = num_pairs + 1             # <<<<<<<<<<<<<< @@ -15673,7 +15674,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":164 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":164   *                         num_pairs = num_pairs + 1   *                     else:   *                         count = get_val(dict[null_word], e_j)             # <<<<<<<<<<<<<< @@ -15682,7 +15683,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */            __pyx_v_count = __pyx_f_4cdec_2sa_3_sa_get_val((__pyx_v_dict[__pyx_v_null_word]), __pyx_v_e_j); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":165 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":165   *                     else:   *                         count = get_val(dict[null_word], e_j)   *                         if count[0] == 0:             # <<<<<<<<<<<<<< @@ -15692,7 +15693,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob            __pyx_t_11 = (((__pyx_v_count[0]) == 0) != 0);            if (__pyx_t_11) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":166 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":166   *                         count = get_val(dict[null_word], e_j)   *                         if count[0] == 0:   *                             num_pairs = num_pairs + 1             # <<<<<<<<<<<<<< @@ -15704,7 +15705,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob            }            __pyx_L27:; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":167 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":167   *                         if count[0] == 0:   *                             num_pairs = num_pairs + 1   *                         count[0] = count[0] + 1             # <<<<<<<<<<<<<< @@ -15719,7 +15720,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob        __pyx_L25:;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":168 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":168   *                             num_pairs = num_pairs + 1   *                         count[0] = count[0] + 1   *             free(links)             # <<<<<<<<<<<<<< @@ -15728,7 +15729,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      free(__pyx_v_links); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":169 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":169   *                         count[0] = count[0] + 1   *             free(links)   *             free(faligned)             # <<<<<<<<<<<<<< @@ -15737,7 +15738,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      free(__pyx_v_faligned); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":170 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":170   *             free(links)   *             free(faligned)   *             free(ealigned)             # <<<<<<<<<<<<<< @@ -15747,7 +15748,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob      free(__pyx_v_ealigned);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":171 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":171   *             free(faligned)   *             free(ealigned)   *         self.f_index = IntList(initial_len=V_F)             # <<<<<<<<<<<<<< @@ -15769,7 +15770,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __pyx_v_self->f_index = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_14);    __pyx_t_14 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":172 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":172   *             free(ealigned)   *         self.f_index = IntList(initial_len=V_F)   *         self.e_index = IntList(initial_len=num_pairs)             # <<<<<<<<<<<<<< @@ -15791,7 +15792,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __pyx_v_self->e_index = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_13);    __pyx_t_13 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":173 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":173   *         self.f_index = IntList(initial_len=V_F)   *         self.e_index = IntList(initial_len=num_pairs)   *         self.col1 = FloatList(initial_len=num_pairs)             # <<<<<<<<<<<<<< @@ -15813,7 +15814,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __pyx_v_self->col1 = ((struct __pyx_obj_4cdec_2sa_3_sa_FloatList *)__pyx_t_14);    __pyx_t_14 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":174 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":174   *         self.e_index = IntList(initial_len=num_pairs)   *         self.col1 = FloatList(initial_len=num_pairs)   *         self.col2 = FloatList(initial_len=num_pairs)             # <<<<<<<<<<<<<< @@ -15835,7 +15836,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __pyx_v_self->col2 = ((struct __pyx_obj_4cdec_2sa_3_sa_FloatList *)__pyx_t_13);    __pyx_t_13 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":176 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":176   *         self.col2 = FloatList(initial_len=num_pairs)   *    *         num_pairs = 0             # <<<<<<<<<<<<<< @@ -15844,7 +15845,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    __pyx_v_num_pairs = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":177 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":177   *    *         num_pairs = 0   *         for i from 0 <= i < V_F:             # <<<<<<<<<<<<<< @@ -15854,7 +15855,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __pyx_t_7 = __pyx_v_V_F;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_7; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":179 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":179   *         for i from 0 <= i < V_F:   *             #self.f_index[i] = num_pairs   *             self.f_index.set(i, num_pairs)             # <<<<<<<<<<<<<< @@ -15863,7 +15864,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */      ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->f_index->__pyx_vtab)->set(__pyx_v_self->f_index, __pyx_v_i, __pyx_v_num_pairs); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":180 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":180   *             #self.f_index[i] = num_pairs   *             self.f_index.set(i, num_pairs)   *             if dict[i] != NULL:             # <<<<<<<<<<<<<< @@ -15873,7 +15874,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob      __pyx_t_11 = (((__pyx_v_dict[__pyx_v_i]) != NULL) != 0);      if (__pyx_t_11) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":181 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":181   *             self.f_index.set(i, num_pairs)   *             if dict[i] != NULL:   *                 self._add_node(dict[i], &num_pairs, float(fmargin[i]), emargin)             # <<<<<<<<<<<<<< @@ -15884,7 +15885,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob        __Pyx_GOTREF(__pyx_t_13);        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":182 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":182   *             if dict[i] != NULL:   *                 self._add_node(dict[i], &num_pairs, float(fmargin[i]), emargin)   *                 del_node(dict[i])             # <<<<<<<<<<<<<< @@ -15899,7 +15900,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob      __pyx_L30:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":183 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":183   *                 self._add_node(dict[i], &num_pairs, float(fmargin[i]), emargin)   *                 del_node(dict[i])   *         free(fmargin)             # <<<<<<<<<<<<<< @@ -15908,7 +15909,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    free(__pyx_v_fmargin); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":184 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":184   *                 del_node(dict[i])   *         free(fmargin)   *         free(emargin)             # <<<<<<<<<<<<<< @@ -15917,7 +15918,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    free(__pyx_v_emargin); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":185 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":185   *         free(fmargin)   *         free(emargin)   *         free(dict)             # <<<<<<<<<<<<<< @@ -15926,7 +15927,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob   */    free(__pyx_v_dict); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":186 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":186   *         free(emargin)   *         free(dict)   *         return             # <<<<<<<<<<<<<< @@ -15937,7 +15938,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":72 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":72   *    *    *     cdef compute_from_data(self, SuffixArray fsa, DataArray eda, Alignment aa):             # <<<<<<<<<<<<<< @@ -15964,7 +15965,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_compute_from_data(struct __pyx_ob    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":189 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":189   *    *    *     cdef _add_node(self, _node* n, int* num_pairs, float fmargin, int* emargin):             # <<<<<<<<<<<<<< @@ -15983,7 +15984,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex__add_node(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("_add_node", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":191 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":191   *     cdef _add_node(self, _node* n, int* num_pairs, float fmargin, int* emargin):   *         cdef int loc   *         if n.smaller != NULL:             # <<<<<<<<<<<<<< @@ -15993,7 +15994,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex__add_node(struct __pyx_obj_4cdec_    __pyx_t_1 = ((__pyx_v_n->smaller != NULL) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":192 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":192   *         cdef int loc   *         if n.smaller != NULL:   *             self._add_node(n.smaller, num_pairs, fmargin, emargin)             # <<<<<<<<<<<<<< @@ -16007,7 +16008,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex__add_node(struct __pyx_obj_4cdec_    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":193 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":193   *         if n.smaller != NULL:   *             self._add_node(n.smaller, num_pairs, fmargin, emargin)   *         loc = num_pairs[0]             # <<<<<<<<<<<<<< @@ -16016,7 +16017,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex__add_node(struct __pyx_obj_4cdec_   */    __pyx_v_loc = (__pyx_v_num_pairs[0]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":194 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":194   *             self._add_node(n.smaller, num_pairs, fmargin, emargin)   *         loc = num_pairs[0]   *         self.e_index.set(loc, n.key)             # <<<<<<<<<<<<<< @@ -16025,7 +16026,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex__add_node(struct __pyx_obj_4cdec_   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->e_index->__pyx_vtab)->set(__pyx_v_self->e_index, __pyx_v_loc, __pyx_v_n->key); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":195 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":195   *         loc = num_pairs[0]   *         self.e_index.set(loc, n.key)   *         self.col1.set(loc, float(n.val)/fmargin)             # <<<<<<<<<<<<<< @@ -16044,7 +16045,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex__add_node(struct __pyx_obj_4cdec_    }    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_FloatList *)__pyx_v_self->col1->__pyx_vtab)->set(__pyx_v_self->col1, __pyx_v_loc, (((double)__pyx_v_n->val) / __pyx_v_fmargin)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":196 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":196   *         self.e_index.set(loc, n.key)   *         self.col1.set(loc, float(n.val)/fmargin)   *         self.col2.set(loc, float(n.val)/float(emargin[n.key]))             # <<<<<<<<<<<<<< @@ -16063,7 +16064,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex__add_node(struct __pyx_obj_4cdec_    }    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_FloatList *)__pyx_v_self->col2->__pyx_vtab)->set(__pyx_v_self->col2, __pyx_v_loc, (((double)__pyx_v_n->val) / ((double)(__pyx_v_emargin[__pyx_v_n->key])))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":197 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":197   *         self.col1.set(loc, float(n.val)/fmargin)   *         self.col2.set(loc, float(n.val)/float(emargin[n.key]))   *         num_pairs[0] = loc + 1             # <<<<<<<<<<<<<< @@ -16072,7 +16073,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex__add_node(struct __pyx_obj_4cdec_   */    (__pyx_v_num_pairs[0]) = (__pyx_v_loc + 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":198 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":198   *         self.col2.set(loc, float(n.val)/float(emargin[n.key]))   *         num_pairs[0] = loc + 1   *         if n.bigger != NULL:             # <<<<<<<<<<<<<< @@ -16082,7 +16083,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex__add_node(struct __pyx_obj_4cdec_    __pyx_t_1 = ((__pyx_v_n->bigger != NULL) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":199 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":199   *         num_pairs[0] = loc + 1   *         if n.bigger != NULL:   *             self._add_node(n.bigger, num_pairs, fmargin, emargin)             # <<<<<<<<<<<<<< @@ -16096,7 +16097,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex__add_node(struct __pyx_obj_4cdec_    }    __pyx_L4:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":189 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":189   *    *    *     cdef _add_node(self, _node* n, int* num_pairs, float fmargin, int* emargin):             # <<<<<<<<<<<<<< @@ -16117,7 +16118,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex__add_node(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":202 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":202   *    *    *     def write_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -16162,7 +16163,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_2write_binary(struct __pyx_obj_4    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_binary", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":204 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":204   *     def write_binary(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "w")             # <<<<<<<<<<<<<< @@ -16171,7 +16172,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_2write_binary(struct __pyx_obj_4   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_w); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":205 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":205   *         cdef FILE* f   *         f = fopen(filename, "w")   *         self.f_index.write_handle(f)             # <<<<<<<<<<<<<< @@ -16180,7 +16181,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_2write_binary(struct __pyx_obj_4   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->f_index->__pyx_vtab)->write_handle(__pyx_v_self->f_index, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":206 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":206   *         f = fopen(filename, "w")   *         self.f_index.write_handle(f)   *         self.e_index.write_handle(f)             # <<<<<<<<<<<<<< @@ -16189,7 +16190,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_2write_binary(struct __pyx_obj_4   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->e_index->__pyx_vtab)->write_handle(__pyx_v_self->e_index, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":207 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":207   *         self.f_index.write_handle(f)   *         self.e_index.write_handle(f)   *         self.col1.write_handle(f)             # <<<<<<<<<<<<<< @@ -16198,7 +16199,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_2write_binary(struct __pyx_obj_4   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_FloatList *)__pyx_v_self->col1->__pyx_vtab)->write_handle(__pyx_v_self->col1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":208 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":208   *         self.e_index.write_handle(f)   *         self.col1.write_handle(f)   *         self.col2.write_handle(f)             # <<<<<<<<<<<<<< @@ -16207,7 +16208,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_2write_binary(struct __pyx_obj_4   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_FloatList *)__pyx_v_self->col2->__pyx_vtab)->write_handle(__pyx_v_self->col2, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":209 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":209   *         self.col1.write_handle(f)   *         self.col2.write_handle(f)   *         self.write_wordlist(self.id2fword, f)             # <<<<<<<<<<<<<< @@ -16221,7 +16222,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_2write_binary(struct __pyx_obj_4    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":210 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":210   *         self.col2.write_handle(f)   *         self.write_wordlist(self.id2fword, f)   *         self.write_wordlist(self.id2eword, f)             # <<<<<<<<<<<<<< @@ -16235,7 +16236,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_2write_binary(struct __pyx_obj_4    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":211 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":211   *         self.write_wordlist(self.id2fword, f)   *         self.write_wordlist(self.id2eword, f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -16244,7 +16245,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_2write_binary(struct __pyx_obj_4   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":202 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":202   *    *    *     def write_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -16266,7 +16267,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_2write_binary(struct __pyx_obj_4    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":214 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":214   *    *    *     cdef write_wordlist(self, wordlist, FILE* f):             # <<<<<<<<<<<<<< @@ -16291,7 +16292,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED stru    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_wordlist", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":218 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":218   *         cdef int num_words   *    *         num_words = len(wordlist)             # <<<<<<<<<<<<<< @@ -16301,7 +16302,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED stru    __pyx_t_1 = PyObject_Length(__pyx_v_wordlist); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_num_words = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":219 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":219   *    *         num_words = len(wordlist)   *         fwrite(&(num_words), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -16310,7 +16311,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED stru   */    fwrite((&__pyx_v_num_words), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":220 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":220   *         num_words = len(wordlist)   *         fwrite(&(num_words), sizeof(int), 1, f)   *         for word in wordlist:             # <<<<<<<<<<<<<< @@ -16355,7 +16356,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED stru      __Pyx_XDECREF_SET(__pyx_v_word, __pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":221 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":221   *         fwrite(&(num_words), sizeof(int), 1, f)   *         for word in wordlist:   *             word_len = len(word) + 1             # <<<<<<<<<<<<<< @@ -16365,7 +16366,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED stru      __pyx_t_5 = PyObject_Length(__pyx_v_word); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_v_word_len = (__pyx_t_5 + 1); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":222 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":222   *         for word in wordlist:   *             word_len = len(word) + 1   *             fwrite(&(word_len), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -16374,7 +16375,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED stru   */      fwrite((&__pyx_v_word_len), (sizeof(int)), 1, __pyx_v_f); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":223 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":223   *             word_len = len(word) + 1   *             fwrite(&(word_len), sizeof(int), 1, f)   *             fwrite(<char *>word, sizeof(char), word_len, f)             # <<<<<<<<<<<<<< @@ -16386,7 +16387,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED stru    }    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":214 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":214   *    *    *     cdef write_wordlist(self, wordlist, FILE* f):             # <<<<<<<<<<<<<< @@ -16409,7 +16410,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED stru    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":226 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":226   *    *    *     cdef read_wordlist(self, word2id, id2word, FILE* f):             # <<<<<<<<<<<<<< @@ -16434,7 +16435,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struc    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("read_wordlist", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":231 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":231   *         cdef char* word   *    *         fread(&(num_words), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -16443,7 +16444,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struc   */    fread((&__pyx_v_num_words), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":232 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":232   *    *         fread(&(num_words), sizeof(int), 1, f)   *         for i from 0 <= i < num_words:             # <<<<<<<<<<<<<< @@ -16453,7 +16454,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struc    __pyx_t_1 = __pyx_v_num_words;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":233 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":233   *         fread(&(num_words), sizeof(int), 1, f)   *         for i from 0 <= i < num_words:   *             fread(&(word_len), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -16462,7 +16463,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struc   */      fread((&__pyx_v_word_len), (sizeof(int)), 1, __pyx_v_f); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":234 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":234   *         for i from 0 <= i < num_words:   *             fread(&(word_len), sizeof(int), 1, f)   *             word = <char*> malloc (word_len * sizeof(char))             # <<<<<<<<<<<<<< @@ -16471,7 +16472,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struc   */      __pyx_v_word = ((char *)malloc((__pyx_v_word_len * (sizeof(char))))); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":235 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":235   *             fread(&(word_len), sizeof(int), 1, f)   *             word = <char*> malloc (word_len * sizeof(char))   *             fread(word, sizeof(char), word_len, f)             # <<<<<<<<<<<<<< @@ -16480,7 +16481,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struc   */      fread(__pyx_v_word, (sizeof(char)), __pyx_v_word_len, __pyx_v_f); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":236 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":236   *             word = <char*> malloc (word_len * sizeof(char))   *             fread(word, sizeof(char), word_len, f)   *             word2id[word] = len(id2word)             # <<<<<<<<<<<<<< @@ -16496,7 +16497,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struc      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":237 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":237   *             fread(word, sizeof(char), word_len, f)   *             word2id[word] = len(id2word)   *             id2word.append(word)             # <<<<<<<<<<<<<< @@ -16508,7 +16509,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struc      __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_id2word, __pyx_t_3); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":238 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":238   *             word2id[word] = len(id2word)   *             id2word.append(word)   *             free(word)             # <<<<<<<<<<<<<< @@ -16518,7 +16519,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struc      free(__pyx_v_word);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":226 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":226   *    *    *     cdef read_wordlist(self, word2id, id2word, FILE* f):             # <<<<<<<<<<<<<< @@ -16540,7 +16541,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struc    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":240 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":240   *             free(word)   *    *     def read_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -16586,7 +16587,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_4read_binary(struct __pyx_obj_4c    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("read_binary", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":242 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":242   *     def read_binary(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "r")             # <<<<<<<<<<<<<< @@ -16595,7 +16596,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_4read_binary(struct __pyx_obj_4c   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_r); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":243 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":243   *         cdef FILE* f   *         f = fopen(filename, "r")   *         self.f_index.read_handle(f)             # <<<<<<<<<<<<<< @@ -16604,7 +16605,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_4read_binary(struct __pyx_obj_4c   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->f_index->__pyx_vtab)->read_handle(__pyx_v_self->f_index, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":244 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":244   *         f = fopen(filename, "r")   *         self.f_index.read_handle(f)   *         self.e_index.read_handle(f)             # <<<<<<<<<<<<<< @@ -16613,7 +16614,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_4read_binary(struct __pyx_obj_4c   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->e_index->__pyx_vtab)->read_handle(__pyx_v_self->e_index, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":245 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":245   *         self.f_index.read_handle(f)   *         self.e_index.read_handle(f)   *         self.col1.read_handle(f)             # <<<<<<<<<<<<<< @@ -16622,7 +16623,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_4read_binary(struct __pyx_obj_4c   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_FloatList *)__pyx_v_self->col1->__pyx_vtab)->read_handle(__pyx_v_self->col1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":246 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":246   *         self.e_index.read_handle(f)   *         self.col1.read_handle(f)   *         self.col2.read_handle(f)             # <<<<<<<<<<<<<< @@ -16631,7 +16632,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_4read_binary(struct __pyx_obj_4c   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_FloatList *)__pyx_v_self->col2->__pyx_vtab)->read_handle(__pyx_v_self->col2, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":247 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":247   *         self.col1.read_handle(f)   *         self.col2.read_handle(f)   *         self.read_wordlist(self.fword2id, self.id2fword, f)             # <<<<<<<<<<<<<< @@ -16648,7 +16649,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_4read_binary(struct __pyx_obj_4c    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":248 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":248   *         self.col2.read_handle(f)   *         self.read_wordlist(self.fword2id, self.id2fword, f)   *         self.read_wordlist(self.eword2id, self.id2eword, f)             # <<<<<<<<<<<<<< @@ -16665,7 +16666,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_4read_binary(struct __pyx_obj_4c    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":249 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":249   *         self.read_wordlist(self.fword2id, self.id2fword, f)   *         self.read_wordlist(self.eword2id, self.id2eword, f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -16674,7 +16675,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_4read_binary(struct __pyx_obj_4c   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":240 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":240   *             free(word)   *    *     def read_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -16697,7 +16698,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_4read_binary(struct __pyx_obj_4c    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":252 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":252   *    *    *     def contains_e_word(self, eword):             # <<<<<<<<<<<<<< @@ -16728,7 +16729,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_6contains_e_word(struct __pyx_ob    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("contains_e_word", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":253 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":253   *    *     def contains_e_word(self, eword):   *         return (eword in self.eword2id)             # <<<<<<<<<<<<<< @@ -16743,7 +16744,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_6contains_e_word(struct __pyx_ob    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":252 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":252   *    *    *     def contains_e_word(self, eword):             # <<<<<<<<<<<<<< @@ -16762,7 +16763,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_6contains_e_word(struct __pyx_ob    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":256 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":256   *    *    *     def contains_f_word(self, fword):             # <<<<<<<<<<<<<< @@ -16793,7 +16794,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_8contains_f_word(struct __pyx_ob    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("contains_f_word", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":257 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":257   *    *     def contains_f_word(self, fword):   *         return (fword in self.fword2id)             # <<<<<<<<<<<<<< @@ -16808,7 +16809,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_8contains_f_word(struct __pyx_ob    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":256 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":256   *    *    *     def contains_f_word(self, fword):             # <<<<<<<<<<<<<< @@ -16827,7 +16828,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_8contains_f_word(struct __pyx_ob    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":260 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":260   *    *    *     def get_e_id(self, eword):             # <<<<<<<<<<<<<< @@ -16862,7 +16863,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_10get_e_id(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("get_e_id", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":261 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":261   *    *     def get_e_id(self, eword):   *         if eword not in self.eword2id:             # <<<<<<<<<<<<<< @@ -16873,7 +16874,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_10get_e_id(struct __pyx_obj_4cde    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":262 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":262   *     def get_e_id(self, eword):   *         if eword not in self.eword2id:   *             e_id = len(self.id2eword)             # <<<<<<<<<<<<<< @@ -16886,7 +16887,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_10get_e_id(struct __pyx_obj_4cde      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_v_e_id = __pyx_t_4; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":263 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":263   *         if eword not in self.eword2id:   *             e_id = len(self.id2eword)   *             self.id2eword.append(eword)             # <<<<<<<<<<<<<< @@ -16895,7 +16896,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_10get_e_id(struct __pyx_obj_4cde   */      __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_self->id2eword, __pyx_v_eword); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":264 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":264   *             e_id = len(self.id2eword)   *             self.id2eword.append(eword)   *             self.eword2id[eword] = e_id             # <<<<<<<<<<<<<< @@ -16910,7 +16911,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_10get_e_id(struct __pyx_obj_4cde    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":265 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":265   *             self.id2eword.append(eword)   *             self.eword2id[eword] = e_id   *         return self.eword2id[eword]             # <<<<<<<<<<<<<< @@ -16924,7 +16925,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_10get_e_id(struct __pyx_obj_4cde    __pyx_t_3 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":260 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":260   *    *    *     def get_e_id(self, eword):             # <<<<<<<<<<<<<< @@ -16943,7 +16944,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_10get_e_id(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":268 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":268   *    *    *     def get_f_id(self, fword):             # <<<<<<<<<<<<<< @@ -16978,7 +16979,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_12get_f_id(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("get_f_id", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":269 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":269   *    *     def get_f_id(self, fword):   *         if fword not in self.fword2id:             # <<<<<<<<<<<<<< @@ -16989,7 +16990,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_12get_f_id(struct __pyx_obj_4cde    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":270 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":270   *     def get_f_id(self, fword):   *         if fword not in self.fword2id:   *             f_id = len(self.id2fword)             # <<<<<<<<<<<<<< @@ -17002,7 +17003,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_12get_f_id(struct __pyx_obj_4cde      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_v_f_id = __pyx_t_4; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":271 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":271   *         if fword not in self.fword2id:   *             f_id = len(self.id2fword)   *             self.id2fword.append(fword)             # <<<<<<<<<<<<<< @@ -17011,7 +17012,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_12get_f_id(struct __pyx_obj_4cde   */      __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_self->id2fword, __pyx_v_fword); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":272 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":272   *             f_id = len(self.id2fword)   *             self.id2fword.append(fword)   *             self.fword2id[fword] = f_id             # <<<<<<<<<<<<<< @@ -17026,7 +17027,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_12get_f_id(struct __pyx_obj_4cde    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":273 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":273   *             self.id2fword.append(fword)   *             self.fword2id[fword] = f_id   *         return self.fword2id[fword]             # <<<<<<<<<<<<<< @@ -17040,7 +17041,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_12get_f_id(struct __pyx_obj_4cde    __pyx_t_3 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":268 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":268   *    *    *     def get_f_id(self, fword):             # <<<<<<<<<<<<<< @@ -17059,7 +17060,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_12get_f_id(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":276 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":276   *    *    *     def read_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -17141,7 +17142,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("read_text", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":280 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":280   *         cdef IntList fcount   *    *         fcount = IntList()             # <<<<<<<<<<<<<< @@ -17153,7 +17154,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd    __pyx_v_fcount = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":281 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":281   *    *         fcount = IntList()   *         with gzip_or_text(filename) as f:             # <<<<<<<<<<<<<< @@ -17193,7 +17194,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd            __pyx_v_f = __pyx_t_1;            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":283 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":283   *         with gzip_or_text(filename) as f:   *             # first loop merely establishes size of array objects   *             for line in f:             # <<<<<<<<<<<<<< @@ -17238,7 +17239,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_2);              __pyx_t_2 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":284 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":284   *             # first loop merely establishes size of array objects   *             for line in f:   *                 (fword, eword, score1, score2) = line.split()             # <<<<<<<<<<<<<< @@ -17322,7 +17323,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __Pyx_XDECREF_SET(__pyx_v_score2, __pyx_t_12);              __pyx_t_12 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":285 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":285   *             for line in f:   *                 (fword, eword, score1, score2) = line.split()   *                 f_id = self.get_f_id(fword)             # <<<<<<<<<<<<<< @@ -17343,7 +17344,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __Pyx_XDECREF_SET(__pyx_v_f_id, __pyx_t_11);              __pyx_t_11 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":286 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":286   *                 (fword, eword, score1, score2) = line.split()   *                 f_id = self.get_f_id(fword)   *                 e_id = self.get_e_id(eword)             # <<<<<<<<<<<<<< @@ -17364,7 +17365,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __Pyx_XDECREF_SET(__pyx_v_e_id, __pyx_t_3);              __pyx_t_3 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":287 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":287   *                 f_id = self.get_f_id(fword)   *                 e_id = self.get_e_id(eword)   *                 while f_id >= len(fcount):             # <<<<<<<<<<<<<< @@ -17381,7 +17382,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;                if (!__pyx_t_16) break; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":288 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":288   *                 e_id = self.get_e_id(eword)   *                 while f_id >= len(fcount):   *                     fcount.append(0)             # <<<<<<<<<<<<<< @@ -17391,7 +17392,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd                __pyx_t_17 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_fcount), __pyx_int_0); if (unlikely(__pyx_t_17 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L7_error;}              } -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":289 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":289   *                 while f_id >= len(fcount):   *                     fcount.append(0)   *                 fcount.arr[f_id] = fcount.arr[f_id] + 1             # <<<<<<<<<<<<<< @@ -17404,7 +17405,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd            }            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":292 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":292   *    *             # Allocate space for dictionary in arrays   *             N = 0             # <<<<<<<<<<<<<< @@ -17414,7 +17415,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd            __Pyx_INCREF(__pyx_int_0);            __pyx_v_N = __pyx_int_0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":293 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":293   *             # Allocate space for dictionary in arrays   *             N = 0   *             n_f = len(fcount)             # <<<<<<<<<<<<<< @@ -17427,7 +17428,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd            __pyx_v_n_f = __pyx_t_1;            __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":294 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":294   *             N = 0   *             n_f = len(fcount)   *             self.f_index = IntList(initial_len=n_f+1)             # <<<<<<<<<<<<<< @@ -17449,7 +17450,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd            __pyx_v_self->f_index = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_12);            __pyx_t_12 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":295 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":295   *             n_f = len(fcount)   *             self.f_index = IntList(initial_len=n_f+1)   *             for i from 0 <= i < n_f:             # <<<<<<<<<<<<<< @@ -17463,7 +17464,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_12);              __pyx_t_12 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":296 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":296   *             self.f_index = IntList(initial_len=n_f+1)   *             for i from 0 <= i < n_f:   *                 self.f_index.arr[i] = N             # <<<<<<<<<<<<<< @@ -17474,7 +17475,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L7_error;}              (__pyx_v_self->f_index->arr[__pyx_t_8]) = __pyx_t_21; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":297 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":297   *             for i from 0 <= i < n_f:   *                 self.f_index.arr[i] = N   *                 N = N + fcount.arr[i]             # <<<<<<<<<<<<<< @@ -17490,7 +17491,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __Pyx_DECREF_SET(__pyx_v_N, __pyx_t_1);              __pyx_t_1 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":298 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":298   *                 self.f_index.arr[i] = N   *                 N = N + fcount.arr[i]   *                 fcount.arr[i] = 0             # <<<<<<<<<<<<<< @@ -17502,7 +17503,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __pyx_t_20 = __Pyx_PyInt_As_long(__pyx_v_i); if (unlikely((__pyx_t_20 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L7_error;}            } -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":295 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":295   *             n_f = len(fcount)   *             self.f_index = IntList(initial_len=n_f+1)   *             for i from 0 <= i < n_f:             # <<<<<<<<<<<<<< @@ -17514,7 +17515,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd            __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);            __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":299 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":299   *                 N = N + fcount.arr[i]   *                 fcount.arr[i] = 0   *             self.f_index.arr[n_f] = N             # <<<<<<<<<<<<<< @@ -17525,7 +17526,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd            __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_n_f); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L7_error;}            (__pyx_v_self->f_index->arr[__pyx_t_8]) = __pyx_t_21; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":300 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":300   *                 fcount.arr[i] = 0   *             self.f_index.arr[n_f] = N   *             self.e_index = IntList(initial_len=N)             # <<<<<<<<<<<<<< @@ -17544,7 +17545,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd            __pyx_v_self->e_index = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_12);            __pyx_t_12 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":301 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":301   *             self.f_index.arr[n_f] = N   *             self.e_index = IntList(initial_len=N)   *             self.col1 = FloatList(initial_len=N)             # <<<<<<<<<<<<<< @@ -17563,7 +17564,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd            __pyx_v_self->col1 = ((struct __pyx_obj_4cdec_2sa_3_sa_FloatList *)__pyx_t_1);            __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":302 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":302   *             self.e_index = IntList(initial_len=N)   *             self.col1 = FloatList(initial_len=N)   *             self.col2 = FloatList(initial_len=N)             # <<<<<<<<<<<<<< @@ -17582,7 +17583,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd            __pyx_v_self->col2 = ((struct __pyx_obj_4cdec_2sa_3_sa_FloatList *)__pyx_t_12);            __pyx_t_12 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":305 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":305   *    *             # Re-read file, placing words into buckets   *             f.seek(0)             # <<<<<<<<<<<<<< @@ -17596,7 +17597,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":306 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":306   *             # Re-read file, placing words into buckets   *             f.seek(0)   *             for line in f:             # <<<<<<<<<<<<<< @@ -17641,7 +17642,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_12);              __pyx_t_12 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":307 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":307   *             f.seek(0)   *             for line in f:   *                 (fword, eword, score1, score2) = line.split()             # <<<<<<<<<<<<<< @@ -17725,7 +17726,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __Pyx_XDECREF_SET(__pyx_v_score2, __pyx_t_2);              __pyx_t_2 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":308 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":308   *             for line in f:   *                 (fword, eword, score1, score2) = line.split()   *                 f_id = self.get_f_id(fword)             # <<<<<<<<<<<<<< @@ -17746,7 +17747,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __Pyx_XDECREF_SET(__pyx_v_f_id, __pyx_t_10);              __pyx_t_10 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":309 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":309   *                 (fword, eword, score1, score2) = line.split()   *                 f_id = self.get_f_id(fword)   *                 e_id = self.get_e_id(eword)             # <<<<<<<<<<<<<< @@ -17767,7 +17768,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __Pyx_XDECREF_SET(__pyx_v_e_id, __pyx_t_3);              __pyx_t_3 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":310 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":310   *                 f_id = self.get_f_id(fword)   *                 e_id = self.get_e_id(eword)   *                 index = self.f_index.arr[f_id] + fcount.arr[f_id]             # <<<<<<<<<<<<<< @@ -17781,7 +17782,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_3);              __pyx_t_3 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":311 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":311   *                 e_id = self.get_e_id(eword)   *                 index = self.f_index.arr[f_id] + fcount.arr[f_id]   *                 fcount.arr[f_id] = fcount.arr[f_id] + 1             # <<<<<<<<<<<<<< @@ -17792,7 +17793,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __pyx_t_15 = __Pyx_PyIndex_AsSsize_t(__pyx_v_f_id); if (unlikely((__pyx_t_15 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L7_error;}              (__pyx_v_fcount->arr[__pyx_t_15]) = ((__pyx_v_fcount->arr[__pyx_t_18]) + 1); -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":312 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":312   *                 index = self.f_index.arr[f_id] + fcount.arr[f_id]   *                 fcount.arr[f_id] = fcount.arr[f_id] + 1   *                 self.e_index.arr[index] = int(e_id)             # <<<<<<<<<<<<<< @@ -17806,7 +17807,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              __pyx_t_18 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_18 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L7_error;}              (__pyx_v_self->e_index->arr[__pyx_t_18]) = __pyx_t_21; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":313 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":313   *                 fcount.arr[f_id] = fcount.arr[f_id] + 1   *                 self.e_index.arr[index] = int(e_id)   *                 self.col1[index] = float(score1)             # <<<<<<<<<<<<<< @@ -17819,7 +17820,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd              if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self->col1), __pyx_v_index, __pyx_t_3) < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L7_error;}              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":314 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":314   *                 self.e_index.arr[index] = int(e_id)   *                 self.col1[index] = float(score1)   *                 self.col2[index] = float(score2)             # <<<<<<<<<<<<<< @@ -17847,7 +17848,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":281 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":281   *    *         fcount = IntList()   *         with gzip_or_text(filename) as f:             # <<<<<<<<<<<<<< @@ -17918,7 +17919,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd      __pyx_L31:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":317 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":317   *    *         # Sort buckets by eword   *         for b from 0 <= b < n_f:             # <<<<<<<<<<<<<< @@ -17933,7 +17934,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd      __Pyx_XDECREF_SET(__pyx_v_b, __pyx_t_2);      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":318 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":318   *         # Sort buckets by eword   *         for b from 0 <= b < n_f:   *             i = self.f_index.arr[b]             # <<<<<<<<<<<<<< @@ -17946,7 +17947,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2);      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":319 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":319   *         for b from 0 <= b < n_f:   *             i = self.f_index.arr[b]   *             j = self.f_index.arr[b+1]             # <<<<<<<<<<<<<< @@ -17962,7 +17963,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd      __Pyx_XDECREF_SET(__pyx_v_j, __pyx_t_2);      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":320 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":320   *             i = self.f_index.arr[b]   *             j = self.f_index.arr[b+1]   *             self.qsort(i,j, "")             # <<<<<<<<<<<<<< @@ -17977,7 +17978,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd      __pyx_t_19 = __Pyx_PyInt_As_long(__pyx_v_b); if (unlikely((__pyx_t_19 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":317 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":317   *    *         # Sort buckets by eword   *         for b from 0 <= b < n_f:             # <<<<<<<<<<<<<< @@ -17989,7 +17990,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd    __Pyx_XDECREF_SET(__pyx_v_b, __pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":276 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":276   *    *    *     def read_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -18031,7 +18032,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_14read_text(struct __pyx_obj_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":323 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":323   *    *    *     cdef swap(self, int i, int j):             # <<<<<<<<<<<<<< @@ -18047,7 +18048,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3    int __pyx_t_1;    __Pyx_RefNannySetupContext("swap", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":327 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":327   *         cdef float ftmp   *    *         if i == j:             # <<<<<<<<<<<<<< @@ -18057,7 +18058,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3    __pyx_t_1 = ((__pyx_v_i == __pyx_v_j) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":328 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":328   *    *         if i == j:   *             return             # <<<<<<<<<<<<<< @@ -18069,7 +18070,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":330 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":330   *             return   *    *         itmp = self.e_index.arr[i]             # <<<<<<<<<<<<<< @@ -18078,7 +18079,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3   */    __pyx_v_itmp = (__pyx_v_self->e_index->arr[__pyx_v_i]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":331 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":331   *    *         itmp = self.e_index.arr[i]   *         self.e_index.arr[i] = self.e_index.arr[j]             # <<<<<<<<<<<<<< @@ -18087,7 +18088,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3   */    (__pyx_v_self->e_index->arr[__pyx_v_i]) = (__pyx_v_self->e_index->arr[__pyx_v_j]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":332 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":332   *         itmp = self.e_index.arr[i]   *         self.e_index.arr[i] = self.e_index.arr[j]   *         self.e_index.arr[j] = itmp             # <<<<<<<<<<<<<< @@ -18096,7 +18097,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3   */    (__pyx_v_self->e_index->arr[__pyx_v_j]) = __pyx_v_itmp; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":334 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":334   *         self.e_index.arr[j] = itmp   *    *         ftmp = self.col1.arr[i]             # <<<<<<<<<<<<<< @@ -18105,7 +18106,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3   */    __pyx_v_ftmp = (__pyx_v_self->col1->arr[__pyx_v_i]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":335 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":335   *    *         ftmp = self.col1.arr[i]   *         self.col1.arr[i] = self.col1.arr[j]             # <<<<<<<<<<<<<< @@ -18114,7 +18115,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3   */    (__pyx_v_self->col1->arr[__pyx_v_i]) = (__pyx_v_self->col1->arr[__pyx_v_j]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":336 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":336   *         ftmp = self.col1.arr[i]   *         self.col1.arr[i] = self.col1.arr[j]   *         self.col1.arr[j] = ftmp             # <<<<<<<<<<<<<< @@ -18123,7 +18124,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3   */    (__pyx_v_self->col1->arr[__pyx_v_j]) = __pyx_v_ftmp; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":338 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":338   *         self.col1.arr[j] = ftmp   *    *         ftmp = self.col2.arr[i]             # <<<<<<<<<<<<<< @@ -18132,7 +18133,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3   */    __pyx_v_ftmp = (__pyx_v_self->col2->arr[__pyx_v_i]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":339 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":339   *    *         ftmp = self.col2.arr[i]   *         self.col2.arr[i] = self.col2.arr[j]             # <<<<<<<<<<<<<< @@ -18141,7 +18142,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3   */    (__pyx_v_self->col2->arr[__pyx_v_i]) = (__pyx_v_self->col2->arr[__pyx_v_j]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":340 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":340   *         ftmp = self.col2.arr[i]   *         self.col2.arr[i] = self.col2.arr[j]   *         self.col2.arr[j] = ftmp             # <<<<<<<<<<<<<< @@ -18150,7 +18151,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3   */    (__pyx_v_self->col2->arr[__pyx_v_j]) = __pyx_v_ftmp; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":323 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":323   *    *    *     cdef swap(self, int i, int j):             # <<<<<<<<<<<<<< @@ -18166,7 +18167,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_swap(struct __pyx_obj_4cdec_2sa_3    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":343 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":343   *    *    *     cdef qsort(self, int i, int j, pad):             # <<<<<<<<<<<<<< @@ -18189,7 +18190,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("qsort", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":346 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":346   *         cdef int pval, p   *    *         if i > j:             # <<<<<<<<<<<<<< @@ -18199,7 +18200,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_    __pyx_t_1 = ((__pyx_v_i > __pyx_v_j) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":347 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":347   *    *         if i > j:   *             raise Exception("Sort error in CLex")             # <<<<<<<<<<<<<< @@ -18213,7 +18214,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_      {__pyx_filename = __pyx_f[5]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":348 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":348   *         if i > j:   *             raise Exception("Sort error in CLex")   *         if i == j: #empty interval             # <<<<<<<<<<<<<< @@ -18223,7 +18224,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_    __pyx_t_1 = ((__pyx_v_i == __pyx_v_j) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":349 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":349   *             raise Exception("Sort error in CLex")   *         if i == j: #empty interval   *             return             # <<<<<<<<<<<<<< @@ -18235,7 +18236,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":350 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":350   *         if i == j: #empty interval   *             return   *         if i == j-1: # singleton interval             # <<<<<<<<<<<<<< @@ -18245,7 +18246,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_    __pyx_t_1 = ((__pyx_v_i == (__pyx_v_j - 1)) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":351 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":351   *             return   *         if i == j-1: # singleton interval   *             return             # <<<<<<<<<<<<<< @@ -18257,7 +18258,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":353 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":353   *             return   *    *         p = (i+j)/2             # <<<<<<<<<<<<<< @@ -18266,7 +18267,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_   */    __pyx_v_p = __Pyx_div_long((__pyx_v_i + __pyx_v_j), 2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":354 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":354   *    *         p = (i+j)/2   *         pval = self.e_index.arr[p]             # <<<<<<<<<<<<<< @@ -18275,7 +18276,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_   */    __pyx_v_pval = (__pyx_v_self->e_index->arr[__pyx_v_p]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":355 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":355   *         p = (i+j)/2   *         pval = self.e_index.arr[p]   *         self.swap(i, p)             # <<<<<<<<<<<<<< @@ -18286,7 +18287,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":356 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":356   *         pval = self.e_index.arr[p]   *         self.swap(i, p)   *         p = i             # <<<<<<<<<<<<<< @@ -18295,7 +18296,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_   */    __pyx_v_p = __pyx_v_i; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":357 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":357   *         self.swap(i, p)   *         p = i   *         for k from i+1 <= k < j:             # <<<<<<<<<<<<<< @@ -18305,7 +18306,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_    __pyx_t_3 = __pyx_v_j;    for (__pyx_v_k = (__pyx_v_i + 1); __pyx_v_k < __pyx_t_3; __pyx_v_k++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":358 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":358   *         p = i   *         for k from i+1 <= k < j:   *             if pval >= self.e_index.arr[k]:             # <<<<<<<<<<<<<< @@ -18315,7 +18316,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_      __pyx_t_1 = ((__pyx_v_pval >= (__pyx_v_self->e_index->arr[__pyx_v_k])) != 0);      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":359 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":359   *         for k from i+1 <= k < j:   *             if pval >= self.e_index.arr[k]:   *                 self.swap(p+1, k)             # <<<<<<<<<<<<<< @@ -18326,7 +18327,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":360 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":360   *             if pval >= self.e_index.arr[k]:   *                 self.swap(p+1, k)   *                 self.swap(p, p+1)             # <<<<<<<<<<<<<< @@ -18337,7 +18338,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":361 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":361   *                 self.swap(p+1, k)   *                 self.swap(p, p+1)   *                 p = p + 1             # <<<<<<<<<<<<<< @@ -18350,7 +18351,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_      __pyx_L8:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":362 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":362   *                 self.swap(p, p+1)   *                 p = p + 1   *         self.qsort(i,p, pad+"    ")             # <<<<<<<<<<<<<< @@ -18364,7 +18365,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":363 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":363   *                 p = p + 1   *         self.qsort(i,p, pad+"    ")   *         self.qsort(p+1,j, pad+"    ")             # <<<<<<<<<<<<<< @@ -18378,7 +18379,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":343 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":343   *    *    *     cdef qsort(self, int i, int j, pad):             # <<<<<<<<<<<<<< @@ -18400,7 +18401,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_5BiLex_qsort(struct __pyx_obj_4cdec_2sa_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":366 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":366   *    *    *     def write_enhanced(self, char* filename):             # <<<<<<<<<<<<<< @@ -18463,7 +18464,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_enhanced", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":367 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":367   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -18503,7 +18504,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob            __pyx_v_f = __pyx_t_4;            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":368 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":368   *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:   *             for i in self.f_index:             # <<<<<<<<<<<<<< @@ -18548,7 +18549,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob              __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);              __pyx_t_1 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":369 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":369   *         with open(filename, "w") as f:   *             for i in self.f_index:   *                 f.write("%d " % i)             # <<<<<<<<<<<<<< @@ -18572,7 +18573,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob            }            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":370 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":370   *             for i in self.f_index:   *                 f.write("%d " % i)   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -18586,7 +18587,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":371 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":371   *                 f.write("%d " % i)   *             f.write("\n")   *             for i, s1, s2 in zip(self.e_index, self.col1, self.col2):             # <<<<<<<<<<<<<< @@ -18707,7 +18708,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob              __Pyx_XDECREF_SET(__pyx_v_s2, __pyx_t_11);              __pyx_t_11 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":372 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":372   *             f.write("\n")   *             for i, s1, s2 in zip(self.e_index, self.col1, self.col2):   *                 f.write("%d %f %f " % (i, s1, s2))             # <<<<<<<<<<<<<< @@ -18743,7 +18744,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob            }            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":373 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":373   *             for i, s1, s2 in zip(self.e_index, self.col1, self.col2):   *                 f.write("%d %f %f " % (i, s1, s2))   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -18757,7 +18758,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":374 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":374   *                 f.write("%d %f %f " % (i, s1, s2))   *             f.write("\n")   *             for i, w in enumerate(self.id2fword):             # <<<<<<<<<<<<<< @@ -18811,7 +18812,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob              __pyx_t_1 = __pyx_t_11;              __pyx_t_11 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":375 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":375   *             f.write("\n")   *             for i, w in enumerate(self.id2fword):   *                 f.write("%d %s " % (i, w))             # <<<<<<<<<<<<<< @@ -18845,7 +18846,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":376 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":376   *             for i, w in enumerate(self.id2fword):   *                 f.write("%d %s " % (i, w))   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -18859,7 +18860,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":377 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":377   *                 f.write("%d %s " % (i, w))   *             f.write("\n")   *             for i, w in enumerate(self.id2eword):             # <<<<<<<<<<<<<< @@ -18913,7 +18914,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob              __pyx_t_2 = __pyx_t_10;              __pyx_t_10 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":378 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":378   *             f.write("\n")   *             for i, w in enumerate(self.id2eword):   *                 f.write("%d %s " % (i, w))             # <<<<<<<<<<<<<< @@ -18947,7 +18948,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":379 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":379   *             for i, w in enumerate(self.id2eword):   *                 f.write("%d %s " % (i, w))   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -18973,7 +18974,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":367 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":367   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -19044,7 +19045,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob      __pyx_L29:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":366 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":366   *    *    *     def write_enhanced(self, char* filename):             # <<<<<<<<<<<<<< @@ -19075,7 +19076,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_16write_enhanced(struct __pyx_ob    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":382 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":382   *    *    *     def get_score(self, fword, eword, col):             # <<<<<<<<<<<<<< @@ -19172,7 +19173,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("get_score", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":385 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":385   *         cdef e_id, f_id, low, high, midpoint, val   *    *         if eword not in self.eword2id:             # <<<<<<<<<<<<<< @@ -19183,7 +19184,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":386 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":386   *    *         if eword not in self.eword2id:   *             return None             # <<<<<<<<<<<<<< @@ -19196,7 +19197,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":387 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":387   *         if eword not in self.eword2id:   *             return None   *         if fword not in self.fword2id:             # <<<<<<<<<<<<<< @@ -19207,7 +19208,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd    __pyx_t_1 = (__pyx_t_2 != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":388 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":388   *             return None   *         if fword not in self.fword2id:   *             return None             # <<<<<<<<<<<<<< @@ -19220,7 +19221,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":389 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":389   *         if fword not in self.fword2id:   *             return None   *         f_id = self.fword2id[fword]             # <<<<<<<<<<<<<< @@ -19232,7 +19233,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd    __pyx_v_f_id = __pyx_t_3;    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":390 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":390   *             return None   *         f_id = self.fword2id[fword]   *         e_id = self.eword2id[eword]             # <<<<<<<<<<<<<< @@ -19244,7 +19245,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd    __pyx_v_e_id = __pyx_t_3;    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":391 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":391   *         f_id = self.fword2id[fword]   *         e_id = self.eword2id[eword]   *         low = self.f_index.arr[f_id]             # <<<<<<<<<<<<<< @@ -19257,7 +19258,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd    __pyx_v_low = __pyx_t_3;    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":392 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":392   *         e_id = self.eword2id[eword]   *         low = self.f_index.arr[f_id]   *         high = self.f_index.arr[f_id+1]             # <<<<<<<<<<<<<< @@ -19273,7 +19274,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd    __pyx_v_high = __pyx_t_3;    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":393 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":393   *         low = self.f_index.arr[f_id]   *         high = self.f_index.arr[f_id+1]   *         while high - low > 0:             # <<<<<<<<<<<<<< @@ -19289,7 +19290,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      if (!__pyx_t_1) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":394 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":394   *         high = self.f_index.arr[f_id+1]   *         while high - low > 0:   *             midpoint = (low+high)/2             # <<<<<<<<<<<<<< @@ -19304,7 +19305,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd      __Pyx_XDECREF_SET(__pyx_v_midpoint, __pyx_t_3);      __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":395 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":395   *         while high - low > 0:   *             midpoint = (low+high)/2   *             val = self.e_index.arr[midpoint]             # <<<<<<<<<<<<<< @@ -19317,7 +19318,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd      __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_3);      __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":396 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":396   *             midpoint = (low+high)/2   *             val = self.e_index.arr[midpoint]   *             if val == e_id:             # <<<<<<<<<<<<<< @@ -19329,7 +19330,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":397 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":397   *             val = self.e_index.arr[midpoint]   *             if val == e_id:   *                 if col == 0:             # <<<<<<<<<<<<<< @@ -19341,7 +19342,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        if (__pyx_t_1) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":398 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":398   *             if val == e_id:   *                 if col == 0:   *                     return self.col1.arr[midpoint]             # <<<<<<<<<<<<<< @@ -19357,7 +19358,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd          goto __pyx_L0;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":399 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":399   *                 if col == 0:   *                     return self.col1.arr[midpoint]   *                 if col == 1:             # <<<<<<<<<<<<<< @@ -19369,7 +19370,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        if (__pyx_t_1) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":400 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":400   *                     return self.col1.arr[midpoint]   *                 if col == 1:   *                     return self.col2.arr[midpoint]             # <<<<<<<<<<<<<< @@ -19388,7 +19389,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd      }      __pyx_L7:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":401 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":401   *                 if col == 1:   *                     return self.col2.arr[midpoint]   *             if val > e_id:             # <<<<<<<<<<<<<< @@ -19400,7 +19401,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":402 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":402   *                     return self.col2.arr[midpoint]   *             if val > e_id:   *                 high = midpoint             # <<<<<<<<<<<<<< @@ -19413,7 +19414,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd      }      __pyx_L10:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":403 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":403   *             if val > e_id:   *                 high = midpoint   *             if val < e_id:             # <<<<<<<<<<<<<< @@ -19425,7 +19426,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":404 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":404   *                 high = midpoint   *             if val < e_id:   *                 low = midpoint + 1             # <<<<<<<<<<<<<< @@ -19441,7 +19442,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd      __pyx_L11:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":405 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":405   *             if val < e_id:   *                 low = midpoint + 1   *         return None             # <<<<<<<<<<<<<< @@ -19453,7 +19454,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd    __pyx_r = Py_None;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":382 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":382   *    *    *     def get_score(self, fword, eword, col):             # <<<<<<<<<<<<<< @@ -19479,7 +19480,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_18get_score(struct __pyx_obj_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":408 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":408   *    *    *     def write_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -19543,7 +19544,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_text", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":412 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":412   *         cdef i, N, e_id, f_id   *    *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -19583,7 +19584,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c            __pyx_v_f = __pyx_t_4;            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":413 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":413   *    *         with open(filename, "w") as f:   *             N = len(self.e_index)             # <<<<<<<<<<<<<< @@ -19599,7 +19600,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c            __pyx_v_N = __pyx_t_4;            __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":414 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":414   *         with open(filename, "w") as f:   *             N = len(self.e_index)   *             f_id = 0             # <<<<<<<<<<<<<< @@ -19609,7 +19610,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c            __Pyx_INCREF(__pyx_int_0);            __pyx_v_f_id = __pyx_int_0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":415 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":415   *             N = len(self.e_index)   *             f_id = 0   *             for i from 0 <= i < N:             # <<<<<<<<<<<<<< @@ -19623,7 +19624,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c              __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);              __pyx_t_4 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":416 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":416   *             f_id = 0   *             for i from 0 <= i < N:   *                 while self.f_index.arr[f_id+1] == i:             # <<<<<<<<<<<<<< @@ -19643,7 +19644,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                if (!__pyx_t_11) break; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":417 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":417   *             for i from 0 <= i < N:   *                 while self.f_index.arr[f_id+1] == i:   *                     f_id = f_id + 1             # <<<<<<<<<<<<<< @@ -19656,7 +19657,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c                __pyx_t_1 = 0;              } -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":418 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":418   *                 while self.f_index.arr[f_id+1] == i:   *                     f_id = f_id + 1   *                 e_id = self.e_index.arr[i]             # <<<<<<<<<<<<<< @@ -19669,7 +19670,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c              __Pyx_XDECREF_SET(__pyx_v_e_id, __pyx_t_1);              __pyx_t_1 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":419 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":419   *                     f_id = f_id + 1   *                 e_id = self.e_index.arr[i]   *                 score1 = self.col1.arr[i]             # <<<<<<<<<<<<<< @@ -19682,7 +19683,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c              __Pyx_XDECREF_SET(__pyx_v_score1, __pyx_t_1);              __pyx_t_1 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":420 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":420   *                 e_id = self.e_index.arr[i]   *                 score1 = self.col1.arr[i]   *                 score2 = self.col2.arr[i]             # <<<<<<<<<<<<<< @@ -19694,7 +19695,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c              __Pyx_XDECREF_SET(__pyx_v_score2, __pyx_t_1);              __pyx_t_1 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":421 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":421   *                 score1 = self.col1.arr[i]   *                 score2 = self.col2.arr[i]   *                 f.write("%s %s %.6f %.6f\n" % (self.id2fword[f_id], self.id2eword[e_id], score1, score2))             # <<<<<<<<<<<<<< @@ -19735,7 +19736,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c              __pyx_t_10 = __Pyx_PyInt_As_long(__pyx_v_i); if (unlikely((__pyx_t_10 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L7_error;}            } -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":415 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":415   *             N = len(self.e_index)   *             f_id = 0   *             for i from 0 <= i < N:             # <<<<<<<<<<<<<< @@ -19757,7 +19758,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":412 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":412   *         cdef i, N, e_id, f_id   *    *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -19828,7 +19829,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c      __pyx_L23:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":408 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":408   *    *    *     def write_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -19859,7 +19860,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_5BiLex_20write_text(struct __pyx_obj_4c    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":21 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":21   * cdef int LOWER_MASK[32]   *    * cdef void _init_lower_mask():             # <<<<<<<<<<<<<< @@ -19875,7 +19876,7 @@ static void __pyx_f_4cdec_2sa_3_sa__init_lower_mask(void) {    unsigned int __pyx_t_2;    __Pyx_RefNannySetupContext("_init_lower_mask", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":23 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":23   * cdef void _init_lower_mask():   *     cdef unsigned i   *     cdef int mask = 0             # <<<<<<<<<<<<<< @@ -19884,7 +19885,7 @@ static void __pyx_f_4cdec_2sa_3_sa__init_lower_mask(void) {   */    __pyx_v_mask = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":24 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":24   *     cdef unsigned i   *     cdef int mask = 0   *     for i in range(MIN_BOTTOM_SIZE):             # <<<<<<<<<<<<<< @@ -19895,7 +19896,7 @@ static void __pyx_f_4cdec_2sa_3_sa__init_lower_mask(void) {    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_v_i = __pyx_t_2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":25 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":25   *     cdef int mask = 0   *     for i in range(MIN_BOTTOM_SIZE):   *         mask = (mask << 1) + 1             # <<<<<<<<<<<<<< @@ -19904,7 +19905,7 @@ static void __pyx_f_4cdec_2sa_3_sa__init_lower_mask(void) {   */      __pyx_v_mask = ((__pyx_v_mask << 1) + 1); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":26 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":26   *     for i in range(MIN_BOTTOM_SIZE):   *         mask = (mask << 1) + 1   *         LOWER_MASK[i] = mask             # <<<<<<<<<<<<<< @@ -19914,7 +19915,7 @@ static void __pyx_f_4cdec_2sa_3_sa__init_lower_mask(void) {      (__pyx_v_4cdec_2sa_3_sa_LOWER_MASK[__pyx_v_i]) = __pyx_v_mask;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":21 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":21   * cdef int LOWER_MASK[32]   *    * cdef void _init_lower_mask():             # <<<<<<<<<<<<<< @@ -19926,7 +19927,7 @@ static void __pyx_f_4cdec_2sa_3_sa__init_lower_mask(void) {    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":37 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":37   *    *    * cdef _BitSet* new_BitSet():             # <<<<<<<<<<<<<< @@ -19940,7 +19941,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__BitSet *__pyx_f_4cdec_2sa_3_sa_new_BitSet(    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("new_BitSet", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":40 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":40   *     cdef _BitSet* b   *    *     b = <_BitSet*> malloc(sizeof(_BitSet))             # <<<<<<<<<<<<<< @@ -19949,7 +19950,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__BitSet *__pyx_f_4cdec_2sa_3_sa_new_BitSet(   */    __pyx_v_b = ((struct __pyx_t_4cdec_2sa_3_sa__BitSet *)malloc((sizeof(struct __pyx_t_4cdec_2sa_3_sa__BitSet)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":41 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":41   *    *     b = <_BitSet*> malloc(sizeof(_BitSet))   *     b.bitset = 0             # <<<<<<<<<<<<<< @@ -19958,7 +19959,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__BitSet *__pyx_f_4cdec_2sa_3_sa_new_BitSet(   */    __pyx_v_b->bitset = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":42 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":42   *     b = <_BitSet*> malloc(sizeof(_BitSet))   *     b.bitset = 0   *     b.min_val = -1             # <<<<<<<<<<<<<< @@ -19967,7 +19968,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__BitSet *__pyx_f_4cdec_2sa_3_sa_new_BitSet(   */    __pyx_v_b->min_val = -1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":43 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":43   *     b.bitset = 0   *     b.min_val = -1   *     b.max_val = -1             # <<<<<<<<<<<<<< @@ -19976,7 +19977,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__BitSet *__pyx_f_4cdec_2sa_3_sa_new_BitSet(   */    __pyx_v_b->max_val = -1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":44 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":44   *     b.min_val = -1   *     b.max_val = -1   *     b.size = 0             # <<<<<<<<<<<<<< @@ -19985,7 +19986,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__BitSet *__pyx_f_4cdec_2sa_3_sa_new_BitSet(   */    __pyx_v_b->size = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":45 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":45   *     b.max_val = -1   *     b.size = 0   *     return b             # <<<<<<<<<<<<<< @@ -19995,7 +19996,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__BitSet *__pyx_f_4cdec_2sa_3_sa_new_BitSet(    __pyx_r = __pyx_v_b;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":37 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":37   *    *    * cdef _BitSet* new_BitSet():             # <<<<<<<<<<<<<< @@ -20009,7 +20010,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__BitSet *__pyx_f_4cdec_2sa_3_sa_new_BitSet(    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":48 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":48   *    *    * cdef int bitset_findsucc(_BitSet* b, int i):             # <<<<<<<<<<<<<< @@ -20030,7 +20031,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_    int __pyx_t_3;    __Pyx_RefNannySetupContext("bitset_findsucc", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":52 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":52   *     cdef int low, high, mid   *    *     if b.max_val == -1 or i >= b.max_val:             # <<<<<<<<<<<<<< @@ -20046,7 +20047,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_    }    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":53 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":53   *    *     if b.max_val == -1 or i >= b.max_val:   *         return -1             # <<<<<<<<<<<<<< @@ -20057,7 +20058,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":54 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":54   *     if b.max_val == -1 or i >= b.max_val:   *         return -1   *     if i < b.min_val:             # <<<<<<<<<<<<<< @@ -20067,7 +20068,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_    __pyx_t_3 = ((__pyx_v_i < __pyx_v_b->min_val) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":55 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":55   *         return -1   *     if i < b.min_val:   *         return b.min_val             # <<<<<<<<<<<<<< @@ -20078,7 +20079,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":57 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":57   *         return b.min_val   *    *     bitset = b.bitset & ~LOWER_MASK[i]             # <<<<<<<<<<<<<< @@ -20087,7 +20088,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_   */    __pyx_v_bitset = (__pyx_v_b->bitset & (~(__pyx_v_4cdec_2sa_3_sa_LOWER_MASK[__pyx_v_i]))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":58 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":58   *    *     bitset = b.bitset & ~LOWER_MASK[i]   *     low = i+1             # <<<<<<<<<<<<<< @@ -20096,7 +20097,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_   */    __pyx_v_low = (__pyx_v_i + 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":59 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":59   *     bitset = b.bitset & ~LOWER_MASK[i]   *     low = i+1   *     high = b.max_val+1             # <<<<<<<<<<<<<< @@ -20105,7 +20106,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_   */    __pyx_v_high = (__pyx_v_b->max_val + 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":60 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":60   *     low = i+1   *     high = b.max_val+1   *     while low < high-1:             # <<<<<<<<<<<<<< @@ -20116,7 +20117,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_      __pyx_t_3 = ((__pyx_v_low < (__pyx_v_high - 1)) != 0);      if (!__pyx_t_3) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":61 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":61   *     high = b.max_val+1   *     while low < high-1:   *         mid = (high + low)/2             # <<<<<<<<<<<<<< @@ -20125,7 +20126,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_   */      __pyx_v_mid = __Pyx_div_long((__pyx_v_high + __pyx_v_low), 2); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":62 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":62   *     while low < high-1:   *         mid = (high + low)/2   *         mask = ~(LOWER_MASK[high-1] ^ LOWER_MASK[mid-1])             # <<<<<<<<<<<<<< @@ -20134,7 +20135,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_   */      __pyx_v_mask = (~((__pyx_v_4cdec_2sa_3_sa_LOWER_MASK[(__pyx_v_high - 1)]) ^ (__pyx_v_4cdec_2sa_3_sa_LOWER_MASK[(__pyx_v_mid - 1)]))); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":63 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":63   *         mid = (high + low)/2   *         mask = ~(LOWER_MASK[high-1] ^ LOWER_MASK[mid-1])   *         if bitset & mask == 0:             # <<<<<<<<<<<<<< @@ -20144,7 +20145,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_      __pyx_t_3 = (((__pyx_v_bitset & __pyx_v_mask) == 0) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":64 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":64   *         mask = ~(LOWER_MASK[high-1] ^ LOWER_MASK[mid-1])   *         if bitset & mask == 0:   *             low = mid             # <<<<<<<<<<<<<< @@ -20156,7 +20157,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":66 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":66   *             low = mid   *         else:   *             bitset = bitset & mask             # <<<<<<<<<<<<<< @@ -20165,7 +20166,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_   */        __pyx_v_bitset = (__pyx_v_bitset & __pyx_v_mask); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":67 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":67   *         else:   *             bitset = bitset & mask   *             high = mid             # <<<<<<<<<<<<<< @@ -20177,7 +20178,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_      __pyx_L7:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":68 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":68   *             bitset = bitset & mask   *             high = mid   *     return low             # <<<<<<<<<<<<<< @@ -20187,7 +20188,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_    __pyx_r = __pyx_v_low;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":48 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":48   *    *    * cdef int bitset_findsucc(_BitSet* b, int i):             # <<<<<<<<<<<<<< @@ -20201,7 +20202,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(struct __pyx_t_4cdec_2sa_3_sa_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":71 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":71   *    *    * cdef int bitset_insert(_BitSet* b, int i):             # <<<<<<<<<<<<<< @@ -20216,7 +20217,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B    int __pyx_t_1;    __Pyx_RefNannySetupContext("bitset_insert", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":74 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":74   *     cdef int val   *    *     val = 1 << i             # <<<<<<<<<<<<<< @@ -20225,7 +20226,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B   */    __pyx_v_val = (1 << __pyx_v_i); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":75 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":75   *    *     val = 1 << i   *     if b.bitset & val == 0:             # <<<<<<<<<<<<<< @@ -20235,7 +20236,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B    __pyx_t_1 = (((__pyx_v_b->bitset & __pyx_v_val) == 0) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":76 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":76   *     val = 1 << i   *     if b.bitset & val == 0:   *         b.bitset = b.bitset | val             # <<<<<<<<<<<<<< @@ -20244,7 +20245,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B   */      __pyx_v_b->bitset = (__pyx_v_b->bitset | __pyx_v_val); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":77 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":77   *     if b.bitset & val == 0:   *         b.bitset = b.bitset | val   *         if b.size == 0:             # <<<<<<<<<<<<<< @@ -20254,7 +20255,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B      __pyx_t_1 = ((__pyx_v_b->size == 0) != 0);      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":78 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":78   *         b.bitset = b.bitset | val   *         if b.size == 0:   *             b.min_val = i             # <<<<<<<<<<<<<< @@ -20263,7 +20264,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B   */        __pyx_v_b->min_val = __pyx_v_i; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":79 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":79   *         if b.size == 0:   *             b.min_val = i   *             b.max_val = i             # <<<<<<<<<<<<<< @@ -20275,7 +20276,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":81 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":81   *             b.max_val = i   *         else:   *             if i < b.min_val:             # <<<<<<<<<<<<<< @@ -20285,7 +20286,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B        __pyx_t_1 = ((__pyx_v_i < __pyx_v_b->min_val) != 0);        if (__pyx_t_1) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":82 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":82   *         else:   *             if i < b.min_val:   *                 b.min_val = i             # <<<<<<<<<<<<<< @@ -20297,7 +20298,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B        }        __pyx_L5:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":83 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":83   *             if i < b.min_val:   *                 b.min_val = i   *             if i > b.max_val:             # <<<<<<<<<<<<<< @@ -20307,7 +20308,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B        __pyx_t_1 = ((__pyx_v_i > __pyx_v_b->max_val) != 0);        if (__pyx_t_1) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":84 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":84   *                 b.min_val = i   *             if i > b.max_val:   *                 b.max_val = i             # <<<<<<<<<<<<<< @@ -20321,7 +20322,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B      }      __pyx_L4:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":85 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":85   *             if i > b.max_val:   *                 b.max_val = i   *         b.size = b.size + 1             # <<<<<<<<<<<<<< @@ -20330,7 +20331,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B   */      __pyx_v_b->size = (__pyx_v_b->size + 1); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":86 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":86   *                 b.max_val = i   *         b.size = b.size + 1   *         return 1             # <<<<<<<<<<<<<< @@ -20341,7 +20342,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":87 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":87   *         b.size = b.size + 1   *         return 1   *     return 0             # <<<<<<<<<<<<<< @@ -20351,7 +20352,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B    __pyx_r = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":71 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":71   *    *    * cdef int bitset_insert(_BitSet* b, int i):             # <<<<<<<<<<<<<< @@ -20365,7 +20366,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_insert(struct __pyx_t_4cdec_2sa_3_sa__B    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":90 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":90   *    *    * cdef int bitset_contains(_BitSet* b, int i):             # <<<<<<<<<<<<<< @@ -20380,7 +20381,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_contains(struct __pyx_t_4cdec_2sa_3_sa_    int __pyx_t_1;    __Pyx_RefNannySetupContext("bitset_contains", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":93 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":93   *     cdef int val   *    *     val = 1 << i             # <<<<<<<<<<<<<< @@ -20389,7 +20390,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_contains(struct __pyx_t_4cdec_2sa_3_sa_   */    __pyx_v_val = (1 << __pyx_v_i); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":94 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":94   *    *     val = 1 << i   *     if b.bitset & val == 0:             # <<<<<<<<<<<<<< @@ -20399,7 +20400,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_contains(struct __pyx_t_4cdec_2sa_3_sa_    __pyx_t_1 = (((__pyx_v_b->bitset & __pyx_v_val) == 0) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":95 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":95   *     val = 1 << i   *     if b.bitset & val == 0:   *         return 0             # <<<<<<<<<<<<<< @@ -20411,7 +20412,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_contains(struct __pyx_t_4cdec_2sa_3_sa_    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":97 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":97   *         return 0   *     else:   *         return 1             # <<<<<<<<<<<<<< @@ -20422,7 +20423,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_contains(struct __pyx_t_4cdec_2sa_3_sa_      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":90 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":90   *    *    * cdef int bitset_contains(_BitSet* b, int i):             # <<<<<<<<<<<<<< @@ -20436,7 +20437,7 @@ static int __pyx_f_4cdec_2sa_3_sa_bitset_contains(struct __pyx_t_4cdec_2sa_3_sa_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":104 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":104   *     cdef int next_val   *    *     def __next__(self):             # <<<<<<<<<<<<<< @@ -20469,7 +20470,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14BitSetIterator___next__(struct __pyx_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__next__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":107 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":107   *         cdef int ret_val   *    *         if self.next_val == -1:             # <<<<<<<<<<<<<< @@ -20479,7 +20480,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14BitSetIterator___next__(struct __pyx_    __pyx_t_1 = ((__pyx_v_self->next_val == -1) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":108 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":108   *    *         if self.next_val == -1:   *             raise StopIteration()             # <<<<<<<<<<<<<< @@ -20493,7 +20494,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14BitSetIterator___next__(struct __pyx_      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":109 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":109   *         if self.next_val == -1:   *             raise StopIteration()   *         ret_val = self.next_val             # <<<<<<<<<<<<<< @@ -20503,7 +20504,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14BitSetIterator___next__(struct __pyx_    __pyx_t_3 = __pyx_v_self->next_val;    __pyx_v_ret_val = __pyx_t_3; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":110 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":110   *             raise StopIteration()   *         ret_val = self.next_val   *         self.next_val = bitset_findsucc(self.b, ret_val)             # <<<<<<<<<<<<<< @@ -20512,7 +20513,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14BitSetIterator___next__(struct __pyx_   */    __pyx_v_self->next_val = __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(__pyx_v_self->b, __pyx_v_ret_val); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":111 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":111   *         ret_val = self.next_val   *         self.next_val = bitset_findsucc(self.b, ret_val)   *         return ret_val             # <<<<<<<<<<<<<< @@ -20526,7 +20527,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14BitSetIterator___next__(struct __pyx_    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":104 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":104   *     cdef int next_val   *    *     def __next__(self):             # <<<<<<<<<<<<<< @@ -20545,7 +20546,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14BitSetIterator___next__(struct __pyx_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":122 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":122   *     cdef _BitSet* b   *    *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -20574,7 +20575,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6BitSet___cinit__(struct __pyx_obj_4cdec_2sa_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":123 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":123   *    *     def __cinit__(self):   *         self.b = new_BitSet()             # <<<<<<<<<<<<<< @@ -20583,7 +20584,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6BitSet___cinit__(struct __pyx_obj_4cdec_2sa_   */    __pyx_v_self->b = __pyx_f_4cdec_2sa_3_sa_new_BitSet(); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":122 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":122   *     cdef _BitSet* b   *    *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -20597,7 +20598,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6BitSet___cinit__(struct __pyx_obj_4cdec_2sa_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":125 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":125   *         self.b = new_BitSet()   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -20620,7 +20621,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_6BitSet_2__dealloc__(struct __pyx_obj_4cdec_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":126 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":126   *    *     def __dealloc__(self):   *         free(self.b)             # <<<<<<<<<<<<<< @@ -20629,7 +20630,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_6BitSet_2__dealloc__(struct __pyx_obj_4cdec_   */    free(__pyx_v_self->b); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":125 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":125   *         self.b = new_BitSet()   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -20641,7 +20642,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_6BitSet_2__dealloc__(struct __pyx_obj_4cdec_    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":128 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":128   *         free(self.b)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -20674,7 +20675,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_4__iter__(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__iter__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":130 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":130   *     def __iter__(self):   *         cdef BitSetIterator it   *         it = BitSetIterator()             # <<<<<<<<<<<<<< @@ -20686,7 +20687,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_4__iter__(struct __pyx_obj_4cde    __pyx_v_it = ((struct __pyx_obj_4cdec_2sa_3_sa_BitSetIterator *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":131 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":131   *         cdef BitSetIterator it   *         it = BitSetIterator()   *         it.b = self.b             # <<<<<<<<<<<<<< @@ -20696,7 +20697,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_4__iter__(struct __pyx_obj_4cde    __pyx_t_2 = __pyx_v_self->b;    __pyx_v_it->b = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":132 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":132   *         it = BitSetIterator()   *         it.b = self.b   *         it.next_val = self.b.min_val             # <<<<<<<<<<<<<< @@ -20706,7 +20707,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_4__iter__(struct __pyx_obj_4cde    __pyx_t_3 = __pyx_v_self->b->min_val;    __pyx_v_it->next_val = __pyx_t_3; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":133 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":133   *         it.b = self.b   *         it.next_val = self.b.min_val   *         return it             # <<<<<<<<<<<<<< @@ -20718,7 +20719,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_4__iter__(struct __pyx_obj_4cde    __pyx_r = ((PyObject *)__pyx_v_it);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":128 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":128   *         free(self.b)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -20738,7 +20739,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_4__iter__(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":135 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":135   *         return it   *    *     def insert(self, i):             # <<<<<<<<<<<<<< @@ -20769,7 +20770,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_6insert(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("insert", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":136 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":136   *    *     def insert(self, i):   *         return bitset_insert(self.b, i)             # <<<<<<<<<<<<<< @@ -20784,7 +20785,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_6insert(struct __pyx_obj_4cdec_    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":135 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":135   *         return it   *    *     def insert(self, i):             # <<<<<<<<<<<<<< @@ -20803,7 +20804,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_6insert(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":138 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":138   *         return bitset_insert(self.b, i)   *    *     def findsucc(self, i):             # <<<<<<<<<<<<<< @@ -20834,7 +20835,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_8findsucc(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("findsucc", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":139 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":139   *    *     def findsucc(self, i):   *         return bitset_findsucc(self.b, i)             # <<<<<<<<<<<<<< @@ -20849,7 +20850,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_8findsucc(struct __pyx_obj_4cde    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":138 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":138   *         return bitset_insert(self.b, i)   *    *     def findsucc(self, i):             # <<<<<<<<<<<<<< @@ -20868,7 +20869,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_8findsucc(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":141 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":141   *         return bitset_findsucc(self.b, i)   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -20900,7 +20901,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_10__str__(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__str__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":142 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":142   *    *     def __str__(self):   *         return dec2bin(self.b.bitset)+"  ("+str(self.b.size)+","+str(self.b.min_val)+","+str(self.b.max_val)+")"             # <<<<<<<<<<<<<< @@ -20968,7 +20969,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_10__str__(struct __pyx_obj_4cde    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":141 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":141   *         return bitset_findsucc(self.b, i)   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -20989,7 +20990,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_10__str__(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":144 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":144   *         return dec2bin(self.b.bitset)+"  ("+str(self.b.size)+","+str(self.b.min_val)+","+str(self.b.max_val)+")"   *    *     def min(self):             # <<<<<<<<<<<<<< @@ -21019,7 +21020,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_12min(struct __pyx_obj_4cdec_2s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("min", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":145 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":145   *    *     def min(self):   *         return self.b.min_val             # <<<<<<<<<<<<<< @@ -21033,7 +21034,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_12min(struct __pyx_obj_4cdec_2s    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":144 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":144   *         return dec2bin(self.b.bitset)+"  ("+str(self.b.size)+","+str(self.b.min_val)+","+str(self.b.max_val)+")"   *    *     def min(self):             # <<<<<<<<<<<<<< @@ -21052,7 +21053,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_12min(struct __pyx_obj_4cdec_2s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":147 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":147   *         return self.b.min_val   *    *     def max(self):             # <<<<<<<<<<<<<< @@ -21082,7 +21083,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_14max(struct __pyx_obj_4cdec_2s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("max", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":148 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":148   *    *     def max(self):   *         return self.b.max_val             # <<<<<<<<<<<<<< @@ -21096,7 +21097,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_14max(struct __pyx_obj_4cdec_2s    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":147 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":147   *         return self.b.min_val   *    *     def max(self):             # <<<<<<<<<<<<<< @@ -21115,7 +21116,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6BitSet_14max(struct __pyx_obj_4cdec_2s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":150 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":150   *         return self.b.max_val   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -21141,7 +21142,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_6BitSet_16__len__(struct __pyx_obj_4cd    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":151 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":151   *    *     def __len__(self):   *         return self.b.size             # <<<<<<<<<<<<<< @@ -21151,7 +21152,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_6BitSet_16__len__(struct __pyx_obj_4cd    __pyx_r = __pyx_v_self->b->size;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":150 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":150   *         return self.b.max_val   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -21165,7 +21166,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_6BitSet_16__len__(struct __pyx_obj_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":153 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":153   *         return self.b.size   *    *     def __contains__(self, i):             # <<<<<<<<<<<<<< @@ -21197,7 +21198,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6BitSet_18__contains__(struct __pyx_obj_4cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__contains__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":154 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":154   *    *     def __contains__(self, i):   *         return bool(bitset_contains(self.b, i))             # <<<<<<<<<<<<<< @@ -21212,7 +21213,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6BitSet_18__contains__(struct __pyx_obj_4cdec    __pyx_r = (!(!__pyx_t_3));    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":153 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":153   *         return self.b.size   *    *     def __contains__(self, i):             # <<<<<<<<<<<<<< @@ -21230,7 +21231,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6BitSet_18__contains__(struct __pyx_obj_4cdec    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":157 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":157   *    *    * cdef str dec2bin(long i):             # <<<<<<<<<<<<<< @@ -21252,7 +21253,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_dec2bin(long __pyx_v_i) {    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("dec2bin", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":158 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":158   *    * cdef str dec2bin(long i):   *     cdef str result = ""             # <<<<<<<<<<<<<< @@ -21262,7 +21263,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_dec2bin(long __pyx_v_i) {    __Pyx_INCREF(__pyx_kp_s__32);    __pyx_v_result = __pyx_kp_s__32; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":160 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":160   *     cdef str result = ""   *     cdef unsigned d   *     for d in range(MIN_BOTTOM_SIZE):             # <<<<<<<<<<<<<< @@ -21273,7 +21274,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_dec2bin(long __pyx_v_i) {    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_v_d = __pyx_t_2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":161 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":161   *     cdef unsigned d   *     for d in range(MIN_BOTTOM_SIZE):   *         if i & LOWER_MASK[0] == 0:             # <<<<<<<<<<<<<< @@ -21283,7 +21284,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_dec2bin(long __pyx_v_i) {      __pyx_t_3 = (((__pyx_v_i & (__pyx_v_4cdec_2sa_3_sa_LOWER_MASK[0])) == 0) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":162 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":162   *     for d in range(MIN_BOTTOM_SIZE):   *         if i & LOWER_MASK[0] == 0:   *             result = "0"+result             # <<<<<<<<<<<<<< @@ -21298,7 +21299,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_dec2bin(long __pyx_v_i) {      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":164 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":164   *             result = "0"+result   *         else:   *             result = "1"+result             # <<<<<<<<<<<<<< @@ -21312,7 +21313,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_dec2bin(long __pyx_v_i) {      }      __pyx_L5:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":165 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":165   *         else:   *             result = "1"+result   *         i = i >> 1             # <<<<<<<<<<<<<< @@ -21322,7 +21323,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_dec2bin(long __pyx_v_i) {      __pyx_v_i = (__pyx_v_i >> 1);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":166 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":166   *             result = "1"+result   *         i = i >> 1   *     return result             # <<<<<<<<<<<<<< @@ -21334,7 +21335,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_dec2bin(long __pyx_v_i) {    __pyx_r = __pyx_v_result;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":157 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":157   *    *    * cdef str dec2bin(long i):             # <<<<<<<<<<<<<< @@ -21354,7 +21355,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_dec2bin(long __pyx_v_i) {    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":177 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":177   *     void** bottom   *    * cdef _VEB* new_VEB(int n):             # <<<<<<<<<<<<<< @@ -21375,7 +21376,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("new_VEB", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":181 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":181   *     cdef int num_bits, num_top_bits, i   *    *     veb = <_VEB*> malloc(sizeof(_VEB))             # <<<<<<<<<<<<<< @@ -21384,7 +21385,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __   */    __pyx_v_veb = ((struct __pyx_t_4cdec_2sa_3_sa__VEB *)malloc((sizeof(struct __pyx_t_4cdec_2sa_3_sa__VEB)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":183 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":183   *     veb = <_VEB*> malloc(sizeof(_VEB))   *    *     num_bits = int(ceil(log(n) / log(2)))             # <<<<<<<<<<<<<< @@ -21405,7 +21406,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __    }    __pyx_v_num_bits = ((int)ceil((__pyx_t_1 / __pyx_t_2))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":184 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":184   *    *     num_bits = int(ceil(log(n) / log(2)))   *     veb.num_bottom_bits = num_bits/2             # <<<<<<<<<<<<<< @@ -21414,7 +21415,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __   */    __pyx_v_veb->num_bottom_bits = __Pyx_div_long(__pyx_v_num_bits, 2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":185 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":185   *     num_bits = int(ceil(log(n) / log(2)))   *     veb.num_bottom_bits = num_bits/2   *     if veb.num_bottom_bits < MIN_BOTTOM_BITS:             # <<<<<<<<<<<<<< @@ -21424,7 +21425,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __    __pyx_t_3 = ((__pyx_v_veb->num_bottom_bits < __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_BITS) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":186 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":186   *     veb.num_bottom_bits = num_bits/2   *     if veb.num_bottom_bits < MIN_BOTTOM_BITS:   *         veb.num_bottom_bits = MIN_BOTTOM_BITS             # <<<<<<<<<<<<<< @@ -21436,7 +21437,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":187 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":187   *     if veb.num_bottom_bits < MIN_BOTTOM_BITS:   *         veb.num_bottom_bits = MIN_BOTTOM_BITS   *     veb.top_universe_size = (n >> veb.num_bottom_bits) + 1             # <<<<<<<<<<<<<< @@ -21445,7 +21446,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __   */    __pyx_v_veb->top_universe_size = ((__pyx_v_n >> __pyx_v_veb->num_bottom_bits) + 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":189 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":189   *     veb.top_universe_size = (n >> veb.num_bottom_bits) + 1   *    *     veb.bottom = <void**> malloc(veb.top_universe_size * sizeof(void*))             # <<<<<<<<<<<<<< @@ -21454,7 +21455,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __   */    __pyx_v_veb->bottom = ((void **)malloc((__pyx_v_veb->top_universe_size * (sizeof(void *))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":190 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":190   *    *     veb.bottom = <void**> malloc(veb.top_universe_size * sizeof(void*))   *     memset(veb.bottom, 0, veb.top_universe_size * sizeof(void*))             # <<<<<<<<<<<<<< @@ -21463,7 +21464,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __   */    memset(__pyx_v_veb->bottom, 0, (__pyx_v_veb->top_universe_size * (sizeof(void *)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":192 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":192   *     memset(veb.bottom, 0, veb.top_universe_size * sizeof(void*))   *    *     if veb.top_universe_size > MIN_BOTTOM_SIZE:             # <<<<<<<<<<<<<< @@ -21473,7 +21474,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __    __pyx_t_3 = ((__pyx_v_veb->top_universe_size > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_SIZE) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":193 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":193   *    *     if veb.top_universe_size > MIN_BOTTOM_SIZE:   *         veb.top = new_VEB(veb.top_universe_size)             # <<<<<<<<<<<<<< @@ -21485,7 +21486,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":195 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":195   *         veb.top = new_VEB(veb.top_universe_size)   *     else:   *         veb.top = new_BitSet()             # <<<<<<<<<<<<<< @@ -21496,7 +21497,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __    }    __pyx_L4:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":197 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":197   *         veb.top = new_BitSet()   *    *     veb.max_val = -1             # <<<<<<<<<<<<<< @@ -21505,7 +21506,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __   */    __pyx_v_veb->max_val = -1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":198 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":198   *    *     veb.max_val = -1   *     veb.min_val = -1             # <<<<<<<<<<<<<< @@ -21514,7 +21515,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __   */    __pyx_v_veb->min_val = -1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":199 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":199   *     veb.max_val = -1   *     veb.min_val = -1   *     veb.size = 0             # <<<<<<<<<<<<<< @@ -21523,7 +21524,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __   */    __pyx_v_veb->size = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":200 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":200   *     veb.min_val = -1   *     veb.size = 0   *     return veb             # <<<<<<<<<<<<<< @@ -21533,7 +21534,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __    __pyx_r = __pyx_v_veb;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":177 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":177   *     void** bottom   *    * cdef _VEB* new_VEB(int n):             # <<<<<<<<<<<<<< @@ -21550,7 +21551,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__VEB *__pyx_f_4cdec_2sa_3_sa_new_VEB(int __    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":203 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":203   *    *    * cdef int VEB_insert(_VEB* veb, int i):             # <<<<<<<<<<<<<< @@ -21572,7 +21573,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB    int __pyx_t_4;    __Pyx_RefNannySetupContext("VEB_insert", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":208 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":208   *     cdef int a, b, tmp   *    *     if veb.size == 0:             # <<<<<<<<<<<<<< @@ -21582,7 +21583,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB    __pyx_t_1 = ((__pyx_v_veb->size == 0) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":209 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":209   *    *     if veb.size == 0:   *         veb.min_val = i             # <<<<<<<<<<<<<< @@ -21591,7 +21592,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB   */      __pyx_v_veb->min_val = __pyx_v_i; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":210 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":210   *     if veb.size == 0:   *         veb.min_val = i   *         veb.max_val = i             # <<<<<<<<<<<<<< @@ -21602,7 +21603,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB      goto __pyx_L3;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":211 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":211   *         veb.min_val = i   *         veb.max_val = i   *     elif i == veb.min_val or i == veb.max_val:             # <<<<<<<<<<<<<< @@ -21618,7 +21619,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB    }    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":212 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":212   *         veb.max_val = i   *     elif i == veb.min_val or i == veb.max_val:   *         return 0             # <<<<<<<<<<<<<< @@ -21630,7 +21631,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":214 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":214   *         return 0   *     else:   *         if i < veb.min_val:             # <<<<<<<<<<<<<< @@ -21640,7 +21641,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB      __pyx_t_3 = ((__pyx_v_i < __pyx_v_veb->min_val) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":215 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":215   *     else:   *         if i < veb.min_val:   *             tmp = i             # <<<<<<<<<<<<<< @@ -21649,7 +21650,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB   */        __pyx_v_tmp = __pyx_v_i; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":216 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":216   *         if i < veb.min_val:   *             tmp = i   *             i = veb.min_val             # <<<<<<<<<<<<<< @@ -21659,7 +21660,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB        __pyx_t_4 = __pyx_v_veb->min_val;        __pyx_v_i = __pyx_t_4; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":217 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":217   *             tmp = i   *             i = veb.min_val   *             veb.min_val = tmp             # <<<<<<<<<<<<<< @@ -21671,7 +21672,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB      }      __pyx_L4:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":218 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":218   *             i = veb.min_val   *             veb.min_val = tmp   *         a = i >> veb.num_bottom_bits             # <<<<<<<<<<<<<< @@ -21680,7 +21681,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB   */      __pyx_v_a = (__pyx_v_i >> __pyx_v_veb->num_bottom_bits); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":219 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":219   *             veb.min_val = tmp   *         a = i >> veb.num_bottom_bits   *         b = i & LOWER_MASK[veb.num_bottom_bits-1]             # <<<<<<<<<<<<<< @@ -21689,7 +21690,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB   */      __pyx_v_b = (__pyx_v_i & (__pyx_v_4cdec_2sa_3_sa_LOWER_MASK[(__pyx_v_veb->num_bottom_bits - 1)])); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":220 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":220   *         a = i >> veb.num_bottom_bits   *         b = i & LOWER_MASK[veb.num_bottom_bits-1]   *         if veb.bottom[a] == NULL:             # <<<<<<<<<<<<<< @@ -21699,7 +21700,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB      __pyx_t_3 = (((__pyx_v_veb->bottom[__pyx_v_a]) == NULL) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":221 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":221   *         b = i & LOWER_MASK[veb.num_bottom_bits-1]   *         if veb.bottom[a] == NULL:   *             if veb.top_universe_size > MIN_BOTTOM_SIZE:             # <<<<<<<<<<<<<< @@ -21709,7 +21710,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB        __pyx_t_3 = ((__pyx_v_veb->top_universe_size > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_SIZE) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":222 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":222   *         if veb.bottom[a] == NULL:   *             if veb.top_universe_size > MIN_BOTTOM_SIZE:   *                 subv = <_VEB*> veb.top             # <<<<<<<<<<<<<< @@ -21718,7 +21719,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB   */          __pyx_v_subv = ((struct __pyx_t_4cdec_2sa_3_sa__VEB *)__pyx_v_veb->top); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":223 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":223   *             if veb.top_universe_size > MIN_BOTTOM_SIZE:   *                 subv = <_VEB*> veb.top   *                 VEB_insert(subv, a)             # <<<<<<<<<<<<<< @@ -21730,7 +21731,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB        }        /*else*/ { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":225 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":225   *                 VEB_insert(subv, a)   *             else:   *                 subb = <_BitSet*> veb.top             # <<<<<<<<<<<<<< @@ -21739,7 +21740,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB   */          __pyx_v_subb = ((struct __pyx_t_4cdec_2sa_3_sa__BitSet *)__pyx_v_veb->top); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":226 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":226   *             else:   *                 subb = <_BitSet*> veb.top   *                 bitset_insert(subb, a)             # <<<<<<<<<<<<<< @@ -21750,7 +21751,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB        }        __pyx_L6:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":227 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":227   *                 subb = <_BitSet*> veb.top   *                 bitset_insert(subb, a)   *             if veb.num_bottom_bits > MIN_BOTTOM_BITS:             # <<<<<<<<<<<<<< @@ -21760,7 +21761,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB        __pyx_t_3 = ((__pyx_v_veb->num_bottom_bits > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_BITS) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":228 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":228   *                 bitset_insert(subb, a)   *             if veb.num_bottom_bits > MIN_BOTTOM_BITS:   *                 veb.bottom[a] = new_VEB(1 << veb.num_bottom_bits)             # <<<<<<<<<<<<<< @@ -21772,7 +21773,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB        }        /*else*/ { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":230 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":230   *                 veb.bottom[a] = new_VEB(1 << veb.num_bottom_bits)   *             else:   *                 veb.bottom[a] = new_BitSet()             # <<<<<<<<<<<<<< @@ -21786,7 +21787,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB      }      __pyx_L5:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":231 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":231   *             else:   *                 veb.bottom[a] = new_BitSet()   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:             # <<<<<<<<<<<<<< @@ -21796,7 +21797,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB      __pyx_t_3 = ((__pyx_v_veb->num_bottom_bits > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_BITS) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":232 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":232   *                 veb.bottom[a] = new_BitSet()   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:   *             subv = <_VEB*> veb.bottom[a]             # <<<<<<<<<<<<<< @@ -21805,7 +21806,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB   */        __pyx_v_subv = ((struct __pyx_t_4cdec_2sa_3_sa__VEB *)(__pyx_v_veb->bottom[__pyx_v_a])); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":233 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":233   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:   *             subv = <_VEB*> veb.bottom[a]   *             if VEB_insert(subv, b) == 0:             # <<<<<<<<<<<<<< @@ -21815,7 +21816,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB        __pyx_t_3 = ((__pyx_f_4cdec_2sa_3_sa_VEB_insert(__pyx_v_subv, __pyx_v_b) == 0) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":234 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":234   *             subv = <_VEB*> veb.bottom[a]   *             if VEB_insert(subv, b) == 0:   *                 return 0             # <<<<<<<<<<<<<< @@ -21829,7 +21830,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":236 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":236   *                 return 0   *         else:   *             subb = <_BitSet*> veb.bottom[a]             # <<<<<<<<<<<<<< @@ -21838,7 +21839,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB   */        __pyx_v_subb = ((struct __pyx_t_4cdec_2sa_3_sa__BitSet *)(__pyx_v_veb->bottom[__pyx_v_a])); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":237 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":237   *         else:   *             subb = <_BitSet*> veb.bottom[a]   *             if bitset_insert(subb, b) == 0:             # <<<<<<<<<<<<<< @@ -21848,7 +21849,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB        __pyx_t_3 = ((__pyx_f_4cdec_2sa_3_sa_bitset_insert(__pyx_v_subb, __pyx_v_b) == 0) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":238 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":238   *             subb = <_BitSet*> veb.bottom[a]   *             if bitset_insert(subb, b) == 0:   *                 return 0             # <<<<<<<<<<<<<< @@ -21861,7 +21862,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB      }      __pyx_L8:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":240 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":240   *                 return 0   *    *         if i > veb.max_val:             # <<<<<<<<<<<<<< @@ -21871,7 +21872,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB      __pyx_t_3 = ((__pyx_v_i > __pyx_v_veb->max_val) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":241 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":241   *    *         if i > veb.max_val:   *             veb.max_val = i             # <<<<<<<<<<<<<< @@ -21885,7 +21886,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":242 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":242   *         if i > veb.max_val:   *             veb.max_val = i   *     veb.size = veb.size + 1             # <<<<<<<<<<<<<< @@ -21894,7 +21895,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB   */    __pyx_v_veb->size = (__pyx_v_veb->size + 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":243 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":243   *             veb.max_val = i   *     veb.size = veb.size + 1   *     return 1             # <<<<<<<<<<<<<< @@ -21904,7 +21905,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB    __pyx_r = 1;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":203 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":203   *    *    * cdef int VEB_insert(_VEB* veb, int i):             # <<<<<<<<<<<<<< @@ -21918,7 +21919,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_insert(struct __pyx_t_4cdec_2sa_3_sa__VEB    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":246 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":246   *    *    * cdef del_VEB(_VEB* veb):             # <<<<<<<<<<<<<< @@ -21938,7 +21939,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("del_VEB", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":249 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":249   *     cdef int i   *    *     if veb.top_universe_size > MIN_BOTTOM_SIZE:             # <<<<<<<<<<<<<< @@ -21948,7 +21949,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V    __pyx_t_1 = ((__pyx_v_veb->top_universe_size > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_SIZE) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":250 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":250   *    *     if veb.top_universe_size > MIN_BOTTOM_SIZE:   *         i = (<_VEB*> veb.top).min_val             # <<<<<<<<<<<<<< @@ -21961,7 +21962,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":252 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":252   *         i = (<_VEB*> veb.top).min_val   *     else:   *         i = (<_BitSet*> veb.top).min_val             # <<<<<<<<<<<<<< @@ -21973,7 +21974,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":254 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":254   *         i = (<_BitSet*> veb.top).min_val   *    *     while i != -1:             # <<<<<<<<<<<<<< @@ -21984,7 +21985,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V      __pyx_t_1 = ((__pyx_v_i != -1) != 0);      if (!__pyx_t_1) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":255 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":255   *    *     while i != -1:   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:             # <<<<<<<<<<<<<< @@ -21994,7 +21995,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V      __pyx_t_1 = ((__pyx_v_veb->num_bottom_bits > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_BITS) != 0);      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":256 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":256   *     while i != -1:   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:   *             del_VEB(<_VEB*> veb.bottom[i])             # <<<<<<<<<<<<<< @@ -22008,7 +22009,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":258 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":258   *             del_VEB(<_VEB*> veb.bottom[i])   *         else:   *             free(<_BitSet*> veb.bottom[i])             # <<<<<<<<<<<<<< @@ -22019,7 +22020,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V      }      __pyx_L6:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":260 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":260   *             free(<_BitSet*> veb.bottom[i])   *    *         if veb.top_universe_size > MIN_BOTTOM_SIZE:             # <<<<<<<<<<<<<< @@ -22029,7 +22030,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V      __pyx_t_1 = ((__pyx_v_veb->top_universe_size > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_SIZE) != 0);      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":261 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":261   *    *         if veb.top_universe_size > MIN_BOTTOM_SIZE:   *             i = VEB_findsucc(<_VEB*> veb.top, i)             # <<<<<<<<<<<<<< @@ -22041,7 +22042,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":263 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":263   *             i = VEB_findsucc(<_VEB*> veb.top, i)   *         else:   *             i = bitset_findsucc(<_BitSet*> veb.top, i)             # <<<<<<<<<<<<<< @@ -22053,7 +22054,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V      __pyx_L7:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":265 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":265   *             i = bitset_findsucc(<_BitSet*> veb.top, i)   *    *     if veb.top_universe_size > MIN_BOTTOM_SIZE:             # <<<<<<<<<<<<<< @@ -22063,7 +22064,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V    __pyx_t_1 = ((__pyx_v_veb->top_universe_size > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_SIZE) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":266 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":266   *    *     if veb.top_universe_size > MIN_BOTTOM_SIZE:   *         del_VEB(<_VEB*> veb.top)             # <<<<<<<<<<<<<< @@ -22077,7 +22078,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":268 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":268   *         del_VEB(<_VEB*> veb.top)   *     else:   *         free(<_BitSet*> veb.top)             # <<<<<<<<<<<<<< @@ -22088,7 +22089,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V    }    __pyx_L8:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":269 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":269   *     else:   *         free(<_BitSet*> veb.top)   *     free(veb.bottom)             # <<<<<<<<<<<<<< @@ -22097,7 +22098,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V   */    free(__pyx_v_veb->bottom); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":270 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":270   *         free(<_BitSet*> veb.top)   *     free(veb.bottom)   *     free(veb)             # <<<<<<<<<<<<<< @@ -22106,7 +22107,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V   */    free(__pyx_v_veb); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":246 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":246   *    *    * cdef del_VEB(_VEB* veb):             # <<<<<<<<<<<<<< @@ -22127,7 +22128,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_del_VEB(struct __pyx_t_4cdec_2sa_3_sa__V    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":273 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":273   *    *    * cdef int VEB_findsucc(_VEB* veb, int i):             # <<<<<<<<<<<<<< @@ -22150,7 +22151,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE    int __pyx_t_3;    __Pyx_RefNannySetupContext("VEB_findsucc", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":278 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":278   *     cdef int a, b, j, c, found   *    *     if veb.max_val == -1 or i>=veb.max_val:             # <<<<<<<<<<<<<< @@ -22166,7 +22167,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE    }    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":279 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":279   *    *     if veb.max_val == -1 or i>=veb.max_val:   *         return -1             # <<<<<<<<<<<<<< @@ -22177,7 +22178,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":280 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":280   *     if veb.max_val == -1 or i>=veb.max_val:   *         return -1   *     if i < veb.min_val:             # <<<<<<<<<<<<<< @@ -22187,7 +22188,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE    __pyx_t_3 = ((__pyx_v_i < __pyx_v_veb->min_val) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":281 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":281   *         return -1   *     if i < veb.min_val:   *         return veb.min_val             # <<<<<<<<<<<<<< @@ -22198,7 +22199,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":283 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":283   *         return veb.min_val   *    *     a = i >> veb.num_bottom_bits             # <<<<<<<<<<<<<< @@ -22207,7 +22208,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE   */    __pyx_v_a = (__pyx_v_i >> __pyx_v_veb->num_bottom_bits); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":284 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":284   *    *     a = i >> veb.num_bottom_bits   *     b = i & LOWER_MASK[veb.num_bottom_bits-1]             # <<<<<<<<<<<<<< @@ -22216,7 +22217,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE   */    __pyx_v_b = (__pyx_v_i & (__pyx_v_4cdec_2sa_3_sa_LOWER_MASK[(__pyx_v_veb->num_bottom_bits - 1)])); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":285 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":285   *     a = i >> veb.num_bottom_bits   *     b = i & LOWER_MASK[veb.num_bottom_bits-1]   *     found = 0             # <<<<<<<<<<<<<< @@ -22225,7 +22226,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE   */    __pyx_v_found = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":286 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":286   *     b = i & LOWER_MASK[veb.num_bottom_bits-1]   *     found = 0   *     if veb.bottom[a] != NULL:             # <<<<<<<<<<<<<< @@ -22235,7 +22236,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE    __pyx_t_3 = (((__pyx_v_veb->bottom[__pyx_v_a]) != NULL) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":287 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":287   *     found = 0   *     if veb.bottom[a] != NULL:   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:             # <<<<<<<<<<<<<< @@ -22245,7 +22246,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE      __pyx_t_3 = ((__pyx_v_veb->num_bottom_bits > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_BITS) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":288 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":288   *     if veb.bottom[a] != NULL:   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:   *             subv = <_VEB*> veb.bottom[a]             # <<<<<<<<<<<<<< @@ -22254,7 +22255,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE   */        __pyx_v_subv = ((struct __pyx_t_4cdec_2sa_3_sa__VEB *)(__pyx_v_veb->bottom[__pyx_v_a])); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":289 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":289   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:   *             subv = <_VEB*> veb.bottom[a]   *             if subv.max_val > b:             # <<<<<<<<<<<<<< @@ -22264,7 +22265,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE        __pyx_t_3 = ((__pyx_v_subv->max_val > __pyx_v_b) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":290 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":290   *             subv = <_VEB*> veb.bottom[a]   *             if subv.max_val > b:   *                 j = (a << veb.num_bottom_bits) + VEB_findsucc(subv, b)             # <<<<<<<<<<<<<< @@ -22273,7 +22274,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE   */          __pyx_v_j = ((__pyx_v_a << __pyx_v_veb->num_bottom_bits) + __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(__pyx_v_subv, __pyx_v_b)); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":291 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":291   *             if subv.max_val > b:   *                 j = (a << veb.num_bottom_bits) + VEB_findsucc(subv, b)   *                 found = 1             # <<<<<<<<<<<<<< @@ -22288,7 +22289,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":293 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":293   *                 found = 1   *         else:   *             subb = <_BitSet*> veb.bottom[a]             # <<<<<<<<<<<<<< @@ -22297,7 +22298,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE   */        __pyx_v_subb = ((struct __pyx_t_4cdec_2sa_3_sa__BitSet *)(__pyx_v_veb->bottom[__pyx_v_a])); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":294 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":294   *         else:   *             subb = <_BitSet*> veb.bottom[a]   *             if subb.max_val > b:             # <<<<<<<<<<<<<< @@ -22307,7 +22308,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE        __pyx_t_3 = ((__pyx_v_subb->max_val > __pyx_v_b) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":295 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":295   *             subb = <_BitSet*> veb.bottom[a]   *             if subb.max_val > b:   *                 j = (a << veb.num_bottom_bits) + bitset_findsucc(subb, b)             # <<<<<<<<<<<<<< @@ -22316,7 +22317,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE   */          __pyx_v_j = ((__pyx_v_a << __pyx_v_veb->num_bottom_bits) + __pyx_f_4cdec_2sa_3_sa_bitset_findsucc(__pyx_v_subb, __pyx_v_b)); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":296 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":296   *             if subb.max_val > b:   *                 j = (a << veb.num_bottom_bits) + bitset_findsucc(subb, b)   *                 found = 1             # <<<<<<<<<<<<<< @@ -22333,7 +22334,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE    }    __pyx_L5:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":297 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":297   *                 j = (a << veb.num_bottom_bits) + bitset_findsucc(subb, b)   *                 found = 1   *     if found==0:             # <<<<<<<<<<<<<< @@ -22343,7 +22344,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE    __pyx_t_3 = ((__pyx_v_found == 0) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":298 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":298   *                 found = 1   *     if found==0:   *         if veb.top_universe_size > MIN_BOTTOM_SIZE:             # <<<<<<<<<<<<<< @@ -22353,7 +22354,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE      __pyx_t_3 = ((__pyx_v_veb->top_universe_size > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_SIZE) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":299 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":299   *     if found==0:   *         if veb.top_universe_size > MIN_BOTTOM_SIZE:   *             subv = <_VEB*> veb.top             # <<<<<<<<<<<<<< @@ -22362,7 +22363,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE   */        __pyx_v_subv = ((struct __pyx_t_4cdec_2sa_3_sa__VEB *)__pyx_v_veb->top); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":300 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":300   *         if veb.top_universe_size > MIN_BOTTOM_SIZE:   *             subv = <_VEB*> veb.top   *             c = VEB_findsucc(subv, a)             # <<<<<<<<<<<<<< @@ -22374,7 +22375,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":302 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":302   *             c = VEB_findsucc(subv, a)   *         else:   *             subb = <_BitSet*> veb.top             # <<<<<<<<<<<<<< @@ -22383,7 +22384,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE   */        __pyx_v_subb = ((struct __pyx_t_4cdec_2sa_3_sa__BitSet *)__pyx_v_veb->top); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":303 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":303   *         else:   *             subb = <_BitSet*> veb.top   *             c = bitset_findsucc(subb, a)             # <<<<<<<<<<<<<< @@ -22394,7 +22395,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE      }      __pyx_L10:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":304 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":304   *             subb = <_BitSet*> veb.top   *             c = bitset_findsucc(subb, a)   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:             # <<<<<<<<<<<<<< @@ -22404,7 +22405,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE      __pyx_t_3 = ((__pyx_v_veb->num_bottom_bits > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_BITS) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":305 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":305   *             c = bitset_findsucc(subb, a)   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:   *             subv = <_VEB*> veb.bottom[c]             # <<<<<<<<<<<<<< @@ -22413,7 +22414,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE   */        __pyx_v_subv = ((struct __pyx_t_4cdec_2sa_3_sa__VEB *)(__pyx_v_veb->bottom[__pyx_v_c])); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":306 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":306   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:   *             subv = <_VEB*> veb.bottom[c]   *             j = (c << veb.num_bottom_bits) + subv.min_val             # <<<<<<<<<<<<<< @@ -22425,7 +22426,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":308 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":308   *             j = (c << veb.num_bottom_bits) + subv.min_val   *         else:   *             subb = <_BitSet*> veb.bottom[c]             # <<<<<<<<<<<<<< @@ -22434,7 +22435,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE   */        __pyx_v_subb = ((struct __pyx_t_4cdec_2sa_3_sa__BitSet *)(__pyx_v_veb->bottom[__pyx_v_c])); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":309 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":309   *         else:   *             subb = <_BitSet*> veb.bottom[c]   *             j = (c << veb.num_bottom_bits) + subb.min_val             # <<<<<<<<<<<<<< @@ -22448,7 +22449,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE    }    __pyx_L9:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":310 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":310   *             subb = <_BitSet*> veb.bottom[c]   *             j = (c << veb.num_bottom_bits) + subb.min_val   *     return j             # <<<<<<<<<<<<<< @@ -22458,7 +22459,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE    __pyx_r = __pyx_v_j;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":273 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":273   *    *    * cdef int VEB_findsucc(_VEB* veb, int i):             # <<<<<<<<<<<<<< @@ -22472,7 +22473,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(struct __pyx_t_4cdec_2sa_3_sa__VE    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":313 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":313   *    *    * cdef int VEB_contains(_VEB* veb, int i):             # <<<<<<<<<<<<<< @@ -22493,7 +22494,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE    int __pyx_t_4;    __Pyx_RefNannySetupContext("VEB_contains", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":318 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":318   *     cdef int a, b   *    *     if veb.size == 0 or i < veb.min_val or i > veb.max_val:             # <<<<<<<<<<<<<< @@ -22515,7 +22516,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE    }    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":319 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":319   *    *     if veb.size == 0 or i < veb.min_val or i > veb.max_val:   *         return 0             # <<<<<<<<<<<<<< @@ -22526,7 +22527,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":321 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":321   *         return 0   *    *     if veb.min_val == i:             # <<<<<<<<<<<<<< @@ -22536,7 +22537,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE    __pyx_t_2 = ((__pyx_v_veb->min_val == __pyx_v_i) != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":322 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":322   *    *     if veb.min_val == i:   *         return 1             # <<<<<<<<<<<<<< @@ -22548,7 +22549,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":324 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":324   *         return 1   *     else:   *         if veb.size == 1:             # <<<<<<<<<<<<<< @@ -22558,7 +22559,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE      __pyx_t_2 = ((__pyx_v_veb->size == 1) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":325 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":325   *     else:   *         if veb.size == 1:   *             return 0             # <<<<<<<<<<<<<< @@ -22570,7 +22571,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE      }    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":327 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":327   *             return 0   *    *     a = i >> veb.num_bottom_bits             # <<<<<<<<<<<<<< @@ -22579,7 +22580,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE   */    __pyx_v_a = (__pyx_v_i >> __pyx_v_veb->num_bottom_bits); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":328 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":328   *    *     a = i >> veb.num_bottom_bits   *     b = i & LOWER_MASK[veb.num_bottom_bits-1]             # <<<<<<<<<<<<<< @@ -22588,7 +22589,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE   */    __pyx_v_b = (__pyx_v_i & (__pyx_v_4cdec_2sa_3_sa_LOWER_MASK[(__pyx_v_veb->num_bottom_bits - 1)])); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":329 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":329   *     a = i >> veb.num_bottom_bits   *     b = i & LOWER_MASK[veb.num_bottom_bits-1]   *     if veb.bottom[a] == NULL:             # <<<<<<<<<<<<<< @@ -22598,7 +22599,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE    __pyx_t_2 = (((__pyx_v_veb->bottom[__pyx_v_a]) == NULL) != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":330 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":330   *     b = i & LOWER_MASK[veb.num_bottom_bits-1]   *     if veb.bottom[a] == NULL:   *         return 0             # <<<<<<<<<<<<<< @@ -22610,7 +22611,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":332 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":332   *         return 0   *     else:   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:             # <<<<<<<<<<<<<< @@ -22620,7 +22621,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE      __pyx_t_2 = ((__pyx_v_veb->num_bottom_bits > __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_BITS) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":333 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":333   *     else:   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:   *             subv = <_VEB*> veb.bottom[a]             # <<<<<<<<<<<<<< @@ -22629,7 +22630,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE   */        __pyx_v_subv = ((struct __pyx_t_4cdec_2sa_3_sa__VEB *)(__pyx_v_veb->bottom[__pyx_v_a])); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":334 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":334   *         if veb.num_bottom_bits > MIN_BOTTOM_BITS:   *             subv = <_VEB*> veb.bottom[a]   *             return VEB_contains(subv, b)             # <<<<<<<<<<<<<< @@ -22641,7 +22642,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":336 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":336   *             return VEB_contains(subv, b)   *         else:   *             subb = <_BitSet*> veb.bottom[a]             # <<<<<<<<<<<<<< @@ -22650,7 +22651,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE   */        __pyx_v_subb = ((struct __pyx_t_4cdec_2sa_3_sa__BitSet *)(__pyx_v_veb->bottom[__pyx_v_a])); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":337 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":337   *         else:   *             subb = <_BitSet*> veb.bottom[a]   *             return bitset_contains(subb, b)             # <<<<<<<<<<<<<< @@ -22662,7 +22663,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE      }    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":313 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":313   *    *    * cdef int VEB_contains(_VEB* veb, int i):             # <<<<<<<<<<<<<< @@ -22676,7 +22677,7 @@ static int __pyx_f_4cdec_2sa_3_sa_VEB_contains(struct __pyx_t_4cdec_2sa_3_sa__VE    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":344 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":344   *     cdef int next_val   *    *     def __next__(self):             # <<<<<<<<<<<<<< @@ -22709,7 +22710,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11VEBIterator___next__(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__next__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":347 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":347   *         cdef int ret_val   *    *         if self.next_val == -1:             # <<<<<<<<<<<<<< @@ -22719,7 +22720,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11VEBIterator___next__(struct __pyx_obj    __pyx_t_1 = ((__pyx_v_self->next_val == -1) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":348 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":348   *    *         if self.next_val == -1:   *             raise StopIteration()             # <<<<<<<<<<<<<< @@ -22733,7 +22734,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11VEBIterator___next__(struct __pyx_obj      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":349 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":349   *         if self.next_val == -1:   *             raise StopIteration()   *         ret_val = self.next_val             # <<<<<<<<<<<<<< @@ -22743,7 +22744,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11VEBIterator___next__(struct __pyx_obj    __pyx_t_3 = __pyx_v_self->next_val;    __pyx_v_ret_val = __pyx_t_3; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":350 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":350   *             raise StopIteration()   *         ret_val = self.next_val   *         self.next_val = VEB_findsucc(self.v, ret_val)             # <<<<<<<<<<<<<< @@ -22752,7 +22753,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11VEBIterator___next__(struct __pyx_obj   */    __pyx_v_self->next_val = __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(__pyx_v_self->v, __pyx_v_ret_val); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":351 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":351   *         ret_val = self.next_val   *         self.next_val = VEB_findsucc(self.v, ret_val)   *         return ret_val             # <<<<<<<<<<<<<< @@ -22766,7 +22767,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11VEBIterator___next__(struct __pyx_obj    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":344 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":344   *     cdef int next_val   *    *     def __next__(self):             # <<<<<<<<<<<<<< @@ -22785,7 +22786,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11VEBIterator___next__(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":360 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":360   *     cdef int _first(self)   *    *     def __cinit__(self, int size):             # <<<<<<<<<<<<<< @@ -22850,7 +22851,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3VEB___cinit__(struct __pyx_obj_4cdec_2sa_3_s    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":361 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":361   *    *     def __cinit__(self, int size):   *         self.veb = new_VEB(size)             # <<<<<<<<<<<<<< @@ -22859,7 +22860,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3VEB___cinit__(struct __pyx_obj_4cdec_2sa_3_s   */    __pyx_v_self->veb = __pyx_f_4cdec_2sa_3_sa_new_VEB(__pyx_v_size); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":360 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":360   *     cdef int _first(self)   *    *     def __cinit__(self, int size):             # <<<<<<<<<<<<<< @@ -22873,7 +22874,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3VEB___cinit__(struct __pyx_obj_4cdec_2sa_3_s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":363 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":363   *         self.veb = new_VEB(size)   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -22900,7 +22901,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_3VEB_2__dealloc__(struct __pyx_obj_4cdec_2sa    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":364 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":364   *    *     def __dealloc__(self):   *         del_VEB(self.veb)             # <<<<<<<<<<<<<< @@ -22911,7 +22912,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_3VEB_2__dealloc__(struct __pyx_obj_4cdec_2sa    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":363 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":363   *         self.veb = new_VEB(size)   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -22928,7 +22929,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_3VEB_2__dealloc__(struct __pyx_obj_4cdec_2sa    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":366 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":366   *         del_VEB(self.veb)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -22961,7 +22962,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_4__iter__(struct __pyx_obj_4cdec_2    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__iter__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":368 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":368   *     def __iter__(self):   *         cdef VEBIterator it   *         it = VEBIterator()             # <<<<<<<<<<<<<< @@ -22973,7 +22974,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_4__iter__(struct __pyx_obj_4cdec_2    __pyx_v_it = ((struct __pyx_obj_4cdec_2sa_3_sa_VEBIterator *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":369 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":369   *         cdef VEBIterator it   *         it = VEBIterator()   *         it.v = self.veb             # <<<<<<<<<<<<<< @@ -22983,7 +22984,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_4__iter__(struct __pyx_obj_4cdec_2    __pyx_t_2 = __pyx_v_self->veb;    __pyx_v_it->v = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":370 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":370   *         it = VEBIterator()   *         it.v = self.veb   *         it.next_val = self.veb.min_val             # <<<<<<<<<<<<<< @@ -22993,7 +22994,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_4__iter__(struct __pyx_obj_4cdec_2    __pyx_t_3 = __pyx_v_self->veb->min_val;    __pyx_v_it->next_val = __pyx_t_3; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":371 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":371   *         it.v = self.veb   *         it.next_val = self.veb.min_val   *         return it             # <<<<<<<<<<<<<< @@ -23005,7 +23006,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_4__iter__(struct __pyx_obj_4cdec_2    __pyx_r = ((PyObject *)__pyx_v_it);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":366 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":366   *         del_VEB(self.veb)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -23025,7 +23026,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_4__iter__(struct __pyx_obj_4cdec_2    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":373 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":373   *         return it   *    *     def insert(self, i):             # <<<<<<<<<<<<<< @@ -23056,7 +23057,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_6insert(struct __pyx_obj_4cdec_2sa    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("insert", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":374 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":374   *    *     def insert(self, i):   *         return VEB_insert(self.veb, i)             # <<<<<<<<<<<<<< @@ -23071,7 +23072,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_6insert(struct __pyx_obj_4cdec_2sa    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":373 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":373   *         return it   *    *     def insert(self, i):             # <<<<<<<<<<<<<< @@ -23090,7 +23091,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_6insert(struct __pyx_obj_4cdec_2sa    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":376 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":376   *         return VEB_insert(self.veb, i)   *    *     cdef int _insert(self, int i):             # <<<<<<<<<<<<<< @@ -23103,7 +23104,7 @@ static int __pyx_f_4cdec_2sa_3_sa_3VEB__insert(struct __pyx_obj_4cdec_2sa_3_sa_V    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("_insert", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":377 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":377   *    *     cdef int _insert(self, int i):   *         return VEB_insert(self.veb, i)             # <<<<<<<<<<<<<< @@ -23113,7 +23114,7 @@ static int __pyx_f_4cdec_2sa_3_sa_3VEB__insert(struct __pyx_obj_4cdec_2sa_3_sa_V    __pyx_r = __pyx_f_4cdec_2sa_3_sa_VEB_insert(__pyx_v_self->veb, __pyx_v_i);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":376 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":376   *         return VEB_insert(self.veb, i)   *    *     cdef int _insert(self, int i):             # <<<<<<<<<<<<<< @@ -23127,7 +23128,7 @@ static int __pyx_f_4cdec_2sa_3_sa_3VEB__insert(struct __pyx_obj_4cdec_2sa_3_sa_V    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":379 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":379   *         return VEB_insert(self.veb, i)   *    *     def findsucc(self, i):             # <<<<<<<<<<<<<< @@ -23158,7 +23159,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_8findsucc(struct __pyx_obj_4cdec_2    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("findsucc", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":380 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":380   *    *     def findsucc(self, i):   *         return VEB_findsucc(self.veb, i)             # <<<<<<<<<<<<<< @@ -23173,7 +23174,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_8findsucc(struct __pyx_obj_4cdec_2    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":379 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":379   *         return VEB_insert(self.veb, i)   *    *     def findsucc(self, i):             # <<<<<<<<<<<<<< @@ -23192,7 +23193,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_3VEB_8findsucc(struct __pyx_obj_4cdec_2    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":382 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":382   *         return VEB_findsucc(self.veb, i)   *    *     cdef int _first(self):             # <<<<<<<<<<<<<< @@ -23205,7 +23206,7 @@ static int __pyx_f_4cdec_2sa_3_sa_3VEB__first(struct __pyx_obj_4cdec_2sa_3_sa_VE    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("_first", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":383 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":383   *    *     cdef int _first(self):   *         return self.veb.min_val             # <<<<<<<<<<<<<< @@ -23215,7 +23216,7 @@ static int __pyx_f_4cdec_2sa_3_sa_3VEB__first(struct __pyx_obj_4cdec_2sa_3_sa_VE    __pyx_r = __pyx_v_self->veb->min_val;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":382 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":382   *         return VEB_findsucc(self.veb, i)   *    *     cdef int _first(self):             # <<<<<<<<<<<<<< @@ -23229,7 +23230,7 @@ static int __pyx_f_4cdec_2sa_3_sa_3VEB__first(struct __pyx_obj_4cdec_2sa_3_sa_VE    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":385 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":385   *         return self.veb.min_val   *    *     cdef int _findsucc(self, int i):             # <<<<<<<<<<<<<< @@ -23242,7 +23243,7 @@ static int __pyx_f_4cdec_2sa_3_sa_3VEB__findsucc(struct __pyx_obj_4cdec_2sa_3_sa    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("_findsucc", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":386 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":386   *    *     cdef int _findsucc(self, int i):   *         return VEB_findsucc(self.veb, i)             # <<<<<<<<<<<<<< @@ -23252,7 +23253,7 @@ static int __pyx_f_4cdec_2sa_3_sa_3VEB__findsucc(struct __pyx_obj_4cdec_2sa_3_sa    __pyx_r = __pyx_f_4cdec_2sa_3_sa_VEB_findsucc(__pyx_v_self->veb, __pyx_v_i);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":385 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":385   *         return self.veb.min_val   *    *     cdef int _findsucc(self, int i):             # <<<<<<<<<<<<<< @@ -23266,7 +23267,7 @@ static int __pyx_f_4cdec_2sa_3_sa_3VEB__findsucc(struct __pyx_obj_4cdec_2sa_3_sa    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":388 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":388   *         return VEB_findsucc(self.veb, i)   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -23292,7 +23293,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_3VEB_10__len__(struct __pyx_obj_4cdec_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":389 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":389   *    *     def __len__(self):   *         return self.veb.size             # <<<<<<<<<<<<<< @@ -23302,7 +23303,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_3VEB_10__len__(struct __pyx_obj_4cdec_    __pyx_r = __pyx_v_self->veb->size;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":388 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":388   *         return VEB_findsucc(self.veb, i)   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -23316,7 +23317,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_3VEB_10__len__(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":391 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":391   *         return self.veb.size   *    *     def __contains__(self, i):             # <<<<<<<<<<<<<< @@ -23345,7 +23346,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3VEB_12__contains__(struct __pyx_obj_4cdec_2s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__contains__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":392 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":392   *    *     def __contains__(self, i):   *         return VEB_contains(self.veb, i)             # <<<<<<<<<<<<<< @@ -23354,7 +23355,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3VEB_12__contains__(struct __pyx_obj_4cdec_2s    __pyx_r = __pyx_f_4cdec_2sa_3_sa_VEB_contains(__pyx_v_self->veb, __pyx_t_1);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":391 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":391   *         return self.veb.size   *    *     def __contains__(self, i):             # <<<<<<<<<<<<<< @@ -23370,7 +23371,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3VEB_12__contains__(struct __pyx_obj_4cdec_2s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":9 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":9   *     cdef IntList lcp   *    *     def __cinit__(self, SuffixArray sa):             # <<<<<<<<<<<<<< @@ -23456,7 +23457,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":13 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":13   *         cdef IntList rank   *    *         logger.info("Constructing LCP array")             # <<<<<<<<<<<<<< @@ -23473,7 +23474,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":14 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":14   *    *         logger.info("Constructing LCP array")   *         self.sa = sa             # <<<<<<<<<<<<<< @@ -23486,7 +23487,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s    __Pyx_DECREF(((PyObject *)__pyx_v_self->sa));    __pyx_v_self->sa = __pyx_v_sa; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":15 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":15   *         logger.info("Constructing LCP array")   *         self.sa = sa   *         n = self.sa.sa.len             # <<<<<<<<<<<<<< @@ -23496,7 +23497,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s    __pyx_t_3 = __pyx_v_self->sa->sa->len;    __pyx_v_n = __pyx_t_3; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":16 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":16   *         self.sa = sa   *         n = self.sa.sa.len   *         self.lcp = IntList(initial_len=n)             # <<<<<<<<<<<<<< @@ -23518,7 +23519,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s    __pyx_v_self->lcp = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":18 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":18   *         self.lcp = IntList(initial_len=n)   *    *         rank = IntList(initial_len=n)             # <<<<<<<<<<<<<< @@ -23537,7 +23538,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s    __pyx_v_rank = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":19 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":19   *    *         rank = IntList(initial_len=n)   *         for i from 0 <= i < n:             # <<<<<<<<<<<<<< @@ -23547,7 +23548,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s    __pyx_t_3 = __pyx_v_n;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":20 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":20   *         rank = IntList(initial_len=n)   *         for i from 0 <= i < n:   *             rank.arr[sa.sa.arr[i]] = i             # <<<<<<<<<<<<<< @@ -23557,7 +23558,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s      (__pyx_v_rank->arr[(__pyx_v_sa->sa->arr[__pyx_v_i])]) = __pyx_v_i;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":22 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":22   *             rank.arr[sa.sa.arr[i]] = i   *    *         h = 0             # <<<<<<<<<<<<<< @@ -23566,7 +23567,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s   */    __pyx_v_h = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":23 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":23   *    *         h = 0   *         for i from 0 <= i < n:             # <<<<<<<<<<<<<< @@ -23576,7 +23577,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s    __pyx_t_3 = __pyx_v_n;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":24 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":24   *         h = 0   *         for i from 0 <= i < n:   *             k = rank.arr[i]             # <<<<<<<<<<<<<< @@ -23585,7 +23586,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s   */      __pyx_v_k = (__pyx_v_rank->arr[__pyx_v_i]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":25 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":25   *         for i from 0 <= i < n:   *             k = rank.arr[i]   *             if k == 0:             # <<<<<<<<<<<<<< @@ -23595,7 +23596,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s      __pyx_t_4 = ((__pyx_v_k == 0) != 0);      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":26 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":26   *             k = rank.arr[i]   *             if k == 0:   *                 self.lcp.arr[k] = -1             # <<<<<<<<<<<<<< @@ -23607,7 +23608,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":28 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":28   *                 self.lcp.arr[k] = -1   *             else:   *                 j = sa.sa.arr[k-1]             # <<<<<<<<<<<<<< @@ -23616,7 +23617,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s   */        __pyx_v_j = (__pyx_v_sa->sa->arr[(__pyx_v_k - 1)]); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":29 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":29   *             else:   *                 j = sa.sa.arr[k-1]   *                 while i+h < n and j+h < n and sa.darray.data.arr[i+h] == sa.darray.data.arr[j+h]:             # <<<<<<<<<<<<<< @@ -23639,7 +23640,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s          }          if (!__pyx_t_5) break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":30 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":30   *                 j = sa.sa.arr[k-1]   *                 while i+h < n and j+h < n and sa.darray.data.arr[i+h] == sa.darray.data.arr[j+h]:   *                     h = h+1             # <<<<<<<<<<<<<< @@ -23649,7 +23650,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s          __pyx_v_h = (__pyx_v_h + 1);        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":31 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":31   *                 while i+h < n and j+h < n and sa.darray.data.arr[i+h] == sa.darray.data.arr[j+h]:   *                     h = h+1   *                 self.lcp.arr[k] = h             # <<<<<<<<<<<<<< @@ -23660,7 +23661,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s      }      __pyx_L7:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":32 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":32   *                     h = h+1   *                 self.lcp.arr[k] = h   *             if h > 0:             # <<<<<<<<<<<<<< @@ -23670,7 +23671,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s      __pyx_t_5 = ((__pyx_v_h > 0) != 0);      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":33 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":33   *                 self.lcp.arr[k] = h   *             if h > 0:   *                 h = h-1             # <<<<<<<<<<<<<< @@ -23683,7 +23684,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s      __pyx_L10:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":34 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":34   *             if h > 0:   *                 h = h-1   *         logger.info("LCP array completed")             # <<<<<<<<<<<<<< @@ -23700,7 +23701,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":9 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":9   *     cdef IntList lcp   *    *     def __cinit__(self, SuffixArray sa):             # <<<<<<<<<<<<<< @@ -23723,7 +23724,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_3LCP___cinit__(struct __pyx_obj_4cdec_2sa_3_s  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":36 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":36   *         logger.info("LCP array completed")   *    *     def compute_stats(self, int max_n):             # <<<<<<<<<<<<<< @@ -23825,7 +23826,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":48 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":48   *         cdef VEB veb   *    *         N = self.sa.sa.len             # <<<<<<<<<<<<<< @@ -23835,7 +23836,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject    __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->sa->sa->len;    __pyx_cur_scope->__pyx_v_N = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":50 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":50   *         N = self.sa.sa.len   *    *         ngram_starts = []             # <<<<<<<<<<<<<< @@ -23848,7 +23849,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject    __pyx_cur_scope->__pyx_v_ngram_starts = ((PyObject*)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":51 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":51   *    *         ngram_starts = []   *         for n from 0 <= n < max_n:             # <<<<<<<<<<<<<< @@ -23858,7 +23859,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject    __pyx_t_1 = __pyx_cur_scope->__pyx_v_max_n;    for (__pyx_cur_scope->__pyx_v_n = 0; __pyx_cur_scope->__pyx_v_n < __pyx_t_1; __pyx_cur_scope->__pyx_v_n++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":52 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":52   *         ngram_starts = []   *         for n from 0 <= n < max_n:   *             ngram_starts.append(IntList(initial_len=N))             # <<<<<<<<<<<<<< @@ -23878,7 +23879,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":54 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":54   *             ngram_starts.append(IntList(initial_len=N))   *    *         run_start = IntList(initial_len=max_n)             # <<<<<<<<<<<<<< @@ -23898,7 +23899,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject    __pyx_cur_scope->__pyx_v_run_start = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":55 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":55   *    *         run_start = IntList(initial_len=max_n)   *         veb = VEB(N)             # <<<<<<<<<<<<<< @@ -23919,7 +23920,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject    __pyx_cur_scope->__pyx_v_veb = ((struct __pyx_obj_4cdec_2sa_3_sa_VEB *)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":57 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":57   *         veb = VEB(N)   *    *         for i from 0 <= i < N:             # <<<<<<<<<<<<<< @@ -23929,7 +23930,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject    __pyx_t_1 = __pyx_cur_scope->__pyx_v_N;    for (__pyx_cur_scope->__pyx_v_i = 0; __pyx_cur_scope->__pyx_v_i < __pyx_t_1; __pyx_cur_scope->__pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":58 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":58   *    *         for i from 0 <= i < N:   *             h = self.lcp.arr[i]             # <<<<<<<<<<<<<< @@ -23938,7 +23939,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject   */      __pyx_cur_scope->__pyx_v_h = (__pyx_cur_scope->__pyx_v_self->lcp->arr[__pyx_cur_scope->__pyx_v_i]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":59 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":59   *         for i from 0 <= i < N:   *             h = self.lcp.arr[i]   *             if h < 0:             # <<<<<<<<<<<<<< @@ -23948,7 +23949,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject      __pyx_t_5 = ((__pyx_cur_scope->__pyx_v_h < 0) != 0);      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":60 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":60   *             h = self.lcp.arr[i]   *             if h < 0:   *                 h = 0             # <<<<<<<<<<<<<< @@ -23960,7 +23961,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject      }      __pyx_L8:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":61 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":61   *             if h < 0:   *                 h = 0   *             for n from h <= n < max_n:             # <<<<<<<<<<<<<< @@ -23970,7 +23971,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject      __pyx_t_6 = __pyx_cur_scope->__pyx_v_max_n;      for (__pyx_cur_scope->__pyx_v_n = __pyx_cur_scope->__pyx_v_h; __pyx_cur_scope->__pyx_v_n < __pyx_t_6; __pyx_cur_scope->__pyx_v_n++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":62 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":62   *                 h = 0   *             for n from h <= n < max_n:   *                 rs = run_start.arr[n]             # <<<<<<<<<<<<<< @@ -23979,7 +23980,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject   */        __pyx_cur_scope->__pyx_v_rs = (__pyx_cur_scope->__pyx_v_run_start->arr[__pyx_cur_scope->__pyx_v_n]); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":63 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":63   *             for n from h <= n < max_n:   *                 rs = run_start.arr[n]   *                 run_start.arr[n] = i             # <<<<<<<<<<<<<< @@ -23988,7 +23989,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject   */        (__pyx_cur_scope->__pyx_v_run_start->arr[__pyx_cur_scope->__pyx_v_n]) = __pyx_cur_scope->__pyx_v_i; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":64 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":64   *                 rs = run_start.arr[n]   *                 run_start.arr[n] = i   *                 freq = i - rs             # <<<<<<<<<<<<<< @@ -23997,7 +23998,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject   */        __pyx_cur_scope->__pyx_v_freq = (__pyx_cur_scope->__pyx_v_i - __pyx_cur_scope->__pyx_v_rs); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":65 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":65   *                 run_start.arr[n] = i   *                 freq = i - rs   *                 if freq > 1000: # arbitrary, but see note below             # <<<<<<<<<<<<<< @@ -24007,7 +24008,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject        __pyx_t_5 = ((__pyx_cur_scope->__pyx_v_freq > 1000) != 0);        if (__pyx_t_5) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":66 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":66   *                 freq = i - rs   *                 if freq > 1000: # arbitrary, but see note below   *                     veb._insert(freq)             # <<<<<<<<<<<<<< @@ -24016,7 +24017,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject   */          ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_VEB *)__pyx_cur_scope->__pyx_v_veb->__pyx_vtab)->_insert(__pyx_cur_scope->__pyx_v_veb, __pyx_cur_scope->__pyx_v_freq); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":67 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":67   *                 if freq > 1000: # arbitrary, but see note below   *                     veb._insert(freq)   *                     ngram_start = ngram_starts[n]             # <<<<<<<<<<<<<< @@ -24031,7 +24032,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject          __Pyx_GIVEREF(__pyx_t_2);          __pyx_t_2 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":68 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":68   *                     veb._insert(freq)   *                     ngram_start = ngram_starts[n]   *                     while ngram_start.arr[freq] > 0:             # <<<<<<<<<<<<<< @@ -24042,7 +24043,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject            __pyx_t_5 = (((__pyx_cur_scope->__pyx_v_ngram_start->arr[__pyx_cur_scope->__pyx_v_freq]) > 0) != 0);            if (!__pyx_t_5) break; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":69 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":69   *                     ngram_start = ngram_starts[n]   *                     while ngram_start.arr[freq] > 0:   *                         freq = freq + 1 # cheating a bit, should be ok for sparse histogram             # <<<<<<<<<<<<<< @@ -24052,7 +24053,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject            __pyx_cur_scope->__pyx_v_freq = (__pyx_cur_scope->__pyx_v_freq + 1);          } -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":70 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":70   *                     while ngram_start.arr[freq] > 0:   *                         freq = freq + 1 # cheating a bit, should be ok for sparse histogram   *                     ngram_start.arr[freq] = rs             # <<<<<<<<<<<<<< @@ -24066,7 +24067,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject      }    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":71 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":71   *                         freq = freq + 1 # cheating a bit, should be ok for sparse histogram   *                     ngram_start.arr[freq] = rs   *         i = veb.veb.min_val             # <<<<<<<<<<<<<< @@ -24076,7 +24077,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject    __pyx_t_1 = __pyx_cur_scope->__pyx_v_veb->veb->min_val;    __pyx_cur_scope->__pyx_v_i = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":72 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":72   *                     ngram_start.arr[freq] = rs   *         i = veb.veb.min_val   *         while i != -1:             # <<<<<<<<<<<<<< @@ -24087,7 +24088,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject      __pyx_t_5 = ((__pyx_cur_scope->__pyx_v_i != -1) != 0);      if (!__pyx_t_5) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":73 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":73   *         i = veb.veb.min_val   *         while i != -1:   *             ii = veb._findsucc(i)             # <<<<<<<<<<<<<< @@ -24096,7 +24097,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject   */      __pyx_cur_scope->__pyx_v_ii = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_VEB *)__pyx_cur_scope->__pyx_v_veb->__pyx_vtab)->_findsucc(__pyx_cur_scope->__pyx_v_veb, __pyx_cur_scope->__pyx_v_i); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":74 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":74   *         while i != -1:   *             ii = veb._findsucc(i)   *             for n from 0 <= n < max_n:             # <<<<<<<<<<<<<< @@ -24106,7 +24107,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject      __pyx_t_1 = __pyx_cur_scope->__pyx_v_max_n;      for (__pyx_cur_scope->__pyx_v_n = 0; __pyx_cur_scope->__pyx_v_n < __pyx_t_1; __pyx_cur_scope->__pyx_v_n++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":75 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":75   *             ii = veb._findsucc(i)   *             for n from 0 <= n < max_n:   *                 ngram_start = ngram_starts[n]             # <<<<<<<<<<<<<< @@ -24121,7 +24122,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject        __Pyx_GIVEREF(__pyx_t_2);        __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":76 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":76   *             for n from 0 <= n < max_n:   *                 ngram_start = ngram_starts[n]   *                 iii = i             # <<<<<<<<<<<<<< @@ -24130,7 +24131,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject   */        __pyx_cur_scope->__pyx_v_iii = __pyx_cur_scope->__pyx_v_i; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":77 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":77   *                 ngram_start = ngram_starts[n]   *                 iii = i   *                 rs = ngram_start.arr[iii]             # <<<<<<<<<<<<<< @@ -24139,7 +24140,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject   */        __pyx_cur_scope->__pyx_v_rs = (__pyx_cur_scope->__pyx_v_ngram_start->arr[__pyx_cur_scope->__pyx_v_iii]); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":78 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":78   *                 iii = i   *                 rs = ngram_start.arr[iii]   *                 while (ii==-1 or iii < ii) and rs != 0:             # <<<<<<<<<<<<<< @@ -24162,7 +24163,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject          }          if (!__pyx_t_7) break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":79 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":79   *                 rs = ngram_start.arr[iii]   *                 while (ii==-1 or iii < ii) and rs != 0:   *                     j = self.sa.sa.arr[rs]             # <<<<<<<<<<<<<< @@ -24171,7 +24172,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject   */          __pyx_cur_scope->__pyx_v_j = (__pyx_cur_scope->__pyx_v_self->sa->sa->arr[__pyx_cur_scope->__pyx_v_rs]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":80 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":80   *                 while (ii==-1 or iii < ii) and rs != 0:   *                     j = self.sa.sa.arr[rs]   *                     valid = 1             # <<<<<<<<<<<<<< @@ -24180,7 +24181,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject   */          __pyx_cur_scope->__pyx_v_valid = 1; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":81 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":81   *                     j = self.sa.sa.arr[rs]   *                     valid = 1   *                     for k from 0 <= k < n+1:             # <<<<<<<<<<<<<< @@ -24190,7 +24191,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject          __pyx_t_9 = (__pyx_cur_scope->__pyx_v_n + 1);          for (__pyx_cur_scope->__pyx_v_k = 0; __pyx_cur_scope->__pyx_v_k < __pyx_t_9; __pyx_cur_scope->__pyx_v_k++) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":82 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":82   *                     valid = 1   *                     for k from 0 <= k < n+1:   *                         if self.sa.darray.data.arr[j+k] < 2:             # <<<<<<<<<<<<<< @@ -24200,7 +24201,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject            __pyx_t_7 = (((__pyx_cur_scope->__pyx_v_self->sa->darray->data->arr[(__pyx_cur_scope->__pyx_v_j + __pyx_cur_scope->__pyx_v_k)]) < 2) != 0);            if (__pyx_t_7) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":83 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":83   *                     for k from 0 <= k < n+1:   *                         if self.sa.darray.data.arr[j+k] < 2:   *                             valid = 0             # <<<<<<<<<<<<<< @@ -24213,7 +24214,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject            __pyx_L22:;          } -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":84 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":84   *                         if self.sa.darray.data.arr[j+k] < 2:   *                             valid = 0   *                     if valid:             # <<<<<<<<<<<<<< @@ -24223,7 +24224,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject          __pyx_t_7 = (__pyx_cur_scope->__pyx_v_valid != 0);          if (__pyx_t_7) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":85 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":85   *                             valid = 0   *                     if valid:   *                         ngram = tuple([self.sa.darray.data.arr[j+k] for k in range(n+1)])             # <<<<<<<<<<<<<< @@ -24248,7 +24249,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject            __Pyx_GIVEREF(__pyx_t_3);            __pyx_t_3 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":86 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":86   *                     if valid:   *                         ngram = tuple([self.sa.darray.data.arr[j+k] for k in range(n+1)])   *                         yield i, n+1, ngram             # <<<<<<<<<<<<<< @@ -24285,7 +24286,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject          }          __pyx_L23:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":87 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":87   *                         ngram = tuple([self.sa.darray.data.arr[j+k] for k in range(n+1)])   *                         yield i, n+1, ngram   *                     iii = iii + 1             # <<<<<<<<<<<<<< @@ -24294,7 +24295,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject   */          __pyx_cur_scope->__pyx_v_iii = (__pyx_cur_scope->__pyx_v_iii + 1); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":88 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":88   *                         yield i, n+1, ngram   *                     iii = iii + 1   *                     rs = ngram_start.arr[iii]             # <<<<<<<<<<<<<< @@ -24304,7 +24305,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject        }      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":89 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":89   *                     iii = iii + 1   *                     rs = ngram_start.arr[iii]   *             i = ii             # <<<<<<<<<<<<<< @@ -24312,7 +24313,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject      __pyx_cur_scope->__pyx_v_i = __pyx_cur_scope->__pyx_v_ii;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":36 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":36   *         logger.info("LCP array completed")   *    *     def compute_stats(self, int max_n):             # <<<<<<<<<<<<<< @@ -24336,7 +24337,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_3LCP_4generator1(__pyx_GeneratorObject    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":12 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":12   *     cdef dict id2sym   *    *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -24369,7 +24370,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_8Alphabet___cinit__(struct __pyx_obj_4cdec_2s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":13 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":13   *    *     def __cinit__(self):   *         self.terminals = StringMap()             # <<<<<<<<<<<<<< @@ -24384,7 +24385,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_8Alphabet___cinit__(struct __pyx_obj_4cdec_2s    __pyx_v_self->terminals = ((struct __pyx_obj_4cdec_2sa_3_sa_StringMap *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":14 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":14   *     def __cinit__(self):   *         self.terminals = StringMap()   *         self.nonterminals = StringMap()             # <<<<<<<<<<<<<< @@ -24399,7 +24400,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_8Alphabet___cinit__(struct __pyx_obj_4cdec_2s    __pyx_v_self->nonterminals = ((struct __pyx_obj_4cdec_2sa_3_sa_StringMap *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":15 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":15   *         self.terminals = StringMap()   *         self.nonterminals = StringMap()   *         self.id2sym = {}             # <<<<<<<<<<<<<< @@ -24414,7 +24415,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_8Alphabet___cinit__(struct __pyx_obj_4cdec_2s    __pyx_v_self->id2sym = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":16 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":16   *         self.nonterminals = StringMap()   *         self.id2sym = {}   *         self.first_nonterminal = -1             # <<<<<<<<<<<<<< @@ -24423,7 +24424,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_8Alphabet___cinit__(struct __pyx_obj_4cdec_2s   */    __pyx_v_self->first_nonterminal = -1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":12 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":12   *     cdef dict id2sym   *    *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -24443,7 +24444,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_8Alphabet___cinit__(struct __pyx_obj_4cdec_2s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":18 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":18   *         self.first_nonterminal = -1   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -24470,7 +24471,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_8Alphabet_2__dealloc__(CYTHON_UNUSED struct    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":21 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":21   *         pass   *    *     cdef int isvar(self, int sym):             # <<<<<<<<<<<<<< @@ -24483,7 +24484,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_isvar(CYTHON_UNUSED struct __pyx_obj    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("isvar", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":22 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":22   *    *     cdef int isvar(self, int sym):   *         return sym < 0             # <<<<<<<<<<<<<< @@ -24493,7 +24494,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_isvar(CYTHON_UNUSED struct __pyx_obj    __pyx_r = (__pyx_v_sym < 0);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":21 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":21   *         pass   *    *     cdef int isvar(self, int sym):             # <<<<<<<<<<<<<< @@ -24507,7 +24508,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_isvar(CYTHON_UNUSED struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":24 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":24   *         return sym < 0   *    *     cdef int isword(self, int sym):             # <<<<<<<<<<<<<< @@ -24520,7 +24521,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_isword(CYTHON_UNUSED struct __pyx_ob    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("isword", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":25 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":25   *    *     cdef int isword(self, int sym):   *         return sym >= 0             # <<<<<<<<<<<<<< @@ -24530,7 +24531,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_isword(CYTHON_UNUSED struct __pyx_ob    __pyx_r = (__pyx_v_sym >= 0);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":24 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":24   *         return sym < 0   *    *     cdef int isword(self, int sym):             # <<<<<<<<<<<<<< @@ -24544,7 +24545,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_isword(CYTHON_UNUSED struct __pyx_ob    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":27 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":27   *         return sym >= 0   *    *     cdef int getindex(self, int sym):             # <<<<<<<<<<<<<< @@ -24557,7 +24558,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_getindex(CYTHON_UNUSED struct __pyx_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("getindex", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":28 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":28   *    *     cdef int getindex(self, int sym):   *         return -sym & INDEX_MASK             # <<<<<<<<<<<<<< @@ -24567,7 +24568,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_getindex(CYTHON_UNUSED struct __pyx_    __pyx_r = ((-__pyx_v_sym) & __pyx_v_4cdec_2sa_3_sa_INDEX_MASK);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":27 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":27   *         return sym >= 0   *    *     cdef int getindex(self, int sym):             # <<<<<<<<<<<<<< @@ -24581,7 +24582,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_getindex(CYTHON_UNUSED struct __pyx_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":30 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":30   *         return -sym & INDEX_MASK   *    *     cdef int setindex(self, int sym, int ind):             # <<<<<<<<<<<<<< @@ -24594,7 +24595,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_setindex(CYTHON_UNUSED struct __pyx_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("setindex", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":31 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":31   *    *     cdef int setindex(self, int sym, int ind):   *         return -(-sym & ~INDEX_MASK | ind)             # <<<<<<<<<<<<<< @@ -24604,7 +24605,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_setindex(CYTHON_UNUSED struct __pyx_    __pyx_r = (-(((-__pyx_v_sym) & (~__pyx_v_4cdec_2sa_3_sa_INDEX_MASK)) | __pyx_v_ind));    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":30 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":30   *         return -sym & INDEX_MASK   *    *     cdef int setindex(self, int sym, int ind):             # <<<<<<<<<<<<<< @@ -24618,7 +24619,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_setindex(CYTHON_UNUSED struct __pyx_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":33 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":33   *         return -(-sym & ~INDEX_MASK | ind)   *    *     cdef int clearindex(self, int sym):             # <<<<<<<<<<<<<< @@ -24631,7 +24632,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_clearindex(CYTHON_UNUSED struct __py    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("clearindex", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":34 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":34   *    *     cdef int clearindex(self, int sym):   *         return -(-sym& ~INDEX_MASK)             # <<<<<<<<<<<<<< @@ -24641,7 +24642,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_clearindex(CYTHON_UNUSED struct __py    __pyx_r = (-((-__pyx_v_sym) & (~__pyx_v_4cdec_2sa_3_sa_INDEX_MASK)));    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":33 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":33   *         return -(-sym & ~INDEX_MASK | ind)   *    *     cdef int clearindex(self, int sym):             # <<<<<<<<<<<<<< @@ -24655,7 +24656,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_clearindex(CYTHON_UNUSED struct __py    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":36 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":36   *         return -(-sym& ~INDEX_MASK)   *    *     cdef int match(self, int sym1, int sym2):             # <<<<<<<<<<<<<< @@ -24668,7 +24669,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_match(struct __pyx_obj_4cdec_2sa_3_s    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("match", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":37 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":37   *    *     cdef int match(self, int sym1, int sym2):   *         return self.clearindex(sym1) == self.clearindex(sym2);             # <<<<<<<<<<<<<< @@ -24678,7 +24679,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_match(struct __pyx_obj_4cdec_2sa_3_s    __pyx_r = (((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet *)__pyx_v_self->__pyx_vtab)->clearindex(__pyx_v_self, __pyx_v_sym1) == ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet *)__pyx_v_self->__pyx_vtab)->clearindex(__pyx_v_self, __pyx_v_sym2));    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":36 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":36   *         return -(-sym& ~INDEX_MASK)   *    *     cdef int match(self, int sym1, int sym2):             # <<<<<<<<<<<<<< @@ -24692,7 +24693,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_match(struct __pyx_obj_4cdec_2sa_3_s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":39 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":39   *         return self.clearindex(sym1) == self.clearindex(sym2);   *    *     cdef char* tocat(self, int sym):             # <<<<<<<<<<<<<< @@ -24705,7 +24706,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tocat(struct __pyx_obj_4cdec_2sa_3    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("tocat", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":40 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":40   *    *     cdef char* tocat(self, int sym):   *         return self.nonterminals.word((-sym >> INDEX_SHIFT)-1)             # <<<<<<<<<<<<<< @@ -24715,7 +24716,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tocat(struct __pyx_obj_4cdec_2sa_3    __pyx_r = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_StringMap *)__pyx_v_self->nonterminals->__pyx_vtab)->word(__pyx_v_self->nonterminals, (((-__pyx_v_sym) >> __pyx_v_4cdec_2sa_3_sa_INDEX_SHIFT) - 1));    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":39 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":39   *         return self.clearindex(sym1) == self.clearindex(sym2);   *    *     cdef char* tocat(self, int sym):             # <<<<<<<<<<<<<< @@ -24729,7 +24730,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tocat(struct __pyx_obj_4cdec_2sa_3    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":42 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":42   *         return self.nonterminals.word((-sym >> INDEX_SHIFT)-1)   *    *     cdef int fromcat(self, char *s):             # <<<<<<<<<<<<<< @@ -24744,7 +24745,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromcat(struct __pyx_obj_4cdec_2sa_3    int __pyx_t_1;    __Pyx_RefNannySetupContext("fromcat", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":44 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":44   *     cdef int fromcat(self, char *s):   *         cdef int i   *         i = self.nonterminals.index(s)             # <<<<<<<<<<<<<< @@ -24753,7 +24754,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromcat(struct __pyx_obj_4cdec_2sa_3   */    __pyx_v_i = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_StringMap *)__pyx_v_self->nonterminals->__pyx_vtab)->index(__pyx_v_self->nonterminals, __pyx_v_s); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":45 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":45   *         cdef int i   *         i = self.nonterminals.index(s)   *         if self.first_nonterminal == -1:             # <<<<<<<<<<<<<< @@ -24763,7 +24764,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromcat(struct __pyx_obj_4cdec_2sa_3    __pyx_t_1 = ((__pyx_v_self->first_nonterminal == -1) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":46 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":46   *         i = self.nonterminals.index(s)   *         if self.first_nonterminal == -1:   *             self.first_nonterminal = i             # <<<<<<<<<<<<<< @@ -24775,7 +24776,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromcat(struct __pyx_obj_4cdec_2sa_3    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":47 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":47   *         if self.first_nonterminal == -1:   *             self.first_nonterminal = i   *         if i > self.last_nonterminal:             # <<<<<<<<<<<<<< @@ -24785,7 +24786,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromcat(struct __pyx_obj_4cdec_2sa_3    __pyx_t_1 = ((__pyx_v_i > __pyx_v_self->last_nonterminal) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":48 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":48   *             self.first_nonterminal = i   *         if i > self.last_nonterminal:   *             self.last_nonterminal = i             # <<<<<<<<<<<<<< @@ -24797,7 +24798,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromcat(struct __pyx_obj_4cdec_2sa_3    }    __pyx_L4:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":49 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":49   *         if i > self.last_nonterminal:   *             self.last_nonterminal = i   *         return -(i+1 << INDEX_SHIFT)             # <<<<<<<<<<<<<< @@ -24807,7 +24808,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromcat(struct __pyx_obj_4cdec_2sa_3    __pyx_r = (-((__pyx_v_i + 1) << __pyx_v_4cdec_2sa_3_sa_INDEX_SHIFT));    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":42 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":42   *         return self.nonterminals.word((-sym >> INDEX_SHIFT)-1)   *    *     cdef int fromcat(self, char *s):             # <<<<<<<<<<<<<< @@ -24821,7 +24822,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromcat(struct __pyx_obj_4cdec_2sa_3    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":51 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":51   *         return -(i+1 << INDEX_SHIFT)   *    *     cdef char* tostring(self, int sym):             # <<<<<<<<<<<<<< @@ -24844,7 +24845,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tostring(struct __pyx_obj_4cdec_2s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("tostring", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":53 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":53   *     cdef char* tostring(self, int sym):   *         cdef int ind   *         if self.isvar(sym):             # <<<<<<<<<<<<<< @@ -24854,7 +24855,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tostring(struct __pyx_obj_4cdec_2s    __pyx_t_1 = (((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet *)__pyx_v_self->__pyx_vtab)->isvar(__pyx_v_self, __pyx_v_sym) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":54 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":54   *         cdef int ind   *         if self.isvar(sym):   *             if sym in self.id2sym:             # <<<<<<<<<<<<<< @@ -24872,7 +24873,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tostring(struct __pyx_obj_4cdec_2s      __pyx_t_3 = (__pyx_t_1 != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":55 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":55   *         if self.isvar(sym):   *             if sym in self.id2sym:   *                 return self.id2sym[sym]             # <<<<<<<<<<<<<< @@ -24894,7 +24895,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tostring(struct __pyx_obj_4cdec_2s        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":56 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":56   *             if sym in self.id2sym:   *                 return self.id2sym[sym]   *             ind = self.getindex(sym)             # <<<<<<<<<<<<<< @@ -24903,7 +24904,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tostring(struct __pyx_obj_4cdec_2s   */      __pyx_v_ind = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet *)__pyx_v_self->__pyx_vtab)->getindex(__pyx_v_self, __pyx_v_sym); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":57 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":57   *                 return self.id2sym[sym]   *             ind = self.getindex(sym)   *             if ind > 0:             # <<<<<<<<<<<<<< @@ -24913,7 +24914,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tostring(struct __pyx_obj_4cdec_2s      __pyx_t_3 = ((__pyx_v_ind > 0) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":58 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":58   *             ind = self.getindex(sym)   *             if ind > 0:   *                 self.id2sym[sym] = "[%s,%d]" % (self.tocat(sym), ind)             # <<<<<<<<<<<<<< @@ -24948,7 +24949,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tostring(struct __pyx_obj_4cdec_2s      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":60 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":60   *                 self.id2sym[sym] = "[%s,%d]" % (self.tocat(sym), ind)   *             else:   *                 self.id2sym[sym] = "[%s]" % self.tocat(sym)             # <<<<<<<<<<<<<< @@ -24972,7 +24973,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tostring(struct __pyx_obj_4cdec_2s      }      __pyx_L5:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":61 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":61   *             else:   *                 self.id2sym[sym] = "[%s]" % self.tocat(sym)   *             return self.id2sym[sym]             # <<<<<<<<<<<<<< @@ -24995,7 +24996,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tostring(struct __pyx_obj_4cdec_2s    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":63 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":63   *             return self.id2sym[sym]   *         else:   *             return self.terminals.word(sym)             # <<<<<<<<<<<<<< @@ -25006,7 +25007,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tostring(struct __pyx_obj_4cdec_2s      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":51 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":51   *         return -(i+1 << INDEX_SHIFT)   *    *     cdef char* tostring(self, int sym):             # <<<<<<<<<<<<<< @@ -25026,7 +25027,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_8Alphabet_tostring(struct __pyx_obj_4cdec_2s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":65 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":65   *             return self.terminals.word(sym)   *    *     cdef int fromstring(self, char *s, bint terminal):             # <<<<<<<<<<<<<< @@ -25054,7 +25055,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("fromstring", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":69 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":69   *         cdef char *comma   *         cdef int n   *         n = strlen(s)             # <<<<<<<<<<<<<< @@ -25063,7 +25064,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s   */    __pyx_v_n = strlen(__pyx_v_s); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":71 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":71   *         n = strlen(s)   *         cdef char *sep   *         sep = strstr(s,"_SEP_")             # <<<<<<<<<<<<<< @@ -25072,7 +25073,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s   */    __pyx_v_sep = strstr(__pyx_v_s, __pyx_k_SEP); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":72 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":72   *         cdef char *sep   *         sep = strstr(s,"_SEP_")   *         if n >= 3 and s[0] == c'[' and s[n-1] == c']' and sep == NULL:             # <<<<<<<<<<<<<< @@ -25100,7 +25101,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s    }    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":73 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":73   *         sep = strstr(s,"_SEP_")   *         if n >= 3 and s[0] == c'[' and s[n-1] == c']' and sep == NULL:   *             if terminal:             # <<<<<<<<<<<<<< @@ -25110,7 +25111,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s      __pyx_t_2 = (__pyx_v_terminal != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":74 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":74   *         if n >= 3 and s[0] == c'[' and s[n-1] == c']' and sep == NULL:   *             if terminal:   *                 s1 = "\\"+s             # <<<<<<<<<<<<<< @@ -25125,7 +25126,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s        __pyx_v_s1 = __pyx_t_7;        __pyx_t_7 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":75 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":75   *             if terminal:   *                 s1 = "\\"+s   *                 return self.terminals.index(s1)             # <<<<<<<<<<<<<< @@ -25137,7 +25138,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":76 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":76   *                 s1 = "\\"+s   *                 return self.terminals.index(s1)   *             s[n-1] = c'\0'             # <<<<<<<<<<<<<< @@ -25146,7 +25147,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s   */      (__pyx_v_s[(__pyx_v_n - 1)]) = '\x00'; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":77 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":77   *                 return self.terminals.index(s1)   *             s[n-1] = c'\0'   *             s = s + 1             # <<<<<<<<<<<<<< @@ -25155,7 +25156,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s   */      __pyx_v_s = (__pyx_v_s + 1); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":78 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":78   *             s[n-1] = c'\0'   *             s = s + 1   *             comma = strrchr(s, c',')             # <<<<<<<<<<<<<< @@ -25164,7 +25165,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s   */      __pyx_v_comma = strrchr(__pyx_v_s, ','); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":79 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":79   *             s = s + 1   *             comma = strrchr(s, c',')   *             if comma != NULL:             # <<<<<<<<<<<<<< @@ -25174,7 +25175,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s      __pyx_t_2 = ((__pyx_v_comma != NULL) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":80 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":80   *             comma = strrchr(s, c',')   *             if comma != NULL:   *                 comma[0] = c'\0'             # <<<<<<<<<<<<<< @@ -25183,7 +25184,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s   */        (__pyx_v_comma[0]) = '\x00'; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":81 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":81   *             if comma != NULL:   *                 comma[0] = c'\0'   *                 return self.setindex(self.fromcat(s), strtol(comma+1, NULL, 10))             # <<<<<<<<<<<<<< @@ -25195,7 +25196,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":83 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":83   *                 return self.setindex(self.fromcat(s), strtol(comma+1, NULL, 10))   *             else:   *                 return self.fromcat(s)             # <<<<<<<<<<<<<< @@ -25208,7 +25209,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":85 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":85   *                 return self.fromcat(s)   *         else:   *             return self.terminals.index(s)             # <<<<<<<<<<<<<< @@ -25219,7 +25220,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":65 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":65   *             return self.terminals.word(sym)   *    *     cdef int fromstring(self, char *s, bint terminal):             # <<<<<<<<<<<<<< @@ -25239,7 +25240,7 @@ static int __pyx_f_4cdec_2sa_3_sa_8Alphabet_fromstring(struct __pyx_obj_4cdec_2s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":8 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":8   *    * cdef class Alphabet:   *     cdef readonly StringMap terminals, nonterminals             # <<<<<<<<<<<<<< @@ -25305,7 +25306,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_8Alphabet_12nonterminals___get__(struct    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":89 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":89   * cdef Alphabet ALPHABET = Alphabet()   *    * cdef char* sym_tostring(int sym):             # <<<<<<<<<<<<<< @@ -25318,7 +25319,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_sym_tostring(int __pyx_v_sym) {    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("sym_tostring", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":90 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":90   *    * cdef char* sym_tostring(int sym):   *     return ALPHABET.tostring(sym)             # <<<<<<<<<<<<<< @@ -25328,7 +25329,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_sym_tostring(int __pyx_v_sym) {    __pyx_r = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet *)__pyx_v_4cdec_2sa_3_sa_ALPHABET->__pyx_vtab)->tostring(__pyx_v_4cdec_2sa_3_sa_ALPHABET, __pyx_v_sym);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":89 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":89   * cdef Alphabet ALPHABET = Alphabet()   *    * cdef char* sym_tostring(int sym):             # <<<<<<<<<<<<<< @@ -25342,7 +25343,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_sym_tostring(int __pyx_v_sym) {    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":92 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":92   *     return ALPHABET.tostring(sym)   *    * cdef char* sym_tocat(int sym):             # <<<<<<<<<<<<<< @@ -25355,7 +25356,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_sym_tocat(int __pyx_v_sym) {    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("sym_tocat", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":93 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":93   *    * cdef char* sym_tocat(int sym):   *     return ALPHABET.tocat(sym)             # <<<<<<<<<<<<<< @@ -25365,7 +25366,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_sym_tocat(int __pyx_v_sym) {    __pyx_r = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet *)__pyx_v_4cdec_2sa_3_sa_ALPHABET->__pyx_vtab)->tocat(__pyx_v_4cdec_2sa_3_sa_ALPHABET, __pyx_v_sym);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":92 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":92   *     return ALPHABET.tostring(sym)   *    * cdef char* sym_tocat(int sym):             # <<<<<<<<<<<<<< @@ -25379,7 +25380,7 @@ static char *__pyx_f_4cdec_2sa_3_sa_sym_tocat(int __pyx_v_sym) {    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":95 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":95   *     return ALPHABET.tocat(sym)   *    * cdef int sym_isvar(int sym):             # <<<<<<<<<<<<<< @@ -25392,7 +25393,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_isvar(int __pyx_v_sym) {    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("sym_isvar", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":96 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":96   *    * cdef int sym_isvar(int sym):   *     return ALPHABET.isvar(sym)             # <<<<<<<<<<<<<< @@ -25402,7 +25403,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_isvar(int __pyx_v_sym) {    __pyx_r = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet *)__pyx_v_4cdec_2sa_3_sa_ALPHABET->__pyx_vtab)->isvar(__pyx_v_4cdec_2sa_3_sa_ALPHABET, __pyx_v_sym);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":95 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":95   *     return ALPHABET.tocat(sym)   *    * cdef int sym_isvar(int sym):             # <<<<<<<<<<<<<< @@ -25416,7 +25417,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_isvar(int __pyx_v_sym) {    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":98 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":98   *     return ALPHABET.isvar(sym)   *    * cdef int sym_getindex(int sym):             # <<<<<<<<<<<<<< @@ -25429,7 +25430,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_getindex(int __pyx_v_sym) {    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("sym_getindex", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":99 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":99   *    * cdef int sym_getindex(int sym):   *     return ALPHABET.getindex(sym)             # <<<<<<<<<<<<<< @@ -25439,7 +25440,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_getindex(int __pyx_v_sym) {    __pyx_r = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet *)__pyx_v_4cdec_2sa_3_sa_ALPHABET->__pyx_vtab)->getindex(__pyx_v_4cdec_2sa_3_sa_ALPHABET, __pyx_v_sym);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":98 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":98   *     return ALPHABET.isvar(sym)   *    * cdef int sym_getindex(int sym):             # <<<<<<<<<<<<<< @@ -25453,7 +25454,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_getindex(int __pyx_v_sym) {    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":101 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":101   *     return ALPHABET.getindex(sym)   *    * cdef int sym_setindex(int sym, int id):             # <<<<<<<<<<<<<< @@ -25466,7 +25467,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_setindex(int __pyx_v_sym, int __pyx_v_id)    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("sym_setindex", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":102 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":102   *    * cdef int sym_setindex(int sym, int id):   *     return ALPHABET.setindex(sym, id)             # <<<<<<<<<<<<<< @@ -25476,7 +25477,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_setindex(int __pyx_v_sym, int __pyx_v_id)    __pyx_r = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet *)__pyx_v_4cdec_2sa_3_sa_ALPHABET->__pyx_vtab)->setindex(__pyx_v_4cdec_2sa_3_sa_ALPHABET, __pyx_v_sym, __pyx_v_id);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":101 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":101   *     return ALPHABET.getindex(sym)   *    * cdef int sym_setindex(int sym, int id):             # <<<<<<<<<<<<<< @@ -25490,7 +25491,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_setindex(int __pyx_v_sym, int __pyx_v_id)    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":104 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":104   *     return ALPHABET.setindex(sym, id)   *    * cdef int sym_fromstring(char* string, bint terminal):             # <<<<<<<<<<<<<< @@ -25503,7 +25504,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_fromstring(char *__pyx_v_string, int __pyx    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("sym_fromstring", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":105 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":105   *    * cdef int sym_fromstring(char* string, bint terminal):   *     return ALPHABET.fromstring(string, terminal)             # <<<<<<<<<<<<<< @@ -25513,7 +25514,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_fromstring(char *__pyx_v_string, int __pyx    __pyx_r = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alphabet *)__pyx_v_4cdec_2sa_3_sa_ALPHABET->__pyx_vtab)->fromstring(__pyx_v_4cdec_2sa_3_sa_ALPHABET, __pyx_v_string, __pyx_v_terminal);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":104 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":104   *     return ALPHABET.setindex(sym, id)   *    * cdef int sym_fromstring(char* string, bint terminal):             # <<<<<<<<<<<<<< @@ -25527,7 +25528,7 @@ static int __pyx_f_4cdec_2sa_3_sa_sym_fromstring(char *__pyx_v_string, int __pyx    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":107 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":107   *     return ALPHABET.fromstring(string, terminal)   *    * def isvar(sym):             # <<<<<<<<<<<<<< @@ -25559,7 +25560,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4isvar(CYTHON_UNUSED PyObject *__pyx_se    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("isvar", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":108 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":108   *    * def isvar(sym):   *     return sym_isvar(sym)             # <<<<<<<<<<<<<< @@ -25574,7 +25575,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4isvar(CYTHON_UNUSED PyObject *__pyx_se    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":107 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":107   *     return ALPHABET.fromstring(string, terminal)   *    * def isvar(sym):             # <<<<<<<<<<<<<< @@ -25593,7 +25594,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4isvar(CYTHON_UNUSED PyObject *__pyx_se    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":110 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":110   *     return sym_isvar(sym)   *    * def make_lattice(words):             # <<<<<<<<<<<<<< @@ -25616,7 +25617,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_7make_lattice(PyObject *__pyx_self, PyO  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_12make_lattice_2generator7(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":111 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":111   *    * def make_lattice(words):   *     word_ids = (sym_fromstring(word, True) for word in words)             # <<<<<<<<<<<<<< @@ -25764,7 +25765,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_12make_lattice_2generator7(__pyx_Genera  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_12make_lattice_5generator8(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":112 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":112   * def make_lattice(words):   *     word_ids = (sym_fromstring(word, True) for word in words)   *     return tuple(((word, None, 1), ) for word in word_ids)             # <<<<<<<<<<<<<< @@ -25925,7 +25926,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_12make_lattice_5generator8(__pyx_Genera    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":110 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":110   *     return sym_isvar(sym)   *    * def make_lattice(words):             # <<<<<<<<<<<<<< @@ -25953,7 +25954,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6make_lattice(CYTHON_UNUSED PyObject *_    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_words);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_words); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":111 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":111   *    * def make_lattice(words):   *     word_ids = (sym_fromstring(word, True) for word in words)             # <<<<<<<<<<<<<< @@ -25966,7 +25967,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6make_lattice(CYTHON_UNUSED PyObject *_    __pyx_cur_scope->__pyx_v_word_ids = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":112 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":112   * def make_lattice(words):   *     word_ids = (sym_fromstring(word, True) for word in words)   *     return tuple(((word, None, 1), ) for word in word_ids)             # <<<<<<<<<<<<<< @@ -25988,7 +25989,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6make_lattice(CYTHON_UNUSED PyObject *_    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":110 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":110   *     return sym_isvar(sym)   *    * def make_lattice(words):             # <<<<<<<<<<<<<< @@ -26009,7 +26010,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6make_lattice(CYTHON_UNUSED PyObject *_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":114 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":114   *     return tuple(((word, None, 1), ) for word in word_ids)   *    * def decode_lattice(lattice):             # <<<<<<<<<<<<<< @@ -26032,7 +26033,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_9decode_lattice(PyObject *__pyx_self, P  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_14decode_lattice_2generator9(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":115 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":115   *    * def decode_lattice(lattice):   *     return tuple((sym_tostring(sym), weight, dist) for (sym, weight, dist) in arc             # <<<<<<<<<<<<<< @@ -26110,7 +26111,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_14decode_lattice_2generator9(__pyx_Gene    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":116 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":116   * def decode_lattice(lattice):   *     return tuple((sym_tostring(sym), weight, dist) for (sym, weight, dist) in arc   *             for arc in node for node in lattice)             # <<<<<<<<<<<<<< @@ -26119,7 +26120,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_14decode_lattice_2generator9(__pyx_Gene   */    if (unlikely(!__pyx_cur_scope->__pyx_v_arc)) { __Pyx_RaiseUnboundLocalError("arc"); {__pyx_filename = __pyx_f[10]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":115 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":115   *    * def decode_lattice(lattice):   *     return tuple((sym_tostring(sym), weight, dist) for (sym, weight, dist) in arc             # <<<<<<<<<<<<<< @@ -26231,7 +26232,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_14decode_lattice_2generator9(__pyx_Gene      __Pyx_GIVEREF(__pyx_t_7);      __pyx_t_7 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":116 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":116   * def decode_lattice(lattice):   *     return tuple((sym_tostring(sym), weight, dist) for (sym, weight, dist) in arc   *             for arc in node for node in lattice)             # <<<<<<<<<<<<<< @@ -26319,7 +26320,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_14decode_lattice_2generator9(__pyx_Gene          __Pyx_GIVEREF(__pyx_t_6);          __pyx_t_6 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":115 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":115   *    * def decode_lattice(lattice):   *     return tuple((sym_tostring(sym), weight, dist) for (sym, weight, dist) in arc             # <<<<<<<<<<<<<< @@ -26402,7 +26403,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_14decode_lattice_2generator9(__pyx_Gene    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":114 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":114   *     return tuple(((word, None, 1), ) for word in word_ids)   *    * def decode_lattice(lattice):             # <<<<<<<<<<<<<< @@ -26430,7 +26431,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_8decode_lattice(CYTHON_UNUSED PyObject    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_lattice);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_lattice); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":115 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":115   *    * def decode_lattice(lattice):   *     return tuple((sym_tostring(sym), weight, dist) for (sym, weight, dist) in arc             # <<<<<<<<<<<<<< @@ -26452,7 +26453,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_8decode_lattice(CYTHON_UNUSED PyObject    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":114 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":114   *     return tuple(((word, None, 1), ) for word in word_ids)   *    * def decode_lattice(lattice):             # <<<<<<<<<<<<<< @@ -26473,7 +26474,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_8decode_lattice(CYTHON_UNUSED PyObject    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":118 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":118   *             for arc in node for node in lattice)   *    * def decode_sentence(lattice):             # <<<<<<<<<<<<<< @@ -26496,7 +26497,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_11decode_sentence(PyObject *__pyx_self,  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_15decode_sentence_2generator10(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":119 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":119   *    * def decode_sentence(lattice):   *     return tuple(sym_tostring(sym) for ((sym, _, _),) in lattice)             # <<<<<<<<<<<<<< @@ -26762,7 +26763,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_15decode_sentence_2generator10(__pyx_Ge    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":118 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":118   *             for arc in node for node in lattice)   *    * def decode_sentence(lattice):             # <<<<<<<<<<<<<< @@ -26790,7 +26791,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_10decode_sentence(CYTHON_UNUSED PyObjec    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_lattice);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_lattice); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":119 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":119   *    * def decode_sentence(lattice):   *     return tuple(sym_tostring(sym) for ((sym, _, _),) in lattice)             # <<<<<<<<<<<<<< @@ -26812,7 +26813,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_10decode_sentence(CYTHON_UNUSED PyObjec    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":118 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":118   *             for arc in node for node in lattice)   *    * def decode_sentence(lattice):             # <<<<<<<<<<<<<< @@ -26833,7 +26834,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_10decode_sentence(CYTHON_UNUSED PyObjec    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":121 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":121   *     return tuple(sym_tostring(sym) for ((sym, _, _),) in lattice)   *    * def encode_words(words):             # <<<<<<<<<<<<<< @@ -26856,7 +26857,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_13encode_words(PyObject *__pyx_self, Py  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_12encode_words_2generator11(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":122 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":122   *    * def encode_words(words):   *     return tuple(sym_fromstring(word, True) for word in words)             # <<<<<<<<<<<<<< @@ -27003,7 +27004,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_12encode_words_2generator11(__pyx_Gener    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":121 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":121   *     return tuple(sym_tostring(sym) for ((sym, _, _),) in lattice)   *    * def encode_words(words):             # <<<<<<<<<<<<<< @@ -27031,7 +27032,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_12encode_words(CYTHON_UNUSED PyObject *    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_words);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_words); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":122 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":122   *    * def encode_words(words):   *     return tuple(sym_fromstring(word, True) for word in words)             # <<<<<<<<<<<<<< @@ -27053,7 +27054,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_12encode_words(CYTHON_UNUSED PyObject *    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":121 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":121   *     return tuple(sym_tostring(sym) for ((sym, _, _),) in lattice)   *    * def encode_words(words):             # <<<<<<<<<<<<<< @@ -27074,7 +27075,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_12encode_words(CYTHON_UNUSED PyObject *    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":124 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":124   *     return tuple(sym_fromstring(word, True) for word in words)   *    * def decode_words(syms):             # <<<<<<<<<<<<<< @@ -27096,7 +27097,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_15decode_words(PyObject *__pyx_self, Py  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_12decode_words_2generator12(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":125 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":125   *    * def decode_words(syms):   *     return tuple(sym_tostring(sym) for sym in syms)             # <<<<<<<<<<<<<< @@ -27241,7 +27242,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_12decode_words_2generator12(__pyx_Gener    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":124 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":124   *     return tuple(sym_fromstring(word, True) for word in words)   *    * def decode_words(syms):             # <<<<<<<<<<<<<< @@ -27268,7 +27269,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14decode_words(CYTHON_UNUSED PyObject *    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_syms);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_syms); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":125 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":125   *    * def decode_words(syms):   *     return tuple(sym_tostring(sym) for sym in syms)             # <<<<<<<<<<<<<< @@ -27288,7 +27289,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14decode_words(CYTHON_UNUSED PyObject *    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":124 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":124   *     return tuple(sym_fromstring(word, True) for word in words)   *    * def decode_words(syms):             # <<<<<<<<<<<<<< @@ -27308,7 +27309,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14decode_words(CYTHON_UNUSED PyObject *    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":6 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":6   * cdef class Phrase:   *    *     def __cinit__(self, words):             # <<<<<<<<<<<<<< @@ -27385,7 +27386,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":8 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":8   *     def __cinit__(self, words):   *         cdef int i, j, n, n_vars   *         n_vars = 0             # <<<<<<<<<<<<<< @@ -27394,7 +27395,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_   */    __pyx_v_n_vars = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":9 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":9   *         cdef int i, j, n, n_vars   *         n_vars = 0   *         n = len(words)             # <<<<<<<<<<<<<< @@ -27404,7 +27405,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_    __pyx_t_1 = PyObject_Length(__pyx_v_words); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_n = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":10 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":10   *         n_vars = 0   *         n = len(words)   *         self.syms = <int *>malloc(n*sizeof(int))             # <<<<<<<<<<<<<< @@ -27413,7 +27414,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_   */    __pyx_v_self->syms = ((int *)malloc((__pyx_v_n * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":11 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":11   *         n = len(words)   *         self.syms = <int *>malloc(n*sizeof(int))   *         for i from 0 <= i < n:             # <<<<<<<<<<<<<< @@ -27423,7 +27424,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_    __pyx_t_2 = __pyx_v_n;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":12 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":12   *         self.syms = <int *>malloc(n*sizeof(int))   *         for i from 0 <= i < n:   *             self.syms[i] = words[i]             # <<<<<<<<<<<<<< @@ -27436,7 +27437,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      (__pyx_v_self->syms[__pyx_v_i]) = __pyx_t_4; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":13 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":13   *         for i from 0 <= i < n:   *             self.syms[i] = words[i]   *             if sym_isvar(self.syms[i]):             # <<<<<<<<<<<<<< @@ -27446,7 +27447,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_      __pyx_t_5 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar((__pyx_v_self->syms[__pyx_v_i])) != 0);      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":14 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":14   *             self.syms[i] = words[i]   *             if sym_isvar(self.syms[i]):   *                 n_vars += 1             # <<<<<<<<<<<<<< @@ -27459,7 +27460,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_      __pyx_L5:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":15 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":15   *             if sym_isvar(self.syms[i]):   *                 n_vars += 1   *         self.n = n             # <<<<<<<<<<<<<< @@ -27468,7 +27469,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_   */    __pyx_v_self->n = __pyx_v_n; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":16 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":16   *                 n_vars += 1   *         self.n = n   *         self.n_vars = n_vars             # <<<<<<<<<<<<<< @@ -27477,7 +27478,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_   */    __pyx_v_self->n_vars = __pyx_v_n_vars; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":17 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":17   *         self.n = n   *         self.n_vars = n_vars   *         self.varpos = <int *>malloc(n_vars*sizeof(int))             # <<<<<<<<<<<<<< @@ -27486,7 +27487,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_   */    __pyx_v_self->varpos = ((int *)malloc((__pyx_v_n_vars * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":18 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":18   *         self.n_vars = n_vars   *         self.varpos = <int *>malloc(n_vars*sizeof(int))   *         j = 0             # <<<<<<<<<<<<<< @@ -27495,7 +27496,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_   */    __pyx_v_j = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":19 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":19   *         self.varpos = <int *>malloc(n_vars*sizeof(int))   *         j = 0   *         for i from 0 <= i < n:             # <<<<<<<<<<<<<< @@ -27505,7 +27506,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_    __pyx_t_2 = __pyx_v_n;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":20 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":20   *         j = 0   *         for i from 0 <= i < n:   *             if sym_isvar(self.syms[i]):             # <<<<<<<<<<<<<< @@ -27515,7 +27516,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_      __pyx_t_5 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar((__pyx_v_self->syms[__pyx_v_i])) != 0);      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":21 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":21   *         for i from 0 <= i < n:   *             if sym_isvar(self.syms[i]):   *                 self.varpos[j] = i             # <<<<<<<<<<<<<< @@ -27524,7 +27525,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_   */        (__pyx_v_self->varpos[__pyx_v_j]) = __pyx_v_i; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":22 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":22   *             if sym_isvar(self.syms[i]):   *                 self.varpos[j] = i   *                 j = j + 1             # <<<<<<<<<<<<<< @@ -27537,7 +27538,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_      __pyx_L8:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":6 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":6   * cdef class Phrase:   *    *     def __cinit__(self, words):             # <<<<<<<<<<<<<< @@ -27557,7 +27558,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase___cinit__(struct __pyx_obj_4cdec_2sa_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":24 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":24   *                 j = j + 1   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -27580,7 +27581,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_6Phrase_2__dealloc__(struct __pyx_obj_4cdec_    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":25 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":25   *    *     def __dealloc__(self):   *         free(self.syms)             # <<<<<<<<<<<<<< @@ -27589,7 +27590,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_6Phrase_2__dealloc__(struct __pyx_obj_4cdec_   */    free(__pyx_v_self->syms); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":26 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":26   *     def __dealloc__(self):   *         free(self.syms)   *         free(self.varpos)             # <<<<<<<<<<<<<< @@ -27598,7 +27599,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_6Phrase_2__dealloc__(struct __pyx_obj_4cdec_   */    free(__pyx_v_self->varpos); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":24 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":24   *                 j = j + 1   *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -27610,7 +27611,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_6Phrase_2__dealloc__(struct __pyx_obj_4cdec_    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":28 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":28   *         free(self.varpos)   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -27645,7 +27646,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_4__str__(struct __pyx_obj_4cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__str__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":29 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":29   *    *     def __str__(self):   *         strs = []             # <<<<<<<<<<<<<< @@ -27657,7 +27658,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_4__str__(struct __pyx_obj_4cdec    __pyx_v_strs = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":31 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":31   *         strs = []   *         cdef int i, s   *         for i from 0 <= i < self.n:             # <<<<<<<<<<<<<< @@ -27667,7 +27668,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_4__str__(struct __pyx_obj_4cdec    __pyx_t_2 = __pyx_v_self->n;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":32 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":32   *         cdef int i, s   *         for i from 0 <= i < self.n:   *             s = self.syms[i]             # <<<<<<<<<<<<<< @@ -27676,7 +27677,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_4__str__(struct __pyx_obj_4cdec   */      __pyx_v_s = (__pyx_v_self->syms[__pyx_v_i]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":33 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":33   *         for i from 0 <= i < self.n:   *             s = self.syms[i]   *             strs.append(sym_tostring(s))             # <<<<<<<<<<<<<< @@ -27689,7 +27690,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_4__str__(struct __pyx_obj_4cdec      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":34 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":34   *             s = self.syms[i]   *             strs.append(sym_tostring(s))   *         return ' '.join(strs)             # <<<<<<<<<<<<<< @@ -27703,7 +27704,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_4__str__(struct __pyx_obj_4cdec    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":28 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":28   *         free(self.varpos)   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -27723,7 +27724,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_4__str__(struct __pyx_obj_4cdec    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":36 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":36   *         return ' '.join(strs)   *    *     def handle(self):             # <<<<<<<<<<<<<< @@ -27761,7 +27762,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("handle", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":39 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":39   *         """return a hashable representation that normalizes the ordering   *         of the nonterminal indices"""   *         norm = []             # <<<<<<<<<<<<<< @@ -27773,7 +27774,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_    __pyx_v_norm = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":41 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":41   *         norm = []   *         cdef int i, j, s   *         i = 1             # <<<<<<<<<<<<<< @@ -27782,7 +27783,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_   */    __pyx_v_i = 1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":42 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":42   *         cdef int i, j, s   *         i = 1   *         j = 0             # <<<<<<<<<<<<<< @@ -27791,7 +27792,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_   */    __pyx_v_j = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":43 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":43   *         i = 1   *         j = 0   *         for j from 0 <= j < self.n:             # <<<<<<<<<<<<<< @@ -27801,7 +27802,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_    __pyx_t_2 = __pyx_v_self->n;    for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_2; __pyx_v_j++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":44 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":44   *         j = 0   *         for j from 0 <= j < self.n:   *             s = self.syms[j]             # <<<<<<<<<<<<<< @@ -27810,7 +27811,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_   */      __pyx_v_s = (__pyx_v_self->syms[__pyx_v_j]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":45 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":45   *         for j from 0 <= j < self.n:   *             s = self.syms[j]   *             if sym_isvar(s):             # <<<<<<<<<<<<<< @@ -27820,7 +27821,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_      __pyx_t_3 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar(__pyx_v_s) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":46 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":46   *             s = self.syms[j]   *             if sym_isvar(s):   *                 s = sym_setindex(s,i)             # <<<<<<<<<<<<<< @@ -27829,7 +27830,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_   */        __pyx_v_s = __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_s, __pyx_v_i); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":47 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":47   *             if sym_isvar(s):   *                 s = sym_setindex(s,i)   *                 i = i + 1             # <<<<<<<<<<<<<< @@ -27841,7 +27842,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_      }      __pyx_L5:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":48 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":48   *                 s = sym_setindex(s,i)   *                 i = i + 1   *             norm.append(s)             # <<<<<<<<<<<<<< @@ -27854,7 +27855,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":49 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":49   *                 i = i + 1   *             norm.append(s)   *         return tuple(norm)             # <<<<<<<<<<<<<< @@ -27868,7 +27869,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":36 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":36   *         return ' '.join(strs)   *    *     def handle(self):             # <<<<<<<<<<<<<< @@ -27888,7 +27889,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_6handle(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":51 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":51   *         return tuple(norm)   *    *     def strhandle(self):             # <<<<<<<<<<<<<< @@ -27925,7 +27926,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("strhandle", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":52 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":52   *    *     def strhandle(self):   *         norm = []             # <<<<<<<<<<<<<< @@ -27937,7 +27938,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd    __pyx_v_norm = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":54 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":54   *         norm = []   *         cdef int i, j, s   *         i = 1             # <<<<<<<<<<<<<< @@ -27946,7 +27947,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd   */    __pyx_v_i = 1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":55 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":55   *         cdef int i, j, s   *         i = 1   *         j = 0             # <<<<<<<<<<<<<< @@ -27955,7 +27956,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd   */    __pyx_v_j = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":56 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":56   *         i = 1   *         j = 0   *         for j from 0 <= j < self.n:             # <<<<<<<<<<<<<< @@ -27965,7 +27966,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd    __pyx_t_2 = __pyx_v_self->n;    for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_2; __pyx_v_j++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":57 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":57   *         j = 0   *         for j from 0 <= j < self.n:   *             s = self.syms[j]             # <<<<<<<<<<<<<< @@ -27974,7 +27975,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd   */      __pyx_v_s = (__pyx_v_self->syms[__pyx_v_j]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":58 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":58   *         for j from 0 <= j < self.n:   *             s = self.syms[j]   *             if sym_isvar(s):             # <<<<<<<<<<<<<< @@ -27984,7 +27985,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd      __pyx_t_3 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar(__pyx_v_s) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":59 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":59   *             s = self.syms[j]   *             if sym_isvar(s):   *                 s = sym_setindex(s,i)             # <<<<<<<<<<<<<< @@ -27993,7 +27994,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd   */        __pyx_v_s = __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_s, __pyx_v_i); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":60 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":60   *             if sym_isvar(s):   *                 s = sym_setindex(s,i)   *                 i = i + 1             # <<<<<<<<<<<<<< @@ -28005,7 +28006,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd      }      __pyx_L5:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":61 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":61   *                 s = sym_setindex(s,i)   *                 i = i + 1   *             norm.append(sym_tostring(s))             # <<<<<<<<<<<<<< @@ -28018,7 +28019,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":62 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":62   *                 i = i + 1   *             norm.append(sym_tostring(s))   *         return ' '.join(norm)             # <<<<<<<<<<<<<< @@ -28032,7 +28033,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":51 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":51   *         return tuple(norm)   *    *     def strhandle(self):             # <<<<<<<<<<<<<< @@ -28052,7 +28053,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_8strhandle(struct __pyx_obj_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":64 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":64   *         return ' '.join(norm)   *    *     def arity(self):             # <<<<<<<<<<<<<< @@ -28082,7 +28083,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_10arity(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("arity", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":65 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":65   *    *     def arity(self):   *         return self.n_vars             # <<<<<<<<<<<<<< @@ -28096,7 +28097,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_10arity(struct __pyx_obj_4cdec_    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":64 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":64   *         return ' '.join(norm)   *    *     def arity(self):             # <<<<<<<<<<<<<< @@ -28115,7 +28116,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_10arity(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":67 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":67   *         return self.n_vars   *    *     def getvarpos(self, i):             # <<<<<<<<<<<<<< @@ -28148,7 +28149,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_12getvarpos(struct __pyx_obj_4c    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("getvarpos", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":68 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":68   *    *     def getvarpos(self, i):   *         if 0 <= i < self.n_vars:             # <<<<<<<<<<<<<< @@ -28167,7 +28168,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_12getvarpos(struct __pyx_obj_4c    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":69 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":69   *     def getvarpos(self, i):   *         if 0 <= i < self.n_vars:   *             return self.varpos[i]             # <<<<<<<<<<<<<< @@ -28184,7 +28185,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_12getvarpos(struct __pyx_obj_4c    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":71 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":71   *             return self.varpos[i]   *         else:   *             raise IndexError             # <<<<<<<<<<<<<< @@ -28195,7 +28196,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_12getvarpos(struct __pyx_obj_4c      {__pyx_filename = __pyx_f[7]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":67 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":67   *         return self.n_vars   *    *     def getvarpos(self, i):             # <<<<<<<<<<<<<< @@ -28215,7 +28216,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_12getvarpos(struct __pyx_obj_4c    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":73 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":73   *             raise IndexError   *    *     def getvar(self, i):             # <<<<<<<<<<<<<< @@ -28248,7 +28249,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_14getvar(struct __pyx_obj_4cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("getvar", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":74 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":74   *    *     def getvar(self, i):   *         if 0 <= i < self.n_vars:             # <<<<<<<<<<<<<< @@ -28267,7 +28268,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_14getvar(struct __pyx_obj_4cdec    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":75 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":75   *     def getvar(self, i):   *         if 0 <= i < self.n_vars:   *             return self.syms[self.varpos[i]]             # <<<<<<<<<<<<<< @@ -28284,7 +28285,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_14getvar(struct __pyx_obj_4cdec    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":77 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":77   *             return self.syms[self.varpos[i]]   *         else:   *             raise IndexError             # <<<<<<<<<<<<<< @@ -28295,7 +28296,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_14getvar(struct __pyx_obj_4cdec      {__pyx_filename = __pyx_f[7]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":73 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":73   *             raise IndexError   *    *     def getvar(self, i):             # <<<<<<<<<<<<<< @@ -28315,7 +28316,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_14getvar(struct __pyx_obj_4cdec    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":79 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":79   *             raise IndexError   *    *     cdef int chunkpos(self, int k):             # <<<<<<<<<<<<<< @@ -28329,7 +28330,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunkpos(struct __pyx_obj_4cdec_2sa_3_sa_Phra    int __pyx_t_1;    __Pyx_RefNannySetupContext("chunkpos", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":80 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":80   *    *     cdef int chunkpos(self, int k):   *         if k == 0:             # <<<<<<<<<<<<<< @@ -28339,7 +28340,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunkpos(struct __pyx_obj_4cdec_2sa_3_sa_Phra    __pyx_t_1 = ((__pyx_v_k == 0) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":81 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":81   *     cdef int chunkpos(self, int k):   *         if k == 0:   *             return 0             # <<<<<<<<<<<<<< @@ -28351,7 +28352,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunkpos(struct __pyx_obj_4cdec_2sa_3_sa_Phra    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":83 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":83   *             return 0   *         else:   *             return self.varpos[k-1]+1             # <<<<<<<<<<<<<< @@ -28362,7 +28363,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunkpos(struct __pyx_obj_4cdec_2sa_3_sa_Phra      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":79 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":79   *             raise IndexError   *    *     cdef int chunkpos(self, int k):             # <<<<<<<<<<<<<< @@ -28376,7 +28377,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunkpos(struct __pyx_obj_4cdec_2sa_3_sa_Phra    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":85 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":85   *             return self.varpos[k-1]+1   *    *     cdef int chunklen(self, int k):             # <<<<<<<<<<<<<< @@ -28390,7 +28391,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunklen(struct __pyx_obj_4cdec_2sa_3_sa_Phra    int __pyx_t_1;    __Pyx_RefNannySetupContext("chunklen", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":86 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":86   *    *     cdef int chunklen(self, int k):   *         if self.n_vars == 0:             # <<<<<<<<<<<<<< @@ -28400,7 +28401,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunklen(struct __pyx_obj_4cdec_2sa_3_sa_Phra    __pyx_t_1 = ((__pyx_v_self->n_vars == 0) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":87 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":87   *     cdef int chunklen(self, int k):   *         if self.n_vars == 0:   *             return self.n             # <<<<<<<<<<<<<< @@ -28411,7 +28412,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunklen(struct __pyx_obj_4cdec_2sa_3_sa_Phra      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":88 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":88   *         if self.n_vars == 0:   *             return self.n   *         elif k == 0:             # <<<<<<<<<<<<<< @@ -28421,7 +28422,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunklen(struct __pyx_obj_4cdec_2sa_3_sa_Phra    __pyx_t_1 = ((__pyx_v_k == 0) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":89 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":89   *             return self.n   *         elif k == 0:   *             return self.varpos[0]             # <<<<<<<<<<<<<< @@ -28432,7 +28433,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunklen(struct __pyx_obj_4cdec_2sa_3_sa_Phra      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":90 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":90   *         elif k == 0:   *             return self.varpos[0]   *         elif k == self.n_vars:             # <<<<<<<<<<<<<< @@ -28442,7 +28443,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunklen(struct __pyx_obj_4cdec_2sa_3_sa_Phra    __pyx_t_1 = ((__pyx_v_k == __pyx_v_self->n_vars) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":91 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":91   *             return self.varpos[0]   *         elif k == self.n_vars:   *             return self.n-self.varpos[k-1]-1             # <<<<<<<<<<<<<< @@ -28454,7 +28455,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunklen(struct __pyx_obj_4cdec_2sa_3_sa_Phra    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":93 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":93   *             return self.n-self.varpos[k-1]-1   *         else:   *             return self.varpos[k]-self.varpos[k-1]-1             # <<<<<<<<<<<<<< @@ -28465,7 +28466,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunklen(struct __pyx_obj_4cdec_2sa_3_sa_Phra      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":85 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":85   *             return self.varpos[k-1]+1   *    *     cdef int chunklen(self, int k):             # <<<<<<<<<<<<<< @@ -28479,7 +28480,7 @@ int __pyx_f_4cdec_2sa_3_sa_6Phrase_chunklen(struct __pyx_obj_4cdec_2sa_3_sa_Phra    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":95 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":95   *             return self.varpos[k]-self.varpos[k-1]-1   *    *     def clen(self, k):             # <<<<<<<<<<<<<< @@ -28510,7 +28511,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_16clen(struct __pyx_obj_4cdec_2    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("clen", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":96 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":96   *    *     def clen(self, k):   *          return self.chunklen(k)             # <<<<<<<<<<<<<< @@ -28525,7 +28526,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_16clen(struct __pyx_obj_4cdec_2    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":95 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":95   *             return self.varpos[k]-self.varpos[k-1]-1   *    *     def clen(self, k):             # <<<<<<<<<<<<<< @@ -28544,7 +28545,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_16clen(struct __pyx_obj_4cdec_2    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":98 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":98   *          return self.chunklen(k)   *    *     def getchunk(self, ci):             # <<<<<<<<<<<<<< @@ -28580,7 +28581,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_18getchunk(struct __pyx_obj_4cd    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("getchunk", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":100 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":100   *     def getchunk(self, ci):   *         cdef int start, stop   *         start = self.chunkpos(ci)             # <<<<<<<<<<<<<< @@ -28590,7 +28591,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_18getchunk(struct __pyx_obj_4cd    __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_ci); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_start = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Phrase *)__pyx_v_self->__pyx_vtab)->chunkpos(__pyx_v_self, __pyx_t_1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":101 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":101   *         cdef int start, stop   *         start = self.chunkpos(ci)   *         stop = start+self.chunklen(ci)             # <<<<<<<<<<<<<< @@ -28600,7 +28601,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_18getchunk(struct __pyx_obj_4cd    __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_ci); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_stop = (__pyx_v_start + ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Phrase *)__pyx_v_self->__pyx_vtab)->chunklen(__pyx_v_self, __pyx_t_1)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":102 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":102   *         start = self.chunkpos(ci)   *         stop = start+self.chunklen(ci)   *         chunk = []             # <<<<<<<<<<<<<< @@ -28612,7 +28613,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_18getchunk(struct __pyx_obj_4cd    __pyx_v_chunk = ((PyObject*)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":103 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":103   *         stop = start+self.chunklen(ci)   *         chunk = []   *         for i from start <= i < stop:             # <<<<<<<<<<<<<< @@ -28622,7 +28623,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_18getchunk(struct __pyx_obj_4cd    __pyx_t_1 = __pyx_v_stop;    for (__pyx_v_i = __pyx_v_start; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":104 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":104   *         chunk = []   *         for i from start <= i < stop:   *             chunk.append(self.syms[i])             # <<<<<<<<<<<<<< @@ -28635,7 +28636,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_18getchunk(struct __pyx_obj_4cd      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":105 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":105   *         for i from start <= i < stop:   *             chunk.append(self.syms[i])   *         return chunk             # <<<<<<<<<<<<<< @@ -28647,7 +28648,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_18getchunk(struct __pyx_obj_4cd    __pyx_r = __pyx_v_chunk;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":98 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":98   *          return self.chunklen(k)   *    *     def getchunk(self, ci):             # <<<<<<<<<<<<<< @@ -28667,7 +28668,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_18getchunk(struct __pyx_obj_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":107 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":107   *         return chunk   *    *     def __cmp__(self, other):             # <<<<<<<<<<<<<< @@ -28706,7 +28707,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cmp__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":110 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":110   *         cdef Phrase otherp   *         cdef int i   *         otherp = other             # <<<<<<<<<<<<<< @@ -28719,7 +28720,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_    __pyx_v_otherp = ((struct __pyx_obj_4cdec_2sa_3_sa_Phrase *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":111 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":111   *         cdef int i   *         otherp = other   *         for i from 0 <= i < min(self.n, otherp.n):             # <<<<<<<<<<<<<< @@ -28736,7 +28737,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_    __pyx_t_2 = __pyx_t_4;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":112 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":112   *         otherp = other   *         for i from 0 <= i < min(self.n, otherp.n):   *             if self.syms[i] < otherp.syms[i]:             # <<<<<<<<<<<<<< @@ -28746,7 +28747,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_      __pyx_t_5 = (((__pyx_v_self->syms[__pyx_v_i]) < (__pyx_v_otherp->syms[__pyx_v_i])) != 0);      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":113 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":113   *         for i from 0 <= i < min(self.n, otherp.n):   *             if self.syms[i] < otherp.syms[i]:   *                 return -1             # <<<<<<<<<<<<<< @@ -28757,7 +28758,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":114 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":114   *             if self.syms[i] < otherp.syms[i]:   *                 return -1   *             elif self.syms[i] > otherp.syms[i]:             # <<<<<<<<<<<<<< @@ -28767,7 +28768,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_      __pyx_t_5 = (((__pyx_v_self->syms[__pyx_v_i]) > (__pyx_v_otherp->syms[__pyx_v_i])) != 0);      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":115 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":115   *                 return -1   *             elif self.syms[i] > otherp.syms[i]:   *                 return 1             # <<<<<<<<<<<<<< @@ -28779,7 +28780,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_      }    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":116 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":116   *             elif self.syms[i] > otherp.syms[i]:   *                 return 1   *         if self.n < otherp.n:             # <<<<<<<<<<<<<< @@ -28789,7 +28790,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_    __pyx_t_5 = ((__pyx_v_self->n < __pyx_v_otherp->n) != 0);    if (__pyx_t_5) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":117 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":117   *                 return 1   *         if self.n < otherp.n:   *             return -1             # <<<<<<<<<<<<<< @@ -28800,7 +28801,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":118 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":118   *         if self.n < otherp.n:   *             return -1   *         elif self.n > otherp.n:             # <<<<<<<<<<<<<< @@ -28810,7 +28811,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_    __pyx_t_5 = ((__pyx_v_self->n > __pyx_v_otherp->n) != 0);    if (__pyx_t_5) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":119 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":119   *             return -1   *         elif self.n > otherp.n:   *             return 1             # <<<<<<<<<<<<<< @@ -28822,7 +28823,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":121 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":121   *             return 1   *         else:   *             return 0             # <<<<<<<<<<<<<< @@ -28833,7 +28834,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":107 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":107   *         return chunk   *    *     def __cmp__(self, other):             # <<<<<<<<<<<<<< @@ -28853,7 +28854,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Phrase_20__cmp__(struct __pyx_obj_4cdec_2sa_  }  #endif /*!(#if PY_MAJOR_VERSION < 3)*/ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":123 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":123   *             return 0   *    *     def __hash__(self):             # <<<<<<<<<<<<<< @@ -28883,7 +28884,7 @@ static Py_hash_t __pyx_pf_4cdec_2sa_3_sa_6Phrase_22__hash__(struct __pyx_obj_4cd    int __pyx_t_2;    __Pyx_RefNannySetupContext("__hash__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":126 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":126   *         cdef int i   *         cdef unsigned h   *         h = 0             # <<<<<<<<<<<<<< @@ -28892,7 +28893,7 @@ static Py_hash_t __pyx_pf_4cdec_2sa_3_sa_6Phrase_22__hash__(struct __pyx_obj_4cd   */    __pyx_v_h = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":127 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":127   *         cdef unsigned h   *         h = 0   *         for i from 0 <= i < self.n:             # <<<<<<<<<<<<<< @@ -28902,7 +28903,7 @@ static Py_hash_t __pyx_pf_4cdec_2sa_3_sa_6Phrase_22__hash__(struct __pyx_obj_4cd    __pyx_t_1 = __pyx_v_self->n;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":128 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":128   *         h = 0   *         for i from 0 <= i < self.n:   *             if self.syms[i] > 0:             # <<<<<<<<<<<<<< @@ -28912,7 +28913,7 @@ static Py_hash_t __pyx_pf_4cdec_2sa_3_sa_6Phrase_22__hash__(struct __pyx_obj_4cd      __pyx_t_2 = (((__pyx_v_self->syms[__pyx_v_i]) > 0) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":129 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":129   *         for i from 0 <= i < self.n:   *             if self.syms[i] > 0:   *                 h = (h << 1) + self.syms[i]             # <<<<<<<<<<<<<< @@ -28924,7 +28925,7 @@ static Py_hash_t __pyx_pf_4cdec_2sa_3_sa_6Phrase_22__hash__(struct __pyx_obj_4cd      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":131 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":131   *                 h = (h << 1) + self.syms[i]   *             else:   *                 h = (h << 1) + -self.syms[i]             # <<<<<<<<<<<<<< @@ -28936,7 +28937,7 @@ static Py_hash_t __pyx_pf_4cdec_2sa_3_sa_6Phrase_22__hash__(struct __pyx_obj_4cd      __pyx_L5:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":132 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":132   *             else:   *                 h = (h << 1) + -self.syms[i]   *         return h             # <<<<<<<<<<<<<< @@ -28946,7 +28947,7 @@ static Py_hash_t __pyx_pf_4cdec_2sa_3_sa_6Phrase_22__hash__(struct __pyx_obj_4cd    __pyx_r = __pyx_v_h;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":123 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":123   *             return 0   *    *     def __hash__(self):             # <<<<<<<<<<<<<< @@ -28961,7 +28962,7 @@ static Py_hash_t __pyx_pf_4cdec_2sa_3_sa_6Phrase_22__hash__(struct __pyx_obj_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":134 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":134   *         return h   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -28987,7 +28988,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_6Phrase_24__len__(struct __pyx_obj_4cd    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__len__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":135 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":135   *    *     def __len__(self):   *         return self.n             # <<<<<<<<<<<<<< @@ -28997,7 +28998,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_6Phrase_24__len__(struct __pyx_obj_4cd    __pyx_r = __pyx_v_self->n;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":134 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":134   *         return h   *    *     def __len__(self):             # <<<<<<<<<<<<<< @@ -29011,7 +29012,7 @@ static Py_ssize_t __pyx_pf_4cdec_2sa_3_sa_6Phrase_24__len__(struct __pyx_obj_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":137 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":137   *         return self.n   *    *     def __getitem__(self, i):             # <<<<<<<<<<<<<< @@ -29042,7 +29043,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_26__getitem__(struct __pyx_obj_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__getitem__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":138 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":138   *    *     def __getitem__(self, i):   *         return self.syms[i]             # <<<<<<<<<<<<<< @@ -29057,7 +29058,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_26__getitem__(struct __pyx_obj_    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":137 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":137   *         return self.n   *    *     def __getitem__(self, i):             # <<<<<<<<<<<<<< @@ -29077,7 +29078,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_26__getitem__(struct __pyx_obj_  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_6Phrase_30generator2(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":140 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":140   *         return self.syms[i]   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -29156,7 +29157,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_6Phrase_30generator2(__pyx_GeneratorObj    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":142 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":142   *     def __iter__(self):   *         cdef int i   *         for i from 0 <= i < self.n:             # <<<<<<<<<<<<<< @@ -29166,7 +29167,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_6Phrase_30generator2(__pyx_GeneratorObj    __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->n;    for (__pyx_cur_scope->__pyx_v_i = 0; __pyx_cur_scope->__pyx_v_i < __pyx_t_1; __pyx_cur_scope->__pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":143 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":143   *         cdef int i   *         for i from 0 <= i < self.n:   *             yield self.syms[i]             # <<<<<<<<<<<<<< @@ -29188,7 +29189,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_6Phrase_30generator2(__pyx_GeneratorObj      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":140 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":140   *         return self.syms[i]   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -29210,7 +29211,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_6Phrase_30generator2(__pyx_GeneratorObj    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":145 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":145   *             yield self.syms[i]   *    *     def subst(self, start, children):             # <<<<<<<<<<<<<< @@ -29294,7 +29295,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_31subst(struct __pyx_obj_4cdec_    __Pyx_RefNannySetupContext("subst", 0);    __Pyx_INCREF(__pyx_v_start); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":147 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":147   *     def subst(self, start, children):   *         cdef int i   *         for i from 0 <= i < self.n:             # <<<<<<<<<<<<<< @@ -29304,7 +29305,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_31subst(struct __pyx_obj_4cdec_    __pyx_t_1 = __pyx_v_self->n;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":148 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":148   *         cdef int i   *         for i from 0 <= i < self.n:   *             if sym_isvar(self.syms[i]):             # <<<<<<<<<<<<<< @@ -29314,7 +29315,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_31subst(struct __pyx_obj_4cdec_      __pyx_t_2 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar((__pyx_v_self->syms[__pyx_v_i])) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":149 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":149   *         for i from 0 <= i < self.n:   *             if sym_isvar(self.syms[i]):   *                 start = start + children[sym_getindex(self.syms[i])-1]             # <<<<<<<<<<<<<< @@ -29333,7 +29334,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_31subst(struct __pyx_obj_4cdec_      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":151 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":151   *                 start = start + children[sym_getindex(self.syms[i])-1]   *             else:   *                 start = start + (self.syms[i],)             # <<<<<<<<<<<<<< @@ -29356,7 +29357,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_31subst(struct __pyx_obj_4cdec_      __pyx_L5:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":152 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":152   *             else:   *                 start = start + (self.syms[i],)   *         return start             # <<<<<<<<<<<<<< @@ -29368,7 +29369,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_31subst(struct __pyx_obj_4cdec_    __pyx_r = __pyx_v_start;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":145 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":145   *             yield self.syms[i]   *    *     def subst(self, start, children):             # <<<<<<<<<<<<<< @@ -29389,7 +29390,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_31subst(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":155 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":155   *    *     property words:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -29426,7 +29427,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_5words___get__(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":156 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":156   *     property words:   *         def __get__(self):   *             return [sym_tostring(w) for w in self if not sym_isvar(w)]             # <<<<<<<<<<<<<< @@ -29490,7 +29491,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_5words___get__(struct __pyx_obj    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":155 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":155   *    *     property words:   *         def __get__(self):             # <<<<<<<<<<<<<< @@ -29512,7 +29513,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_6Phrase_5words___get__(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":160 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":160   * cdef class Rule:   *    *     def __cinit__(self, int lhs, Phrase f, Phrase e, scores=None, word_alignments=None):             # <<<<<<<<<<<<<< @@ -29629,7 +29630,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule___cinit__(struct __pyx_obj_4cdec_2sa_3_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":161 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":161   *    *     def __cinit__(self, int lhs, Phrase f, Phrase e, scores=None, word_alignments=None):   *         if not sym_isvar(lhs): raise Exception('Invalid LHS symbol: %d' % lhs)             # <<<<<<<<<<<<<< @@ -29656,7 +29657,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule___cinit__(struct __pyx_obj_4cdec_2sa_3_      {__pyx_filename = __pyx_f[7]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":162 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":162   *     def __cinit__(self, int lhs, Phrase f, Phrase e, scores=None, word_alignments=None):   *         if not sym_isvar(lhs): raise Exception('Invalid LHS symbol: %d' % lhs)   *         self.lhs = lhs             # <<<<<<<<<<<<<< @@ -29665,7 +29666,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule___cinit__(struct __pyx_obj_4cdec_2sa_3_   */    __pyx_v_self->lhs = __pyx_v_lhs; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":163 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":163   *         if not sym_isvar(lhs): raise Exception('Invalid LHS symbol: %d' % lhs)   *         self.lhs = lhs   *         self.f = f             # <<<<<<<<<<<<<< @@ -29678,7 +29679,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule___cinit__(struct __pyx_obj_4cdec_2sa_3_    __Pyx_DECREF(((PyObject *)__pyx_v_self->f));    __pyx_v_self->f = __pyx_v_f; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":164 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":164   *         self.lhs = lhs   *         self.f = f   *         self.e = e             # <<<<<<<<<<<<<< @@ -29691,7 +29692,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule___cinit__(struct __pyx_obj_4cdec_2sa_3_    __Pyx_DECREF(((PyObject *)__pyx_v_self->e));    __pyx_v_self->e = __pyx_v_e; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":165 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":165   *         self.f = f   *         self.e = e   *         self.word_alignments = word_alignments             # <<<<<<<<<<<<<< @@ -29704,7 +29705,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule___cinit__(struct __pyx_obj_4cdec_2sa_3_    __Pyx_DECREF(__pyx_v_self->word_alignments);    __pyx_v_self->word_alignments = __pyx_v_word_alignments; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":166 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":166   *         self.e = e   *         self.word_alignments = word_alignments   *         self.scores = scores             # <<<<<<<<<<<<<< @@ -29720,7 +29721,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule___cinit__(struct __pyx_obj_4cdec_2sa_3_    __pyx_v_self->scores = ((struct __pyx_obj_4cdec_2sa_3_sa_FeatureVector *)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":160 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":160   * cdef class Rule:   *    *     def __cinit__(self, int lhs, Phrase f, Phrase e, scores=None, word_alignments=None):             # <<<<<<<<<<<<<< @@ -29741,7 +29742,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule___cinit__(struct __pyx_obj_4cdec_2sa_3_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":168 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":168   *         self.scores = scores   *    *     def __hash__(self):             # <<<<<<<<<<<<<< @@ -29773,7 +29774,7 @@ static Py_hash_t __pyx_pf_4cdec_2sa_3_sa_4Rule_2__hash__(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__hash__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":169 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":169   *    *     def __hash__(self):   *         return hash((self.lhs, self.f, self.e))             # <<<<<<<<<<<<<< @@ -29798,7 +29799,7 @@ static Py_hash_t __pyx_pf_4cdec_2sa_3_sa_4Rule_2__hash__(struct __pyx_obj_4cdec_    __pyx_r = __pyx_t_3;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":168 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":168   *         self.scores = scores   *    *     def __hash__(self):             # <<<<<<<<<<<<<< @@ -29818,7 +29819,7 @@ static Py_hash_t __pyx_pf_4cdec_2sa_3_sa_4Rule_2__hash__(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":171 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":171   *         return hash((self.lhs, self.f, self.e))   *    *     def __cmp__(self, Rule other):             # <<<<<<<<<<<<<< @@ -29862,7 +29863,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule_4__cmp__(struct __pyx_obj_4cdec_2sa_3_s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cmp__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":172 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":172   *    *     def __cmp__(self, Rule other):   *         return cmp((self.lhs, self.f, self.e, self.word_alignments),             # <<<<<<<<<<<<<< @@ -29886,7 +29887,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule_4__cmp__(struct __pyx_obj_4cdec_2sa_3_s    __Pyx_GIVEREF(__pyx_v_self->word_alignments);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":173 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":173   *     def __cmp__(self, Rule other):   *         return cmp((self.lhs, self.f, self.e, self.word_alignments),   *                 (other.lhs, other.f, other.e, self.word_alignments))             # <<<<<<<<<<<<<< @@ -29910,7 +29911,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule_4__cmp__(struct __pyx_obj_4cdec_2sa_3_s    __Pyx_GIVEREF(__pyx_v_self->word_alignments);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":172 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":172   *    *     def __cmp__(self, Rule other):   *         return cmp((self.lhs, self.f, self.e, self.word_alignments),             # <<<<<<<<<<<<<< @@ -29933,7 +29934,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule_4__cmp__(struct __pyx_obj_4cdec_2sa_3_s    __pyx_r = __pyx_t_4;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":171 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":171   *         return hash((self.lhs, self.f, self.e))   *    *     def __cmp__(self, Rule other):             # <<<<<<<<<<<<<< @@ -29954,7 +29955,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_4Rule_4__cmp__(struct __pyx_obj_4cdec_2sa_3_s  }  #endif /*!(#if PY_MAJOR_VERSION < 3)*/ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":175 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":175   *                 (other.lhs, other.f, other.e, self.word_alignments))   *    *     def fmerge(self, Phrase f):             # <<<<<<<<<<<<<< @@ -29993,7 +29994,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_6fmerge(struct __pyx_obj_4cdec_2s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("fmerge", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":176 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":176   *    *     def fmerge(self, Phrase f):   *         if self.f == f:             # <<<<<<<<<<<<<< @@ -30005,7 +30006,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_6fmerge(struct __pyx_obj_4cdec_2s    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":177 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":177   *     def fmerge(self, Phrase f):   *         if self.f == f:   *             self.f = f             # <<<<<<<<<<<<<< @@ -30021,7 +30022,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_6fmerge(struct __pyx_obj_4cdec_2s    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":175 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":175   *                 (other.lhs, other.f, other.e, self.word_alignments))   *    *     def fmerge(self, Phrase f):             # <<<<<<<<<<<<<< @@ -30042,7 +30043,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_6fmerge(struct __pyx_obj_4cdec_2s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":179 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":179   *             self.f = f   *    *     def arity(self):             # <<<<<<<<<<<<<< @@ -30073,7 +30074,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_8arity(struct __pyx_obj_4cdec_2sa    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("arity", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":180 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":180   *    *     def arity(self):   *         return self.f.arity()             # <<<<<<<<<<<<<< @@ -30090,7 +30091,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_8arity(struct __pyx_obj_4cdec_2sa    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":179 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":179   *             self.f = f   *    *     def arity(self):             # <<<<<<<<<<<<<< @@ -30110,7 +30111,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_8arity(struct __pyx_obj_4cdec_2sa    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":182 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":182   *         return self.f.arity()   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -30132,7 +30133,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_4Rule_11__str__(PyObject *__pyx_v_self)  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_4Rule_7__str___2generator13(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":186 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":186   *         fields = [sym_tostring(self.lhs), str(self.f), str(self.e), str(self.scores)]   *         if self.word_alignments is not None:   *             fields.append(' '.join('%d-%d' % a for a in self.alignments()))             # <<<<<<<<<<<<<< @@ -30283,7 +30284,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_4Rule_7__str___2generator13(__pyx_Gener    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":182 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":182   *         return self.f.arity()   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -30318,7 +30319,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_10__str__(struct __pyx_obj_4cdec_    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":184 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":184   *     def __str__(self):   *         cdef unsigned i   *         fields = [sym_tostring(self.lhs), str(self.f), str(self.e), str(self.scores)]             # <<<<<<<<<<<<<< @@ -30368,7 +30369,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_10__str__(struct __pyx_obj_4cdec_    __pyx_v_fields = ((PyObject*)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":185 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":185   *         cdef unsigned i   *         fields = [sym_tostring(self.lhs), str(self.f), str(self.e), str(self.scores)]   *         if self.word_alignments is not None:             # <<<<<<<<<<<<<< @@ -30379,7 +30380,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_10__str__(struct __pyx_obj_4cdec_    __pyx_t_7 = (__pyx_t_6 != 0);    if (__pyx_t_7) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":186 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":186   *         fields = [sym_tostring(self.lhs), str(self.f), str(self.e), str(self.scores)]   *         if self.word_alignments is not None:   *             fields.append(' '.join('%d-%d' % a for a in self.alignments()))             # <<<<<<<<<<<<<< @@ -30397,7 +30398,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_10__str__(struct __pyx_obj_4cdec_    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":187 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":187   *         if self.word_alignments is not None:   *             fields.append(' '.join('%d-%d' % a for a in self.alignments()))   *         return ' ||| '.join(fields)             # <<<<<<<<<<<<<< @@ -30411,7 +30412,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_10__str__(struct __pyx_obj_4cdec_    __pyx_t_5 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":182 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":182   *         return self.f.arity()   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -30437,7 +30438,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_10__str__(struct __pyx_obj_4cdec_  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_4Rule_14generator3(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":189 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":189   *         return ' ||| '.join(fields)   *    *     def alignments(self):             # <<<<<<<<<<<<<< @@ -30520,7 +30521,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_4Rule_14generator3(__pyx_GeneratorObjec    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":190 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":190   *    *     def alignments(self):   *         for point in self.word_alignments:             # <<<<<<<<<<<<<< @@ -30566,7 +30567,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_4Rule_14generator3(__pyx_GeneratorObjec      __Pyx_GIVEREF(__pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":191 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":191   *     def alignments(self):   *         for point in self.word_alignments:   *             yield point / ALIGNMENT_CODE, point % ALIGNMENT_CODE             # <<<<<<<<<<<<<< @@ -30610,7 +30611,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_4Rule_14generator3(__pyx_GeneratorObjec    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rule.pxi":189 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rule.pxi":189   *         return ' ||| '.join(fields)   *    *     def alignments(self):             # <<<<<<<<<<<<<< @@ -30701,7 +30702,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_4Rule_1e___get__(struct __pyx_obj_4cdec    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":21 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":21   *     int arr_len   *    * cdef _Trie_Node* new_trie_node():             # <<<<<<<<<<<<<< @@ -30715,7 +30716,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_new_trie    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("new_trie_node", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":23 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":23   * cdef _Trie_Node* new_trie_node():   *     cdef _Trie_Node* node   *     node = <_Trie_Node*> malloc(sizeof(_Trie_Node))             # <<<<<<<<<<<<<< @@ -30724,7 +30725,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_new_trie   */    __pyx_v_node = ((struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *)malloc((sizeof(struct __pyx_t_4cdec_2sa_3_sa__Trie_Node)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":24 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":24   *     cdef _Trie_Node* node   *     node = <_Trie_Node*> malloc(sizeof(_Trie_Node))   *     node.root = NULL             # <<<<<<<<<<<<<< @@ -30733,7 +30734,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_new_trie   */    __pyx_v_node->root = NULL; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":25 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":25   *     node = <_Trie_Node*> malloc(sizeof(_Trie_Node))   *     node.root = NULL   *     node.arr_len = 0             # <<<<<<<<<<<<<< @@ -30742,7 +30743,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_new_trie   */    __pyx_v_node->arr_len = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":26 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":26   *     node.root = NULL   *     node.arr_len = 0   *     node.arr = <int*> malloc(sizeof(0*sizeof(int)))             # <<<<<<<<<<<<<< @@ -30751,7 +30752,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_new_trie   */    __pyx_v_node->arr = ((int *)malloc((sizeof((0 * (sizeof(int))))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":27 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":27   *     node.arr_len = 0   *     node.arr = <int*> malloc(sizeof(0*sizeof(int)))   *     return node             # <<<<<<<<<<<<<< @@ -30761,7 +30762,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_new_trie    __pyx_r = __pyx_v_node;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":21 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":21   *     int arr_len   *    * cdef _Trie_Node* new_trie_node():             # <<<<<<<<<<<<<< @@ -30775,7 +30776,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_new_trie    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":29 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":29   *     return node   *    * cdef _Trie_Edge* new_trie_edge(int val):             # <<<<<<<<<<<<<< @@ -30789,7 +30790,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge *__pyx_f_4cdec_2sa_3_sa_new_trie    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("new_trie_edge", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":31 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":31   * cdef _Trie_Edge* new_trie_edge(int val):   *     cdef _Trie_Edge* edge   *     edge = <_Trie_Edge*> malloc(sizeof(_Trie_Edge))             # <<<<<<<<<<<<<< @@ -30798,7 +30799,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge *__pyx_f_4cdec_2sa_3_sa_new_trie   */    __pyx_v_edge = ((struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge *)malloc((sizeof(struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":32 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":32   *     cdef _Trie_Edge* edge   *     edge = <_Trie_Edge*> malloc(sizeof(_Trie_Edge))   *     edge.node = new_trie_node()             # <<<<<<<<<<<<<< @@ -30807,7 +30808,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge *__pyx_f_4cdec_2sa_3_sa_new_trie   */    __pyx_v_edge->node = __pyx_f_4cdec_2sa_3_sa_new_trie_node(); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":33 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":33   *     edge = <_Trie_Edge*> malloc(sizeof(_Trie_Edge))   *     edge.node = new_trie_node()   *     edge.bigger = NULL             # <<<<<<<<<<<<<< @@ -30816,7 +30817,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge *__pyx_f_4cdec_2sa_3_sa_new_trie   */    __pyx_v_edge->bigger = NULL; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":34 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":34   *     edge.node = new_trie_node()   *     edge.bigger = NULL   *     edge.smaller = NULL             # <<<<<<<<<<<<<< @@ -30825,7 +30826,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge *__pyx_f_4cdec_2sa_3_sa_new_trie   */    __pyx_v_edge->smaller = NULL; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":35 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":35   *     edge.bigger = NULL   *     edge.smaller = NULL   *     edge.val = val             # <<<<<<<<<<<<<< @@ -30834,7 +30835,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge *__pyx_f_4cdec_2sa_3_sa_new_trie   */    __pyx_v_edge->val = __pyx_v_val; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":36 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":36   *     edge.smaller = NULL   *     edge.val = val   *     return edge             # <<<<<<<<<<<<<< @@ -30844,7 +30845,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge *__pyx_f_4cdec_2sa_3_sa_new_trie    __pyx_r = __pyx_v_edge;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":29 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":29   *     return node   *    * cdef _Trie_Edge* new_trie_edge(int val):             # <<<<<<<<<<<<<< @@ -30858,7 +30859,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Edge *__pyx_f_4cdec_2sa_3_sa_new_trie    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":38 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":38   *     return edge   *    * cdef free_trie_node(_Trie_Node* node):             # <<<<<<<<<<<<<< @@ -30876,7 +30877,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_free_trie_node(struct __pyx_t_4cdec_2sa_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("free_trie_node", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":39 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":39   *    * cdef free_trie_node(_Trie_Node* node):   *     if node != NULL:             # <<<<<<<<<<<<<< @@ -30886,7 +30887,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_free_trie_node(struct __pyx_t_4cdec_2sa_    __pyx_t_1 = ((__pyx_v_node != NULL) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":40 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":40   * cdef free_trie_node(_Trie_Node* node):   *     if node != NULL:   *         free_trie_edge(node.root)             # <<<<<<<<<<<<<< @@ -30897,7 +30898,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_free_trie_node(struct __pyx_t_4cdec_2sa_      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":41 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":41   *     if node != NULL:   *         free_trie_edge(node.root)   *         free(node.arr)             # <<<<<<<<<<<<<< @@ -30909,7 +30910,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_free_trie_node(struct __pyx_t_4cdec_2sa_    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":38 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":38   *     return edge   *    * cdef free_trie_node(_Trie_Node* node):             # <<<<<<<<<<<<<< @@ -30930,7 +30931,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_free_trie_node(struct __pyx_t_4cdec_2sa_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":43 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":43   *         free(node.arr)   *    * cdef free_trie_edge(_Trie_Edge* edge):             # <<<<<<<<<<<<<< @@ -30948,7 +30949,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_free_trie_edge(struct __pyx_t_4cdec_2sa_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("free_trie_edge", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":44 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":44   *    * cdef free_trie_edge(_Trie_Edge* edge):   *     if edge != NULL:             # <<<<<<<<<<<<<< @@ -30958,7 +30959,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_free_trie_edge(struct __pyx_t_4cdec_2sa_    __pyx_t_1 = ((__pyx_v_edge != NULL) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":45 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":45   * cdef free_trie_edge(_Trie_Edge* edge):   *     if edge != NULL:   *         free_trie_node(edge.node)             # <<<<<<<<<<<<<< @@ -30969,7 +30970,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_free_trie_edge(struct __pyx_t_4cdec_2sa_      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":46 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":46   *     if edge != NULL:   *         free_trie_node(edge.node)   *         free_trie_edge(edge.bigger)             # <<<<<<<<<<<<<< @@ -30980,7 +30981,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_free_trie_edge(struct __pyx_t_4cdec_2sa_      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":47 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":47   *         free_trie_node(edge.node)   *         free_trie_edge(edge.bigger)   *         free_trie_edge(edge.smaller)             # <<<<<<<<<<<<<< @@ -30994,7 +30995,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_free_trie_edge(struct __pyx_t_4cdec_2sa_    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":43 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":43   *         free(node.arr)   *    * cdef free_trie_edge(_Trie_Edge* edge):             # <<<<<<<<<<<<<< @@ -31015,7 +31016,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_free_trie_edge(struct __pyx_t_4cdec_2sa_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":49 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":49   *         free_trie_edge(edge.smaller)   *    * cdef _Trie_Node* trie_find(_Trie_Node* node, int val):             # <<<<<<<<<<<<<< @@ -31033,7 +31034,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_fin    int __pyx_t_4;    __Pyx_RefNannySetupContext("trie_find", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":51 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":51   * cdef _Trie_Node* trie_find(_Trie_Node* node, int val):   *     cdef _Trie_Edge* cur   *     cur = node.root             # <<<<<<<<<<<<<< @@ -31043,7 +31044,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_fin    __pyx_t_1 = __pyx_v_node->root;    __pyx_v_cur = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":52 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":52   *     cdef _Trie_Edge* cur   *     cur = node.root   *     while cur != NULL and cur.val != val:             # <<<<<<<<<<<<<< @@ -31060,7 +31061,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_fin      }      if (!__pyx_t_4) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":53 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":53   *     cur = node.root   *     while cur != NULL and cur.val != val:   *         if val > cur.val:             # <<<<<<<<<<<<<< @@ -31070,7 +31071,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_fin      __pyx_t_4 = ((__pyx_v_val > __pyx_v_cur->val) != 0);      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":54 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":54   *     while cur != NULL and cur.val != val:   *         if val > cur.val:   *             cur = cur.bigger             # <<<<<<<<<<<<<< @@ -31082,7 +31083,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_fin        goto __pyx_L5;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":55 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":55   *         if val > cur.val:   *             cur = cur.bigger   *         elif val < cur.val:             # <<<<<<<<<<<<<< @@ -31092,7 +31093,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_fin      __pyx_t_4 = ((__pyx_v_val < __pyx_v_cur->val) != 0);      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":56 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":56   *             cur = cur.bigger   *         elif val < cur.val:   *             cur = cur.smaller             # <<<<<<<<<<<<<< @@ -31106,7 +31107,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_fin      __pyx_L5:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":57 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":57   *         elif val < cur.val:   *             cur = cur.smaller   *     if cur == NULL:             # <<<<<<<<<<<<<< @@ -31116,7 +31117,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_fin    __pyx_t_4 = ((__pyx_v_cur == NULL) != 0);    if (__pyx_t_4) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":58 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":58   *             cur = cur.smaller   *     if cur == NULL:   *         return NULL             # <<<<<<<<<<<<<< @@ -31128,7 +31129,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_fin    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":60 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":60   *         return NULL   *     else:   *         return cur.node             # <<<<<<<<<<<<<< @@ -31139,7 +31140,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_fin      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":49 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":49   *         free_trie_edge(edge.smaller)   *    * cdef _Trie_Node* trie_find(_Trie_Node* node, int val):             # <<<<<<<<<<<<<< @@ -31153,7 +31154,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_fin    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":62 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":62   *         return cur.node   *    * cdef trie_node_data_append(_Trie_Node* node, int val):             # <<<<<<<<<<<<<< @@ -31167,7 +31168,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_append(struct __pyx_t_4cd    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("trie_node_data_append", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":64 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":64   * cdef trie_node_data_append(_Trie_Node* node, int val):   *     cdef int new_len   *     new_len = node.arr_len + 1             # <<<<<<<<<<<<<< @@ -31176,7 +31177,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_append(struct __pyx_t_4cd   */    __pyx_v_new_len = (__pyx_v_node->arr_len + 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":65 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":65   *     cdef int new_len   *     new_len = node.arr_len + 1   *     node.arr = <int*> realloc(node.arr, new_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -31185,7 +31186,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_append(struct __pyx_t_4cd   */    __pyx_v_node->arr = ((int *)realloc(__pyx_v_node->arr, (__pyx_v_new_len * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":66 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":66   *     new_len = node.arr_len + 1   *     node.arr = <int*> realloc(node.arr, new_len*sizeof(int))   *     node.arr[node.arr_len] = val             # <<<<<<<<<<<<<< @@ -31194,7 +31195,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_append(struct __pyx_t_4cd   */    (__pyx_v_node->arr[__pyx_v_node->arr_len]) = __pyx_v_val; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":67 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":67   *     node.arr = <int*> realloc(node.arr, new_len*sizeof(int))   *     node.arr[node.arr_len] = val   *     node.arr_len = new_len             # <<<<<<<<<<<<<< @@ -31203,7 +31204,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_append(struct __pyx_t_4cd   */    __pyx_v_node->arr_len = __pyx_v_new_len; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":62 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":62   *         return cur.node   *    * cdef trie_node_data_append(_Trie_Node* node, int val):             # <<<<<<<<<<<<<< @@ -31218,7 +31219,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_append(struct __pyx_t_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":69 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":69   *     node.arr_len = new_len   *    * cdef trie_node_data_extend(_Trie_Node* node, int* vals, int num_vals):             # <<<<<<<<<<<<<< @@ -31232,7 +31233,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_extend(struct __pyx_t_4cd    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("trie_node_data_extend", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":71 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":71   * cdef trie_node_data_extend(_Trie_Node* node, int* vals, int num_vals):   *     cdef int new_len   *     new_len = node.arr_len + num_vals             # <<<<<<<<<<<<<< @@ -31241,7 +31242,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_extend(struct __pyx_t_4cd   */    __pyx_v_new_len = (__pyx_v_node->arr_len + __pyx_v_num_vals); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":72 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":72   *     cdef int new_len   *     new_len = node.arr_len + num_vals   *     node.arr = <int*> realloc(node.arr, new_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -31250,7 +31251,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_extend(struct __pyx_t_4cd   */    __pyx_v_node->arr = ((int *)realloc(__pyx_v_node->arr, (__pyx_v_new_len * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":73 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":73   *     new_len = node.arr_len + num_vals   *     node.arr = <int*> realloc(node.arr, new_len*sizeof(int))   *     memcpy(node.arr + node.arr_len, vals, num_vals*sizeof(int))             # <<<<<<<<<<<<<< @@ -31259,7 +31260,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_extend(struct __pyx_t_4cd   */    memcpy((__pyx_v_node->arr + __pyx_v_node->arr_len), __pyx_v_vals, (__pyx_v_num_vals * (sizeof(int)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":74 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":74   *     node.arr = <int*> realloc(node.arr, new_len*sizeof(int))   *     memcpy(node.arr + node.arr_len, vals, num_vals*sizeof(int))   *     node.arr_len = new_len             # <<<<<<<<<<<<<< @@ -31268,7 +31269,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_extend(struct __pyx_t_4cd   */    __pyx_v_node->arr_len = __pyx_v_new_len; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":69 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":69   *     node.arr_len = new_len   *    * cdef trie_node_data_extend(_Trie_Node* node, int* vals, int num_vals):             # <<<<<<<<<<<<<< @@ -31283,7 +31284,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_data_extend(struct __pyx_t_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":77 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":77   *    *    * cdef _Trie_Node* trie_insert(_Trie_Node* node, int val):             # <<<<<<<<<<<<<< @@ -31300,7 +31301,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_ins    int __pyx_t_3;    __Pyx_RefNannySetupContext("trie_insert", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":79 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":79   * cdef _Trie_Node* trie_insert(_Trie_Node* node, int val):   *     cdef _Trie_Edge** cur   *     cur = &node.root             # <<<<<<<<<<<<<< @@ -31309,7 +31310,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_ins   */    __pyx_v_cur = (&__pyx_v_node->root); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":80 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":80   *     cdef _Trie_Edge** cur   *     cur = &node.root   *     while cur[0] != NULL and cur[0].val != val:             # <<<<<<<<<<<<<< @@ -31326,7 +31327,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_ins      }      if (!__pyx_t_3) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":81 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":81   *     cur = &node.root   *     while cur[0] != NULL and cur[0].val != val:   *         if val > cur[0].val:             # <<<<<<<<<<<<<< @@ -31336,7 +31337,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_ins      __pyx_t_3 = ((__pyx_v_val > (__pyx_v_cur[0])->val) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":82 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":82   *     while cur[0] != NULL and cur[0].val != val:   *         if val > cur[0].val:   *             cur = &cur[0].bigger             # <<<<<<<<<<<<<< @@ -31347,7 +31348,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_ins        goto __pyx_L5;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":83 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":83   *         if val > cur[0].val:   *             cur = &cur[0].bigger   *         elif val < cur[0].val:             # <<<<<<<<<<<<<< @@ -31357,7 +31358,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_ins      __pyx_t_3 = ((__pyx_v_val < (__pyx_v_cur[0])->val) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":84 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":84   *             cur = &cur[0].bigger   *         elif val < cur[0].val:   *             cur = &cur[0].smaller             # <<<<<<<<<<<<<< @@ -31370,7 +31371,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_ins      __pyx_L5:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":85 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":85   *         elif val < cur[0].val:   *             cur = &cur[0].smaller   *     if cur[0] == NULL:             # <<<<<<<<<<<<<< @@ -31380,7 +31381,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_ins    __pyx_t_3 = (((__pyx_v_cur[0]) == NULL) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":86 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":86   *             cur = &cur[0].smaller   *     if cur[0] == NULL:   *         cur[0] = new_trie_edge(val)             # <<<<<<<<<<<<<< @@ -31392,7 +31393,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_ins    }    __pyx_L6:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":87 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":87   *     if cur[0] == NULL:   *         cur[0] = new_trie_edge(val)   *     return cur[0].node             # <<<<<<<<<<<<<< @@ -31402,7 +31403,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_ins    __pyx_r = (__pyx_v_cur[0])->node;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":77 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":77   *    *    * cdef _Trie_Node* trie_insert(_Trie_Node* node, int val):             # <<<<<<<<<<<<<< @@ -31416,7 +31417,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_trie_ins    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":89 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":89   *     return cur[0].node   *    * cdef trie_node_to_map(_Trie_Node* node, result, prefix, int include_zeros):             # <<<<<<<<<<<<<< @@ -31437,7 +31438,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_to_map(struct __pyx_t_4cdec_2s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("trie_node_to_map", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":92 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":92   *     cdef IntList arr   *    *     if include_zeros or node.arr_len > 0:             # <<<<<<<<<<<<<< @@ -31452,7 +31453,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_to_map(struct __pyx_t_4cdec_2s    }    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":93 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":93   *    *     if include_zeros or node.arr_len > 0:   *         arr = IntList()             # <<<<<<<<<<<<<< @@ -31464,7 +31465,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_to_map(struct __pyx_t_4cdec_2s      __pyx_v_arr = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_3);      __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":94 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":94   *     if include_zeros or node.arr_len > 0:   *         arr = IntList()   *         free(arr.arr)             # <<<<<<<<<<<<<< @@ -31473,7 +31474,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_to_map(struct __pyx_t_4cdec_2s   */      free(__pyx_v_arr->arr); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":95 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":95   *         arr = IntList()   *         free(arr.arr)   *         arr.arr = <int*> malloc(node.arr_len * sizeof(int))             # <<<<<<<<<<<<<< @@ -31482,7 +31483,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_to_map(struct __pyx_t_4cdec_2s   */      __pyx_v_arr->arr = ((int *)malloc((__pyx_v_node->arr_len * (sizeof(int))))); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":96 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":96   *         free(arr.arr)   *         arr.arr = <int*> malloc(node.arr_len * sizeof(int))   *         memcpy(arr.arr, node.arr, node.arr_len * sizeof(int))             # <<<<<<<<<<<<<< @@ -31491,7 +31492,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_to_map(struct __pyx_t_4cdec_2s   */      memcpy(__pyx_v_arr->arr, __pyx_v_node->arr, (__pyx_v_node->arr_len * (sizeof(int)))); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":97 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":97   *         arr.arr = <int*> malloc(node.arr_len * sizeof(int))   *         memcpy(arr.arr, node.arr, node.arr_len * sizeof(int))   *         arr.len = node.arr_len             # <<<<<<<<<<<<<< @@ -31501,7 +31502,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_to_map(struct __pyx_t_4cdec_2s      __pyx_t_4 = __pyx_v_node->arr_len;      __pyx_v_arr->len = __pyx_t_4; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":98 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":98   *         memcpy(arr.arr, node.arr, node.arr_len * sizeof(int))   *         arr.len = node.arr_len   *         arr.size = node.arr_len             # <<<<<<<<<<<<<< @@ -31511,7 +31512,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_to_map(struct __pyx_t_4cdec_2s      __pyx_t_4 = __pyx_v_node->arr_len;      __pyx_v_arr->size = __pyx_t_4; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":99 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":99   *         arr.len = node.arr_len   *         arr.size = node.arr_len   *         result[prefix] = arr             # <<<<<<<<<<<<<< @@ -31523,7 +31524,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_to_map(struct __pyx_t_4cdec_2s    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":100 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":100   *         arr.size = node.arr_len   *         result[prefix] = arr   *     trie_edge_to_map(node.root, result, prefix, include_zeros)             # <<<<<<<<<<<<<< @@ -31534,7 +31535,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_to_map(struct __pyx_t_4cdec_2s    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":89 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":89   *     return cur[0].node   *    * cdef trie_node_to_map(_Trie_Node* node, result, prefix, int include_zeros):             # <<<<<<<<<<<<<< @@ -31556,7 +31557,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_node_to_map(struct __pyx_t_4cdec_2s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":102 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":102   *     trie_edge_to_map(node.root, result, prefix, include_zeros)   *    * cdef trie_edge_to_map(_Trie_Edge* edge, result, prefix, int include_zeros):             # <<<<<<<<<<<<<< @@ -31576,7 +31577,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_edge_to_map(struct __pyx_t_4cdec_2s    __Pyx_RefNannySetupContext("trie_edge_to_map", 0);    __Pyx_INCREF(__pyx_v_prefix); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":103 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":103   *    * cdef trie_edge_to_map(_Trie_Edge* edge, result, prefix, int include_zeros):   *     if edge != NULL:             # <<<<<<<<<<<<<< @@ -31586,7 +31587,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_edge_to_map(struct __pyx_t_4cdec_2s    __pyx_t_1 = ((__pyx_v_edge != NULL) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":104 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":104   * cdef trie_edge_to_map(_Trie_Edge* edge, result, prefix, int include_zeros):   *     if edge != NULL:   *         trie_edge_to_map(edge.smaller, result, prefix, include_zeros)             # <<<<<<<<<<<<<< @@ -31597,7 +31598,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_edge_to_map(struct __pyx_t_4cdec_2s      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":105 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":105   *     if edge != NULL:   *         trie_edge_to_map(edge.smaller, result, prefix, include_zeros)   *         trie_edge_to_map(edge.bigger, result, prefix, include_zeros)             # <<<<<<<<<<<<<< @@ -31608,7 +31609,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_edge_to_map(struct __pyx_t_4cdec_2s      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":106 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":106   *         trie_edge_to_map(edge.smaller, result, prefix, include_zeros)   *         trie_edge_to_map(edge.bigger, result, prefix, include_zeros)   *         prefix = prefix + (edge.val,)             # <<<<<<<<<<<<<< @@ -31628,7 +31629,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_edge_to_map(struct __pyx_t_4cdec_2s      __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_2);      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":107 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":107   *         trie_edge_to_map(edge.bigger, result, prefix, include_zeros)   *         prefix = prefix + (edge.val,)   *         trie_node_to_map(edge.node, result, prefix, include_zeros)             # <<<<<<<<<<<<<< @@ -31642,7 +31643,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_edge_to_map(struct __pyx_t_4cdec_2s    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":102 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":102   *     trie_edge_to_map(node.root, result, prefix, include_zeros)   *    * cdef trie_edge_to_map(_Trie_Edge* edge, result, prefix, int include_zeros):             # <<<<<<<<<<<<<< @@ -31665,7 +31666,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_trie_edge_to_map(struct __pyx_t_4cdec_2s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":114 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":114   *     cdef int V   *    *     def __cinit__(self, int alphabet_size):             # <<<<<<<<<<<<<< @@ -31730,7 +31731,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7TrieMap___cinit__(struct __pyx_obj_4cdec_2sa    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":115 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":115   *    *     def __cinit__(self, int alphabet_size):   *         self.V = alphabet_size             # <<<<<<<<<<<<<< @@ -31739,7 +31740,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7TrieMap___cinit__(struct __pyx_obj_4cdec_2sa   */    __pyx_v_self->V = __pyx_v_alphabet_size; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":116 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":116   *     def __cinit__(self, int alphabet_size):   *         self.V = alphabet_size   *         self.root = <_Trie_Node**> malloc(self.V * sizeof(_Trie_Node*))             # <<<<<<<<<<<<<< @@ -31748,7 +31749,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7TrieMap___cinit__(struct __pyx_obj_4cdec_2sa   */    __pyx_v_self->root = ((struct __pyx_t_4cdec_2sa_3_sa__Trie_Node **)malloc((__pyx_v_self->V * (sizeof(struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":117 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":117   *         self.V = alphabet_size   *         self.root = <_Trie_Node**> malloc(self.V * sizeof(_Trie_Node*))   *         memset(self.root, 0, self.V * sizeof(_Trie_Node*))             # <<<<<<<<<<<<<< @@ -31757,7 +31758,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7TrieMap___cinit__(struct __pyx_obj_4cdec_2sa   */    memset(__pyx_v_self->root, 0, (__pyx_v_self->V * (sizeof(struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":114 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":114   *     cdef int V   *    *     def __cinit__(self, int alphabet_size):             # <<<<<<<<<<<<<< @@ -31771,7 +31772,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7TrieMap___cinit__(struct __pyx_obj_4cdec_2sa    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":120 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":120   *    *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -31801,7 +31802,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_4cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__dealloc__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":122 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":122   *     def __dealloc__(self):   *         cdef int i   *         for i from 0 <= i < self.V:             # <<<<<<<<<<<<<< @@ -31811,7 +31812,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_4cdec    __pyx_t_1 = __pyx_v_self->V;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":123 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":123   *         cdef int i   *         for i from 0 <= i < self.V:   *             if self.root[i] != NULL:             # <<<<<<<<<<<<<< @@ -31821,7 +31822,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_4cdec      __pyx_t_2 = (((__pyx_v_self->root[__pyx_v_i]) != NULL) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":124 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":124   *         for i from 0 <= i < self.V:   *             if self.root[i] != NULL:   *                 free_trie_node(self.root[i])             # <<<<<<<<<<<<<< @@ -31836,7 +31837,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_4cdec      __pyx_L5:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":125 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":125   *             if self.root[i] != NULL:   *                 free_trie_node(self.root[i])   *         free(self.root)             # <<<<<<<<<<<<<< @@ -31845,7 +31846,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_4cdec   */    free(__pyx_v_self->root); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":120 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":120   *    *    *     def __dealloc__(self):             # <<<<<<<<<<<<<< @@ -31862,7 +31863,7 @@ static void __pyx_pf_4cdec_2sa_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_4cdec    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":128 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":128   *    *    *     def insert(self, pattern):             # <<<<<<<<<<<<<< @@ -31898,7 +31899,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_4insert(struct __pyx_obj_4cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("insert", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":131 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":131   *         cdef int* p   *         cdef int i, l   *         l = len(pattern)             # <<<<<<<<<<<<<< @@ -31908,7 +31909,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_4insert(struct __pyx_obj_4cdec    __pyx_t_1 = PyObject_Length(__pyx_v_pattern); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_l = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":132 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":132   *         cdef int i, l   *         l = len(pattern)   *         p = <int*> malloc(l*sizeof(int))             # <<<<<<<<<<<<<< @@ -31917,7 +31918,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_4insert(struct __pyx_obj_4cdec   */    __pyx_v_p = ((int *)malloc((__pyx_v_l * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":133 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":133   *         l = len(pattern)   *         p = <int*> malloc(l*sizeof(int))   *         for i from 0 <= i < l:             # <<<<<<<<<<<<<< @@ -31927,7 +31928,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_4insert(struct __pyx_obj_4cdec    __pyx_t_2 = __pyx_v_l;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":134 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":134   *         p = <int*> malloc(l*sizeof(int))   *         for i from 0 <= i < l:   *             p[i] = pattern[i]             # <<<<<<<<<<<<<< @@ -31941,7 +31942,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_4insert(struct __pyx_obj_4cdec      (__pyx_v_p[__pyx_v_i]) = __pyx_t_4;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":135 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":135   *         for i from 0 <= i < l:   *             p[i] = pattern[i]   *         self._insert(p,l)             # <<<<<<<<<<<<<< @@ -31950,7 +31951,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_4insert(struct __pyx_obj_4cdec   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_TrieMap *)__pyx_v_self->__pyx_vtab)->_insert(__pyx_v_self, __pyx_v_p, __pyx_v_l); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":136 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":136   *             p[i] = pattern[i]   *         self._insert(p,l)   *         free(p)             # <<<<<<<<<<<<<< @@ -31959,7 +31960,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_4insert(struct __pyx_obj_4cdec   */    free(__pyx_v_p); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":128 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":128   *    *    *     def insert(self, pattern):             # <<<<<<<<<<<<<< @@ -31980,7 +31981,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_4insert(struct __pyx_obj_4cdec    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":139 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":139   *    *    *     cdef _Trie_Node* _insert(self, int* pattern, int pattern_len):             # <<<<<<<<<<<<<< @@ -31997,7 +31998,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap    int __pyx_t_2;    __Pyx_RefNannySetupContext("_insert", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":142 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":142   *         cdef int i   *         cdef _Trie_Node* node   *         if self.root[pattern[0]] == NULL:             # <<<<<<<<<<<<<< @@ -32007,7 +32008,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap    __pyx_t_1 = (((__pyx_v_self->root[(__pyx_v_pattern[0])]) == NULL) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":143 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":143   *         cdef _Trie_Node* node   *         if self.root[pattern[0]] == NULL:   *             self.root[pattern[0]] = new_trie_node()             # <<<<<<<<<<<<<< @@ -32019,7 +32020,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":144 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":144   *         if self.root[pattern[0]] == NULL:   *             self.root[pattern[0]] = new_trie_node()   *         node = self.root[pattern[0]]             # <<<<<<<<<<<<<< @@ -32028,7 +32029,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap   */    __pyx_v_node = (__pyx_v_self->root[(__pyx_v_pattern[0])]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":145 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":145   *             self.root[pattern[0]] = new_trie_node()   *         node = self.root[pattern[0]]   *         for i from 1 <= i < pattern_len:             # <<<<<<<<<<<<<< @@ -32038,7 +32039,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap    __pyx_t_2 = __pyx_v_pattern_len;    for (__pyx_v_i = 1; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":146 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":146   *         node = self.root[pattern[0]]   *         for i from 1 <= i < pattern_len:   *             node = trie_insert(node, pattern[i])             # <<<<<<<<<<<<<< @@ -32048,7 +32049,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap      __pyx_v_node = __pyx_f_4cdec_2sa_3_sa_trie_insert(__pyx_v_node, (__pyx_v_pattern[__pyx_v_i]));    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":147 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":147   *         for i from 1 <= i < pattern_len:   *             node = trie_insert(node, pattern[i])   *         return node             # <<<<<<<<<<<<<< @@ -32058,7 +32059,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap    __pyx_r = __pyx_v_node;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":139 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":139   *    *    *     cdef _Trie_Node* _insert(self, int* pattern, int pattern_len):             # <<<<<<<<<<<<<< @@ -32072,7 +32073,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":149 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":149   *         return node   *    *     def contains(self, pattern):             # <<<<<<<<<<<<<< @@ -32110,7 +32111,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_6contains(struct __pyx_obj_4cd    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("contains", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":153 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":153   *         cdef int i, l   *         cdef _Trie_Node* node   *         l = len(pattern)             # <<<<<<<<<<<<<< @@ -32120,7 +32121,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_6contains(struct __pyx_obj_4cd    __pyx_t_1 = PyObject_Length(__pyx_v_pattern); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_l = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":154 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":154   *         cdef _Trie_Node* node   *         l = len(pattern)   *         p = <int*> malloc(l*sizeof(int))             # <<<<<<<<<<<<<< @@ -32129,7 +32130,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_6contains(struct __pyx_obj_4cd   */    __pyx_v_p = ((int *)malloc((__pyx_v_l * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":155 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":155   *         l = len(pattern)   *         p = <int*> malloc(l*sizeof(int))   *         for i from 0 <= i < l:             # <<<<<<<<<<<<<< @@ -32139,7 +32140,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_6contains(struct __pyx_obj_4cd    __pyx_t_2 = __pyx_v_l;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":156 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":156   *         p = <int*> malloc(l*sizeof(int))   *         for i from 0 <= i < l:   *             p[i] = pattern[i]             # <<<<<<<<<<<<<< @@ -32153,7 +32154,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_6contains(struct __pyx_obj_4cd      (__pyx_v_p[__pyx_v_i]) = __pyx_t_4;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":157 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":157   *         for i from 0 <= i < l:   *             p[i] = pattern[i]   *         node = self._contains(p,l)             # <<<<<<<<<<<<<< @@ -32162,7 +32163,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_6contains(struct __pyx_obj_4cd   */    __pyx_v_node = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_TrieMap *)__pyx_v_self->__pyx_vtab)->_contains(__pyx_v_self, __pyx_v_p, __pyx_v_l); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":158 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":158   *             p[i] = pattern[i]   *         node = self._contains(p,l)   *         free(p)             # <<<<<<<<<<<<<< @@ -32171,7 +32172,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_6contains(struct __pyx_obj_4cd   */    free(__pyx_v_p); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":159 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":159   *         node = self._contains(p,l)   *         free(p)   *         if node == NULL:             # <<<<<<<<<<<<<< @@ -32181,7 +32182,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_6contains(struct __pyx_obj_4cd    __pyx_t_5 = ((__pyx_v_node == NULL) != 0);    if (__pyx_t_5) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":160 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":160   *         free(p)   *         if node == NULL:   *             return False             # <<<<<<<<<<<<<< @@ -32195,7 +32196,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_6contains(struct __pyx_obj_4cd    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":162 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":162   *             return False   *         else:   *             return True             # <<<<<<<<<<<<<< @@ -32208,7 +32209,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_6contains(struct __pyx_obj_4cd      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":149 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":149   *         return node   *    *     def contains(self, pattern):             # <<<<<<<<<<<<<< @@ -32227,7 +32228,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_6contains(struct __pyx_obj_4cd    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":164 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":164   *             return True   *    *     cdef _Trie_Node* _contains(self, int* pattern, int pattern_len):             # <<<<<<<<<<<<<< @@ -32245,7 +32246,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap    int __pyx_t_3;    __Pyx_RefNannySetupContext("_contains", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":167 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":167   *         cdef int i   *         cdef _Trie_Node* node   *         node = self.root[pattern[0]]             # <<<<<<<<<<<<<< @@ -32254,7 +32255,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap   */    __pyx_v_node = (__pyx_v_self->root[(__pyx_v_pattern[0])]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":168 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":168   *         cdef _Trie_Node* node   *         node = self.root[pattern[0]]   *         i = 1             # <<<<<<<<<<<<<< @@ -32263,7 +32264,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap   */    __pyx_v_i = 1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":169 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":169   *         node = self.root[pattern[0]]   *         i = 1   *         while node != NULL and i < pattern_len:             # <<<<<<<<<<<<<< @@ -32280,7 +32281,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap      }      if (!__pyx_t_3) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":170 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":170   *         i = 1   *         while node != NULL and i < pattern_len:   *             node = trie_find(node, pattern[i])             # <<<<<<<<<<<<<< @@ -32289,7 +32290,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap   */      __pyx_v_node = __pyx_f_4cdec_2sa_3_sa_trie_find(__pyx_v_node, (__pyx_v_pattern[__pyx_v_i])); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":171 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":171   *         while node != NULL and i < pattern_len:   *             node = trie_find(node, pattern[i])   *             i = i+1             # <<<<<<<<<<<<<< @@ -32299,7 +32300,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap      __pyx_v_i = (__pyx_v_i + 1);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":172 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":172   *             node = trie_find(node, pattern[i])   *             i = i+1   *         return node             # <<<<<<<<<<<<<< @@ -32309,7 +32310,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap    __pyx_r = __pyx_v_node;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":164 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":164   *             return True   *    *     cdef _Trie_Node* _contains(self, int* pattern, int pattern_len):             # <<<<<<<<<<<<<< @@ -32323,7 +32324,7 @@ static struct __pyx_t_4cdec_2sa_3_sa__Trie_Node *__pyx_f_4cdec_2sa_3_sa_7TrieMap    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":174 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":174   *         return node   *    *     def toMap(self, flag):             # <<<<<<<<<<<<<< @@ -32359,7 +32360,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_8toMap(struct __pyx_obj_4cdec_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("toMap", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":177 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":177   *         cdef int i, include_zeros   *    *         if flag:             # <<<<<<<<<<<<<< @@ -32369,7 +32370,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_8toMap(struct __pyx_obj_4cdec_    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":178 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":178   *    *         if flag:   *             include_zeros=1             # <<<<<<<<<<<<<< @@ -32381,7 +32382,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_8toMap(struct __pyx_obj_4cdec_    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":180 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":180   *             include_zeros=1   *         else:   *             include_zeros=0             # <<<<<<<<<<<<<< @@ -32392,7 +32393,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_8toMap(struct __pyx_obj_4cdec_    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":181 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":181   *         else:   *             include_zeros=0   *         result = {}             # <<<<<<<<<<<<<< @@ -32404,7 +32405,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_8toMap(struct __pyx_obj_4cdec_    __pyx_v_result = ((PyObject*)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":182 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":182   *             include_zeros=0   *         result = {}   *         for i from 0 <= i < self.V:             # <<<<<<<<<<<<<< @@ -32414,7 +32415,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_8toMap(struct __pyx_obj_4cdec_    __pyx_t_3 = __pyx_v_self->V;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":183 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":183   *         result = {}   *         for i from 0 <= i < self.V:   *             if self.root[i] != NULL:             # <<<<<<<<<<<<<< @@ -32424,7 +32425,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_8toMap(struct __pyx_obj_4cdec_      __pyx_t_1 = (((__pyx_v_self->root[__pyx_v_i]) != NULL) != 0);      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":184 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":184   *         for i from 0 <= i < self.V:   *             if self.root[i] != NULL:   *                 trie_node_to_map(self.root[i], result, (i,), include_zeros)             # <<<<<<<<<<<<<< @@ -32447,7 +32448,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_8toMap(struct __pyx_obj_4cdec_      __pyx_L6:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":185 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":185   *             if self.root[i] != NULL:   *                 trie_node_to_map(self.root[i], result, (i,), include_zeros)   *         return result             # <<<<<<<<<<<<<< @@ -32459,7 +32460,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_8toMap(struct __pyx_obj_4cdec_    __pyx_r = __pyx_v_result;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":174 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":174   *         return node   *    *     def toMap(self, flag):             # <<<<<<<<<<<<<< @@ -32480,7 +32481,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7TrieMap_8toMap(struct __pyx_obj_4cdec_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":200 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":200   *     cdef write_map(self, m, FILE* f)   *    *     def __cinit__(self, fsarray=None, from_stats=None, from_binary=None,             # <<<<<<<<<<<<<< @@ -32638,7 +32639,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":204 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":204   *             max_length=5, max_nonterminals=2,   *             train_max_initial_size=10, train_min_gap_size=2):   *         self.precompute_rank = precompute_rank             # <<<<<<<<<<<<<< @@ -32648,7 +32649,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4    __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_precompute_rank); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->precompute_rank = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":205 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":205   *             train_max_initial_size=10, train_min_gap_size=2):   *         self.precompute_rank = precompute_rank   *         self.precompute_secondary_rank = precompute_secondary_rank             # <<<<<<<<<<<<<< @@ -32658,7 +32659,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4    __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_precompute_secondary_rank); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->precompute_secondary_rank = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":206 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":206   *         self.precompute_rank = precompute_rank   *         self.precompute_secondary_rank = precompute_secondary_rank   *         self.max_length = max_length             # <<<<<<<<<<<<<< @@ -32668,7 +32669,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4    __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_max_length); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->max_length = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":207 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":207   *         self.precompute_secondary_rank = precompute_secondary_rank   *         self.max_length = max_length   *         self.max_nonterminals = max_nonterminals             # <<<<<<<<<<<<<< @@ -32678,7 +32679,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4    __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_max_nonterminals); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->max_nonterminals = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":208 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":208   *         self.max_length = max_length   *         self.max_nonterminals = max_nonterminals   *         self.train_max_initial_size = train_max_initial_size             # <<<<<<<<<<<<<< @@ -32688,7 +32689,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4    __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_train_max_initial_size); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->train_max_initial_size = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":209 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":209   *         self.max_nonterminals = max_nonterminals   *         self.train_max_initial_size = train_max_initial_size   *         self.train_min_gap_size = train_min_gap_size             # <<<<<<<<<<<<<< @@ -32698,7 +32699,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4    __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_train_min_gap_size); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->train_min_gap_size = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":210 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":210   *         self.train_max_initial_size = train_max_initial_size   *         self.train_min_gap_size = train_min_gap_size   *         if from_binary:             # <<<<<<<<<<<<<< @@ -32708,7 +32709,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_from_binary); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":211 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":211   *         self.train_min_gap_size = train_min_gap_size   *         if from_binary:   *             self.read_binary(from_binary)             # <<<<<<<<<<<<<< @@ -32730,7 +32731,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4      goto __pyx_L3;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":212 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":212   *         if from_binary:   *             self.read_binary(from_binary)   *         elif from_stats:             # <<<<<<<<<<<<<< @@ -32740,7 +32741,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_from_stats); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":213 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":213   *             self.read_binary(from_binary)   *         elif from_stats:   *             self.precompute(from_stats, fsarray)             # <<<<<<<<<<<<<< @@ -32766,7 +32767,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":200 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":200   *     cdef write_map(self, m, FILE* f)   *    *     def __cinit__(self, fsarray=None, from_stats=None, from_binary=None,             # <<<<<<<<<<<<<< @@ -32788,7 +32789,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14Precomputation___cinit__(struct __pyx_obj_4    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":216 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":216   *    *    *     def read_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -32832,7 +32833,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("read_binary", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":218 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":218   *     def read_binary(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "r")             # <<<<<<<<<<<<<< @@ -32841,7 +32842,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_r); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":219 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":219   *         cdef FILE* f   *         f = fopen(filename, "r")   *         fread(&(self.precompute_rank), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -32850,7 +32851,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __   */    fread((&__pyx_v_self->precompute_rank), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":220 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":220   *         f = fopen(filename, "r")   *         fread(&(self.precompute_rank), sizeof(int), 1, f)   *         fread(&(self.precompute_secondary_rank), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -32859,7 +32860,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __   */    fread((&__pyx_v_self->precompute_secondary_rank), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":221 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":221   *         fread(&(self.precompute_rank), sizeof(int), 1, f)   *         fread(&(self.precompute_secondary_rank), sizeof(int), 1, f)   *         fread(&(self.max_length), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -32868,7 +32869,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __   */    fread((&__pyx_v_self->max_length), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":222 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":222   *         fread(&(self.precompute_secondary_rank), sizeof(int), 1, f)   *         fread(&(self.max_length), sizeof(int), 1, f)   *         fread(&(self.max_nonterminals), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -32877,7 +32878,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __   */    fread((&__pyx_v_self->max_nonterminals), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":223 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":223   *         fread(&(self.max_length), sizeof(int), 1, f)   *         fread(&(self.max_nonterminals), sizeof(int), 1, f)   *         fread(&(self.train_max_initial_size), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -32886,7 +32887,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __   */    fread((&__pyx_v_self->train_max_initial_size), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":224 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":224   *         fread(&(self.max_nonterminals), sizeof(int), 1, f)   *         fread(&(self.train_max_initial_size), sizeof(int), 1, f)   *         fread(&(self.train_min_gap_size), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -32895,7 +32896,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __   */    fread((&__pyx_v_self->train_min_gap_size), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":225 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":225   *         fread(&(self.train_max_initial_size), sizeof(int), 1, f)   *         fread(&(self.train_min_gap_size), sizeof(int), 1, f)   *         self.precomputed_index = self.read_map(f)             # <<<<<<<<<<<<<< @@ -32910,7 +32911,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __    __pyx_v_self->precomputed_index = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":226 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":226   *         fread(&(self.train_min_gap_size), sizeof(int), 1, f)   *         self.precomputed_index = self.read_map(f)   *         self.precomputed_collocations = self.read_map(f)             # <<<<<<<<<<<<<< @@ -32925,7 +32926,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __    __pyx_v_self->precomputed_collocations = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":227 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":227   *         self.precomputed_index = self.read_map(f)   *         self.precomputed_collocations = self.read_map(f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -32934,7 +32935,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":216 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":216   *    *    *     def read_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -32955,7 +32956,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_2read_binary(struct __    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":230 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":230   *    *    *     def write_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -33000,7 +33001,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_binary", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":232 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":232   *     def write_binary(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "w")             # <<<<<<<<<<<<<< @@ -33009,7 +33010,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_w); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":233 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":233   *         cdef FILE* f   *         f = fopen(filename, "w")   *         fwrite(&(self.precompute_rank), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33018,7 +33019,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _   */    fwrite((&__pyx_v_self->precompute_rank), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":234 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":234   *         f = fopen(filename, "w")   *         fwrite(&(self.precompute_rank), sizeof(int), 1, f)   *         fwrite(&(self.precompute_secondary_rank), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33027,7 +33028,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _   */    fwrite((&__pyx_v_self->precompute_secondary_rank), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":235 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":235   *         fwrite(&(self.precompute_rank), sizeof(int), 1, f)   *         fwrite(&(self.precompute_secondary_rank), sizeof(int), 1, f)   *         fwrite(&(self.max_length), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33036,7 +33037,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _   */    fwrite((&__pyx_v_self->max_length), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":236 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":236   *         fwrite(&(self.precompute_secondary_rank), sizeof(int), 1, f)   *         fwrite(&(self.max_length), sizeof(int), 1, f)   *         fwrite(&(self.max_nonterminals), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33045,7 +33046,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _   */    fwrite((&__pyx_v_self->max_nonterminals), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":237 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":237   *         fwrite(&(self.max_length), sizeof(int), 1, f)   *         fwrite(&(self.max_nonterminals), sizeof(int), 1, f)   *         fwrite(&(self.train_max_initial_size), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33054,7 +33055,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _   */    fwrite((&__pyx_v_self->train_max_initial_size), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":238 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":238   *         fwrite(&(self.max_nonterminals), sizeof(int), 1, f)   *         fwrite(&(self.train_max_initial_size), sizeof(int), 1, f)   *         fwrite(&(self.train_min_gap_size), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33063,7 +33064,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _   */    fwrite((&__pyx_v_self->train_min_gap_size), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":239 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":239   *         fwrite(&(self.train_max_initial_size), sizeof(int), 1, f)   *         fwrite(&(self.train_min_gap_size), sizeof(int), 1, f)   *         self.write_map(self.precomputed_index, f)             # <<<<<<<<<<<<<< @@ -33077,7 +33078,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":240 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":240   *         fwrite(&(self.train_min_gap_size), sizeof(int), 1, f)   *         self.write_map(self.precomputed_index, f)   *         self.write_map(self.precomputed_collocations, f)             # <<<<<<<<<<<<<< @@ -33091,7 +33092,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":241 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":241   *         self.write_map(self.precomputed_index, f)   *         self.write_map(self.precomputed_collocations, f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -33100,7 +33101,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":230 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":230   *    *    *     def write_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -33122,7 +33123,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_4write_binary(struct _    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":244 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":244   *    *    *     cdef write_map(self, m, FILE* f):             # <<<<<<<<<<<<<< @@ -33153,7 +33154,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_map", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":248 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":248   *         cdef IntList arr   *    *         N = len(m)             # <<<<<<<<<<<<<< @@ -33163,7 +33164,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED    __pyx_t_1 = PyObject_Length(__pyx_v_m); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_N = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":249 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":249   *    *         N = len(m)   *         fwrite(&(N), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33172,7 +33173,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED   */    fwrite((&__pyx_v_N), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":250 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":250   *         N = len(m)   *         fwrite(&(N), sizeof(int), 1, f)   *         for pattern, val in m.iteritems():             # <<<<<<<<<<<<<< @@ -33200,7 +33201,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED      __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_6);      __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":251 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":251   *         fwrite(&(N), sizeof(int), 1, f)   *         for pattern, val in m.iteritems():   *             N = len(pattern)             # <<<<<<<<<<<<<< @@ -33210,7 +33211,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED      __pyx_t_8 = PyObject_Length(__pyx_v_pattern); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_v_N = __pyx_t_8; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":252 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":252   *         for pattern, val in m.iteritems():   *             N = len(pattern)   *             fwrite(&(N), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33219,7 +33220,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED   */      fwrite((&__pyx_v_N), (sizeof(int)), 1, __pyx_v_f); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":253 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":253   *             N = len(pattern)   *             fwrite(&(N), sizeof(int), 1, f)   *             for word_id in pattern:             # <<<<<<<<<<<<<< @@ -33264,7 +33265,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED        __Pyx_XDECREF_SET(__pyx_v_word_id, __pyx_t_5);        __pyx_t_5 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":254 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":254   *             fwrite(&(N), sizeof(int), 1, f)   *             for word_id in pattern:   *                 i = word_id             # <<<<<<<<<<<<<< @@ -33274,7 +33275,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED        __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_v_word_id); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_v_i = __pyx_t_7; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":255 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":255   *             for word_id in pattern:   *                 i = word_id   *                 fwrite(&(i), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33285,7 +33286,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED      }      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":256 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":256   *                 i = word_id   *                 fwrite(&(i), sizeof(int), 1, f)   *             arr = val             # <<<<<<<<<<<<<< @@ -33298,7 +33299,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED      __Pyx_XDECREF_SET(__pyx_v_arr, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_6));      __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":257 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":257   *                 fwrite(&(i), sizeof(int), 1, f)   *             arr = val   *             arr.write_handle(f)             # <<<<<<<<<<<<<< @@ -33309,7 +33310,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED    }    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":244 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":244   *    *    *     cdef write_map(self, m, FILE* f):             # <<<<<<<<<<<<<< @@ -33336,7 +33337,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_write_map(CYTHON_UNUSED    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":260 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":260   *    *    *     cdef read_map(self, FILE* f):             # <<<<<<<<<<<<<< @@ -33364,7 +33365,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("read_map", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":264 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":264   *         cdef IntList arr   *    *         m = {}             # <<<<<<<<<<<<<< @@ -33376,7 +33377,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED    __pyx_v_m = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":265 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":265   *    *         m = {}   *         fread(&(N), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33385,7 +33386,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED   */    fread((&__pyx_v_N), (sizeof(int)), 1, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":266 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":266   *         m = {}   *         fread(&(N), sizeof(int), 1, f)   *         for j from 0 <= j < N:             # <<<<<<<<<<<<<< @@ -33395,7 +33396,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED    __pyx_t_2 = __pyx_v_N;    for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_2; __pyx_v_j++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":267 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":267   *         fread(&(N), sizeof(int), 1, f)   *         for j from 0 <= j < N:   *             fread(&(i), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33404,7 +33405,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED   */      fread((&__pyx_v_i), (sizeof(int)), 1, __pyx_v_f); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":268 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":268   *         for j from 0 <= j < N:   *             fread(&(i), sizeof(int), 1, f)   *             key = ()             # <<<<<<<<<<<<<< @@ -33414,7 +33415,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED      __Pyx_INCREF(__pyx_empty_tuple);      __Pyx_XDECREF_SET(__pyx_v_key, __pyx_empty_tuple); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":269 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":269   *             fread(&(i), sizeof(int), 1, f)   *             key = ()   *             for k from 0 <= k < i:             # <<<<<<<<<<<<<< @@ -33424,7 +33425,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED      __pyx_t_3 = __pyx_v_i;      for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_3; __pyx_v_k++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":270 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":270   *             key = ()   *             for k from 0 <= k < i:   *                 fread(&(word_id), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -33433,7 +33434,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED   */        fread((&__pyx_v_word_id), (sizeof(int)), 1, __pyx_v_f); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":271 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":271   *             for k from 0 <= k < i:   *                 fread(&(word_id), sizeof(int), 1, f)   *                 key = key + (word_id,)             # <<<<<<<<<<<<<< @@ -33454,7 +33455,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED        __pyx_t_1 = 0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":272 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":272   *                 fread(&(word_id), sizeof(int), 1, f)   *                 key = key + (word_id,)   *             arr = IntList()             # <<<<<<<<<<<<<< @@ -33466,7 +33467,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED      __Pyx_XDECREF_SET(__pyx_v_arr, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1));      __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":273 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":273   *                 key = key + (word_id,)   *             arr = IntList()   *             arr.read_handle(f)             # <<<<<<<<<<<<<< @@ -33475,7 +33476,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED   */      ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_arr->__pyx_vtab)->read_handle(__pyx_v_arr, __pyx_v_f); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":274 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":274   *             arr = IntList()   *             arr.read_handle(f)   *             m[key] = arr             # <<<<<<<<<<<<<< @@ -33485,7 +33486,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED      if (unlikely(PyDict_SetItem(__pyx_v_m, __pyx_v_key, ((PyObject *)__pyx_v_arr)) < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":275 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":275   *             arr.read_handle(f)   *             m[key] = arr   *         return m             # <<<<<<<<<<<<<< @@ -33497,7 +33498,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED    __pyx_r = __pyx_v_m;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":260 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":260   *    *    *     cdef read_map(self, FILE* f):             # <<<<<<<<<<<<<< @@ -33520,7 +33521,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_14Precomputation_read_map(CYTHON_UNUSED    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":278 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":278   *    *    *     def precompute(self, stats, SuffixArray sarray):             # <<<<<<<<<<<<<< @@ -33672,7 +33673,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("precompute", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":280 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":280   *     def precompute(self, stats, SuffixArray sarray):   *         cdef int i, l, N, max_pattern_len, i1, l1, i2, l2, i3, l3, ptr1, ptr2, ptr3, is_super, sent_count, max_rank   *         cdef DataArray darray = sarray.darray             # <<<<<<<<<<<<<< @@ -33684,7 +33685,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_darray = ((struct __pyx_obj_4cdec_2sa_3_sa_DataArray *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":285 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":285   *         cdef _Trie_Node* node   *    *         data = darray.data             # <<<<<<<<<<<<<< @@ -33696,7 +33697,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_data = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":287 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":287   *         data = darray.data   *    *         frequent_patterns = TrieMap(len(darray.id2word))             # <<<<<<<<<<<<<< @@ -33720,7 +33721,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_frequent_patterns = ((struct __pyx_obj_4cdec_2sa_3_sa_TrieMap *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":288 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":288   *    *         frequent_patterns = TrieMap(len(darray.id2word))   *         super_frequent_patterns = TrieMap(len(darray.id2word))             # <<<<<<<<<<<<<< @@ -33744,7 +33745,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_super_frequent_patterns = ((struct __pyx_obj_4cdec_2sa_3_sa_TrieMap *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":289 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":289   *         frequent_patterns = TrieMap(len(darray.id2word))   *         super_frequent_patterns = TrieMap(len(darray.id2word))   *         collocations = TrieMap(len(darray.id2word))             # <<<<<<<<<<<<<< @@ -33768,7 +33769,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_collocations = ((struct __pyx_obj_4cdec_2sa_3_sa_TrieMap *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":291 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":291   *         collocations = TrieMap(len(darray.id2word))   *    *         I_set = set()             # <<<<<<<<<<<<<< @@ -33780,7 +33781,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_I_set = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":292 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":292   *    *         I_set = set()   *         J_set = set()             # <<<<<<<<<<<<<< @@ -33792,7 +33793,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_J_set = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":293 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":293   *         I_set = set()   *         J_set = set()   *         J2_set = set()             # <<<<<<<<<<<<<< @@ -33804,7 +33805,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_J2_set = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":294 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":294   *         J_set = set()   *         J2_set = set()   *         IJ_set = set()             # <<<<<<<<<<<<<< @@ -33816,7 +33817,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_IJ_set = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":295 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":295   *         J2_set = set()   *         IJ_set = set()   *         pattern_rank = {}             # <<<<<<<<<<<<<< @@ -33828,7 +33829,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_pattern_rank = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":297 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":297   *         pattern_rank = {}   *    *         logger.info("Precomputing frequent intersections")             # <<<<<<<<<<<<<< @@ -33845,7 +33846,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":298 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":298   *    *         logger.info("Precomputing frequent intersections")   *         cdef float start_time = monitor_cpu()             # <<<<<<<<<<<<<< @@ -33861,7 +33862,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __pyx_v_start_time = __pyx_t_4; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":300 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":300   *         cdef float start_time = monitor_cpu()   *    *         max_pattern_len = 0             # <<<<<<<<<<<<<< @@ -33870,7 +33871,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */    __pyx_v_max_pattern_len = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":301 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":301   *    *         max_pattern_len = 0   *         for rank, (_, _, phrase) in enumerate(stats):             # <<<<<<<<<<<<<< @@ -33985,7 +33986,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __pyx_t_3 = __pyx_t_6;      __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":302 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":302   *         max_pattern_len = 0   *         for rank, (_, _, phrase) in enumerate(stats):   *             if rank >= self.precompute_rank:             # <<<<<<<<<<<<<< @@ -34000,7 +34001,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;      if (__pyx_t_12) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":303 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":303   *         for rank, (_, _, phrase) in enumerate(stats):   *             if rank >= self.precompute_rank:   *                 break             # <<<<<<<<<<<<<< @@ -34010,7 +34011,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        goto __pyx_L4_break;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":304 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":304   *             if rank >= self.precompute_rank:   *                 break   *             max_pattern_len = max(max_pattern_len, len(phrase))             # <<<<<<<<<<<<<< @@ -34026,7 +34027,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      }      __pyx_v_max_pattern_len = __pyx_t_15; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":305 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":305   *                 break   *             max_pattern_len = max(max_pattern_len, len(phrase))   *             frequent_patterns.insert(phrase)             # <<<<<<<<<<<<<< @@ -34046,7 +34047,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":306 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":306   *             max_pattern_len = max(max_pattern_len, len(phrase))   *             frequent_patterns.insert(phrase)   *             I_set.add(phrase)             # <<<<<<<<<<<<<< @@ -34055,7 +34056,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */      __pyx_t_16 = PySet_Add(__pyx_v_I_set, __pyx_v_phrase); if (unlikely(__pyx_t_16 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":307 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":307   *             frequent_patterns.insert(phrase)   *             I_set.add(phrase)   *             pattern_rank[phrase] = rank             # <<<<<<<<<<<<<< @@ -34064,7 +34065,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */      if (unlikely(PyDict_SetItem(__pyx_v_pattern_rank, __pyx_v_phrase, __pyx_v_rank) < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":308 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":308   *             I_set.add(phrase)   *             pattern_rank[phrase] = rank   *             if rank < self.precompute_secondary_rank:             # <<<<<<<<<<<<<< @@ -34079,7 +34080,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      if (__pyx_t_12) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":309 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":309   *             pattern_rank[phrase] = rank   *             if rank < self.precompute_secondary_rank:   *                 super_frequent_patterns.insert(phrase)             # <<<<<<<<<<<<<< @@ -34099,7 +34100,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":310 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":310   *             if rank < self.precompute_secondary_rank:   *                 super_frequent_patterns.insert(phrase)   *                 J_set.add(phrase)             # <<<<<<<<<<<<<< @@ -34115,7 +34116,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":312 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":312   *                 J_set.add(phrase)   *    *         queue = IntList(increment=1000)             # <<<<<<<<<<<<<< @@ -34131,7 +34132,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_queue = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":314 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":314   *         queue = IntList(increment=1000)   *    *         logger.info("    Computing inverted indexes...")             # <<<<<<<<<<<<<< @@ -34148,7 +34149,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":315 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":315   *    *         logger.info("    Computing inverted indexes...")   *         N = len(data)             # <<<<<<<<<<<<<< @@ -34158,7 +34159,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_t_2 = PyObject_Length(((PyObject *)__pyx_v_data)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_N = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":316 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":316   *         logger.info("    Computing inverted indexes...")   *         N = len(data)   *         for i from 0 <= i < N:             # <<<<<<<<<<<<<< @@ -34168,7 +34169,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_t_14 = __pyx_v_N;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_14; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":317 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":317   *         N = len(data)   *         for i from 0 <= i < N:   *             sa_word_id = data.arr[i]             # <<<<<<<<<<<<<< @@ -34177,7 +34178,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */      __pyx_v_sa_word_id = (__pyx_v_data->arr[__pyx_v_i]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":318 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":318   *         for i from 0 <= i < N:   *             sa_word_id = data.arr[i]   *             if sa_word_id == 1:             # <<<<<<<<<<<<<< @@ -34187,7 +34188,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __pyx_t_12 = ((__pyx_v_sa_word_id == 1) != 0);      if (__pyx_t_12) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":319 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":319   *             sa_word_id = data.arr[i]   *             if sa_word_id == 1:   *                 queue._append(-1)             # <<<<<<<<<<<<<< @@ -34199,7 +34200,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":321 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":321   *                 queue._append(-1)   *             else:   *                 for l from 1 <= l <= max_pattern_len:             # <<<<<<<<<<<<<< @@ -34209,7 +34210,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __pyx_t_17 = __pyx_v_max_pattern_len;        for (__pyx_v_l = 1; __pyx_v_l <= __pyx_t_17; __pyx_v_l++) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":322 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":322   *             else:   *                 for l from 1 <= l <= max_pattern_len:   *                     node = frequent_patterns._contains(data.arr+i, l)             # <<<<<<<<<<<<<< @@ -34218,7 +34219,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */          __pyx_v_node = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_TrieMap *)__pyx_v_frequent_patterns->__pyx_vtab)->_contains(__pyx_v_frequent_patterns, (__pyx_v_data->arr + __pyx_v_i), __pyx_v_l); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":323 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":323   *                 for l from 1 <= l <= max_pattern_len:   *                     node = frequent_patterns._contains(data.arr+i, l)   *                     if node == NULL:             # <<<<<<<<<<<<<< @@ -34228,7 +34229,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          __pyx_t_12 = ((__pyx_v_node == NULL) != 0);          if (__pyx_t_12) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":324 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":324   *                     node = frequent_patterns._contains(data.arr+i, l)   *                     if node == NULL:   *                         break             # <<<<<<<<<<<<<< @@ -34238,7 +34239,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p            goto __pyx_L13_break;          } -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":325 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":325   *                     if node == NULL:   *                         break   *                     queue._append(i)             # <<<<<<<<<<<<<< @@ -34247,7 +34248,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */          ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_queue->__pyx_vtab)->_append(__pyx_v_queue, __pyx_v_i); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":326 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":326   *                         break   *                     queue._append(i)   *                     queue._append(l)             # <<<<<<<<<<<<<< @@ -34256,7 +34257,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */          ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_queue->__pyx_vtab)->_append(__pyx_v_queue, __pyx_v_l); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":327 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":327   *                     queue._append(i)   *                     queue._append(l)   *                     trie_node_data_append(node, i)             # <<<<<<<<<<<<<< @@ -34272,7 +34273,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __pyx_L11:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":329 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":329   *                     trie_node_data_append(node, i)   *    *         logger.info("    Computing collocations...")             # <<<<<<<<<<<<<< @@ -34289,7 +34290,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":330 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":330   *    *         logger.info("    Computing collocations...")   *         N = len(queue)             # <<<<<<<<<<<<<< @@ -34299,7 +34300,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_t_2 = PyObject_Length(((PyObject *)__pyx_v_queue)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_N = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":331 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":331   *         logger.info("    Computing collocations...")   *         N = len(queue)   *         ptr1 = 0             # <<<<<<<<<<<<<< @@ -34308,7 +34309,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */    __pyx_v_ptr1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":332 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":332   *         N = len(queue)   *         ptr1 = 0   *         sent_count = 0             # <<<<<<<<<<<<<< @@ -34317,7 +34318,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */    __pyx_v_sent_count = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":333 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":333   *         ptr1 = 0   *         sent_count = 0   *         while ptr1 < N:    # main loop             # <<<<<<<<<<<<<< @@ -34328,7 +34329,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __pyx_t_12 = ((__pyx_v_ptr1 < __pyx_v_N) != 0);      if (!__pyx_t_12) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":334 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":334   *         sent_count = 0   *         while ptr1 < N:    # main loop   *             i1 = queue.arr[ptr1]             # <<<<<<<<<<<<<< @@ -34337,7 +34338,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */      __pyx_v_i1 = (__pyx_v_queue->arr[__pyx_v_ptr1]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":335 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":335   *         while ptr1 < N:    # main loop   *             i1 = queue.arr[ptr1]   *             if i1 > -1:             # <<<<<<<<<<<<<< @@ -34347,7 +34348,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __pyx_t_12 = ((__pyx_v_i1 > -1) != 0);      if (__pyx_t_12) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":336 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":336   *             i1 = queue.arr[ptr1]   *             if i1 > -1:   *                 l1 = queue.arr[ptr1+1]             # <<<<<<<<<<<<<< @@ -34356,7 +34357,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */        __pyx_v_l1 = (__pyx_v_queue->arr[(__pyx_v_ptr1 + 1)]); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":337 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":337   *             if i1 > -1:   *                 l1 = queue.arr[ptr1+1]   *                 ptr2 = ptr1 + 2             # <<<<<<<<<<<<<< @@ -34365,7 +34366,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */        __pyx_v_ptr2 = (__pyx_v_ptr1 + 2); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":338 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":338   *                 l1 = queue.arr[ptr1+1]   *                 ptr2 = ptr1 + 2   *                 while ptr2 < N:             # <<<<<<<<<<<<<< @@ -34376,7 +34377,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          __pyx_t_12 = ((__pyx_v_ptr2 < __pyx_v_N) != 0);          if (!__pyx_t_12) break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":339 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":339   *                 ptr2 = ptr1 + 2   *                 while ptr2 < N:   *                     i2 = queue.arr[ptr2]             # <<<<<<<<<<<<<< @@ -34385,7 +34386,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */          __pyx_v_i2 = (__pyx_v_queue->arr[__pyx_v_ptr2]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":340 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":340   *                 while ptr2 < N:   *                     i2 = queue.arr[ptr2]   *                     if i2 == -1 or i2 - i1 >= self.train_max_initial_size:             # <<<<<<<<<<<<<< @@ -34401,7 +34402,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          }          if (__pyx_t_19) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":341 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":341   *                     i2 = queue.arr[ptr2]   *                     if i2 == -1 or i2 - i1 >= self.train_max_initial_size:   *                         break             # <<<<<<<<<<<<<< @@ -34411,7 +34412,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p            goto __pyx_L19_break;          } -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":342 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":342   *                     if i2 == -1 or i2 - i1 >= self.train_max_initial_size:   *                         break   *                     l2 = queue.arr[ptr2+1]             # <<<<<<<<<<<<<< @@ -34420,7 +34421,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */          __pyx_v_l2 = (__pyx_v_queue->arr[(__pyx_v_ptr2 + 1)]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":343 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":343   *                         break   *                     l2 = queue.arr[ptr2+1]   *                     if (i2 - i1 - l1 >= self.train_min_gap_size and             # <<<<<<<<<<<<<< @@ -34430,7 +34431,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          __pyx_t_19 = ((((__pyx_v_i2 - __pyx_v_i1) - __pyx_v_l1) >= __pyx_v_self->train_min_gap_size) != 0);          if (__pyx_t_19) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":344 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":344   *                     l2 = queue.arr[ptr2+1]   *                     if (i2 - i1 - l1 >= self.train_min_gap_size and   *                             i2 + l2 - i1 <= self.train_max_initial_size and             # <<<<<<<<<<<<<< @@ -34440,7 +34441,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p            __pyx_t_12 = ((((__pyx_v_i2 + __pyx_v_l2) - __pyx_v_i1) <= __pyx_v_self->train_max_initial_size) != 0);            if (__pyx_t_12) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":345 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":345   *                     if (i2 - i1 - l1 >= self.train_min_gap_size and   *                             i2 + l2 - i1 <= self.train_max_initial_size and   *                             l1+l2+1 <= self.max_length):             # <<<<<<<<<<<<<< @@ -34458,7 +34459,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          }          if (__pyx_t_12) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":346 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":346   *                             i2 + l2 - i1 <= self.train_max_initial_size and   *                             l1+l2+1 <= self.max_length):   *                         node = collocations._insert(data.arr+i1, l1)             # <<<<<<<<<<<<<< @@ -34467,7 +34468,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */            __pyx_v_node = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_TrieMap *)__pyx_v_collocations->__pyx_vtab)->_insert(__pyx_v_collocations, (__pyx_v_data->arr + __pyx_v_i1), __pyx_v_l1); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":347 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":347   *                             l1+l2+1 <= self.max_length):   *                         node = collocations._insert(data.arr+i1, l1)   *                         node = trie_insert(node, -1)             # <<<<<<<<<<<<<< @@ -34476,7 +34477,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */            __pyx_v_node = __pyx_f_4cdec_2sa_3_sa_trie_insert(__pyx_v_node, -1); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":348 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":348   *                         node = collocations._insert(data.arr+i1, l1)   *                         node = trie_insert(node, -1)   *                         for i from i2 <= i < i2+l2:             # <<<<<<<<<<<<<< @@ -34486,7 +34487,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p            __pyx_t_14 = (__pyx_v_i2 + __pyx_v_l2);            for (__pyx_v_i = __pyx_v_i2; __pyx_v_i < __pyx_t_14; __pyx_v_i++) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":349 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":349   *                         node = trie_insert(node, -1)   *                         for i from i2 <= i < i2+l2:   *                             node = trie_insert(node, data.arr[i])             # <<<<<<<<<<<<<< @@ -34496,7 +34497,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p              __pyx_v_node = __pyx_f_4cdec_2sa_3_sa_trie_insert(__pyx_v_node, (__pyx_v_data->arr[__pyx_v_i]));            } -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":350 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":350   *                         for i from i2 <= i < i2+l2:   *                             node = trie_insert(node, data.arr[i])   *                         trie_node_data_append(node, i1)             # <<<<<<<<<<<<<< @@ -34507,7 +34508,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p            __Pyx_GOTREF(__pyx_t_1);            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":351 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":351   *                             node = trie_insert(node, data.arr[i])   *                         trie_node_data_append(node, i1)   *                         trie_node_data_append(node, i2)             # <<<<<<<<<<<<<< @@ -34518,7 +34519,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p            __Pyx_GOTREF(__pyx_t_1);            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":352 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":352   *                         trie_node_data_append(node, i1)   *                         trie_node_data_append(node, i2)   *                         if super_frequent_patterns._contains(data.arr+i2, l2) != NULL:             # <<<<<<<<<<<<<< @@ -34528,7 +34529,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p            __pyx_t_12 = ((((struct __pyx_vtabstruct_4cdec_2sa_3_sa_TrieMap *)__pyx_v_super_frequent_patterns->__pyx_vtab)->_contains(__pyx_v_super_frequent_patterns, (__pyx_v_data->arr + __pyx_v_i2), __pyx_v_l2) != NULL) != 0);            if (__pyx_t_12) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":353 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":353   *                         trie_node_data_append(node, i2)   *                         if super_frequent_patterns._contains(data.arr+i2, l2) != NULL:   *                             if super_frequent_patterns._contains(data.arr+i1, l1) != NULL:             # <<<<<<<<<<<<<< @@ -34538,7 +34539,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p              __pyx_t_12 = ((((struct __pyx_vtabstruct_4cdec_2sa_3_sa_TrieMap *)__pyx_v_super_frequent_patterns->__pyx_vtab)->_contains(__pyx_v_super_frequent_patterns, (__pyx_v_data->arr + __pyx_v_i1), __pyx_v_l1) != NULL) != 0);              if (__pyx_t_12) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":354 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":354   *                         if super_frequent_patterns._contains(data.arr+i2, l2) != NULL:   *                             if super_frequent_patterns._contains(data.arr+i1, l1) != NULL:   *                                 is_super = 1             # <<<<<<<<<<<<<< @@ -34550,7 +34551,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p              }              /*else*/ { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":356 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":356   *                                 is_super = 1   *                             else:   *                                 is_super = 0             # <<<<<<<<<<<<<< @@ -34561,7 +34562,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p              }              __pyx_L25:; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":357 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":357   *                             else:   *                                 is_super = 0   *                             ptr3 = ptr2 + 2             # <<<<<<<<<<<<<< @@ -34570,7 +34571,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */              __pyx_v_ptr3 = (__pyx_v_ptr2 + 2); -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":358 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":358   *                                 is_super = 0   *                             ptr3 = ptr2 + 2   *                             while ptr3 < N:             # <<<<<<<<<<<<<< @@ -34581,7 +34582,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                __pyx_t_12 = ((__pyx_v_ptr3 < __pyx_v_N) != 0);                if (!__pyx_t_12) break; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":359 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":359   *                             ptr3 = ptr2 + 2   *                             while ptr3 < N:   *                                 i3 = queue.arr[ptr3]             # <<<<<<<<<<<<<< @@ -34590,7 +34591,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */                __pyx_v_i3 = (__pyx_v_queue->arr[__pyx_v_ptr3]); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":360 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":360   *                             while ptr3 < N:   *                                 i3 = queue.arr[ptr3]   *                                 if i3 == -1 or i3 - i1 >= self.train_max_initial_size:             # <<<<<<<<<<<<<< @@ -34606,7 +34607,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                }                if (__pyx_t_20) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":361 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":361   *                                 i3 = queue.arr[ptr3]   *                                 if i3 == -1 or i3 - i1 >= self.train_max_initial_size:   *                                     break             # <<<<<<<<<<<<<< @@ -34616,7 +34617,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                  goto __pyx_L27_break;                } -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":362 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":362   *                                 if i3 == -1 or i3 - i1 >= self.train_max_initial_size:   *                                     break   *                                 l3 = queue.arr[ptr3+1]             # <<<<<<<<<<<<<< @@ -34625,7 +34626,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */                __pyx_v_l3 = (__pyx_v_queue->arr[(__pyx_v_ptr3 + 1)]); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":363 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":363   *                                     break   *                                 l3 = queue.arr[ptr3+1]   *                                 if (i3 - i2 - l2 >= self.train_min_gap_size and             # <<<<<<<<<<<<<< @@ -34635,7 +34636,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                __pyx_t_20 = ((((__pyx_v_i3 - __pyx_v_i2) - __pyx_v_l2) >= __pyx_v_self->train_min_gap_size) != 0);                if (__pyx_t_20) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":364 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":364   *                                 l3 = queue.arr[ptr3+1]   *                                 if (i3 - i2 - l2 >= self.train_min_gap_size and   *                                         i3 + l3 - i1 <= self.train_max_initial_size and             # <<<<<<<<<<<<<< @@ -34645,7 +34646,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                  __pyx_t_12 = ((((__pyx_v_i3 + __pyx_v_l3) - __pyx_v_i1) <= __pyx_v_self->train_max_initial_size) != 0);                  if (__pyx_t_12) { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":365 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":365   *                                 if (i3 - i2 - l2 >= self.train_min_gap_size and   *                                         i3 + l3 - i1 <= self.train_max_initial_size and   *                                         l1+l2+l3+2 <= self.max_length):             # <<<<<<<<<<<<<< @@ -34663,7 +34664,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                }                if (__pyx_t_12) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":366 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":366   *                                         i3 + l3 - i1 <= self.train_max_initial_size and   *                                         l1+l2+l3+2 <= self.max_length):   *                                     if is_super or super_frequent_patterns._contains(data.arr+i3, l3) != NULL:             # <<<<<<<<<<<<<< @@ -34678,7 +34679,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                  }                  if (__pyx_t_20) { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":367 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":367   *                                         l1+l2+l3+2 <= self.max_length):   *                                     if is_super or super_frequent_patterns._contains(data.arr+i3, l3) != NULL:   *                                         node = collocations._insert(data.arr+i1, l1)             # <<<<<<<<<<<<<< @@ -34687,7 +34688,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */                    __pyx_v_node = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_TrieMap *)__pyx_v_collocations->__pyx_vtab)->_insert(__pyx_v_collocations, (__pyx_v_data->arr + __pyx_v_i1), __pyx_v_l1); -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":368 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":368   *                                     if is_super or super_frequent_patterns._contains(data.arr+i3, l3) != NULL:   *                                         node = collocations._insert(data.arr+i1, l1)   *                                         node = trie_insert(node, -1)             # <<<<<<<<<<<<<< @@ -34696,7 +34697,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */                    __pyx_v_node = __pyx_f_4cdec_2sa_3_sa_trie_insert(__pyx_v_node, -1); -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":369 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":369   *                                         node = collocations._insert(data.arr+i1, l1)   *                                         node = trie_insert(node, -1)   *                                         for i from i2 <= i < i2+l2:             # <<<<<<<<<<<<<< @@ -34706,7 +34707,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                    __pyx_t_14 = (__pyx_v_i2 + __pyx_v_l2);                    for (__pyx_v_i = __pyx_v_i2; __pyx_v_i < __pyx_t_14; __pyx_v_i++) { -                    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":370 +                    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":370   *                                         node = trie_insert(node, -1)   *                                         for i from i2 <= i < i2+l2:   *                                             node = trie_insert(node, data.arr[i])             # <<<<<<<<<<<<<< @@ -34716,7 +34717,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                      __pyx_v_node = __pyx_f_4cdec_2sa_3_sa_trie_insert(__pyx_v_node, (__pyx_v_data->arr[__pyx_v_i]));                    } -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":371 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":371   *                                         for i from i2 <= i < i2+l2:   *                                             node = trie_insert(node, data.arr[i])   *                                         node = trie_insert(node, -1)             # <<<<<<<<<<<<<< @@ -34725,7 +34726,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */                    __pyx_v_node = __pyx_f_4cdec_2sa_3_sa_trie_insert(__pyx_v_node, -1); -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":372 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":372   *                                             node = trie_insert(node, data.arr[i])   *                                         node = trie_insert(node, -1)   *                                         for i from i3 <= i < i3+l3:             # <<<<<<<<<<<<<< @@ -34735,7 +34736,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                    __pyx_t_14 = (__pyx_v_i3 + __pyx_v_l3);                    for (__pyx_v_i = __pyx_v_i3; __pyx_v_i < __pyx_t_14; __pyx_v_i++) { -                    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":373 +                    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":373   *                                         node = trie_insert(node, -1)   *                                         for i from i3 <= i < i3+l3:   *                                             node = trie_insert(node, data.arr[i])             # <<<<<<<<<<<<<< @@ -34745,7 +34746,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                      __pyx_v_node = __pyx_f_4cdec_2sa_3_sa_trie_insert(__pyx_v_node, (__pyx_v_data->arr[__pyx_v_i]));                    } -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":374 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":374   *                                         for i from i3 <= i < i3+l3:   *                                             node = trie_insert(node, data.arr[i])   *                                         trie_node_data_append(node, i1)             # <<<<<<<<<<<<<< @@ -34756,7 +34757,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                    __Pyx_GOTREF(__pyx_t_1);                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":375 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":375   *                                             node = trie_insert(node, data.arr[i])   *                                         trie_node_data_append(node, i1)   *                                         trie_node_data_append(node, i2)             # <<<<<<<<<<<<<< @@ -34767,7 +34768,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                    __Pyx_GOTREF(__pyx_t_1);                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":376 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":376   *                                         trie_node_data_append(node, i1)   *                                         trie_node_data_append(node, i2)   *                                         trie_node_data_append(node, i3)             # <<<<<<<<<<<<<< @@ -34784,7 +34785,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p                }                __pyx_L29:; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":377 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":377   *                                         trie_node_data_append(node, i2)   *                                         trie_node_data_append(node, i3)   *                                 ptr3 = ptr3 + 2             # <<<<<<<<<<<<<< @@ -34801,7 +34802,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          }          __pyx_L21:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":378 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":378   *                                         trie_node_data_append(node, i3)   *                                 ptr3 = ptr3 + 2   *                     ptr2 = ptr2 + 2             # <<<<<<<<<<<<<< @@ -34812,7 +34813,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        }        __pyx_L19_break:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":379 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":379   *                                 ptr3 = ptr3 + 2   *                     ptr2 = ptr2 + 2   *                 ptr1 = ptr1 + 2             # <<<<<<<<<<<<<< @@ -34824,7 +34825,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":381 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":381   *                 ptr1 = ptr1 + 2   *             else:   *                 sent_count = sent_count + 1             # <<<<<<<<<<<<<< @@ -34833,7 +34834,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */        __pyx_v_sent_count = (__pyx_v_sent_count + 1); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":382 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":382   *             else:   *                 sent_count = sent_count + 1   *                 if sent_count % 10000 == 0:             # <<<<<<<<<<<<<< @@ -34843,7 +34844,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __pyx_t_20 = ((__Pyx_mod_long(__pyx_v_sent_count, 10000) == 0) != 0);        if (__pyx_t_20) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":383 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":383   *                 sent_count = sent_count + 1   *                 if sent_count % 10000 == 0:   *                     logger.debug("        %d sentences", sent_count)             # <<<<<<<<<<<<<< @@ -34874,7 +34875,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        }        __pyx_L35:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":384 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":384   *                 if sent_count % 10000 == 0:   *                     logger.debug("        %d sentences", sent_count)   *                 ptr1 = ptr1 + 1             # <<<<<<<<<<<<<< @@ -34886,7 +34887,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __pyx_L17:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":386 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":386   *                 ptr1 = ptr1 + 1   *    *         self.precomputed_collocations = collocations.toMap(False)             # <<<<<<<<<<<<<< @@ -34904,7 +34905,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_self->precomputed_collocations = __pyx_t_9;    __pyx_t_9 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":387 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":387   *    *         self.precomputed_collocations = collocations.toMap(False)   *         self.precomputed_index = frequent_patterns.toMap(True)             # <<<<<<<<<<<<<< @@ -34922,7 +34923,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_self->precomputed_index = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":389 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":389   *         self.precomputed_index = frequent_patterns.toMap(True)   *    *         x = 0             # <<<<<<<<<<<<<< @@ -34932,7 +34933,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_INCREF(__pyx_int_0);    __pyx_v_x = __pyx_int_0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":390 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":390   *    *         x = 0   *         for pattern1 in J_set:             # <<<<<<<<<<<<<< @@ -34958,7 +34959,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __Pyx_XDECREF_SET(__pyx_v_pattern1, __pyx_t_9);      __pyx_t_9 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":391 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":391   *         x = 0   *         for pattern1 in J_set:   *             for pattern2 in J_set:             # <<<<<<<<<<<<<< @@ -34984,7 +34985,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __Pyx_XDECREF_SET(__pyx_v_pattern2, __pyx_t_3);        __pyx_t_3 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":392 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":392   *         for pattern1 in J_set:   *             for pattern2 in J_set:   *                 if len(pattern1) + len(pattern2) + 1 < self.max_length:             # <<<<<<<<<<<<<< @@ -34996,7 +34997,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __pyx_t_20 = ((((__pyx_t_2 + __pyx_t_15) + 1) < __pyx_v_self->max_length) != 0);        if (__pyx_t_20) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":393 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":393   *             for pattern2 in J_set:   *                 if len(pattern1) + len(pattern2) + 1 < self.max_length:   *                     combined_pattern = pattern1 + (-1,) + pattern2             # <<<<<<<<<<<<<< @@ -35011,7 +35012,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          __Pyx_XDECREF_SET(__pyx_v_combined_pattern, __pyx_t_8);          __pyx_t_8 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":394 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":394   *                 if len(pattern1) + len(pattern2) + 1 < self.max_length:   *                     combined_pattern = pattern1 + (-1,) + pattern2   *                     J2_set.add(combined_pattern)             # <<<<<<<<<<<<<< @@ -35027,7 +35028,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":396 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":396   *                     J2_set.add(combined_pattern)   *    *         for pattern1 in I_set:             # <<<<<<<<<<<<<< @@ -35053,7 +35054,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __Pyx_XDECREF_SET(__pyx_v_pattern1, __pyx_t_9);      __pyx_t_9 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":397 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":397   *    *         for pattern1 in I_set:   *             for pattern2 in I_set:             # <<<<<<<<<<<<<< @@ -35079,7 +35080,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __Pyx_XDECREF_SET(__pyx_v_pattern2, __pyx_t_8);        __pyx_t_8 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":398 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":398   *         for pattern1 in I_set:   *             for pattern2 in I_set:   *                 x = x+1             # <<<<<<<<<<<<<< @@ -35091,7 +35092,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_8);        __pyx_t_8 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":399 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":399   *             for pattern2 in I_set:   *                 x = x+1   *                 if len(pattern1) + len(pattern2) + 1 <= self.max_length:             # <<<<<<<<<<<<<< @@ -35103,7 +35104,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __pyx_t_20 = ((((__pyx_t_15 + __pyx_t_2) + 1) <= __pyx_v_self->max_length) != 0);        if (__pyx_t_20) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":400 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":400   *                 x = x+1   *                 if len(pattern1) + len(pattern2) + 1 <= self.max_length:   *                     combined_pattern = pattern1 + (-1,) + pattern2             # <<<<<<<<<<<<<< @@ -35118,7 +35119,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          __Pyx_XDECREF_SET(__pyx_v_combined_pattern, __pyx_t_3);          __pyx_t_3 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":401 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":401   *                 if len(pattern1) + len(pattern2) + 1 <= self.max_length:   *                     combined_pattern = pattern1 + (-1,) + pattern2   *                     IJ_set.add(combined_pattern)             # <<<<<<<<<<<<<< @@ -35134,7 +35135,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":403 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":403   *                     IJ_set.add(combined_pattern)   *    *         for pattern1 in I_set:             # <<<<<<<<<<<<<< @@ -35160,7 +35161,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __Pyx_XDECREF_SET(__pyx_v_pattern1, __pyx_t_9);      __pyx_t_9 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":404 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":404   *    *         for pattern1 in I_set:   *             for pattern2 in J2_set:             # <<<<<<<<<<<<<< @@ -35186,7 +35187,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __Pyx_XDECREF_SET(__pyx_v_pattern2, __pyx_t_3);        __pyx_t_3 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":405 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":405   *         for pattern1 in I_set:   *             for pattern2 in J2_set:   *                 x = x+2             # <<<<<<<<<<<<<< @@ -35198,7 +35199,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_3);        __pyx_t_3 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":406 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":406   *             for pattern2 in J2_set:   *                 x = x+2   *                 if len(pattern1) + len(pattern2) + 1<= self.max_length:             # <<<<<<<<<<<<<< @@ -35210,7 +35211,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __pyx_t_20 = ((((__pyx_t_2 + __pyx_t_15) + 1) <= __pyx_v_self->max_length) != 0);        if (__pyx_t_20) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":407 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":407   *                 x = x+2   *                 if len(pattern1) + len(pattern2) + 1<= self.max_length:   *                     combined_pattern = pattern1 + (-1,) + pattern2             # <<<<<<<<<<<<<< @@ -35225,7 +35226,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          __Pyx_XDECREF_SET(__pyx_v_combined_pattern, __pyx_t_8);          __pyx_t_8 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":408 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":408   *                 if len(pattern1) + len(pattern2) + 1<= self.max_length:   *                     combined_pattern = pattern1 + (-1,) + pattern2   *                     IJ_set.add(combined_pattern)             # <<<<<<<<<<<<<< @@ -35234,7 +35235,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */          __pyx_t_16 = PySet_Add(__pyx_v_IJ_set, __pyx_v_combined_pattern); if (unlikely(__pyx_t_16 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":409 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":409   *                     combined_pattern = pattern1 + (-1,) + pattern2   *                     IJ_set.add(combined_pattern)   *                     combined_pattern = pattern2 + (-1,) + pattern1             # <<<<<<<<<<<<<< @@ -35249,7 +35250,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          __Pyx_DECREF_SET(__pyx_v_combined_pattern, __pyx_t_3);          __pyx_t_3 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":410 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":410   *                     IJ_set.add(combined_pattern)   *                     combined_pattern = pattern2 + (-1,) + pattern1   *                     IJ_set.add(combined_pattern)             # <<<<<<<<<<<<<< @@ -35265,7 +35266,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":412 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":412   *                     IJ_set.add(combined_pattern)   *    *         N = len(pattern_rank)             # <<<<<<<<<<<<<< @@ -35275,7 +35276,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_t_15 = PyDict_Size(__pyx_v_pattern_rank); if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_N = __pyx_t_15; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":413 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":413   *    *         N = len(pattern_rank)   *         cost_by_rank = IntList(initial_len=N)             # <<<<<<<<<<<<<< @@ -35294,7 +35295,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_cost_by_rank = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_9);    __pyx_t_9 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":414 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":414   *         N = len(pattern_rank)   *         cost_by_rank = IntList(initial_len=N)   *         count_by_rank = IntList(initial_len=N)             # <<<<<<<<<<<<<< @@ -35313,7 +35314,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_v_count_by_rank = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":415 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":415   *         cost_by_rank = IntList(initial_len=N)   *         count_by_rank = IntList(initial_len=N)   *         for pattern, arr in self.precomputed_collocations.iteritems():             # <<<<<<<<<<<<<< @@ -35341,7 +35342,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __Pyx_XDECREF_SET(__pyx_v_arr, __pyx_t_3);      __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":416 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":416   *         count_by_rank = IntList(initial_len=N)   *         for pattern, arr in self.precomputed_collocations.iteritems():   *             if pattern not in IJ_set:             # <<<<<<<<<<<<<< @@ -35352,7 +35353,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __pyx_t_12 = (__pyx_t_20 != 0);      if (__pyx_t_12) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":417 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":417   *         for pattern, arr in self.precomputed_collocations.iteritems():   *             if pattern not in IJ_set:   *                 s = ""             # <<<<<<<<<<<<<< @@ -35362,7 +35363,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __Pyx_INCREF(__pyx_kp_s__32);        __Pyx_XDECREF_SET(__pyx_v_s, __pyx_kp_s__32); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":418 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":418   *             if pattern not in IJ_set:   *                 s = ""   *                 for word_id in pattern:             # <<<<<<<<<<<<<< @@ -35407,7 +35408,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          __Pyx_XDECREF_SET(__pyx_v_word_id, __pyx_t_9);          __pyx_t_9 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":419 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":419   *                 s = ""   *                 for word_id in pattern:   *                     if word_id == -1:             # <<<<<<<<<<<<<< @@ -35419,7 +35420,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;          if (__pyx_t_12) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":420 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":420   *                 for word_id in pattern:   *                     if word_id == -1:   *                         s = s + "X "             # <<<<<<<<<<<<<< @@ -35434,7 +35435,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":422 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":422   *                         s = s + "X "   *                     else:   *                         s = s + darray.id2word[word_id] + " "             # <<<<<<<<<<<<<< @@ -35456,7 +35457,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        }        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":423 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":423   *                     else:   *                         s = s + darray.id2word[word_id] + " "   *                 logger.warn("ERROR: unexpected pattern %s in set of precomputed collocations", s)             # <<<<<<<<<<<<<< @@ -35485,7 +35486,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":425 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":425   *                 logger.warn("ERROR: unexpected pattern %s in set of precomputed collocations", s)   *             else:   *                 chunk = ()             # <<<<<<<<<<<<<< @@ -35495,7 +35496,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __Pyx_INCREF(__pyx_empty_tuple);        __Pyx_XDECREF_SET(__pyx_v_chunk, __pyx_empty_tuple); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":426 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":426   *             else:   *                 chunk = ()   *                 max_rank = 0             # <<<<<<<<<<<<<< @@ -35504,7 +35505,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p   */        __pyx_v_max_rank = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":427 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":427   *                 chunk = ()   *                 max_rank = 0   *                 arity = 0             # <<<<<<<<<<<<<< @@ -35514,7 +35515,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __Pyx_INCREF(__pyx_int_0);        __Pyx_XDECREF_SET(__pyx_v_arity, __pyx_int_0); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":428 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":428   *                 max_rank = 0   *                 arity = 0   *                 for word_id in pattern:             # <<<<<<<<<<<<<< @@ -35559,7 +35560,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          __Pyx_XDECREF_SET(__pyx_v_word_id, __pyx_t_3);          __pyx_t_3 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":429 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":429   *                 arity = 0   *                 for word_id in pattern:   *                     if word_id == -1:             # <<<<<<<<<<<<<< @@ -35571,7 +35572,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;          if (__pyx_t_12) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":430 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":430   *                 for word_id in pattern:   *                     if word_id == -1:   *                         max_rank = max(max_rank, pattern_rank[chunk])             # <<<<<<<<<<<<<< @@ -35601,7 +35602,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            __pyx_v_max_rank = __pyx_t_17; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":431 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":431   *                     if word_id == -1:   *                         max_rank = max(max_rank, pattern_rank[chunk])   *                         arity = arity + 1             # <<<<<<<<<<<<<< @@ -35613,7 +35614,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p            __Pyx_DECREF_SET(__pyx_v_arity, __pyx_t_9);            __pyx_t_9 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":432 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":432   *                         max_rank = max(max_rank, pattern_rank[chunk])   *                         arity = arity + 1   *                         chunk = ()             # <<<<<<<<<<<<<< @@ -35626,7 +35627,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":434 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":434   *                         chunk = ()   *                     else:   *                         chunk = chunk + (word_id,)             # <<<<<<<<<<<<<< @@ -35648,7 +35649,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        }        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":435 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":435   *                     else:   *                         chunk = chunk + (word_id,)   *                 max_rank = max(max_rank, pattern_rank[chunk])             # <<<<<<<<<<<<<< @@ -35678,7 +35679,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __pyx_v_max_rank = __pyx_t_17; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":436 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":436   *                         chunk = chunk + (word_id,)   *                 max_rank = max(max_rank, pattern_rank[chunk])   *                 cost_by_rank.arr[max_rank] = cost_by_rank.arr[max_rank] + (4*len(arr))             # <<<<<<<<<<<<<< @@ -35688,7 +35689,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p        __pyx_t_13 = PyObject_Length(__pyx_v_arr); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        (__pyx_v_cost_by_rank->arr[__pyx_v_max_rank]) = ((__pyx_v_cost_by_rank->arr[__pyx_v_max_rank]) + (4 * __pyx_t_13)); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":437 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":437   *                 max_rank = max(max_rank, pattern_rank[chunk])   *                 cost_by_rank.arr[max_rank] = cost_by_rank.arr[max_rank] + (4*len(arr))   *                 count_by_rank.arr[max_rank] = count_by_rank.arr[max_rank] + (len(arr)/(arity+1))             # <<<<<<<<<<<<<< @@ -35718,7 +35719,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":439 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":439   *                 count_by_rank.arr[max_rank] = count_by_rank.arr[max_rank] + (len(arr)/(arity+1))   *    *         cumul_cost = 0             # <<<<<<<<<<<<<< @@ -35728,7 +35729,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_INCREF(__pyx_int_0);    __pyx_v_cumul_cost = __pyx_int_0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":440 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":440   *    *         cumul_cost = 0   *         cumul_count = 0             # <<<<<<<<<<<<<< @@ -35738,7 +35739,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_INCREF(__pyx_int_0);    __pyx_v_cumul_count = __pyx_int_0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":441 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":441   *         cumul_cost = 0   *         cumul_count = 0   *         for i from 0 <= i < N:             # <<<<<<<<<<<<<< @@ -35748,7 +35749,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __pyx_t_14 = __pyx_v_N;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_14; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":442 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":442   *         cumul_count = 0   *         for i from 0 <= i < N:   *             cumul_cost = cumul_cost + cost_by_rank.arr[i]             # <<<<<<<<<<<<<< @@ -35763,7 +35764,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __Pyx_DECREF_SET(__pyx_v_cumul_cost, __pyx_t_7);      __pyx_t_7 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":443 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":443   *         for i from 0 <= i < N:   *             cumul_cost = cumul_cost + cost_by_rank.arr[i]   *             cumul_count = cumul_count + count_by_rank.arr[i]             # <<<<<<<<<<<<<< @@ -35778,7 +35779,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __Pyx_DECREF_SET(__pyx_v_cumul_count, __pyx_t_1);      __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":444 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":444   *             cumul_cost = cumul_cost + cost_by_rank.arr[i]   *             cumul_count = cumul_count + count_by_rank.arr[i]   *             logger.debug("RANK %d\tCOUNT, COST: %d    %d\tCUMUL: %d, %d", i, count_by_rank.arr[i], cost_by_rank.arr[i], cumul_count, cumul_cost)             # <<<<<<<<<<<<<< @@ -35823,7 +35824,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":446 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":446   *             logger.debug("RANK %d\tCOUNT, COST: %d    %d\tCUMUL: %d, %d", i, count_by_rank.arr[i], cost_by_rank.arr[i], cumul_count, cumul_cost)   *    *         num_found_patterns = len(self.precomputed_collocations)             # <<<<<<<<<<<<<< @@ -35836,7 +35837,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __pyx_v_num_found_patterns = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":447 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":447   *    *         num_found_patterns = len(self.precomputed_collocations)   *         for pattern in IJ_set:             # <<<<<<<<<<<<<< @@ -35862,7 +35863,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __Pyx_XDECREF_SET(__pyx_v_pattern, __pyx_t_8);      __pyx_t_8 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":448 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":448   *         num_found_patterns = len(self.precomputed_collocations)   *         for pattern in IJ_set:   *             if pattern not in self.precomputed_collocations:             # <<<<<<<<<<<<<< @@ -35873,7 +35874,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p      __pyx_t_20 = (__pyx_t_12 != 0);      if (__pyx_t_20) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":449 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":449   *         for pattern in IJ_set:   *             if pattern not in self.precomputed_collocations:   *                 self.precomputed_collocations[pattern] = IntList()             # <<<<<<<<<<<<<< @@ -35890,7 +35891,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    }    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":451 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":451   *                 self.precomputed_collocations[pattern] = IntList()   *    *         cdef float stop_time = monitor_cpu()             # <<<<<<<<<<<<<< @@ -35906,7 +35907,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;    __pyx_v_stop_time = __pyx_t_4; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":452 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":452   *    *         cdef float stop_time = monitor_cpu()   *         logger.info("Precomputed collocations for %d patterns out of %d possible (upper bound %d)", num_found_patterns, len(self.precomputed_collocations), x)             # <<<<<<<<<<<<<< @@ -35946,7 +35947,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":453 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":453   *         cdef float stop_time = monitor_cpu()   *         logger.info("Precomputed collocations for %d patterns out of %d possible (upper bound %d)", num_found_patterns, len(self.precomputed_collocations), x)   *         logger.info("Precomputed inverted index for %d patterns ", len(self.precomputed_index))             # <<<<<<<<<<<<<< @@ -35977,7 +35978,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":454 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":454   *         logger.info("Precomputed collocations for %d patterns out of %d possible (upper bound %d)", num_found_patterns, len(self.precomputed_collocations), x)   *         logger.info("Precomputed inverted index for %d patterns ", len(self.precomputed_index))   *         logger.info("Precomputation took %f seconds", (stop_time - start_time))             # <<<<<<<<<<<<<< @@ -36003,7 +36004,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":278 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":278   *    *    *     def precompute(self, stats, SuffixArray sarray):             # <<<<<<<<<<<<<< @@ -36058,7 +36059,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_14Precomputation_6precompute(struct __p    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":11 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":11   *     cdef IntList ha   *    *     def __cinit__(self, from_binary=None, from_text=None, side=None):             # <<<<<<<<<<<<<< @@ -36155,7 +36156,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11SuffixArray___cinit__(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":12 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":12   *    *     def __cinit__(self, from_binary=None, from_text=None, side=None):   *         self.darray = DataArray()             # <<<<<<<<<<<<<< @@ -36170,7 +36171,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11SuffixArray___cinit__(struct __pyx_obj_4cde    __pyx_v_self->darray = ((struct __pyx_obj_4cdec_2sa_3_sa_DataArray *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":13 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":13   *     def __cinit__(self, from_binary=None, from_text=None, side=None):   *         self.darray = DataArray()   *         self.sa = IntList()             # <<<<<<<<<<<<<< @@ -36185,7 +36186,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11SuffixArray___cinit__(struct __pyx_obj_4cde    __pyx_v_self->sa = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":14 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":14   *         self.darray = DataArray()   *         self.sa = IntList()   *         self.ha = IntList()             # <<<<<<<<<<<<<< @@ -36200,7 +36201,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11SuffixArray___cinit__(struct __pyx_obj_4cde    __pyx_v_self->ha = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":15 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":15   *         self.sa = IntList()   *         self.ha = IntList()   *         if from_binary:             # <<<<<<<<<<<<<< @@ -36210,7 +36211,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11SuffixArray___cinit__(struct __pyx_obj_4cde    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_from_binary); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":16 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":16   *         self.ha = IntList()   *         if from_binary:   *             self.read_binary(from_binary)             # <<<<<<<<<<<<<< @@ -36232,7 +36233,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11SuffixArray___cinit__(struct __pyx_obj_4cde      goto __pyx_L3;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":17 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":17   *         if from_binary:   *             self.read_binary(from_binary)   *         elif from_text:             # <<<<<<<<<<<<<< @@ -36242,7 +36243,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11SuffixArray___cinit__(struct __pyx_obj_4cde    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_from_text); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":18 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":18   *             self.read_binary(from_binary)   *         elif from_text:   *             self.read_text(from_text, side)             # <<<<<<<<<<<<<< @@ -36268,7 +36269,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11SuffixArray___cinit__(struct __pyx_obj_4cde    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":11 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":11   *     cdef IntList ha   *    *     def __cinit__(self, from_binary=None, from_text=None, side=None):             # <<<<<<<<<<<<<< @@ -36290,7 +36291,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11SuffixArray___cinit__(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":20 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":20   *             self.read_text(from_text, side)   *    *     def __getitem__(self, i):             # <<<<<<<<<<<<<< @@ -36321,7 +36322,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_2__getitem__(struct __pyx    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__getitem__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":21 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":21   *    *     def __getitem__(self, i):   *         return self.sa.arr[i]             # <<<<<<<<<<<<<< @@ -36336,7 +36337,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_2__getitem__(struct __pyx    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":20 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":20   *             self.read_text(from_text, side)   *    *     def __getitem__(self, i):             # <<<<<<<<<<<<<< @@ -36355,7 +36356,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_2__getitem__(struct __pyx    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":23 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":23   *         return self.sa.arr[i]   *    *     def read_text(self, filename, side):             # <<<<<<<<<<<<<< @@ -36458,7 +36459,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("read_text", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":29 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":29   *         cdef IntList isa, word_count   *    *         self.darray = DataArray(from_text=filename, side=side, use_sent_id=True)             # <<<<<<<<<<<<<< @@ -36479,7 +36480,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __pyx_v_self->darray = ((struct __pyx_obj_4cdec_2sa_3_sa_DataArray *)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":30 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":30   *    *         self.darray = DataArray(from_text=filename, side=side, use_sent_id=True)   *         N = len(self.darray)             # <<<<<<<<<<<<<< @@ -36492,7 +36493,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __pyx_v_N = __pyx_t_3; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":31 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":31   *         self.darray = DataArray(from_text=filename, side=side, use_sent_id=True)   *         N = len(self.darray)   *         V = len(self.darray.id2word)             # <<<<<<<<<<<<<< @@ -36505,7 +36506,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __pyx_v_V = __pyx_t_3; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":33 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":33   *         V = len(self.darray.id2word)   *    *         self.sa = IntList(initial_len=N)             # <<<<<<<<<<<<<< @@ -36527,7 +36528,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __pyx_v_self->sa = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":34 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":34   *    *         self.sa = IntList(initial_len=N)   *         self.ha = IntList(initial_len=V+1)             # <<<<<<<<<<<<<< @@ -36549,7 +36550,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __pyx_v_self->ha = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":36 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":36   *         self.ha = IntList(initial_len=V+1)   *    *         isa = IntList(initial_len=N)             # <<<<<<<<<<<<<< @@ -36568,7 +36569,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __pyx_v_isa = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":37 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":37   *    *         isa = IntList(initial_len=N)   *         word_count = IntList(initial_len=V+1)             # <<<<<<<<<<<<<< @@ -36587,7 +36588,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __pyx_v_word_count = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":40 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":40   *    *         '''Step 1: bucket sort data'''   *         cdef float sort_start_time = monitor_cpu()             # <<<<<<<<<<<<<< @@ -36603,7 +36604,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_sort_start_time = __pyx_t_4; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":41 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":41   *         '''Step 1: bucket sort data'''   *         cdef float sort_start_time = monitor_cpu()   *         cdef float start_time = sort_start_time             # <<<<<<<<<<<<<< @@ -36612,7 +36613,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */    __pyx_v_start_time = __pyx_v_sort_start_time; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":42 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":42   *         cdef float sort_start_time = monitor_cpu()   *         cdef float start_time = sort_start_time   *         for i from 0 <= i < N:             # <<<<<<<<<<<<<< @@ -36622,7 +36623,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __pyx_t_5 = __pyx_v_N;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":43 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":43   *         cdef float start_time = sort_start_time   *         for i from 0 <= i < N:   *             a_i = self.darray.data.arr[i]             # <<<<<<<<<<<<<< @@ -36631,7 +36632,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */      __pyx_v_a_i = (__pyx_v_self->darray->data->arr[__pyx_v_i]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":44 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":44   *         for i from 0 <= i < N:   *             a_i = self.darray.data.arr[i]   *             word_count.arr[a_i] = word_count.arr[a_i] + 1             # <<<<<<<<<<<<<< @@ -36641,7 +36642,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      (__pyx_v_word_count->arr[__pyx_v_a_i]) = ((__pyx_v_word_count->arr[__pyx_v_a_i]) + 1);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":46 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":46   *             word_count.arr[a_i] = word_count.arr[a_i] + 1   *    *         n = 0             # <<<<<<<<<<<<<< @@ -36650,7 +36651,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */    __pyx_v_n = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":47 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":47   *    *         n = 0   *         for i from 0 <= i < V+1:             # <<<<<<<<<<<<<< @@ -36660,7 +36661,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __pyx_t_6 = (__pyx_v_V + 1);    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":48 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":48   *         n = 0   *         for i from 0 <= i < V+1:   *             self.ha.arr[i] = n             # <<<<<<<<<<<<<< @@ -36669,7 +36670,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */      (__pyx_v_self->ha->arr[__pyx_v_i]) = __pyx_v_n; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":49 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":49   *         for i from 0 <= i < V+1:   *             self.ha.arr[i] = n   *             n = n + word_count.arr[i]             # <<<<<<<<<<<<<< @@ -36678,7 +36679,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */      __pyx_v_n = (__pyx_v_n + (__pyx_v_word_count->arr[__pyx_v_i])); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":50 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":50   *             self.ha.arr[i] = n   *             n = n + word_count.arr[i]   *             word_count.arr[i] = 0             # <<<<<<<<<<<<<< @@ -36688,7 +36689,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      (__pyx_v_word_count->arr[__pyx_v_i]) = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":52 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":52   *             word_count.arr[i] = 0   *    *         for i from 0 <= i < N:             # <<<<<<<<<<<<<< @@ -36698,7 +36699,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __pyx_t_5 = __pyx_v_N;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":53 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":53   *    *         for i from 0 <= i < N:   *             a_i = self.darray.data.arr[i]             # <<<<<<<<<<<<<< @@ -36707,7 +36708,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */      __pyx_v_a_i = (__pyx_v_self->darray->data->arr[__pyx_v_i]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":54 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":54   *         for i from 0 <= i < N:   *             a_i = self.darray.data.arr[i]   *             self.sa.arr[self.ha.arr[a_i] + word_count.arr[a_i]] = i             # <<<<<<<<<<<<<< @@ -36716,7 +36717,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */      (__pyx_v_self->sa->arr[((__pyx_v_self->ha->arr[__pyx_v_a_i]) + (__pyx_v_word_count->arr[__pyx_v_a_i]))]) = __pyx_v_i; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":55 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":55   *             a_i = self.darray.data.arr[i]   *             self.sa.arr[self.ha.arr[a_i] + word_count.arr[a_i]] = i   *             isa.arr[i] = self.ha.arr[a_i + 1] - 1 # bucket pointer is last index in bucket             # <<<<<<<<<<<<<< @@ -36725,7 +36726,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */      (__pyx_v_isa->arr[__pyx_v_i]) = ((__pyx_v_self->ha->arr[(__pyx_v_a_i + 1)]) - 1); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":56 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":56   *             self.sa.arr[self.ha.arr[a_i] + word_count.arr[a_i]] = i   *             isa.arr[i] = self.ha.arr[a_i + 1] - 1 # bucket pointer is last index in bucket   *             word_count.arr[a_i] = word_count.arr[a_i] + 1             # <<<<<<<<<<<<<< @@ -36735,7 +36736,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      (__pyx_v_word_count->arr[__pyx_v_a_i]) = ((__pyx_v_word_count->arr[__pyx_v_a_i]) + 1);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":59 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":59   *    *         '''Determine size of initial runs'''   *         current_run = 0             # <<<<<<<<<<<<<< @@ -36744,7 +36745,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */    __pyx_v_current_run = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":60 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":60   *         '''Determine size of initial runs'''   *         current_run = 0   *         for i from 0 <= i < V+1:             # <<<<<<<<<<<<<< @@ -36754,7 +36755,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __pyx_t_6 = (__pyx_v_V + 1);    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":61 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":61   *         current_run = 0   *         for i from 0 <= i < V+1:   *             if i < V and self.ha.arr[i+1] - self.ha.arr[i] == 1:             # <<<<<<<<<<<<<< @@ -36770,7 +36771,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      }      if (__pyx_t_9) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":62 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":62   *         for i from 0 <= i < V+1:   *             if i < V and self.ha.arr[i+1] - self.ha.arr[i] == 1:   *                 current_run = current_run + 1             # <<<<<<<<<<<<<< @@ -36782,7 +36783,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":64 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":64   *                 current_run = current_run + 1   *             else:   *                 if current_run > 0:             # <<<<<<<<<<<<<< @@ -36792,7 +36793,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o        __pyx_t_9 = ((__pyx_v_current_run > 0) != 0);        if (__pyx_t_9) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":65 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":65   *             else:   *                 if current_run > 0:   *                     self.sa.arr[self.ha.arr[i] - current_run] = -current_run             # <<<<<<<<<<<<<< @@ -36801,7 +36802,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */          (__pyx_v_self->sa->arr[((__pyx_v_self->ha->arr[__pyx_v_i]) - __pyx_v_current_run)]) = (-__pyx_v_current_run); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":66 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":66   *                 if current_run > 0:   *                     self.sa.arr[self.ha.arr[i] - current_run] = -current_run   *                     current_run = 0             # <<<<<<<<<<<<<< @@ -36816,7 +36817,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      __pyx_L11:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":68 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":68   *                     current_run = 0   *    *         logger.info("    Bucket sort took %f seconds", (monitor_cpu() - sort_start_time))             # <<<<<<<<<<<<<< @@ -36853,7 +36854,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":71 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":71   *    *         '''Step 2: prefix-doubling sort'''   *         h = 1             # <<<<<<<<<<<<<< @@ -36862,7 +36863,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */    __pyx_v_h = 1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":72 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":72   *         '''Step 2: prefix-doubling sort'''   *         h = 1   *         while self.sa.arr[0] != -N:             # <<<<<<<<<<<<<< @@ -36873,7 +36874,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      __pyx_t_9 = (((__pyx_v_self->sa->arr[0]) != (-__pyx_v_N)) != 0);      if (!__pyx_t_9) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":73 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":73   *         h = 1   *         while self.sa.arr[0] != -N:   *             sort_start_time = monitor_cpu()             # <<<<<<<<<<<<<< @@ -36889,7 +36890,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __pyx_v_sort_start_time = __pyx_t_4; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":74 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":74   *         while self.sa.arr[0] != -N:   *             sort_start_time = monitor_cpu()   *             logger.debug("    Refining, sort depth = %d", h)             # <<<<<<<<<<<<<< @@ -36917,7 +36918,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":75 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":75   *             sort_start_time = monitor_cpu()   *             logger.debug("    Refining, sort depth = %d", h)   *             i = 0             # <<<<<<<<<<<<<< @@ -36926,7 +36927,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */      __pyx_v_i = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":76 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":76   *             logger.debug("    Refining, sort depth = %d", h)   *             i = 0   *             skip = 0             # <<<<<<<<<<<<<< @@ -36935,7 +36936,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */      __pyx_v_skip = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":77 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":77   *             i = 0   *             skip = 0   *             while i < N:             # <<<<<<<<<<<<<< @@ -36946,7 +36947,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o        __pyx_t_9 = ((__pyx_v_i < __pyx_v_N) != 0);        if (!__pyx_t_9) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":78 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":78   *             skip = 0   *             while i < N:   *                 if self.sa.arr[i] < 0:             # <<<<<<<<<<<<<< @@ -36956,7 +36957,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o        __pyx_t_9 = (((__pyx_v_self->sa->arr[__pyx_v_i]) < 0) != 0);        if (__pyx_t_9) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":79 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":79   *             while i < N:   *                 if self.sa.arr[i] < 0:   *                     skip = skip + self.sa.arr[i]             # <<<<<<<<<<<<<< @@ -36965,7 +36966,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */          __pyx_v_skip = (__pyx_v_skip + (__pyx_v_self->sa->arr[__pyx_v_i])); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":80 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":80   *                 if self.sa.arr[i] < 0:   *                     skip = skip + self.sa.arr[i]   *                     i = i - self.sa.arr[i]             # <<<<<<<<<<<<<< @@ -36977,7 +36978,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o        }        /*else*/ { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":82 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":82   *                     i = i - self.sa.arr[i]   *                 else:   *                     if skip < 0:             # <<<<<<<<<<<<<< @@ -36987,7 +36988,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o          __pyx_t_9 = ((__pyx_v_skip < 0) != 0);          if (__pyx_t_9) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":83 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":83   *                 else:   *                     if skip < 0:   *                         self.sa.arr[i+skip] = skip             # <<<<<<<<<<<<<< @@ -36996,7 +36997,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */            (__pyx_v_self->sa->arr[(__pyx_v_i + __pyx_v_skip)]) = __pyx_v_skip; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":84 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":84   *                     if skip < 0:   *                         self.sa.arr[i+skip] = skip   *                         skip = 0             # <<<<<<<<<<<<<< @@ -37008,7 +37009,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o          }          __pyx_L18:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":85 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":85   *                         self.sa.arr[i+skip] = skip   *                         skip = 0   *                     j = isa.arr[self.sa.arr[i]]             # <<<<<<<<<<<<<< @@ -37017,7 +37018,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */          __pyx_v_j = (__pyx_v_isa->arr[(__pyx_v_self->sa->arr[__pyx_v_i])]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":86 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":86   *                         skip = 0   *                     j = isa.arr[self.sa.arr[i]]   *                     self.q3sort(i, j, h, isa)             # <<<<<<<<<<<<<< @@ -37052,7 +37053,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":87 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":87   *                     j = isa.arr[self.sa.arr[i]]   *                     self.q3sort(i, j, h, isa)   *                     i = j+1             # <<<<<<<<<<<<<< @@ -37064,7 +37065,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o        __pyx_L17:;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":88 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":88   *                     self.q3sort(i, j, h, isa)   *                     i = j+1   *             if skip < 0:             # <<<<<<<<<<<<<< @@ -37074,7 +37075,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      __pyx_t_9 = ((__pyx_v_skip < 0) != 0);      if (__pyx_t_9) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":89 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":89   *                     i = j+1   *             if skip < 0:   *                 self.sa.arr[i+skip] = skip             # <<<<<<<<<<<<<< @@ -37086,7 +37087,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      }      __pyx_L19:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":90 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":90   *             if skip < 0:   *                 self.sa.arr[i+skip] = skip   *             h = h * 2             # <<<<<<<<<<<<<< @@ -37095,7 +37096,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */      __pyx_v_h = (__pyx_v_h * 2); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":91 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":91   *                 self.sa.arr[i+skip] = skip   *             h = h * 2   *             logger.debug("    Refinement took %f seconds", (monitor_cpu() - sort_start_time))             # <<<<<<<<<<<<<< @@ -37133,7 +37134,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":94 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":94   *    *         '''Step 3: read off suffix array from inverse suffix array'''   *         logger.info("    Finalizing sort...")             # <<<<<<<<<<<<<< @@ -37150,7 +37151,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":95 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":95   *         '''Step 3: read off suffix array from inverse suffix array'''   *         logger.info("    Finalizing sort...")   *         for i from 0 <= i < N:             # <<<<<<<<<<<<<< @@ -37160,7 +37161,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __pyx_t_5 = __pyx_v_N;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":96 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":96   *         logger.info("    Finalizing sort...")   *         for i from 0 <= i < N:   *             j = isa.arr[i]             # <<<<<<<<<<<<<< @@ -37169,7 +37170,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o   */      __pyx_v_j = (__pyx_v_isa->arr[__pyx_v_i]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":97 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":97   *         for i from 0 <= i < N:   *             j = isa.arr[i]   *             self.sa.arr[j] = i             # <<<<<<<<<<<<<< @@ -37179,7 +37180,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o      (__pyx_v_self->sa->arr[__pyx_v_j]) = __pyx_v_i;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":98 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":98   *             j = isa.arr[i]   *             self.sa.arr[j] = i   *         logger.info("Suffix array construction took %f seconds", (monitor_cpu() - start_time))             # <<<<<<<<<<<<<< @@ -37216,7 +37217,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":23 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":23   *         return self.sa.arr[i]   *    *     def read_text(self, filename, side):             # <<<<<<<<<<<<<< @@ -37243,7 +37244,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_4read_text(struct __pyx_o    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":100 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":100   *         logger.info("Suffix array construction took %f seconds", (monitor_cpu() - start_time))   *    *     def q3sort(self, int i, int j, int h, IntList isa, pad=""):             # <<<<<<<<<<<<<< @@ -37370,7 +37371,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("q3sort", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":107 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":107   *         cdef int k, midpoint, pval, phead, ptail, tmp   *    *         if j-i < -1:             # <<<<<<<<<<<<<< @@ -37380,7 +37381,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    __pyx_t_1 = (((__pyx_v_j - __pyx_v_i) < -1) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":108 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":108   *    *         if j-i < -1:   *             raise Exception("Unexpected condition found in q3sort: sort from %d to %d" % (i,j))             # <<<<<<<<<<<<<< @@ -37415,7 +37416,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_      {__pyx_filename = __pyx_f[12]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":109 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":109   *         if j-i < -1:   *             raise Exception("Unexpected condition found in q3sort: sort from %d to %d" % (i,j))   *         if j-i == -1:    # recursive base case -- empty interval             # <<<<<<<<<<<<<< @@ -37425,7 +37426,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    __pyx_t_1 = (((__pyx_v_j - __pyx_v_i) == -1) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":110 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":110   *             raise Exception("Unexpected condition found in q3sort: sort from %d to %d" % (i,j))   *         if j-i == -1:    # recursive base case -- empty interval   *             return             # <<<<<<<<<<<<<< @@ -37437,7 +37438,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":111 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":111   *         if j-i == -1:    # recursive base case -- empty interval   *             return   *         if (j-i == 0):    # recursive base case -- singleton interval             # <<<<<<<<<<<<<< @@ -37447,7 +37448,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    __pyx_t_1 = (((__pyx_v_j - __pyx_v_i) == 0) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":112 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":112   *             return   *         if (j-i == 0):    # recursive base case -- singleton interval   *             isa.arr[self.sa.arr[i]] = i             # <<<<<<<<<<<<<< @@ -37456,7 +37457,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */      (__pyx_v_isa->arr[(__pyx_v_self->sa->arr[__pyx_v_i])]) = __pyx_v_i; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":113 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":113   *         if (j-i == 0):    # recursive base case -- singleton interval   *             isa.arr[self.sa.arr[i]] = i   *             self.sa.arr[i] = -1             # <<<<<<<<<<<<<< @@ -37465,7 +37466,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */      (__pyx_v_self->sa->arr[__pyx_v_i]) = -1; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":114 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":114   *             isa.arr[self.sa.arr[i]] = i   *             self.sa.arr[i] = -1   *             return             # <<<<<<<<<<<<<< @@ -37477,7 +37478,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":123 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":123   *         # If the method of assigning word_id's is changed, this method   *         # may need to be reconsidered as well.   *         midpoint = (i+j)/2             # <<<<<<<<<<<<<< @@ -37486,7 +37487,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */    __pyx_v_midpoint = __Pyx_div_long((__pyx_v_i + __pyx_v_j), 2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":124 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":124   *         # may need to be reconsidered as well.   *         midpoint = (i+j)/2   *         pval = isa.arr[self.sa.arr[midpoint] + h]             # <<<<<<<<<<<<<< @@ -37495,7 +37496,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */    __pyx_v_pval = (__pyx_v_isa->arr[((__pyx_v_self->sa->arr[__pyx_v_midpoint]) + __pyx_v_h)]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":125 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":125   *         midpoint = (i+j)/2   *         pval = isa.arr[self.sa.arr[midpoint] + h]   *         if i != midpoint:             # <<<<<<<<<<<<<< @@ -37505,7 +37506,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    __pyx_t_1 = ((__pyx_v_i != __pyx_v_midpoint) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":126 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":126   *         pval = isa.arr[self.sa.arr[midpoint] + h]   *         if i != midpoint:   *             tmp = self.sa.arr[midpoint]             # <<<<<<<<<<<<<< @@ -37514,7 +37515,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */      __pyx_v_tmp = (__pyx_v_self->sa->arr[__pyx_v_midpoint]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":127 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":127   *         if i != midpoint:   *             tmp = self.sa.arr[midpoint]   *             self.sa.arr[midpoint] = self.sa.arr[i]             # <<<<<<<<<<<<<< @@ -37523,7 +37524,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */      (__pyx_v_self->sa->arr[__pyx_v_midpoint]) = (__pyx_v_self->sa->arr[__pyx_v_i]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":128 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":128   *             tmp = self.sa.arr[midpoint]   *             self.sa.arr[midpoint] = self.sa.arr[i]   *             self.sa.arr[i] = tmp             # <<<<<<<<<<<<<< @@ -37535,7 +37536,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    }    __pyx_L6:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":129 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":129   *             self.sa.arr[midpoint] = self.sa.arr[i]   *             self.sa.arr[i] = tmp   *         phead = i             # <<<<<<<<<<<<<< @@ -37544,7 +37545,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */    __pyx_v_phead = __pyx_v_i; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":130 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":130   *             self.sa.arr[i] = tmp   *         phead = i   *         ptail = i             # <<<<<<<<<<<<<< @@ -37553,7 +37554,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */    __pyx_v_ptail = __pyx_v_i; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":134 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":134   *         # find the three partitions.    phead marks the first element   *         # of the middle partition, and ptail marks the last element   *         for k from i+1 <= k < j+1:             # <<<<<<<<<<<<<< @@ -37563,7 +37564,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    __pyx_t_5 = (__pyx_v_j + 1);    for (__pyx_v_k = (__pyx_v_i + 1); __pyx_v_k < __pyx_t_5; __pyx_v_k++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":135 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":135   *         # of the middle partition, and ptail marks the last element   *         for k from i+1 <= k < j+1:   *             if isa.arr[self.sa.arr[k] + h] < pval:             # <<<<<<<<<<<<<< @@ -37573,7 +37574,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_      __pyx_t_1 = (((__pyx_v_isa->arr[((__pyx_v_self->sa->arr[__pyx_v_k]) + __pyx_v_h)]) < __pyx_v_pval) != 0);      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":136 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":136   *         for k from i+1 <= k < j+1:   *             if isa.arr[self.sa.arr[k] + h] < pval:   *                 if k > ptail+1:             # <<<<<<<<<<<<<< @@ -37583,7 +37584,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_        __pyx_t_1 = ((__pyx_v_k > (__pyx_v_ptail + 1)) != 0);        if (__pyx_t_1) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":137 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":137   *             if isa.arr[self.sa.arr[k] + h] < pval:   *                 if k > ptail+1:   *                     tmp = self.sa.arr[phead]             # <<<<<<<<<<<<<< @@ -37592,7 +37593,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */          __pyx_v_tmp = (__pyx_v_self->sa->arr[__pyx_v_phead]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":138 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":138   *                 if k > ptail+1:   *                     tmp = self.sa.arr[phead]   *                     self.sa.arr[phead] = self.sa.arr[k]             # <<<<<<<<<<<<<< @@ -37601,7 +37602,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */          (__pyx_v_self->sa->arr[__pyx_v_phead]) = (__pyx_v_self->sa->arr[__pyx_v_k]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":139 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":139   *                     tmp = self.sa.arr[phead]   *                     self.sa.arr[phead] = self.sa.arr[k]   *                     self.sa.arr[k] = self.sa.arr[ptail+1]             # <<<<<<<<<<<<<< @@ -37610,7 +37611,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */          (__pyx_v_self->sa->arr[__pyx_v_k]) = (__pyx_v_self->sa->arr[(__pyx_v_ptail + 1)]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":140 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":140   *                     self.sa.arr[phead] = self.sa.arr[k]   *                     self.sa.arr[k] = self.sa.arr[ptail+1]   *                     self.sa.arr[ptail+1] = tmp             # <<<<<<<<<<<<<< @@ -37622,7 +37623,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_        }        /*else*/ { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":142 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":142   *                     self.sa.arr[ptail+1] = tmp   *                 else: # k == ptail+1   *                     tmp = self.sa.arr[phead]             # <<<<<<<<<<<<<< @@ -37631,7 +37632,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */          __pyx_v_tmp = (__pyx_v_self->sa->arr[__pyx_v_phead]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":143 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":143   *                 else: # k == ptail+1   *                     tmp = self.sa.arr[phead]   *                     self.sa.arr[phead] = self.sa.arr[k]             # <<<<<<<<<<<<<< @@ -37640,7 +37641,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */          (__pyx_v_self->sa->arr[__pyx_v_phead]) = (__pyx_v_self->sa->arr[__pyx_v_k]); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":144 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":144   *                     tmp = self.sa.arr[phead]   *                     self.sa.arr[phead] = self.sa.arr[k]   *                     self.sa.arr[k] = tmp             # <<<<<<<<<<<<<< @@ -37651,7 +37652,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_        }        __pyx_L10:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":145 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":145   *                     self.sa.arr[phead] = self.sa.arr[k]   *                     self.sa.arr[k] = tmp   *                 phead = phead + 1             # <<<<<<<<<<<<<< @@ -37660,7 +37661,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */        __pyx_v_phead = (__pyx_v_phead + 1); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":146 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":146   *                     self.sa.arr[k] = tmp   *                 phead = phead + 1   *                 ptail = ptail + 1             # <<<<<<<<<<<<<< @@ -37672,7 +37673,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":148 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":148   *                 ptail = ptail + 1   *             else:   *                 if isa.arr[self.sa.arr[k] + h] == pval:             # <<<<<<<<<<<<<< @@ -37682,7 +37683,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_        __pyx_t_1 = (((__pyx_v_isa->arr[((__pyx_v_self->sa->arr[__pyx_v_k]) + __pyx_v_h)]) == __pyx_v_pval) != 0);        if (__pyx_t_1) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":149 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":149   *             else:   *                 if isa.arr[self.sa.arr[k] + h] == pval:   *                     if k > ptail+1:             # <<<<<<<<<<<<<< @@ -37692,7 +37693,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_          __pyx_t_1 = ((__pyx_v_k > (__pyx_v_ptail + 1)) != 0);          if (__pyx_t_1) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":150 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":150   *                 if isa.arr[self.sa.arr[k] + h] == pval:   *                     if k > ptail+1:   *                         tmp = self.sa.arr[ptail+1]             # <<<<<<<<<<<<<< @@ -37701,7 +37702,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */            __pyx_v_tmp = (__pyx_v_self->sa->arr[(__pyx_v_ptail + 1)]); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":151 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":151   *                     if k > ptail+1:   *                         tmp = self.sa.arr[ptail+1]   *                         self.sa.arr[ptail+1] = self.sa.arr[k]             # <<<<<<<<<<<<<< @@ -37710,7 +37711,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_   */            (__pyx_v_self->sa->arr[(__pyx_v_ptail + 1)]) = (__pyx_v_self->sa->arr[__pyx_v_k]); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":152 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":152   *                         tmp = self.sa.arr[ptail+1]   *                         self.sa.arr[ptail+1] = self.sa.arr[k]   *                         self.sa.arr[k] = tmp             # <<<<<<<<<<<<<< @@ -37722,7 +37723,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_          }          __pyx_L12:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":153 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":153   *                         self.sa.arr[ptail+1] = self.sa.arr[k]   *                         self.sa.arr[k] = tmp   *                     ptail = ptail + 1             # <<<<<<<<<<<<<< @@ -37737,7 +37738,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_      __pyx_L9:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":156 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":156   *    *         # recursively sort smaller suffixes   *         self.q3sort(i, phead-1, h, isa, pad+"    ")             # <<<<<<<<<<<<<< @@ -37777,7 +37778,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":160 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":160   *         # update suffixes with pivot value   *         # corresponds to update_group function in Larsson & Sadakane   *         for k from phead <= k < ptail+1:             # <<<<<<<<<<<<<< @@ -37787,7 +37788,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    __pyx_t_5 = (__pyx_v_ptail + 1);    for (__pyx_v_k = __pyx_v_phead; __pyx_v_k < __pyx_t_5; __pyx_v_k++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":161 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":161   *         # corresponds to update_group function in Larsson & Sadakane   *         for k from phead <= k < ptail+1:   *             isa.arr[self.sa.arr[k]] = ptail             # <<<<<<<<<<<<<< @@ -37797,7 +37798,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_      (__pyx_v_isa->arr[(__pyx_v_self->sa->arr[__pyx_v_k])]) = __pyx_v_ptail;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":162 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":162   *         for k from phead <= k < ptail+1:   *             isa.arr[self.sa.arr[k]] = ptail   *         if phead == ptail:             # <<<<<<<<<<<<<< @@ -37807,7 +37808,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    __pyx_t_1 = ((__pyx_v_phead == __pyx_v_ptail) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":163 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":163   *             isa.arr[self.sa.arr[k]] = ptail   *         if phead == ptail:   *             self.sa.arr[phead] = -1             # <<<<<<<<<<<<<< @@ -37819,7 +37820,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    }    __pyx_L15:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":166 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":166   *    *         # recursively sort larger suffixes   *         self.q3sort(ptail+1, j, h, isa, pad+"    ")             # <<<<<<<<<<<<<< @@ -37859,7 +37860,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":100 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":100   *         logger.info("Suffix array construction took %f seconds", (monitor_cpu() - start_time))   *    *     def q3sort(self, int i, int j, int h, IntList isa, pad=""):             # <<<<<<<<<<<<<< @@ -37885,7 +37886,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_6q3sort(struct __pyx_obj_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":169 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":169   *    *    *     def write_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -37930,7 +37931,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_8write_text(struct __pyx_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_text", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":170 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":170   *    *     def write_text(self, char* filename):   *         self.darray.write_text(filename)             # <<<<<<<<<<<<<< @@ -37952,7 +37953,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_8write_text(struct __pyx_    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":169 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":169   *    *    *     def write_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -37975,7 +37976,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_8write_text(struct __pyx_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":172 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":172   *         self.darray.write_text(filename)   *    *     def read_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -38015,7 +38016,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_10read_binary(struct __py    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("read_binary", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":174 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":174   *     def read_binary(self, char* filename):   *         cdef FILE *f   *         f = fopen(filename, "r")             # <<<<<<<<<<<<<< @@ -38024,7 +38025,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_10read_binary(struct __py   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_r); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":175 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":175   *         cdef FILE *f   *         f = fopen(filename, "r")   *         self.darray.read_handle(f)             # <<<<<<<<<<<<<< @@ -38033,7 +38034,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_10read_binary(struct __py   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_DataArray *)__pyx_v_self->darray->__pyx_vtab)->read_handle(__pyx_v_self->darray, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":176 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":176   *         f = fopen(filename, "r")   *         self.darray.read_handle(f)   *         self.sa.read_handle(f)             # <<<<<<<<<<<<<< @@ -38042,7 +38043,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_10read_binary(struct __py   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->sa->__pyx_vtab)->read_handle(__pyx_v_self->sa, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":177 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":177   *         self.darray.read_handle(f)   *         self.sa.read_handle(f)   *         self.ha.read_handle(f)             # <<<<<<<<<<<<<< @@ -38051,7 +38052,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_10read_binary(struct __py   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->ha->__pyx_vtab)->read_handle(__pyx_v_self->ha, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":178 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":178   *         self.sa.read_handle(f)   *         self.ha.read_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -38060,7 +38061,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_10read_binary(struct __py   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":172 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":172   *         self.darray.write_text(filename)   *    *     def read_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -38075,7 +38076,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_10read_binary(struct __py    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":180 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":180   *         fclose(f)   *    *     def write_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -38115,7 +38116,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_12write_binary(struct __p    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("write_binary", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":182 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":182   *     def write_binary(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "w")             # <<<<<<<<<<<<<< @@ -38124,7 +38125,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_12write_binary(struct __p   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k_w); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":183 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":183   *         cdef FILE* f   *         f = fopen(filename, "w")   *         self.darray.write_handle(f)             # <<<<<<<<<<<<<< @@ -38133,7 +38134,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_12write_binary(struct __p   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_DataArray *)__pyx_v_self->darray->__pyx_vtab)->write_handle(__pyx_v_self->darray, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":184 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":184   *         f = fopen(filename, "w")   *         self.darray.write_handle(f)   *         self.sa.write_handle(f)             # <<<<<<<<<<<<<< @@ -38142,7 +38143,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_12write_binary(struct __p   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->sa->__pyx_vtab)->write_handle(__pyx_v_self->sa, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":185 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":185   *         self.darray.write_handle(f)   *         self.sa.write_handle(f)   *         self.ha.write_handle(f)             # <<<<<<<<<<<<<< @@ -38151,7 +38152,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_12write_binary(struct __p   */    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_self->ha->__pyx_vtab)->write_handle(__pyx_v_self->ha, __pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":186 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":186   *         self.sa.write_handle(f)   *         self.ha.write_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -38160,7 +38161,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_12write_binary(struct __p   */    fclose(__pyx_v_f); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":180 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":180   *         fclose(f)   *    *     def write_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -38175,7 +38176,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_12write_binary(struct __p    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":188 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":188   *         fclose(f)   *    *     def write_enhanced(self, char* filename):             # <<<<<<<<<<<<<< @@ -38233,7 +38234,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_14write_enhanced(struct _    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("write_enhanced", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":189 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":189   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -38273,7 +38274,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_14write_enhanced(struct _            __pyx_v_f = __pyx_t_4;            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":190 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":190   *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:   *             self.darray.write_enhanced_handle(f)             # <<<<<<<<<<<<<< @@ -38293,7 +38294,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_14write_enhanced(struct _            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":191 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":191   *         with open(filename, "w") as f:   *             self.darray.write_enhanced_handle(f)   *             for a_i in self.sa:             # <<<<<<<<<<<<<< @@ -38338,7 +38339,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_14write_enhanced(struct _              __Pyx_XDECREF_SET(__pyx_v_a_i, __pyx_t_1);              __pyx_t_1 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":192 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":192   *             self.darray.write_enhanced_handle(f)   *             for a_i in self.sa:   *                 f.write("%d " % a_i)             # <<<<<<<<<<<<<< @@ -38362,7 +38363,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_14write_enhanced(struct _            }            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":193 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":193   *             for a_i in self.sa:   *                 f.write("%d " % a_i)   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -38376,7 +38377,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_14write_enhanced(struct _            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":194 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":194   *                 f.write("%d " % a_i)   *             f.write("\n")   *             for w_i in self.ha:             # <<<<<<<<<<<<<< @@ -38421,7 +38422,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_14write_enhanced(struct _              __Pyx_XDECREF_SET(__pyx_v_w_i, __pyx_t_2);              __pyx_t_2 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":195 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":195   *             f.write("\n")   *             for w_i in self.ha:   *                 f.write("%d " % w_i)             # <<<<<<<<<<<<<< @@ -38445,7 +38446,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_14write_enhanced(struct _            }            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":196 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":196   *             for w_i in self.ha:   *                 f.write("%d " % w_i)   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -38469,7 +38470,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_14write_enhanced(struct _          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":189 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":189   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -38540,7 +38541,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_14write_enhanced(struct _      __pyx_L23:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":188 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":188   *         fclose(f)   *    *     def write_enhanced(self, char* filename):             # <<<<<<<<<<<<<< @@ -38567,7 +38568,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_14write_enhanced(struct _    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":198 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":198   *             f.write("\n")   *    *     cdef int __search_high(self, int word_id, int offset, int low, int high):             # <<<<<<<<<<<<<< @@ -38582,7 +38583,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_high(struct __pyx_obj_4    int __pyx_t_1;    __Pyx_RefNannySetupContext("__search_high", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":201 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":201   *         cdef int midpoint   *    *         if low >= high:             # <<<<<<<<<<<<<< @@ -38592,7 +38593,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_high(struct __pyx_obj_4    __pyx_t_1 = ((__pyx_v_low >= __pyx_v_high) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":202 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":202   *    *         if low >= high:   *             return high             # <<<<<<<<<<<<<< @@ -38603,7 +38604,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_high(struct __pyx_obj_4      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":203 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":203   *         if low >= high:   *             return high   *         midpoint = (high + low) / 2             # <<<<<<<<<<<<<< @@ -38612,7 +38613,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_high(struct __pyx_obj_4   */    __pyx_v_midpoint = __Pyx_div_long((__pyx_v_high + __pyx_v_low), 2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":204 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":204   *             return high   *         midpoint = (high + low) / 2   *         if self.darray.data.arr[self.sa.arr[midpoint] + offset] == word_id:             # <<<<<<<<<<<<<< @@ -38622,7 +38623,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_high(struct __pyx_obj_4    __pyx_t_1 = (((__pyx_v_self->darray->data->arr[((__pyx_v_self->sa->arr[__pyx_v_midpoint]) + __pyx_v_offset)]) == __pyx_v_word_id) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":205 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":205   *         midpoint = (high + low) / 2   *         if self.darray.data.arr[self.sa.arr[midpoint] + offset] == word_id:   *             return self.__search_high(word_id, offset, midpoint+1, high)             # <<<<<<<<<<<<<< @@ -38634,7 +38635,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_high(struct __pyx_obj_4    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":207 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":207   *             return self.__search_high(word_id, offset, midpoint+1, high)   *         else:   *             return self.__search_high(word_id, offset, low, midpoint)             # <<<<<<<<<<<<<< @@ -38645,7 +38646,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_high(struct __pyx_obj_4      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":198 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":198   *             f.write("\n")   *    *     cdef int __search_high(self, int word_id, int offset, int low, int high):             # <<<<<<<<<<<<<< @@ -38659,7 +38660,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_high(struct __pyx_obj_4    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":209 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":209   *             return self.__search_high(word_id, offset, low, midpoint)   *    *     cdef int __search_low(self, int word_id, int offset, int low, int high):             # <<<<<<<<<<<<<< @@ -38674,7 +38675,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_low(struct __pyx_obj_4c    int __pyx_t_1;    __Pyx_RefNannySetupContext("__search_low", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":212 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":212   *         cdef int midpoint   *    *         if low >= high:             # <<<<<<<<<<<<<< @@ -38684,7 +38685,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_low(struct __pyx_obj_4c    __pyx_t_1 = ((__pyx_v_low >= __pyx_v_high) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":213 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":213   *    *         if low >= high:   *             return high             # <<<<<<<<<<<<<< @@ -38695,7 +38696,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_low(struct __pyx_obj_4c      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":214 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":214   *         if low >= high:   *             return high   *         midpoint = (high + low) / 2             # <<<<<<<<<<<<<< @@ -38704,7 +38705,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_low(struct __pyx_obj_4c   */    __pyx_v_midpoint = __Pyx_div_long((__pyx_v_high + __pyx_v_low), 2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":215 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":215   *             return high   *         midpoint = (high + low) / 2   *         if self.darray.data.arr[self.sa.arr[midpoint] + offset] == word_id:             # <<<<<<<<<<<<<< @@ -38714,7 +38715,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_low(struct __pyx_obj_4c    __pyx_t_1 = (((__pyx_v_self->darray->data->arr[((__pyx_v_self->sa->arr[__pyx_v_midpoint]) + __pyx_v_offset)]) == __pyx_v_word_id) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":216 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":216   *         midpoint = (high + low) / 2   *         if self.darray.data.arr[self.sa.arr[midpoint] + offset] == word_id:   *             return self.__search_low(word_id, offset, low, midpoint)             # <<<<<<<<<<<<<< @@ -38726,7 +38727,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_low(struct __pyx_obj_4c    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":218 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":218   *             return self.__search_low(word_id, offset, low, midpoint)   *         else:   *             return self.__search_low(word_id, offset, midpoint+1, high)             # <<<<<<<<<<<<<< @@ -38737,7 +38738,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_low(struct __pyx_obj_4c      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":209 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":209   *             return self.__search_high(word_id, offset, low, midpoint)   *    *     cdef int __search_low(self, int word_id, int offset, int low, int high):             # <<<<<<<<<<<<<< @@ -38751,7 +38752,7 @@ static int __pyx_f_4cdec_2sa_3_sa_11SuffixArray___search_low(struct __pyx_obj_4c    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":220 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":220   *             return self.__search_low(word_id, offset, midpoint+1, high)   *    *     cdef __get_range(self, int word_id, int offset, int low, int high, int midpoint):             # <<<<<<<<<<<<<< @@ -38770,7 +38771,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___get_range(struct __pyx_o    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get_range", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":221 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":221   *    *     cdef __get_range(self, int word_id, int offset, int low, int high, int midpoint):   *         return (self.__search_low(word_id, offset, low, midpoint),             # <<<<<<<<<<<<<< @@ -38781,7 +38782,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___get_range(struct __pyx_o    __pyx_t_1 = __Pyx_PyInt_From_int(((struct __pyx_vtabstruct_4cdec_2sa_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__pyx___search_low(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, __pyx_v_low, __pyx_v_midpoint)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":222 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":222   *     cdef __get_range(self, int word_id, int offset, int low, int high, int midpoint):   *         return (self.__search_low(word_id, offset, low, midpoint),   *                 self.__search_high(word_id, offset, midpoint, high))             # <<<<<<<<<<<<<< @@ -38791,7 +38792,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___get_range(struct __pyx_o    __pyx_t_2 = __Pyx_PyInt_From_int(((struct __pyx_vtabstruct_4cdec_2sa_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__pyx___search_high(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, __pyx_v_midpoint, __pyx_v_high)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":221 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":221   *    *     cdef __get_range(self, int word_id, int offset, int low, int high, int midpoint):   *         return (self.__search_low(word_id, offset, low, midpoint),             # <<<<<<<<<<<<<< @@ -38810,7 +38811,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___get_range(struct __pyx_o    __pyx_t_3 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":220 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":220   *             return self.__search_low(word_id, offset, midpoint+1, high)   *    *     cdef __get_range(self, int word_id, int offset, int low, int high, int midpoint):             # <<<<<<<<<<<<<< @@ -38831,7 +38832,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___get_range(struct __pyx_o    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":224 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":224   *                 self.__search_high(word_id, offset, midpoint, high))   *    *     cdef __lookup_helper(self, int word_id, int offset, int low, int high):             # <<<<<<<<<<<<<< @@ -38852,7 +38853,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__lookup_helper", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":227 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":227   *         cdef int midpoint   *    *         if offset == 0:             # <<<<<<<<<<<<<< @@ -38862,7 +38863,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p    __pyx_t_1 = ((__pyx_v_offset == 0) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":228 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":228   *    *         if offset == 0:   *             return (self.ha.arr[word_id], self.ha.arr[word_id+1])             # <<<<<<<<<<<<<< @@ -38887,7 +38888,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":229 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":229   *         if offset == 0:   *             return (self.ha.arr[word_id], self.ha.arr[word_id+1])   *         if low >= high:             # <<<<<<<<<<<<<< @@ -38897,7 +38898,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p    __pyx_t_1 = ((__pyx_v_low >= __pyx_v_high) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":230 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":230   *             return (self.ha.arr[word_id], self.ha.arr[word_id+1])   *         if low >= high:   *             return None             # <<<<<<<<<<<<<< @@ -38910,7 +38911,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":232 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":232   *             return None   *    *         midpoint = (high + low) / 2             # <<<<<<<<<<<<<< @@ -38919,7 +38920,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p   */    __pyx_v_midpoint = __Pyx_div_long((__pyx_v_high + __pyx_v_low), 2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":233 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":233   *    *         midpoint = (high + low) / 2   *         if self.darray.data.arr[self.sa.arr[midpoint] + offset] == word_id:             # <<<<<<<<<<<<<< @@ -38929,7 +38930,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p    __pyx_t_1 = (((__pyx_v_self->darray->data->arr[((__pyx_v_self->sa->arr[__pyx_v_midpoint]) + __pyx_v_offset)]) == __pyx_v_word_id) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":234 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":234   *         midpoint = (high + low) / 2   *         if self.darray.data.arr[self.sa.arr[midpoint] + offset] == word_id:   *             return self.__get_range(word_id, offset, low, high, midpoint)             # <<<<<<<<<<<<<< @@ -38944,7 +38945,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":235 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":235   *         if self.darray.data.arr[self.sa.arr[midpoint] + offset] == word_id:   *             return self.__get_range(word_id, offset, low, high, midpoint)   *         if self.darray.data.arr[self.sa.arr[midpoint] + offset] > word_id:             # <<<<<<<<<<<<<< @@ -38954,7 +38955,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p    __pyx_t_1 = (((__pyx_v_self->darray->data->arr[((__pyx_v_self->sa->arr[__pyx_v_midpoint]) + __pyx_v_offset)]) > __pyx_v_word_id) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":236 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":236   *             return self.__get_range(word_id, offset, low, high, midpoint)   *         if self.darray.data.arr[self.sa.arr[midpoint] + offset] > word_id:   *             return self.__lookup_helper(word_id, offset, low, midpoint)             # <<<<<<<<<<<<<< @@ -38970,7 +38971,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":238 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":238   *             return self.__lookup_helper(word_id, offset, low, midpoint)   *         else:   *             return self.__lookup_helper(word_id, offset, midpoint+1, high)             # <<<<<<<<<<<<<< @@ -38985,7 +38986,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":224 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":224   *                 self.__search_high(word_id, offset, midpoint, high))   *    *     cdef __lookup_helper(self, int word_id, int offset, int low, int high):             # <<<<<<<<<<<<<< @@ -39006,7 +39007,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_11SuffixArray___lookup_helper(struct __p    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":240 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":240   *             return self.__lookup_helper(word_id, offset, midpoint+1, high)   *    *     def lookup(self, word, int offset, int low, int high):             # <<<<<<<<<<<<<< @@ -39107,7 +39108,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_16lookup(struct __pyx_obj    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("lookup", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":242 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":242   *     def lookup(self, word, int offset, int low, int high):   *         cdef int wordid   *         if low == -1:             # <<<<<<<<<<<<<< @@ -39117,7 +39118,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_16lookup(struct __pyx_obj    __pyx_t_1 = ((__pyx_v_low == -1) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":243 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":243   *         cdef int wordid   *         if low == -1:   *             low = 0             # <<<<<<<<<<<<<< @@ -39129,7 +39130,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_16lookup(struct __pyx_obj    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":244 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":244   *         if low == -1:   *             low = 0   *         if high == -1:             # <<<<<<<<<<<<<< @@ -39139,7 +39140,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_16lookup(struct __pyx_obj    __pyx_t_1 = ((__pyx_v_high == -1) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":245 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":245   *             low = 0   *         if high == -1:   *             high = len(self.sa)             # <<<<<<<<<<<<<< @@ -39155,7 +39156,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_16lookup(struct __pyx_obj    }    __pyx_L4:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":246 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":246   *         if high == -1:   *             high = len(self.sa)   *         if word in self.darray.word2id:             # <<<<<<<<<<<<<< @@ -39166,7 +39167,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_16lookup(struct __pyx_obj    __pyx_t_4 = (__pyx_t_1 != 0);    if (__pyx_t_4) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":247 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":247   *             high = len(self.sa)   *         if word in self.darray.word2id:   *             word_id = self.darray.word2id[word]             # <<<<<<<<<<<<<< @@ -39178,7 +39179,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_16lookup(struct __pyx_obj      __pyx_v_word_id = __pyx_t_2;      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":248 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":248   *         if word in self.darray.word2id:   *             word_id = self.darray.word2id[word]   *             return self.__lookup_helper(word_id, offset, low, high)             # <<<<<<<<<<<<<< @@ -39195,7 +39196,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_16lookup(struct __pyx_obj    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":250 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":250   *             return self.__lookup_helper(word_id, offset, low, high)   *         else:   *             return None             # <<<<<<<<<<<<<< @@ -39206,7 +39207,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_16lookup(struct __pyx_obj      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":240 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":240   *             return self.__lookup_helper(word_id, offset, midpoint+1, high)   *    *     def lookup(self, word, int offset, int low, int high):             # <<<<<<<<<<<<<< @@ -39226,8 +39227,8 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_11SuffixArray_16lookup(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":43 - *     cdef public phrases_al +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":47 + *     cdef public bilex   *    *     def __cinit__(self):             # <<<<<<<<<<<<<<   *         # Keep track of everything that can be sampled: @@ -39250,7 +39251,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_11OnlineStats_1__cinit__(PyObject *__pyx_v_se    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":50 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":54   *         self.phrases_f = defaultdict(int)   *         self.phrases_e = defaultdict(int)   *         self.phrases_fe = defaultdict(lambda: defaultdict(int))             # <<<<<<<<<<<<<< @@ -39283,14 +39284,14 @@ static PyObject *__pyx_lambda_funcdef_lambda1(CYTHON_UNUSED PyObject *__pyx_self    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("lambda1", 0);    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_INCREF(((PyObject *)((PyObject*)(&PyInt_Type))));    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)(&PyInt_Type))));    __Pyx_GIVEREF(((PyObject *)((PyObject*)(&PyInt_Type)))); -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -39311,12 +39312,12 @@ static PyObject *__pyx_lambda_funcdef_lambda1(CYTHON_UNUSED PyObject *__pyx_self    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":51 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":55   *         self.phrases_e = defaultdict(int)   *         self.phrases_fe = defaultdict(lambda: defaultdict(int))   *         self.phrases_al = defaultdict(lambda: defaultdict(tuple))             # <<<<<<<<<<<<<<   *  - * cdef int PRECOMPUTE = 0 + *         # Instance-specific bilex   */  /* Python wrapper */ @@ -39344,14 +39345,14 @@ static PyObject *__pyx_lambda_funcdef_lambda2(CYTHON_UNUSED PyObject *__pyx_self    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("lambda2", 0);    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_INCREF(((PyObject *)((PyObject*)(&PyTuple_Type))));    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)(&PyTuple_Type))));    __Pyx_GIVEREF(((PyObject *)((PyObject*)(&PyTuple_Type)))); -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -39372,8 +39373,8 @@ static PyObject *__pyx_lambda_funcdef_lambda2(CYTHON_UNUSED PyObject *__pyx_self    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":43 - *     cdef public phrases_al +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":47 + *     cdef public bilex   *    *     def __cinit__(self):             # <<<<<<<<<<<<<<   *         # Keep track of everything that can be sampled: @@ -39391,21 +39392,21 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats___cinit__(struct __pyx_obj_4cde    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":45 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":49   *     def __cinit__(self):   *         # Keep track of everything that can be sampled:   *         self.samples_f = defaultdict(int)             # <<<<<<<<<<<<<<   *    *         # Phrase counts   */ -  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_INCREF(((PyObject *)((PyObject*)(&PyInt_Type))));    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)(&PyInt_Type))));    __Pyx_GIVEREF(((PyObject *)((PyObject*)(&PyInt_Type)))); -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -39415,21 +39416,21 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats___cinit__(struct __pyx_obj_4cde    __pyx_v_self->samples_f = __pyx_t_3;    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":48 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":52   *    *         # Phrase counts   *         self.phrases_f = defaultdict(int)             # <<<<<<<<<<<<<<   *         self.phrases_e = defaultdict(int)   *         self.phrases_fe = defaultdict(lambda: defaultdict(int))   */ -  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_INCREF(((PyObject *)((PyObject*)(&PyInt_Type))));    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)(&PyInt_Type))));    __Pyx_GIVEREF(((PyObject *)((PyObject*)(&PyInt_Type)))); -  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -39439,21 +39440,21 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats___cinit__(struct __pyx_obj_4cde    __pyx_v_self->phrases_f = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":49 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":53   *         # Phrase counts   *         self.phrases_f = defaultdict(int)   *         self.phrases_e = defaultdict(int)             # <<<<<<<<<<<<<<   *         self.phrases_fe = defaultdict(lambda: defaultdict(int))   *         self.phrases_al = defaultdict(lambda: defaultdict(tuple))   */ -  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_INCREF(((PyObject *)((PyObject*)(&PyInt_Type))));    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)(&PyInt_Type))));    __Pyx_GIVEREF(((PyObject *)((PyObject*)(&PyInt_Type)))); -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -39463,23 +39464,23 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats___cinit__(struct __pyx_obj_4cde    __pyx_v_self->phrases_e = __pyx_t_3;    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":50 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":54   *         self.phrases_f = defaultdict(int)   *         self.phrases_e = defaultdict(int)   *         self.phrases_fe = defaultdict(lambda: defaultdict(int))             # <<<<<<<<<<<<<<   *         self.phrases_al = defaultdict(lambda: defaultdict(tuple))   *    */ -  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_11OnlineStats_9__cinit___lambda1, 0, __pyx_n_s_cinit___locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_11OnlineStats_9__cinit___lambda1, 0, __pyx_n_s_cinit___locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    __pyx_t_2 = 0; -  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39489,23 +39490,23 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats___cinit__(struct __pyx_obj_4cde    __pyx_v_self->phrases_fe = __pyx_t_2;    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":51 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":55   *         self.phrases_e = defaultdict(int)   *         self.phrases_fe = defaultdict(lambda: defaultdict(int))   *         self.phrases_al = defaultdict(lambda: defaultdict(tuple))             # <<<<<<<<<<<<<<   *  - * cdef int PRECOMPUTE = 0 + *         # Instance-specific bilex   */ -  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_11OnlineStats_9__cinit___1lambda2, 0, __pyx_n_s_cinit___locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_11OnlineStats_9__cinit___1lambda2, 0, __pyx_n_s_cinit___locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_t_1 = 0; -  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -39515,8 +39516,26 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats___cinit__(struct __pyx_obj_4cde    __pyx_v_self->phrases_al = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":43 - *     cdef public phrases_al +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":58 + *  + *         # Instance-specific bilex + *         self.bilex = Bilex()             # <<<<<<<<<<<<<< + *  + * cdef int PRECOMPUTE = 0 + */ +  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Bilex); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_1); +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +  __Pyx_GIVEREF(__pyx_t_3); +  __Pyx_GOTREF(__pyx_v_self->bilex); +  __Pyx_DECREF(__pyx_v_self->bilex); +  __pyx_v_self->bilex = __pyx_t_3; +  __pyx_t_3 = 0; + +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":47 + *     cdef public bilex   *    *     def __cinit__(self):             # <<<<<<<<<<<<<<   *         # Keep track of everything that can be sampled: @@ -39537,7 +39556,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats___cinit__(struct __pyx_obj_4cde    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":37 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":40   *    * cdef class OnlineStats:   *     cdef public samples_f             # <<<<<<<<<<<<<< @@ -39632,7 +39651,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_9samples_f_4__del__(struct __py    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":38 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":41   * cdef class OnlineStats:   *     cdef public samples_f   *     cdef public phrases_f             # <<<<<<<<<<<<<< @@ -39727,7 +39746,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_9phrases_f_4__del__(struct __py    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":39 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":42   *     cdef public samples_f   *     cdef public phrases_f   *     cdef public phrases_e             # <<<<<<<<<<<<<< @@ -39822,12 +39841,12 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_9phrases_e_4__del__(struct __py    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":40 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":43   *     cdef public phrases_f   *     cdef public phrases_e   *     cdef public phrases_fe             # <<<<<<<<<<<<<<   *     cdef public phrases_al - *  + *     cdef public bilex   */  /* Python wrapper */ @@ -39917,12 +39936,12 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_10phrases_fe_4__del__(struct __    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":41 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":44   *     cdef public phrases_e   *     cdef public phrases_fe   *     cdef public phrases_al             # <<<<<<<<<<<<<< + *     cdef public bilex   *  - *     def __cinit__(self):   */  /* Python wrapper */ @@ -40012,7 +40031,102 @@ static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_10phrases_al_4__del__(struct __    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":63 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":45 + *     cdef public phrases_fe + *     cdef public phrases_al + *     cdef public bilex             # <<<<<<<<<<<<<< + *  + *     def __cinit__(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_4cdec_2sa_3_sa_11OnlineStats_5bilex_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_4cdec_2sa_3_sa_11OnlineStats_5bilex_1__get__(PyObject *__pyx_v_self) { +  PyObject *__pyx_r = 0; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); +  __pyx_r = __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_5bilex___get__(((struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *)__pyx_v_self)); + +  /* function exit code */ +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +static PyObject *__pyx_pf_4cdec_2sa_3_sa_11OnlineStats_5bilex___get__(struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *__pyx_v_self) { +  PyObject *__pyx_r = NULL; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_XDECREF(__pyx_r); +  __Pyx_INCREF(__pyx_v_self->bilex); +  __pyx_r = __pyx_v_self->bilex; +  goto __pyx_L0; + +  /* function exit code */ +  __pyx_L0:; +  __Pyx_XGIVEREF(__pyx_r); +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +/* Python wrapper */ +static int __pyx_pw_4cdec_2sa_3_sa_11OnlineStats_5bilex_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_4cdec_2sa_3_sa_11OnlineStats_5bilex_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { +  int __pyx_r; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); +  __pyx_r = __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_5bilex_2__set__(((struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + +  /* function exit code */ +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_5bilex_2__set__(struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *__pyx_v_self, PyObject *__pyx_v_value) { +  int __pyx_r; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("__set__", 0); +  __Pyx_INCREF(__pyx_v_value); +  __Pyx_GIVEREF(__pyx_v_value); +  __Pyx_GOTREF(__pyx_v_self->bilex); +  __Pyx_DECREF(__pyx_v_self->bilex); +  __pyx_v_self->bilex = __pyx_v_value; + +  /* function exit code */ +  __pyx_r = 0; +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +/* Python wrapper */ +static int __pyx_pw_4cdec_2sa_3_sa_11OnlineStats_5bilex_5__del__(PyObject *__pyx_v_self); /*proto*/ +static int __pyx_pw_4cdec_2sa_3_sa_11OnlineStats_5bilex_5__del__(PyObject *__pyx_v_self) { +  int __pyx_r; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0); +  __pyx_r = __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_5bilex_4__del__(((struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *)__pyx_v_self)); + +  /* function exit code */ +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +static int __pyx_pf_4cdec_2sa_3_sa_11OnlineStats_5bilex_4__del__(struct __pyx_obj_4cdec_2sa_3_sa_OnlineStats *__pyx_v_self) { +  int __pyx_r; +  __Pyx_RefNannyDeclarations +  __Pyx_RefNannySetupContext("__del__", 0); +  __Pyx_INCREF(Py_None); +  __Pyx_GIVEREF(Py_None); +  __Pyx_GOTREF(__pyx_v_self->bilex); +  __Pyx_DECREF(__pyx_v_self->bilex); +  __pyx_v_self->bilex = Py_None; + +  /* function exit code */ +  __pyx_r = 0; +  __Pyx_RefNannyFinishContext(); +  return __pyx_r; +} + +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":70   *     cdef public children   *    *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -40045,14 +40159,14 @@ static int __pyx_pf_4cdec_2sa_3_sa_8TrieNode___cinit__(struct __pyx_obj_4cdec_2s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":64 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":71   *    *     def __cinit__(self):   *         self.children = {}             # <<<<<<<<<<<<<<   *    * cdef class ExtendedTrieNode(TrieNode):   */ -  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __Pyx_GOTREF(__pyx_v_self->children); @@ -40060,7 +40174,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_8TrieNode___cinit__(struct __pyx_obj_4cdec_2s    __pyx_v_self->children = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":63 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":70   *     cdef public children   *    *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -40080,7 +40194,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_8TrieNode___cinit__(struct __pyx_obj_4cdec_2s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":61 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":68   *    * cdef class TrieNode:   *     cdef public children             # <<<<<<<<<<<<<< @@ -40175,7 +40289,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_8TrieNode_8children_4__del__(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":71 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":78   *     cdef public suffix_link   *    *     def __cinit__(self, phrase=None, phrase_location=None, suffix_link=None):             # <<<<<<<<<<<<<< @@ -40230,7 +40344,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_16ExtendedTrieNode_1__cinit__(PyObject *__pyx          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -40247,7 +40361,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_16ExtendedTrieNode_1__cinit__(PyObject *__pyx    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.ExtendedTrieNode.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -40265,7 +40379,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_16ExtendedTrieNode___cinit__(struct __pyx_obj    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":72 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":79   *    *     def __cinit__(self, phrase=None, phrase_location=None, suffix_link=None):   *         self.phrase = phrase             # <<<<<<<<<<<<<< @@ -40278,7 +40392,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_16ExtendedTrieNode___cinit__(struct __pyx_obj    __Pyx_DECREF(__pyx_v_self->phrase);    __pyx_v_self->phrase = __pyx_v_phrase; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":73 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":80   *     def __cinit__(self, phrase=None, phrase_location=None, suffix_link=None):   *         self.phrase = phrase   *         self.phrase_location = phrase_location             # <<<<<<<<<<<<<< @@ -40291,7 +40405,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_16ExtendedTrieNode___cinit__(struct __pyx_obj    __Pyx_DECREF(__pyx_v_self->phrase_location);    __pyx_v_self->phrase_location = __pyx_v_phrase_location; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":74 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":81   *         self.phrase = phrase   *         self.phrase_location = phrase_location   *         self.suffix_link = suffix_link             # <<<<<<<<<<<<<< @@ -40304,7 +40418,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_16ExtendedTrieNode___cinit__(struct __pyx_obj    __Pyx_DECREF(__pyx_v_self->suffix_link);    __pyx_v_self->suffix_link = __pyx_v_suffix_link; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":71 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":78   *     cdef public suffix_link   *    *     def __cinit__(self, phrase=None, phrase_location=None, suffix_link=None):             # <<<<<<<<<<<<<< @@ -40318,7 +40432,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_16ExtendedTrieNode___cinit__(struct __pyx_obj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":67 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":74   *    * cdef class ExtendedTrieNode(TrieNode):   *     cdef public phrase             # <<<<<<<<<<<<<< @@ -40413,7 +40527,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_16ExtendedTrieNode_6phrase_4__del__(struct __    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":68 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":75   * cdef class ExtendedTrieNode(TrieNode):   *     cdef public phrase   *     cdef public phrase_location             # <<<<<<<<<<<<<< @@ -40508,7 +40622,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_16ExtendedTrieNode_15phrase_location_4__del__    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":69 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":76   *     cdef public phrase   *     cdef public phrase_location   *     cdef public suffix_link             # <<<<<<<<<<<<<< @@ -40603,7 +40717,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_16ExtendedTrieNode_11suffix_link_4__del__(str    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":81 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":88   *     cdef public int count   *     cdef public root   *     def __cinit__(self, extended=False):             # <<<<<<<<<<<<<< @@ -40642,7 +40756,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_9TrieTable_1__cinit__(PyObject *__pyx_v_self,          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -40655,7 +40769,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_9TrieTable_1__cinit__(PyObject *__pyx_v_self,    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.TrieTable.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -40679,7 +40793,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9TrieTable___cinit__(struct __pyx_obj_4cdec_2    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":82 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":89   *     cdef public root   *     def __cinit__(self, extended=False):   *         self.count = 0             # <<<<<<<<<<<<<< @@ -40688,34 +40802,34 @@ static int __pyx_pf_4cdec_2sa_3_sa_9TrieTable___cinit__(struct __pyx_obj_4cdec_2   */    __pyx_v_self->count = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":83 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":90   *     def __cinit__(self, extended=False):   *         self.count = 0   *         self.extended = extended             # <<<<<<<<<<<<<<   *         if extended:   *             self.root = ExtendedTrieNode()   */ -  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_extended); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_extended); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->extended = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":84 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":91   *         self.count = 0   *         self.extended = extended   *         if extended:             # <<<<<<<<<<<<<<   *             self.root = ExtendedTrieNode()   *         else:   */ -  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_extended); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_extended); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":85 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":92   *         self.extended = extended   *         if extended:   *             self.root = ExtendedTrieNode()             # <<<<<<<<<<<<<<   *         else:   *             self.root = TrieNode()   */ -    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_GIVEREF(__pyx_t_3);      __Pyx_GOTREF(__pyx_v_self->root); @@ -40726,14 +40840,14 @@ static int __pyx_pf_4cdec_2sa_3_sa_9TrieTable___cinit__(struct __pyx_obj_4cdec_2    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":87 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":94   *             self.root = ExtendedTrieNode()   *         else:   *             self.root = TrieNode()             # <<<<<<<<<<<<<<   *    * # linked list structure for storing matches in BaselineRuleFactory   */ -    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_TrieNode)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_TrieNode)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_GIVEREF(__pyx_t_3);      __Pyx_GOTREF(__pyx_v_self->root); @@ -40743,7 +40857,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9TrieTable___cinit__(struct __pyx_obj_4cdec_2    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":81 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":88   *     cdef public int count   *     cdef public root   *     def __cinit__(self, extended=False):             # <<<<<<<<<<<<<< @@ -40763,7 +40877,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9TrieTable___cinit__(struct __pyx_obj_4cdec_2    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":78 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":85   *    * cdef class TrieTable:   *     cdef public int extended             # <<<<<<<<<<<<<< @@ -40793,7 +40907,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9TrieTable_8extended___get__(struct __p    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0);    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->extended); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->extended); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -40831,7 +40945,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9TrieTable_8extended_2__set__(struct __pyx_ob    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__set__", 0); -  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->extended = __pyx_t_1;    /* function exit code */ @@ -40845,7 +40959,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9TrieTable_8extended_2__set__(struct __pyx_ob    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":79 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":86   * cdef class TrieTable:   *     cdef public int extended   *     cdef public int count             # <<<<<<<<<<<<<< @@ -40875,7 +40989,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_9TrieTable_5count___get__(struct __pyx_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__get__", 0);    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -40913,7 +41027,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9TrieTable_5count_2__set__(struct __pyx_obj_4    const char *__pyx_filename = NULL;    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__set__", 0); -  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_self->count = __pyx_t_1;    /* function exit code */ @@ -40927,7 +41041,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9TrieTable_5count_2__set__(struct __pyx_obj_4    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":80 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":87   *     cdef public int extended   *     cdef public int count   *     cdef public root             # <<<<<<<<<<<<<< @@ -41022,7 +41136,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_9TrieTable_4root_4__del__(struct __pyx_obj_4c    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":107 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":114   *    *     # returns true if sent_id is contained   *     cdef int contains(self, int sent_id):             # <<<<<<<<<<<<<< @@ -41035,7 +41149,7 @@ static int __pyx_f_4cdec_2sa_3_sa_14PhraseLocation_contains(CYTHON_UNUSED struct    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("contains", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":108 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":115   *     # returns true if sent_id is contained   *     cdef int contains(self, int sent_id):   *         return 1             # <<<<<<<<<<<<<< @@ -41045,7 +41159,7 @@ static int __pyx_f_4cdec_2sa_3_sa_14PhraseLocation_contains(CYTHON_UNUSED struct    __pyx_r = 1;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":107 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":114   *    *     # returns true if sent_id is contained   *     cdef int contains(self, int sent_id):             # <<<<<<<<<<<<<< @@ -41059,7 +41173,7 @@ static int __pyx_f_4cdec_2sa_3_sa_14PhraseLocation_contains(CYTHON_UNUSED struct    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":110 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":117   *         return 1   *    *     def __cinit__(self, int sa_low=-1, int sa_high=-1, int arr_low=-1, int arr_high=-1,             # <<<<<<<<<<<<<< @@ -41086,7 +41200,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_14PhraseLocation_1__cinit__(PyObject *__pyx_v      static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sa_low,&__pyx_n_s_sa_high,&__pyx_n_s_arr_low,&__pyx_n_s_arr_high,&__pyx_n_s_arr,&__pyx_n_s_num_subpatterns,0};      PyObject* values[6] = {0,0,0,0,0,0}; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":111 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":118   *    *     def __cinit__(self, int sa_low=-1, int sa_high=-1, int arr_low=-1, int arr_high=-1,   *             arr=None, int num_subpatterns=1):             # <<<<<<<<<<<<<< @@ -41141,7 +41255,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_14PhraseLocation_1__cinit__(PyObject *__pyx_v          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -41156,35 +41270,35 @@ static int __pyx_pw_4cdec_2sa_3_sa_14PhraseLocation_1__cinit__(PyObject *__pyx_v        }      }      if (values[0]) { -      __pyx_v_sa_low = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_sa_low == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_sa_low = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_sa_low == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_sa_low = ((int)-1);      }      if (values[1]) { -      __pyx_v_sa_high = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_sa_high == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_sa_high = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_sa_high == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_sa_high = ((int)-1);      }      if (values[2]) { -      __pyx_v_arr_low = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_arr_low == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_arr_low = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_arr_low == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_arr_low = ((int)-1);      }      if (values[3]) { -      __pyx_v_arr_high = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_arr_high == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_arr_high = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_arr_high == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_arr_high = ((int)-1);      }      __pyx_v_arr = values[4];      if (values[5]) { -      __pyx_v_num_subpatterns = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_num_subpatterns == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_num_subpatterns = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_num_subpatterns == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_num_subpatterns = ((int)1);      }    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.PhraseLocation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -41192,7 +41306,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_14PhraseLocation_1__cinit__(PyObject *__pyx_v    __pyx_L4_argument_unpacking_done:;    __pyx_r = __pyx_pf_4cdec_2sa_3_sa_14PhraseLocation___cinit__(((struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *)__pyx_v_self), __pyx_v_sa_low, __pyx_v_sa_high, __pyx_v_arr_low, __pyx_v_arr_high, __pyx_v_arr, __pyx_v_num_subpatterns); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":110 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":117   *         return 1   *    *     def __cinit__(self, int sa_low=-1, int sa_high=-1, int arr_low=-1, int arr_high=-1,             # <<<<<<<<<<<<<< @@ -41214,7 +41328,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_4    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":112 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":119   *     def __cinit__(self, int sa_low=-1, int sa_high=-1, int arr_low=-1, int arr_high=-1,   *             arr=None, int num_subpatterns=1):   *         self.sa_low = sa_low             # <<<<<<<<<<<<<< @@ -41223,7 +41337,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_4   */    __pyx_v_self->sa_low = __pyx_v_sa_low; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":113 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":120   *             arr=None, int num_subpatterns=1):   *         self.sa_low = sa_low   *         self.sa_high = sa_high             # <<<<<<<<<<<<<< @@ -41232,7 +41346,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_4   */    __pyx_v_self->sa_high = __pyx_v_sa_high; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":114 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":121   *         self.sa_low = sa_low   *         self.sa_high = sa_high   *         self.arr_low = arr_low             # <<<<<<<<<<<<<< @@ -41241,7 +41355,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_4   */    __pyx_v_self->arr_low = __pyx_v_arr_low; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":115 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":122   *         self.sa_high = sa_high   *         self.arr_low = arr_low   *         self.arr_high = arr_high             # <<<<<<<<<<<<<< @@ -41250,14 +41364,14 @@ static int __pyx_pf_4cdec_2sa_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_4   */    __pyx_v_self->arr_high = __pyx_v_arr_high; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":116 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":123   *         self.arr_low = arr_low   *         self.arr_high = arr_high   *         self.arr = arr             # <<<<<<<<<<<<<<   *         self.num_subpatterns = num_subpatterns   *    */ -  if (!(likely(((__pyx_v_arr) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_arr, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(((__pyx_v_arr) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_arr, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_t_1 = __pyx_v_arr;    __Pyx_INCREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); @@ -41266,7 +41380,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_4    __pyx_v_self->arr = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":117 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":124   *         self.arr_high = arr_high   *         self.arr = arr   *         self.num_subpatterns = num_subpatterns             # <<<<<<<<<<<<<< @@ -41275,7 +41389,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_4   */    __pyx_v_self->num_subpatterns = __pyx_v_num_subpatterns; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":110 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":117   *         return 1   *    *     def __cinit__(self, int sa_low=-1, int sa_high=-1, int arr_low=-1, int arr_high=-1,             # <<<<<<<<<<<<<< @@ -41295,7 +41409,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_4    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":127 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":134   *     cdef IntList sa   *    *     def __cinit__(self, int sample_size, SuffixArray fsarray):             # <<<<<<<<<<<<<< @@ -41334,11 +41448,11 @@ static int __pyx_pw_4cdec_2sa_3_sa_7Sampler_1__cinit__(PyObject *__pyx_v_self, P          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fsarray)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {        goto __pyx_L5_argtuple_error; @@ -41346,18 +41460,18 @@ static int __pyx_pw_4cdec_2sa_3_sa_7Sampler_1__cinit__(PyObject *__pyx_v_self, P        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);      } -    __pyx_v_sample_size = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_sample_size == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_v_sample_size = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_sample_size == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      __pyx_v_fsarray = ((struct __pyx_obj_4cdec_2sa_3_sa_SuffixArray *)values[1]);    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.Sampler.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fsarray), __pyx_ptype_4cdec_2sa_3_sa_SuffixArray, 1, "fsarray", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fsarray), __pyx_ptype_4cdec_2sa_3_sa_SuffixArray, 1, "fsarray", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_r = __pyx_pf_4cdec_2sa_3_sa_7Sampler___cinit__(((struct __pyx_obj_4cdec_2sa_3_sa_Sampler *)__pyx_v_self), __pyx_v_sample_size, __pyx_v_fsarray);    /* function exit code */ @@ -41381,7 +41495,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7Sampler___cinit__(struct __pyx_obj_4cdec_2sa    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":128 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":135   *    *     def __cinit__(self, int sample_size, SuffixArray fsarray):   *         self.sample_size = sample_size             # <<<<<<<<<<<<<< @@ -41390,7 +41504,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7Sampler___cinit__(struct __pyx_obj_4cdec_2sa   */    __pyx_v_self->sample_size = __pyx_v_sample_size; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":129 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":136   *     def __cinit__(self, int sample_size, SuffixArray fsarray):   *         self.sample_size = sample_size   *         self.sa = fsarray.sa             # <<<<<<<<<<<<<< @@ -41405,7 +41519,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7Sampler___cinit__(struct __pyx_obj_4cdec_2sa    __pyx_v_self->sa = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":130 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":137   *         self.sample_size = sample_size   *         self.sa = fsarray.sa   *         if sample_size > 0:             # <<<<<<<<<<<<<< @@ -41415,21 +41529,21 @@ static int __pyx_pf_4cdec_2sa_3_sa_7Sampler___cinit__(struct __pyx_obj_4cdec_2sa    __pyx_t_2 = ((__pyx_v_sample_size > 0) != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":131 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":138   *         self.sa = fsarray.sa   *         if sample_size > 0:   *             logger.info("Sampling strategy: uniform, max sample size = %d", sample_size)             # <<<<<<<<<<<<<<   *         else:   *             logger.info("Sampling strategy: no sampling")   */ -    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_sample_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_sample_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_INCREF(__pyx_kp_s_Sampling_strategy_uniform_max_sa);      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_s_Sampling_strategy_uniform_max_sa); @@ -41437,7 +41551,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7Sampler___cinit__(struct __pyx_obj_4cdec_2sa      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);      __Pyx_GIVEREF(__pyx_t_1);      __pyx_t_1 = 0; -    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -41446,26 +41560,26 @@ static int __pyx_pf_4cdec_2sa_3_sa_7Sampler___cinit__(struct __pyx_obj_4cdec_2sa    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":133 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":140   *             logger.info("Sampling strategy: uniform, max sample size = %d", sample_size)   *         else:   *             logger.info("Sampling strategy: no sampling")             # <<<<<<<<<<<<<<   *    *     def sample(self, PhraseLocation phrase_location):   */ -    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_info); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_info); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__60, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__60, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":127 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":134   *     cdef IntList sa   *    *     def __cinit__(self, int sample_size, SuffixArray fsarray):             # <<<<<<<<<<<<<< @@ -41487,7 +41601,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_7Sampler___cinit__(struct __pyx_obj_4cdec_2sa    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":135 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":142   *             logger.info("Sampling strategy: no sampling")   *    *     def sample(self, PhraseLocation phrase_location):             # <<<<<<<<<<<<<< @@ -41505,7 +41619,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_7Sampler_3sample(PyObject *__pyx_v_self    PyObject *__pyx_r = 0;    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("sample (wrapper)", 0); -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phrase_location), __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation, 1, "phrase_location", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phrase_location), __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation, 1, "phrase_location", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_r = __pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(((struct __pyx_obj_4cdec_2sa_3_sa_Sampler *)__pyx_v_self), ((struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *)__pyx_v_phrase_location));    /* function exit code */ @@ -41536,19 +41650,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("sample", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":148 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":155   *         cdef int num_locations, val, j   *    *         sample = IntList()             # <<<<<<<<<<<<<<   *         if phrase_location.arr is None:   *             num_locations = phrase_location.sa_high - phrase_location.sa_low   */ -  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_sample = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":149 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":156   *    *         sample = IntList()   *         if phrase_location.arr is None:             # <<<<<<<<<<<<<< @@ -41559,7 +41673,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec    __pyx_t_3 = (__pyx_t_2 != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":150 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":157   *         sample = IntList()   *         if phrase_location.arr is None:   *             num_locations = phrase_location.sa_high - phrase_location.sa_low             # <<<<<<<<<<<<<< @@ -41568,7 +41682,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec   */      __pyx_v_num_locations = (__pyx_v_phrase_location->sa_high - __pyx_v_phrase_location->sa_low); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":151 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":158   *         if phrase_location.arr is None:   *             num_locations = phrase_location.sa_high - phrase_location.sa_low   *             if self.sample_size == -1 or num_locations <= self.sample_size:             # <<<<<<<<<<<<<< @@ -41584,7 +41698,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec      }      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":152 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":159   *             num_locations = phrase_location.sa_high - phrase_location.sa_low   *             if self.sample_size == -1 or num_locations <= self.sample_size:   *                 sample._extend_arr(self.sa.arr + phrase_location.sa_low, num_locations)             # <<<<<<<<<<<<<< @@ -41596,7 +41710,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":154 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":161   *                 sample._extend_arr(self.sa.arr + phrase_location.sa_low, num_locations)   *             else:   *                 stepsize = float(num_locations)/float(self.sample_size)             # <<<<<<<<<<<<<< @@ -41611,11 +41725,11 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec          #ifdef WITH_THREAD          PyGILState_Release(__pyx_gilstate_save);          #endif -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        __pyx_v_stepsize = (((double)__pyx_v_num_locations) / ((double)__pyx_v_self->sample_size)); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":155 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":162   *             else:   *                 stepsize = float(num_locations)/float(self.sample_size)   *                 i = phrase_location.sa_low             # <<<<<<<<<<<<<< @@ -41625,7 +41739,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec        __pyx_t_5 = __pyx_v_phrase_location->sa_low;        __pyx_v_i = __pyx_t_5; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":156 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":163   *                 stepsize = float(num_locations)/float(self.sample_size)   *                 i = phrase_location.sa_low   *                 while i < phrase_location.sa_high and sample.len < self.sample_size:             # <<<<<<<<<<<<<< @@ -41642,7 +41756,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec          }          if (!__pyx_t_2) break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":159 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":166   *                     '''Note: int(i) not guaranteed to have the desired   *                     effect, according to the python documentation'''   *                     if fmod(i,1.0) > 0.5:             # <<<<<<<<<<<<<< @@ -41652,7 +41766,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec          __pyx_t_2 = ((fmod(__pyx_v_i, 1.0) > 0.5) != 0);          if (__pyx_t_2) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":160 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":167   *                     effect, according to the python documentation'''   *                     if fmod(i,1.0) > 0.5:   *                         val = int(ceil(i))             # <<<<<<<<<<<<<< @@ -41664,7 +41778,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":162 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":169   *                         val = int(ceil(i))   *                     else:   *                         val = int(floor(i))             # <<<<<<<<<<<<<< @@ -41675,7 +41789,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec          }          __pyx_L7:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":163 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":170   *                     else:   *                         val = int(floor(i))   *                     sample._append(self.sa.arr[val])             # <<<<<<<<<<<<<< @@ -41684,7 +41798,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec   */          ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_sample->__pyx_vtab)->_append(__pyx_v_sample, (__pyx_v_self->sa->arr[__pyx_v_val])); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":164 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":171   *                         val = int(floor(i))   *                     sample._append(self.sa.arr[val])   *                     i = i + stepsize             # <<<<<<<<<<<<<< @@ -41699,7 +41813,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":166 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":173   *                     i = i + stepsize   *         else:   *             num_locations = (phrase_location.arr_high - phrase_location.arr_low) / phrase_location.num_subpatterns             # <<<<<<<<<<<<<< @@ -41715,7 +41829,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec        #ifdef WITH_THREAD        PyGILState_Release(__pyx_gilstate_save);        #endif -      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      }      else if (sizeof(int) == sizeof(long) && (!(((int)-1) > 0)) && unlikely(__pyx_v_phrase_location->num_subpatterns == (int)-1)  && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_t_5))) {        #ifdef WITH_THREAD @@ -41725,11 +41839,11 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec        #ifdef WITH_THREAD        PyGILState_Release(__pyx_gilstate_save);        #endif -      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      }      __pyx_v_num_locations = __Pyx_div_int(__pyx_t_5, __pyx_v_phrase_location->num_subpatterns); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":167 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":174   *         else:   *             num_locations = (phrase_location.arr_high - phrase_location.arr_low) / phrase_location.num_subpatterns   *             if self.sample_size == -1 or num_locations <= self.sample_size:             # <<<<<<<<<<<<<< @@ -41745,7 +41859,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec      }      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":168 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":175   *             num_locations = (phrase_location.arr_high - phrase_location.arr_low) / phrase_location.num_subpatterns   *             if self.sample_size == -1 or num_locations <= self.sample_size:   *                 sample = phrase_location.arr             # <<<<<<<<<<<<<< @@ -41760,7 +41874,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":170 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":177   *                 sample = phrase_location.arr   *             else:   *                 stepsize = float(num_locations)/float(self.sample_size)             # <<<<<<<<<<<<<< @@ -41775,11 +41889,11 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec          #ifdef WITH_THREAD          PyGILState_Release(__pyx_gilstate_save);          #endif -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        __pyx_v_stepsize = (((double)__pyx_v_num_locations) / ((double)__pyx_v_self->sample_size)); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":171 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":178   *             else:   *                 stepsize = float(num_locations)/float(self.sample_size)   *                 i = phrase_location.arr_low             # <<<<<<<<<<<<<< @@ -41789,7 +41903,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec        __pyx_t_5 = __pyx_v_phrase_location->arr_low;        __pyx_v_i = __pyx_t_5; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":172 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":179   *                 stepsize = float(num_locations)/float(self.sample_size)   *                 i = phrase_location.arr_low   *                 while i < num_locations and sample.len < self.sample_size * phrase_location.num_subpatterns:             # <<<<<<<<<<<<<< @@ -41806,7 +41920,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec          }          if (!__pyx_t_4) break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":175 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":182   *                     '''Note: int(i) not guaranteed to have the desired   *                     effect, according to the python documentation'''   *                     if fmod(i,1.0) > 0.5:             # <<<<<<<<<<<<<< @@ -41816,7 +41930,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec          __pyx_t_4 = ((fmod(__pyx_v_i, 1.0) > 0.5) != 0);          if (__pyx_t_4) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":176 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":183   *                     effect, according to the python documentation'''   *                     if fmod(i,1.0) > 0.5:   *                         val = int(ceil(i))             # <<<<<<<<<<<<<< @@ -41828,7 +41942,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":178 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":185   *                         val = int(ceil(i))   *                     else:   *                         val = int(floor(i))             # <<<<<<<<<<<<<< @@ -41839,7 +41953,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec          }          __pyx_L11:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":179 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":186   *                     else:   *                         val = int(floor(i))   *                     j = phrase_location.arr_low + (val*phrase_location.num_subpatterns)             # <<<<<<<<<<<<<< @@ -41848,7 +41962,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec   */          __pyx_v_j = (__pyx_v_phrase_location->arr_low + (__pyx_v_val * __pyx_v_phrase_location->num_subpatterns)); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":180 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":187   *                         val = int(floor(i))   *                     j = phrase_location.arr_low + (val*phrase_location.num_subpatterns)   *                     sample._extend_arr(phrase_location.arr.arr + j, phrase_location.num_subpatterns)             # <<<<<<<<<<<<<< @@ -41857,7 +41971,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec   */          ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_sample->__pyx_vtab)->_extend_arr(__pyx_v_sample, (__pyx_v_phrase_location->arr->arr + __pyx_v_j), __pyx_v_phrase_location->num_subpatterns); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":181 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":188   *                     j = phrase_location.arr_low + (val*phrase_location.num_subpatterns)   *                     sample._extend_arr(phrase_location.arr.arr + j, phrase_location.num_subpatterns)   *                     i = i + stepsize             # <<<<<<<<<<<<<< @@ -41871,7 +41985,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":182 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":189   *                     sample._extend_arr(phrase_location.arr.arr + j, phrase_location.num_subpatterns)   *                     i = i + stepsize   *         return sample             # <<<<<<<<<<<<<< @@ -41883,7 +41997,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec    __pyx_r = ((PyObject *)__pyx_v_sample);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":135 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":142   *             logger.info("Sampling strategy: no sampling")   *    *     def sample(self, PhraseLocation phrase_location):             # <<<<<<<<<<<<<< @@ -41903,7 +42017,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_7Sampler_2sample(struct __pyx_obj_4cdec    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":194 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":201   *    *    * cdef void assign_matching(Matching* m, int* arr, int start, int step, int* sent_id_arr):             # <<<<<<<<<<<<<< @@ -41915,7 +42029,7 @@ static void __pyx_f_4cdec_2sa_3_sa_assign_matching(struct __pyx_t_4cdec_2sa_3_sa    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("assign_matching", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":195 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":202   *    * cdef void assign_matching(Matching* m, int* arr, int start, int step, int* sent_id_arr):   *     m.arr = arr             # <<<<<<<<<<<<<< @@ -41924,7 +42038,7 @@ static void __pyx_f_4cdec_2sa_3_sa_assign_matching(struct __pyx_t_4cdec_2sa_3_sa   */    __pyx_v_m->arr = __pyx_v_arr; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":196 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":203   * cdef void assign_matching(Matching* m, int* arr, int start, int step, int* sent_id_arr):   *     m.arr = arr   *     m.start = start             # <<<<<<<<<<<<<< @@ -41933,7 +42047,7 @@ static void __pyx_f_4cdec_2sa_3_sa_assign_matching(struct __pyx_t_4cdec_2sa_3_sa   */    __pyx_v_m->start = __pyx_v_start; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":197 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":204   *     m.arr = arr   *     m.start = start   *     m.end = start + step             # <<<<<<<<<<<<<< @@ -41942,7 +42056,7 @@ static void __pyx_f_4cdec_2sa_3_sa_assign_matching(struct __pyx_t_4cdec_2sa_3_sa   */    __pyx_v_m->end = (__pyx_v_start + __pyx_v_step); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":198 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":205   *     m.start = start   *     m.end = start + step   *     m.sent_id = sent_id_arr[arr[start]]             # <<<<<<<<<<<<<< @@ -41951,7 +42065,7 @@ static void __pyx_f_4cdec_2sa_3_sa_assign_matching(struct __pyx_t_4cdec_2sa_3_sa   */    __pyx_v_m->sent_id = (__pyx_v_sent_id_arr[(__pyx_v_arr[__pyx_v_start])]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":199 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":206   *     m.end = start + step   *     m.sent_id = sent_id_arr[arr[start]]   *     m.size = step             # <<<<<<<<<<<<<< @@ -41960,7 +42074,7 @@ static void __pyx_f_4cdec_2sa_3_sa_assign_matching(struct __pyx_t_4cdec_2sa_3_sa   */    __pyx_v_m->size = __pyx_v_step; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":194 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":201   *    *    * cdef void assign_matching(Matching* m, int* arr, int start, int step, int* sent_id_arr):             # <<<<<<<<<<<<<< @@ -41972,7 +42086,7 @@ static void __pyx_f_4cdec_2sa_3_sa_assign_matching(struct __pyx_t_4cdec_2sa_3_sa    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":202 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":209   *    *    * cdef int* append_combined_matching(int* arr, Matching* loc1, Matching* loc2,             # <<<<<<<<<<<<<< @@ -41989,7 +42103,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_append_combined_matching(int *__pyx_v_arr, st    int __pyx_t_2;    __Pyx_RefNannySetupContext("append_combined_matching", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":206 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":213   *     cdef int i, new_len   *    *     new_len = result_len[0] + num_subpatterns             # <<<<<<<<<<<<<< @@ -41998,7 +42112,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_append_combined_matching(int *__pyx_v_arr, st   */    __pyx_v_new_len = ((__pyx_v_result_len[0]) + __pyx_v_num_subpatterns); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":207 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":214   *    *     new_len = result_len[0] + num_subpatterns   *     arr = <int*> realloc(arr, new_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -42007,7 +42121,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_append_combined_matching(int *__pyx_v_arr, st   */    __pyx_v_arr = ((int *)realloc(__pyx_v_arr, (__pyx_v_new_len * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":209 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":216   *     arr = <int*> realloc(arr, new_len*sizeof(int))   *    *     for i from 0 <= i < loc1.size:             # <<<<<<<<<<<<<< @@ -42017,7 +42131,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_append_combined_matching(int *__pyx_v_arr, st    __pyx_t_1 = __pyx_v_loc1->size;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":210 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":217   *    *     for i from 0 <= i < loc1.size:   *         arr[result_len[0]+i] = loc1.arr[loc1.start+i]             # <<<<<<<<<<<<<< @@ -42027,7 +42141,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_append_combined_matching(int *__pyx_v_arr, st      (__pyx_v_arr[((__pyx_v_result_len[0]) + __pyx_v_i)]) = (__pyx_v_loc1->arr[(__pyx_v_loc1->start + __pyx_v_i)]);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":211 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":218   *     for i from 0 <= i < loc1.size:   *         arr[result_len[0]+i] = loc1.arr[loc1.start+i]   *     if num_subpatterns > loc1.size:             # <<<<<<<<<<<<<< @@ -42037,7 +42151,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_append_combined_matching(int *__pyx_v_arr, st    __pyx_t_2 = ((__pyx_v_num_subpatterns > __pyx_v_loc1->size) != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":212 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":219   *         arr[result_len[0]+i] = loc1.arr[loc1.start+i]   *     if num_subpatterns > loc1.size:   *         arr[new_len-1] = loc2.arr[loc2.end-1]             # <<<<<<<<<<<<<< @@ -42049,7 +42163,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_append_combined_matching(int *__pyx_v_arr, st    }    __pyx_L5:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":213 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":220   *     if num_subpatterns > loc1.size:   *         arr[new_len-1] = loc2.arr[loc2.end-1]   *     result_len[0] = new_len             # <<<<<<<<<<<<<< @@ -42058,7 +42172,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_append_combined_matching(int *__pyx_v_arr, st   */    (__pyx_v_result_len[0]) = __pyx_v_new_len; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":214 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":221   *         arr[new_len-1] = loc2.arr[loc2.end-1]   *     result_len[0] = new_len   *     return arr             # <<<<<<<<<<<<<< @@ -42068,7 +42182,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_append_combined_matching(int *__pyx_v_arr, st    __pyx_r = __pyx_v_arr;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":202 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":209   *    *    * cdef int* append_combined_matching(int* arr, Matching* loc1, Matching* loc2,             # <<<<<<<<<<<<<< @@ -42082,7 +42196,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_append_combined_matching(int *__pyx_v_arr, st    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":217 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":224   *    *    * cdef int* extend_arr(int* arr, int* arr_len, int* appendix, int appendix_len):             # <<<<<<<<<<<<<< @@ -42096,7 +42210,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_extend_arr(int *__pyx_v_arr, int *__pyx_v_arr    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("extend_arr", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":220 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":227   *     cdef int new_len   *    *     new_len = arr_len[0] + appendix_len             # <<<<<<<<<<<<<< @@ -42105,7 +42219,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_extend_arr(int *__pyx_v_arr, int *__pyx_v_arr   */    __pyx_v_new_len = ((__pyx_v_arr_len[0]) + __pyx_v_appendix_len); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":221 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":228   *    *     new_len = arr_len[0] + appendix_len   *     arr = <int*> realloc(arr, new_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -42114,7 +42228,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_extend_arr(int *__pyx_v_arr, int *__pyx_v_arr   */    __pyx_v_arr = ((int *)realloc(__pyx_v_arr, (__pyx_v_new_len * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":222 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":229   *     new_len = arr_len[0] + appendix_len   *     arr = <int*> realloc(arr, new_len*sizeof(int))   *     memcpy(arr+arr_len[0], appendix, appendix_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -42123,7 +42237,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_extend_arr(int *__pyx_v_arr, int *__pyx_v_arr   */    memcpy((__pyx_v_arr + (__pyx_v_arr_len[0])), __pyx_v_appendix, (__pyx_v_appendix_len * (sizeof(int)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":223 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":230   *     arr = <int*> realloc(arr, new_len*sizeof(int))   *     memcpy(arr+arr_len[0], appendix, appendix_len*sizeof(int))   *     arr_len[0] = new_len             # <<<<<<<<<<<<<< @@ -42132,7 +42246,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_extend_arr(int *__pyx_v_arr, int *__pyx_v_arr   */    (__pyx_v_arr_len[0]) = __pyx_v_new_len; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":224 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":231   *     memcpy(arr+arr_len[0], appendix, appendix_len*sizeof(int))   *     arr_len[0] = new_len   *     return arr             # <<<<<<<<<<<<<< @@ -42142,7 +42256,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_extend_arr(int *__pyx_v_arr, int *__pyx_v_arr    __pyx_r = __pyx_v_arr;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":217 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":224   *    *    * cdef int* extend_arr(int* arr, int* arr_len, int* appendix, int appendix_len):             # <<<<<<<<<<<<<< @@ -42156,7 +42270,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_extend_arr(int *__pyx_v_arr, int *__pyx_v_arr    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":226 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":233   *     return arr   *    * cdef int median(int low, int high, int step):             # <<<<<<<<<<<<<< @@ -42173,7 +42287,7 @@ static int __pyx_f_4cdec_2sa_3_sa_median(int __pyx_v_low, int __pyx_v_high, int    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("median", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":227 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":234   *    * cdef int median(int low, int high, int step):   *     return low + (((high - low)/step)/2)*step             # <<<<<<<<<<<<<< @@ -42189,7 +42303,7 @@ static int __pyx_f_4cdec_2sa_3_sa_median(int __pyx_v_low, int __pyx_v_high, int      #ifdef WITH_THREAD      PyGILState_Release(__pyx_gilstate_save);      #endif -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    else if (sizeof(int) == sizeof(long) && (!(((int)-1) > 0)) && unlikely(__pyx_v_step == (int)-1)  && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_t_1))) {      #ifdef WITH_THREAD @@ -42199,12 +42313,12 @@ static int __pyx_f_4cdec_2sa_3_sa_median(int __pyx_v_low, int __pyx_v_high, int      #ifdef WITH_THREAD      PyGILState_Release(__pyx_gilstate_save);      #endif -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __pyx_r = (__pyx_v_low + (__Pyx_div_long(__Pyx_div_int(__pyx_t_1, __pyx_v_step), 2) * __pyx_v_step));    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":226 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":233   *     return arr   *    * cdef int median(int low, int high, int step):             # <<<<<<<<<<<<<< @@ -42221,7 +42335,7 @@ static int __pyx_f_4cdec_2sa_3_sa_median(int __pyx_v_low, int __pyx_v_high, int    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":230 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":237   *    *    * cdef void find_comparable_matchings(int low, int high, int* arr, int step, int loc, int* loc_minus, int* loc_plus):             # <<<<<<<<<<<<<< @@ -42236,7 +42350,7 @@ static void __pyx_f_4cdec_2sa_3_sa_find_comparable_matchings(int __pyx_v_low, in    int __pyx_t_3;    __Pyx_RefNannySetupContext("find_comparable_matchings", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":234 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":241   *     # in which all matchings have the same first index as the one   *     # starting at loc   *     loc_plus[0] = loc + step             # <<<<<<<<<<<<<< @@ -42245,7 +42359,7 @@ static void __pyx_f_4cdec_2sa_3_sa_find_comparable_matchings(int __pyx_v_low, in   */    (__pyx_v_loc_plus[0]) = (__pyx_v_loc + __pyx_v_step); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":235 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":242   *     # starting at loc   *     loc_plus[0] = loc + step   *     while loc_plus[0] < high and arr[loc_plus[0]] == arr[loc]:             # <<<<<<<<<<<<<< @@ -42262,7 +42376,7 @@ static void __pyx_f_4cdec_2sa_3_sa_find_comparable_matchings(int __pyx_v_low, in      }      if (!__pyx_t_3) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":236 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":243   *     loc_plus[0] = loc + step   *     while loc_plus[0] < high and arr[loc_plus[0]] == arr[loc]:   *         loc_plus[0] = loc_plus[0] + step             # <<<<<<<<<<<<<< @@ -42272,7 +42386,7 @@ static void __pyx_f_4cdec_2sa_3_sa_find_comparable_matchings(int __pyx_v_low, in      (__pyx_v_loc_plus[0]) = ((__pyx_v_loc_plus[0]) + __pyx_v_step);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":237 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":244   *     while loc_plus[0] < high and arr[loc_plus[0]] == arr[loc]:   *         loc_plus[0] = loc_plus[0] + step   *     loc_minus[0] = loc             # <<<<<<<<<<<<<< @@ -42281,7 +42395,7 @@ static void __pyx_f_4cdec_2sa_3_sa_find_comparable_matchings(int __pyx_v_low, in   */    (__pyx_v_loc_minus[0]) = __pyx_v_loc; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":238 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":245   *         loc_plus[0] = loc_plus[0] + step   *     loc_minus[0] = loc   *     while loc_minus[0]-step >= low and arr[loc_minus[0]-step] == arr[loc]:             # <<<<<<<<<<<<<< @@ -42298,7 +42412,7 @@ static void __pyx_f_4cdec_2sa_3_sa_find_comparable_matchings(int __pyx_v_low, in      }      if (!__pyx_t_2) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":239 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":246   *     loc_minus[0] = loc   *     while loc_minus[0]-step >= low and arr[loc_minus[0]-step] == arr[loc]:   *         loc_minus[0] = loc_minus[0] - step             # <<<<<<<<<<<<<< @@ -42308,7 +42422,7 @@ static void __pyx_f_4cdec_2sa_3_sa_find_comparable_matchings(int __pyx_v_low, in      (__pyx_v_loc_minus[0]) = ((__pyx_v_loc_minus[0]) - __pyx_v_step);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":230 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":237   *    *    * cdef void find_comparable_matchings(int low, int high, int* arr, int step, int loc, int* loc_minus, int* loc_plus):             # <<<<<<<<<<<<<< @@ -42320,7 +42434,7 @@ static void __pyx_f_4cdec_2sa_3_sa_find_comparable_matchings(int __pyx_v_low, in    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":296 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":303   *     cdef bilex   *    *     def __cinit__(self,             # <<<<<<<<<<<<<< @@ -42363,7 +42477,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject      static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alignment,&__pyx_n_s_bilex,&__pyx_n_s_by_slack_factor,&__pyx_n_s_category,&__pyx_n_s_max_chunks,&__pyx_n_s_max_initial_size,&__pyx_n_s_max_length,&__pyx_n_s_max_nonterminals,&__pyx_n_s_max_target_chunks,&__pyx_n_s_max_target_length,&__pyx_n_s_min_gap_size,&__pyx_n_s_precompute_file,&__pyx_n_s_precompute_secondary_rank,&__pyx_n_s_precompute_rank,&__pyx_n_s_require_aligned_terminal,&__pyx_n_s_require_aligned_chunks,&__pyx_n_s_train_max_initial_size,&__pyx_n_s_train_min_gap_size,&__pyx_n_s_tight_phrases,&__pyx_n_s_use_baeza_yates,&__pyx_n_s_use_collocations,&__pyx_n_s_use_index,0};      PyObject* values[22] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":300 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":307   *             Alignment alignment,   *             # bilexical dictionary if online   *             bilex=None,             # <<<<<<<<<<<<<< @@ -42372,7 +42486,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject   */      values[1] = ((PyObject *)Py_None); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":306 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":313   *             char* category="[X]",   *             # maximum number of contiguous chunks of terminal symbols in RHS of a rule. If None, defaults to max_nonterminals+1   *             max_chunks=None,             # <<<<<<<<<<<<<< @@ -42381,7 +42495,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject   */      values[4] = ((PyObject *)Py_None); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":314 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":321   *             unsigned max_nonterminals=2,   *             # maximum number of contiguous chunks of terminal symbols in target-side RHS of a rule. If None, defaults to max_nonterminals+1   *             max_target_chunks=None,             # <<<<<<<<<<<<<< @@ -42390,7 +42504,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject   */      values[8] = ((PyObject *)Py_None); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":316 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":323   *             max_target_chunks=None,   *             # maximum number of target side symbols (both T and NT) allowed in a rule. If None, defaults to max_initial_size   *             max_target_length=None,             # <<<<<<<<<<<<<< @@ -42399,7 +42513,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject   */      values[9] = ((PyObject *)Py_None); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":320 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":327   *             unsigned min_gap_size=2,   *             # filename of file containing precomputed collocations   *             precompute_file=None,             # <<<<<<<<<<<<<< @@ -42548,7 +42662,7 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -42581,54 +42695,54 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject      __pyx_v_alignment = ((struct __pyx_obj_4cdec_2sa_3_sa_Alignment *)values[0]);      __pyx_v_bilex = values[1];      if (values[2]) { -      __pyx_v_by_slack_factor = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_by_slack_factor == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_by_slack_factor = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_by_slack_factor == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_by_slack_factor = ((float)1.0);      }      if (values[3]) { -      __pyx_v_category = __Pyx_PyObject_AsString(values[3]); if (unlikely((!__pyx_v_category) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_category = __Pyx_PyObject_AsString(values[3]); if (unlikely((!__pyx_v_category) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_category = ((char *)__pyx_k_X_2);      }      __pyx_v_max_chunks = values[4];      if (values[5]) { -      __pyx_v_max_initial_size = __Pyx_PyInt_As_unsigned_int(values[5]); if (unlikely((__pyx_v_max_initial_size == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_max_initial_size = __Pyx_PyInt_As_unsigned_int(values[5]); if (unlikely((__pyx_v_max_initial_size == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_max_initial_size = ((unsigned int)10);      }      if (values[6]) { -      __pyx_v_max_length = __Pyx_PyInt_As_unsigned_int(values[6]); if (unlikely((__pyx_v_max_length == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_max_length = __Pyx_PyInt_As_unsigned_int(values[6]); if (unlikely((__pyx_v_max_length == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_max_length = ((unsigned int)5);      }      if (values[7]) { -      __pyx_v_max_nonterminals = __Pyx_PyInt_As_unsigned_int(values[7]); if (unlikely((__pyx_v_max_nonterminals == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_max_nonterminals = __Pyx_PyInt_As_unsigned_int(values[7]); if (unlikely((__pyx_v_max_nonterminals == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_max_nonterminals = ((unsigned int)2);      }      __pyx_v_max_target_chunks = values[8];      __pyx_v_max_target_length = values[9];      if (values[10]) { -      __pyx_v_min_gap_size = __Pyx_PyInt_As_unsigned_int(values[10]); if (unlikely((__pyx_v_min_gap_size == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_min_gap_size = __Pyx_PyInt_As_unsigned_int(values[10]); if (unlikely((__pyx_v_min_gap_size == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_min_gap_size = ((unsigned int)2);      }      __pyx_v_precompute_file = values[11];      if (values[12]) { -      __pyx_v_precompute_secondary_rank = __Pyx_PyInt_As_unsigned_int(values[12]); if (unlikely((__pyx_v_precompute_secondary_rank == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_precompute_secondary_rank = __Pyx_PyInt_As_unsigned_int(values[12]); if (unlikely((__pyx_v_precompute_secondary_rank == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_precompute_secondary_rank = ((unsigned int)20);      }      if (values[13]) { -      __pyx_v_precompute_rank = __Pyx_PyInt_As_unsigned_int(values[13]); if (unlikely((__pyx_v_precompute_rank == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_precompute_rank = __Pyx_PyInt_As_unsigned_int(values[13]); if (unlikely((__pyx_v_precompute_rank == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_precompute_rank = ((unsigned int)100);      }      if (values[14]) { -      __pyx_v_require_aligned_terminal = __Pyx_PyObject_IsTrue(values[14]); if (unlikely((__pyx_v_require_aligned_terminal == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_require_aligned_terminal = __Pyx_PyObject_IsTrue(values[14]); if (unlikely((__pyx_v_require_aligned_terminal == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":326 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":333   *             unsigned precompute_rank=100,   *             # require extracted rules to have at least one aligned word   *             bint require_aligned_terminal=True,             # <<<<<<<<<<<<<< @@ -42638,10 +42752,10 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject        __pyx_v_require_aligned_terminal = ((int)1);      }      if (values[15]) { -      __pyx_v_require_aligned_chunks = __Pyx_PyObject_IsTrue(values[15]); if (unlikely((__pyx_v_require_aligned_chunks == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_require_aligned_chunks = __Pyx_PyObject_IsTrue(values[15]); if (unlikely((__pyx_v_require_aligned_chunks == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":328 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":335   *             bint require_aligned_terminal=True,   *             # require each contiguous chunk of extracted rules to have at least one aligned word   *             bint require_aligned_chunks=False,             # <<<<<<<<<<<<<< @@ -42651,20 +42765,20 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject        __pyx_v_require_aligned_chunks = ((int)0);      }      if (values[16]) { -      __pyx_v_train_max_initial_size = __Pyx_PyInt_As_unsigned_int(values[16]); if (unlikely((__pyx_v_train_max_initial_size == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_train_max_initial_size = __Pyx_PyInt_As_unsigned_int(values[16]); if (unlikely((__pyx_v_train_max_initial_size == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_train_max_initial_size = ((unsigned int)10);      }      if (values[17]) { -      __pyx_v_train_min_gap_size = __Pyx_PyInt_As_unsigned_int(values[17]); if (unlikely((__pyx_v_train_min_gap_size == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_train_min_gap_size = __Pyx_PyInt_As_unsigned_int(values[17]); if (unlikely((__pyx_v_train_min_gap_size == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        __pyx_v_train_min_gap_size = ((unsigned int)2);      }      if (values[18]) { -      __pyx_v_tight_phrases = __Pyx_PyObject_IsTrue(values[18]); if (unlikely((__pyx_v_tight_phrases == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_tight_phrases = __Pyx_PyObject_IsTrue(values[18]); if (unlikely((__pyx_v_tight_phrases == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":334 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":341   *             unsigned train_min_gap_size=2,   *             # False if phrases should be loose (better but slower), True otherwise   *             bint tight_phrases=True,             # <<<<<<<<<<<<<< @@ -42674,10 +42788,10 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject        __pyx_v_tight_phrases = ((int)1);      }      if (values[19]) { -      __pyx_v_use_baeza_yates = __Pyx_PyObject_IsTrue(values[19]); if (unlikely((__pyx_v_use_baeza_yates == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_use_baeza_yates = __Pyx_PyObject_IsTrue(values[19]); if (unlikely((__pyx_v_use_baeza_yates == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":336 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":343   *             bint tight_phrases=True,   *             # True to require use of double-binary alg, false otherwise   *             bint use_baeza_yates=True,             # <<<<<<<<<<<<<< @@ -42687,10 +42801,10 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject        __pyx_v_use_baeza_yates = ((int)1);      }      if (values[20]) { -      __pyx_v_use_collocations = __Pyx_PyObject_IsTrue(values[20]); if (unlikely((__pyx_v_use_collocations == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_use_collocations = __Pyx_PyObject_IsTrue(values[20]); if (unlikely((__pyx_v_use_collocations == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":338 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":345   *             bint use_baeza_yates=True,   *             # True to enable used of precomputed collocations   *             bint use_collocations=True,             # <<<<<<<<<<<<<< @@ -42700,10 +42814,10 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject        __pyx_v_use_collocations = ((int)1);      }      if (values[21]) { -      __pyx_v_use_index = __Pyx_PyObject_IsTrue(values[21]); if (unlikely((__pyx_v_use_index == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_use_index = __Pyx_PyObject_IsTrue(values[21]); if (unlikely((__pyx_v_use_index == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":340 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":347   *             bint use_collocations=True,   *             # True to enable use of precomputed inverted indices   *             bint use_index=True):             # <<<<<<<<<<<<<< @@ -42715,16 +42829,16 @@ static int __pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 22, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 22, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_alignment), __pyx_ptype_4cdec_2sa_3_sa_Alignment, 1, "alignment", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_alignment), __pyx_ptype_4cdec_2sa_3_sa_Alignment, 1, "alignment", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_r = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(((struct __pyx_obj_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self), __pyx_v_alignment, __pyx_v_bilex, __pyx_v_by_slack_factor, __pyx_v_category, __pyx_v_max_chunks, __pyx_v_max_initial_size, __pyx_v_max_length, __pyx_v_max_nonterminals, __pyx_v_max_target_chunks, __pyx_v_max_target_length, __pyx_v_min_gap_size, __pyx_v_precompute_file, __pyx_v_precompute_secondary_rank, __pyx_v_precompute_rank, __pyx_v_require_aligned_terminal, __pyx_v_require_aligned_chunks, __pyx_v_train_max_initial_size, __pyx_v_train_min_gap_size, __pyx_v_tight_phrases, __pyx_v_use_baeza_yates, __pyx_v_use_collocations, __pyx_v_use_index); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":296 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":303   *     cdef bilex   *    *     def __cinit__(self,             # <<<<<<<<<<<<<< @@ -42755,14 +42869,14 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":346 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":353   *         respectively.    This is because Chiang's model does not require   *         them to be the same, therefore we don't either.'''   *         self.rules = TrieTable(True) # cache             # <<<<<<<<<<<<<<   *         self.rules.root = ExtendedTrieNode(phrase_location=PhraseLocation())   *         if alignment is None:   */ -  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_TrieTable)), __pyx_tuple__61, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_TrieTable)), __pyx_tuple__61, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __Pyx_GOTREF(__pyx_v_self->rules); @@ -42770,20 +42884,20 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_v_self->rules = ((struct __pyx_obj_4cdec_2sa_3_sa_TrieTable *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":347 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":354   *         them to be the same, therefore we don't either.'''   *         self.rules = TrieTable(True) # cache   *         self.rules.root = ExtendedTrieNode(phrase_location=PhraseLocation())             # <<<<<<<<<<<<<<   *         if alignment is None:   *             raise Exception("Must specify an alignment object")   */ -  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_phrase_location, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_phrase_location, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_GIVEREF(__pyx_t_2); @@ -42792,7 +42906,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_v_self->rules->root = __pyx_t_2;    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":348 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":355   *         self.rules = TrieTable(True) # cache   *         self.rules.root = ExtendedTrieNode(phrase_location=PhraseLocation())   *         if alignment is None:             # <<<<<<<<<<<<<< @@ -42803,21 +42917,21 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_t_4 = (__pyx_t_3 != 0);    if (__pyx_t_4) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":349 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":356   *         self.rules.root = ExtendedTrieNode(phrase_location=PhraseLocation())   *         if alignment is None:   *             raise Exception("Must specify an alignment object")             # <<<<<<<<<<<<<<   *         self.alignment = alignment   *    */ -    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_Exception, __pyx_tuple__62, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_Exception, __pyx_tuple__62, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_Raise(__pyx_t_2, 0, 0, 0);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":350 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":357   *         if alignment is None:   *             raise Exception("Must specify an alignment object")   *         self.alignment = alignment             # <<<<<<<<<<<<<< @@ -42830,7 +42944,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __Pyx_DECREF(((PyObject *)__pyx_v_self->alignment));    __pyx_v_self->alignment = __pyx_v_alignment; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":354 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":361   *         # grammar parameters and settings   *         # NOTE: setting max_nonterminals > 2 is not currently supported in Hiero   *         self.max_length = max_length             # <<<<<<<<<<<<<< @@ -42839,7 +42953,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->max_length = __pyx_v_max_length; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":355 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":362   *         # NOTE: setting max_nonterminals > 2 is not currently supported in Hiero   *         self.max_length = max_length   *         self.max_nonterminals = max_nonterminals             # <<<<<<<<<<<<<< @@ -42848,7 +42962,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->max_nonterminals = __pyx_v_max_nonterminals; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":356 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":363   *         self.max_length = max_length   *         self.max_nonterminals = max_nonterminals   *         self.max_initial_size = max_initial_size             # <<<<<<<<<<<<<< @@ -42857,7 +42971,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->max_initial_size = __pyx_v_max_initial_size; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":357 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":364   *         self.max_nonterminals = max_nonterminals   *         self.max_initial_size = max_initial_size   *         self.train_max_initial_size = train_max_initial_size             # <<<<<<<<<<<<<< @@ -42866,7 +42980,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->train_max_initial_size = __pyx_v_train_max_initial_size; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":358 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":365   *         self.max_initial_size = max_initial_size   *         self.train_max_initial_size = train_max_initial_size   *         self.min_gap_size = min_gap_size             # <<<<<<<<<<<<<< @@ -42875,7 +42989,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->min_gap_size = __pyx_v_min_gap_size; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":359 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":366   *         self.train_max_initial_size = train_max_initial_size   *         self.min_gap_size = min_gap_size   *         self.train_min_gap_size = train_min_gap_size             # <<<<<<<<<<<<<< @@ -42884,7 +42998,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->train_min_gap_size = __pyx_v_train_min_gap_size; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":360 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":367   *         self.min_gap_size = min_gap_size   *         self.train_min_gap_size = train_min_gap_size   *         self.category = sym_fromstring(category, False)             # <<<<<<<<<<<<<< @@ -42893,7 +43007,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->category = __pyx_f_4cdec_2sa_3_sa_sym_fromstring(__pyx_v_category, 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":362 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":369   *         self.category = sym_fromstring(category, False)   *    *         if max_chunks is None:             # <<<<<<<<<<<<<< @@ -42904,7 +43018,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_t_3 = (__pyx_t_4 != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":363 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":370   *    *         if max_chunks is None:   *             self.max_chunks = self.max_nonterminals + 1             # <<<<<<<<<<<<<< @@ -42916,19 +43030,19 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":365 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":372   *             self.max_chunks = self.max_nonterminals + 1   *         else:   *             self.max_chunks = max_chunks             # <<<<<<<<<<<<<<   *    *         if max_target_chunks is None:   */ -    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_max_chunks); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_max_chunks); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_v_self->max_chunks = __pyx_t_5;    }    __pyx_L4:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":367 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":374   *             self.max_chunks = max_chunks   *    *         if max_target_chunks is None:             # <<<<<<<<<<<<<< @@ -42939,7 +43053,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_t_4 = (__pyx_t_3 != 0);    if (__pyx_t_4) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":368 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":375   *    *         if max_target_chunks is None:   *             self.max_target_chunks = self.max_nonterminals + 1             # <<<<<<<<<<<<<< @@ -42951,19 +43065,19 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":370 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":377   *             self.max_target_chunks = self.max_nonterminals + 1   *         else:   *             self.max_target_chunks = max_target_chunks             # <<<<<<<<<<<<<<   *    *         if max_target_length is None:   */ -    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_max_target_chunks); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_max_target_chunks); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_v_self->max_target_chunks = __pyx_t_5;    }    __pyx_L5:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":372 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":379   *             self.max_target_chunks = max_target_chunks   *    *         if max_target_length is None:             # <<<<<<<<<<<<<< @@ -42974,7 +43088,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_t_3 = (__pyx_t_4 != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":373 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":380   *    *         if max_target_length is None:   *             self.max_target_length = max_initial_size             # <<<<<<<<<<<<<< @@ -42986,26 +43100,26 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":375 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":382   *             self.max_target_length = max_initial_size   *         else:   *             self.max_target_length = max_target_length             # <<<<<<<<<<<<<<   *    *         # algorithmic parameters and settings   */ -    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_max_target_length); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_max_target_length); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_v_self->max_target_length = __pyx_t_5;    }    __pyx_L6:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":378 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":385   *    *         # algorithmic parameters and settings   *         self.precomputed_collocations = {}             # <<<<<<<<<<<<<<   *         self.precomputed_index = {}   *         self.use_index = use_index   */ -  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    __Pyx_GOTREF(__pyx_v_self->precomputed_collocations); @@ -43013,14 +43127,14 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_v_self->precomputed_collocations = __pyx_t_2;    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":379 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":386   *         # algorithmic parameters and settings   *         self.precomputed_collocations = {}   *         self.precomputed_index = {}             # <<<<<<<<<<<<<<   *         self.use_index = use_index   *         self.use_collocations = use_collocations   */ -  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    __Pyx_GOTREF(__pyx_v_self->precomputed_index); @@ -43028,7 +43142,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_v_self->precomputed_index = __pyx_t_2;    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":380 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":387   *         self.precomputed_collocations = {}   *         self.precomputed_index = {}   *         self.use_index = use_index             # <<<<<<<<<<<<<< @@ -43037,7 +43151,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->use_index = __pyx_v_use_index; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":381 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":388   *         self.precomputed_index = {}   *         self.use_index = use_index   *         self.use_collocations = use_collocations             # <<<<<<<<<<<<<< @@ -43046,14 +43160,14 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->use_collocations = __pyx_v_use_collocations; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":382 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":389   *         self.use_index = use_index   *         self.use_collocations = use_collocations   *         self.max_rank = {}             # <<<<<<<<<<<<<<   *         self.precompute_file = precompute_file   *         self.precompute_rank = precompute_rank   */ -  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    __Pyx_GOTREF(__pyx_v_self->max_rank); @@ -43061,7 +43175,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_v_self->max_rank = __pyx_t_2;    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":383 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":390   *         self.use_collocations = use_collocations   *         self.max_rank = {}   *         self.precompute_file = precompute_file             # <<<<<<<<<<<<<< @@ -43074,7 +43188,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __Pyx_DECREF(__pyx_v_self->precompute_file);    __pyx_v_self->precompute_file = __pyx_v_precompute_file; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":384 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":391   *         self.max_rank = {}   *         self.precompute_file = precompute_file   *         self.precompute_rank = precompute_rank             # <<<<<<<<<<<<<< @@ -43083,7 +43197,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->precompute_rank = __pyx_v_precompute_rank; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":385 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":392   *         self.precompute_file = precompute_file   *         self.precompute_rank = precompute_rank   *         self.precompute_secondary_rank = precompute_secondary_rank             # <<<<<<<<<<<<<< @@ -43092,7 +43206,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->precompute_secondary_rank = __pyx_v_precompute_secondary_rank; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":386 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":393   *         self.precompute_rank = precompute_rank   *         self.precompute_secondary_rank = precompute_secondary_rank   *         self.use_baeza_yates = use_baeza_yates             # <<<<<<<<<<<<<< @@ -43101,7 +43215,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->use_baeza_yates = __pyx_v_use_baeza_yates; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":387 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":394   *         self.precompute_secondary_rank = precompute_secondary_rank   *         self.use_baeza_yates = use_baeza_yates   *         self.by_slack_factor = by_slack_factor             # <<<<<<<<<<<<<< @@ -43110,7 +43224,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->by_slack_factor = __pyx_v_by_slack_factor; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":388 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":395   *         self.use_baeza_yates = use_baeza_yates   *         self.by_slack_factor = by_slack_factor   *         self.tight_phrases = tight_phrases             # <<<<<<<<<<<<<< @@ -43119,7 +43233,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->tight_phrases = __pyx_v_tight_phrases; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":390 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":397   *         self.tight_phrases = tight_phrases   *    *         if require_aligned_chunks:             # <<<<<<<<<<<<<< @@ -43129,7 +43243,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_t_3 = (__pyx_v_require_aligned_chunks != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":392 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":399   *         if require_aligned_chunks:   *             # one condition is a stronger version of the other.   *             self.require_aligned_chunks = self.require_aligned_terminal = True             # <<<<<<<<<<<<<< @@ -43141,7 +43255,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __      goto __pyx_L7;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":393 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":400   *             # one condition is a stronger version of the other.   *             self.require_aligned_chunks = self.require_aligned_terminal = True   *         elif require_aligned_terminal:             # <<<<<<<<<<<<<< @@ -43151,7 +43265,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_t_3 = (__pyx_v_require_aligned_terminal != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":394 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":401   *             self.require_aligned_chunks = self.require_aligned_terminal = True   *         elif require_aligned_terminal:   *             self.require_aligned_chunks = False             # <<<<<<<<<<<<<< @@ -43160,7 +43274,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */      __pyx_v_self->require_aligned_chunks = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":395 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":402   *         elif require_aligned_terminal:   *             self.require_aligned_chunks = False   *             self.require_aligned_terminal = True             # <<<<<<<<<<<<<< @@ -43172,7 +43286,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":397 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":404   *             self.require_aligned_terminal = True   *         else:   *             self.require_aligned_chunks = self.require_aligned_terminal = False             # <<<<<<<<<<<<<< @@ -43184,7 +43298,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    }    __pyx_L7:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":400 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":407   *    *         # diagnostics   *         self.prev_norm_prefix = ()             # <<<<<<<<<<<<<< @@ -43197,17 +43311,17 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __Pyx_DECREF(__pyx_v_self->prev_norm_prefix);    __pyx_v_self->prev_norm_prefix = __pyx_empty_tuple; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":402 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":409   *         self.prev_norm_prefix = ()   *    *         self.findexes = IntList(initial_len=10)             # <<<<<<<<<<<<<<   *         self.findexes1 = IntList(initial_len=10)   *    */ -  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_initial_len, __pyx_int_10) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_initial_len, __pyx_int_10) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_GIVEREF(__pyx_t_1); @@ -43216,17 +43330,17 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_v_self->findexes = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":403 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":410   *    *         self.findexes = IntList(initial_len=10)   *         self.findexes1 = IntList(initial_len=10)             # <<<<<<<<<<<<<<   *    *         # Online stats   */ -  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_initial_len, __pyx_int_10) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_initial_len, __pyx_int_10) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_GIVEREF(__pyx_t_2); @@ -43235,9 +43349,9 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_v_self->findexes1 = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":408 - *  +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":416   *         # None if not online + *         # Base bilex, also need one per instance   *         self.bilex = bilex             # <<<<<<<<<<<<<<   *    *         # True after data is added @@ -43248,7 +43362,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __Pyx_DECREF(__pyx_v_self->bilex);    __pyx_v_self->bilex = __pyx_v_bilex; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":411 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":419   *    *         # True after data is added   *         self.online = False             # <<<<<<<<<<<<<< @@ -43257,21 +43371,21 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __   */    __pyx_v_self->online = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":412 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":420   *         # True after data is added   *         self.online = False   *         self.online_stats = defaultdict(OnlineStats)             # <<<<<<<<<<<<<<   *    *     def configure(self, SuffixArray fsarray, DataArray edarray,   */ -  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_OnlineStats)));    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_OnlineStats)));    __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_OnlineStats))); -  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_6);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -43281,7 +43395,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    __pyx_v_self->online_stats = __pyx_t_6;    __pyx_t_6 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":296 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":303   *     cdef bilex   *    *     def __cinit__(self,             # <<<<<<<<<<<<<< @@ -43303,7 +43417,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory___cinit__(struct __    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":414 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":422   *         self.online_stats = defaultdict(OnlineStats)   *    *     def configure(self, SuffixArray fsarray, DataArray edarray,             # <<<<<<<<<<<<<< @@ -43347,21 +43461,21 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_3configure(Py          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_edarray)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("configure", 1, 4, 4, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("configure", 1, 4, 4, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_sampler)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("configure", 1, 4, 4, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("configure", 1, 4, 4, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  3:          if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_scorer)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("configure", 1, 4, 4, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("configure", 1, 4, 4, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "configure") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "configure") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {        goto __pyx_L5_argtuple_error; @@ -43378,16 +43492,16 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_3configure(Py    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("configure", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("configure", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.configure", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fsarray), __pyx_ptype_4cdec_2sa_3_sa_SuffixArray, 1, "fsarray", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_edarray), __pyx_ptype_4cdec_2sa_3_sa_DataArray, 1, "edarray", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sampler), __pyx_ptype_4cdec_2sa_3_sa_Sampler, 1, "sampler", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scorer), __pyx_ptype_4cdec_2sa_3_sa_Scorer, 1, "scorer", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fsarray), __pyx_ptype_4cdec_2sa_3_sa_SuffixArray, 1, "fsarray", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_edarray), __pyx_ptype_4cdec_2sa_3_sa_DataArray, 1, "edarray", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sampler), __pyx_ptype_4cdec_2sa_3_sa_Sampler, 1, "sampler", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scorer), __pyx_ptype_4cdec_2sa_3_sa_Scorer, 1, "scorer", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_r = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_2configure(((struct __pyx_obj_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self), __pyx_v_fsarray, __pyx_v_edarray, __pyx_v_sampler, __pyx_v_scorer);    /* function exit code */ @@ -43409,7 +43523,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_2configure(st    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("configure", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":419 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":427   *         Here we also use it to precompute the most expensive intersections   *         in the corpus quickly.'''   *         self.fsa = fsarray             # <<<<<<<<<<<<<< @@ -43422,7 +43536,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_2configure(st    __Pyx_DECREF(((PyObject *)__pyx_v_self->fsa));    __pyx_v_self->fsa = __pyx_v_fsarray; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":420 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":428   *         in the corpus quickly.'''   *         self.fsa = fsarray   *         self.fda = fsarray.darray             # <<<<<<<<<<<<<< @@ -43437,7 +43551,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_2configure(st    __pyx_v_self->fda = ((struct __pyx_obj_4cdec_2sa_3_sa_DataArray *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":421 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":429   *         self.fsa = fsarray   *         self.fda = fsarray.darray   *         self.eda = edarray             # <<<<<<<<<<<<<< @@ -43450,7 +43564,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_2configure(st    __Pyx_DECREF(((PyObject *)__pyx_v_self->eda));    __pyx_v_self->eda = __pyx_v_edarray; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":422 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":430   *         self.fda = fsarray.darray   *         self.eda = edarray   *         self.fid2symid = self.set_idmap(self.fda)             # <<<<<<<<<<<<<< @@ -43459,17 +43573,17 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_2configure(st   */    __pyx_t_1 = ((PyObject *)__pyx_v_self->fda);    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->set_idmap(__pyx_v_self, ((struct __pyx_obj_4cdec_2sa_3_sa_DataArray *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->set_idmap(__pyx_v_self, ((struct __pyx_obj_4cdec_2sa_3_sa_DataArray *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GIVEREF(__pyx_t_2);    __Pyx_GOTREF(__pyx_v_self->fid2symid);    __Pyx_DECREF(((PyObject *)__pyx_v_self->fid2symid));    __pyx_v_self->fid2symid = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":423 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":431   *         self.eda = edarray   *         self.fid2symid = self.set_idmap(self.fda)   *         self.eid2symid = self.set_idmap(self.eda)             # <<<<<<<<<<<<<< @@ -43478,31 +43592,31 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_2configure(st   */    __pyx_t_2 = ((PyObject *)__pyx_v_self->eda);    __Pyx_INCREF(__pyx_t_2); -  __pyx_t_1 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->set_idmap(__pyx_v_self, ((struct __pyx_obj_4cdec_2sa_3_sa_DataArray *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->set_idmap(__pyx_v_self, ((struct __pyx_obj_4cdec_2sa_3_sa_DataArray *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GIVEREF(__pyx_t_1);    __Pyx_GOTREF(__pyx_v_self->eid2symid);    __Pyx_DECREF(((PyObject *)__pyx_v_self->eid2symid));    __pyx_v_self->eid2symid = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":424 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":432   *         self.fid2symid = self.set_idmap(self.fda)   *         self.eid2symid = self.set_idmap(self.eda)   *         self.precompute()             # <<<<<<<<<<<<<<   *         self.sampler = sampler   *         self.scorer = scorer   */ -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_precompute); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_precompute); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":425 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":433   *         self.eid2symid = self.set_idmap(self.eda)   *         self.precompute()   *         self.sampler = sampler             # <<<<<<<<<<<<<< @@ -43515,7 +43629,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_2configure(st    __Pyx_DECREF(((PyObject *)__pyx_v_self->sampler));    __pyx_v_self->sampler = __pyx_v_sampler; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":426 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":434   *         self.precompute()   *         self.sampler = sampler   *         self.scorer = scorer             # <<<<<<<<<<<<<< @@ -43528,7 +43642,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_2configure(st    __Pyx_DECREF(((PyObject *)__pyx_v_self->scorer));    __pyx_v_self->scorer = __pyx_v_scorer; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":414 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":422   *         self.online_stats = defaultdict(OnlineStats)   *    *     def configure(self, SuffixArray fsarray, DataArray edarray,             # <<<<<<<<<<<<<< @@ -43550,7 +43664,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_2configure(st    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":428 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":436   *         self.scorer = scorer   *    *     cdef set_idmap(self, DataArray darray):             # <<<<<<<<<<<<<< @@ -43575,7 +43689,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_set_idmap(CYTH    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("set_idmap", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":432 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":440   *         cdef IntList idmap   *    *         N = len(darray.id2word)             # <<<<<<<<<<<<<< @@ -43584,30 +43698,30 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_set_idmap(CYTH   */    __pyx_t_1 = __pyx_v_darray->id2word;    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_N = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":433 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":441   *    *         N = len(darray.id2word)   *         idmap = IntList(initial_len=N)             # <<<<<<<<<<<<<<   *         for word_id from 0 <= word_id < N:   *             new_word_id = sym_fromstring(darray.id2word[word_id], True)   */ -  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_initial_len, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_initial_len, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_idmap = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":434 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":442   *         N = len(darray.id2word)   *         idmap = IntList(initial_len=N)   *         for word_id from 0 <= word_id < N:             # <<<<<<<<<<<<<< @@ -43617,20 +43731,20 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_set_idmap(CYTH    __pyx_t_4 = __pyx_v_N;    for (__pyx_v_word_id = 0; __pyx_v_word_id < __pyx_t_4; __pyx_v_word_id++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":435 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":443   *         idmap = IntList(initial_len=N)   *         for word_id from 0 <= word_id < N:   *             new_word_id = sym_fromstring(darray.id2word[word_id], True)             # <<<<<<<<<<<<<<   *             idmap.arr[word_id] = new_word_id   *         return idmap   */ -    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_darray->id2word, __pyx_v_word_id, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_darray->id2word, __pyx_v_word_id, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_5 = __Pyx_PyObject_AsString(__pyx_t_3); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_AsString(__pyx_t_3); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_v_new_word_id = __pyx_f_4cdec_2sa_3_sa_sym_fromstring(__pyx_t_5, 1); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":436 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":444   *         for word_id from 0 <= word_id < N:   *             new_word_id = sym_fromstring(darray.id2word[word_id], True)   *             idmap.arr[word_id] = new_word_id             # <<<<<<<<<<<<<< @@ -43640,7 +43754,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_set_idmap(CYTH      (__pyx_v_idmap->arr[__pyx_v_word_id]) = __pyx_v_new_word_id;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":437 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":445   *             new_word_id = sym_fromstring(darray.id2word[word_id], True)   *             idmap.arr[word_id] = new_word_id   *         return idmap             # <<<<<<<<<<<<<< @@ -43652,7 +43766,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_set_idmap(CYTH    __pyx_r = ((PyObject *)__pyx_v_idmap);    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":428 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":436   *         self.scorer = scorer   *    *     cdef set_idmap(self, DataArray darray):             # <<<<<<<<<<<<<< @@ -43673,7 +43787,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_set_idmap(CYTH    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":440 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":448   *    *    *     def pattern2phrase(self, pattern):             # <<<<<<<<<<<<<< @@ -43714,7 +43828,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_4pattern2phra    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("pattern2phrase", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":442 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":450   *     def pattern2phrase(self, pattern):   *         # pattern is a tuple, which we must convert to a hiero Phrase   *         result = ()             # <<<<<<<<<<<<<< @@ -43724,7 +43838,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_4pattern2phra    __Pyx_INCREF(__pyx_empty_tuple);    __pyx_v_result = __pyx_empty_tuple; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":443 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":451   *         # pattern is a tuple, which we must convert to a hiero Phrase   *         result = ()   *         arity = 0             # <<<<<<<<<<<<<< @@ -43734,7 +43848,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_4pattern2phra    __Pyx_INCREF(__pyx_int_0);    __pyx_v_arity = __pyx_int_0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":444 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":452   *         result = ()   *         arity = 0   *         for word_id in pattern:             # <<<<<<<<<<<<<< @@ -43745,7 +43859,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_4pattern2phra      __pyx_t_1 = __pyx_v_pattern; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_pattern); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_pattern); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    } @@ -43753,16 +43867,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_4pattern2phra      if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1); @@ -43770,7 +43884,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_4pattern2phra          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -43779,73 +43893,73 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_4pattern2phra      __Pyx_XDECREF_SET(__pyx_v_word_id, __pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":445 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":453   *         arity = 0   *         for word_id in pattern:   *             if word_id == -1:             # <<<<<<<<<<<<<<   *                 arity = arity + 1   *                 new_id = sym_setindex(self.category, arity)   */ -    __pyx_t_4 = PyObject_RichCompare(__pyx_v_word_id, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_v_word_id, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":446 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":454   *         for word_id in pattern:   *             if word_id == -1:   *                 arity = arity + 1             # <<<<<<<<<<<<<<   *                 new_id = sym_setindex(self.category, arity)   *             else:   */ -      __pyx_t_4 = PyNumber_Add(__pyx_v_arity, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyNumber_Add(__pyx_v_arity, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF_SET(__pyx_v_arity, __pyx_t_4);        __pyx_t_4 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":447 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":455   *             if word_id == -1:   *                 arity = arity + 1   *                 new_id = sym_setindex(self.category, arity)             # <<<<<<<<<<<<<<   *             else:   *                 new_id = sym_fromstring(self.fda.id2word[word_id], True)   */ -      __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_arity); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_arity); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_v_new_id = __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_t_6);        goto __pyx_L5;      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":449 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":457   *                 new_id = sym_setindex(self.category, arity)   *             else:   *                 new_id = sym_fromstring(self.fda.id2word[word_id], True)             # <<<<<<<<<<<<<<   *             result = result + (new_id,)   *         return Phrase(result)   */ -      __pyx_t_4 = PyObject_GetItem(__pyx_v_self->fda->id2word, __pyx_v_word_id); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_4 = PyObject_GetItem(__pyx_v_self->fda->id2word, __pyx_v_word_id); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_t_4); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_t_4); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __pyx_v_new_id = __pyx_f_4cdec_2sa_3_sa_sym_fromstring(__pyx_t_7, 1);      }      __pyx_L5:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":450 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":458   *             else:   *                 new_id = sym_fromstring(self.fda.id2word[word_id], True)   *             result = result + (new_id,)             # <<<<<<<<<<<<<<   *         return Phrase(result)   *    */ -    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_new_id); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_new_id); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8);      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);      __Pyx_GIVEREF(__pyx_t_4);      __pyx_t_4 = 0; -    __pyx_t_4 = PyNumber_Add(__pyx_v_result, __pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyNumber_Add(__pyx_v_result, __pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      __Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_4)); @@ -43853,7 +43967,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_4pattern2phra    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":451 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":459   *                 new_id = sym_fromstring(self.fda.id2word[word_id], True)   *             result = result + (new_id,)   *         return Phrase(result)             # <<<<<<<<<<<<<< @@ -43861,19 +43975,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_4pattern2phra   *     def pattern2phrase_plus(self, pattern):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(__pyx_v_result);    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_result);    __Pyx_GIVEREF(__pyx_v_result); -  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_r = __pyx_t_4;    __pyx_t_4 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":440 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":448   *    *    *     def pattern2phrase(self, pattern):             # <<<<<<<<<<<<<< @@ -43897,7 +44011,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_4pattern2phra    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":453 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":461   *         return Phrase(result)   *    *     def pattern2phrase_plus(self, pattern):             # <<<<<<<<<<<<<< @@ -43940,19 +44054,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_6pattern2phra    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("pattern2phrase_plus", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":456 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":464   *         # returns a list containing both the pattern, and pattern   *         # suffixed/prefixed with the NT category.   *         patterns = []             # <<<<<<<<<<<<<<   *         result = ()   *         arity = 0   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_patterns = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":457 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":465   *         # suffixed/prefixed with the NT category.   *         patterns = []   *         result = ()             # <<<<<<<<<<<<<< @@ -43962,7 +44076,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_6pattern2phra    __Pyx_INCREF(__pyx_empty_tuple);    __pyx_v_result = __pyx_empty_tuple; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":458 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":466   *         patterns = []   *         result = ()   *         arity = 0             # <<<<<<<<<<<<<< @@ -43972,7 +44086,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_6pattern2phra    __Pyx_INCREF(__pyx_int_0);    __pyx_v_arity = __pyx_int_0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":459 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":467   *         result = ()   *         arity = 0   *         for word_id in pattern:             # <<<<<<<<<<<<<< @@ -43983,7 +44097,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_6pattern2phra      __pyx_t_1 = __pyx_v_pattern; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_pattern); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_pattern); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    } @@ -43991,16 +44105,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_6pattern2phra      if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1); @@ -44008,7 +44122,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_6pattern2phra          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -44017,73 +44131,73 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_6pattern2phra      __Pyx_XDECREF_SET(__pyx_v_word_id, __pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":460 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":468   *         arity = 0   *         for word_id in pattern:   *             if word_id == -1:             # <<<<<<<<<<<<<<   *                 arity = arity + 1   *                 new_id = sym_setindex(self.category, arity)   */ -    __pyx_t_4 = PyObject_RichCompare(__pyx_v_word_id, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_v_word_id, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":461 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":469   *         for word_id in pattern:   *             if word_id == -1:   *                 arity = arity + 1             # <<<<<<<<<<<<<<   *                 new_id = sym_setindex(self.category, arity)   *             else:   */ -      __pyx_t_4 = PyNumber_Add(__pyx_v_arity, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyNumber_Add(__pyx_v_arity, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF_SET(__pyx_v_arity, __pyx_t_4);        __pyx_t_4 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":462 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":470   *             if word_id == -1:   *                 arity = arity + 1   *                 new_id = sym_setindex(self.category, arity)             # <<<<<<<<<<<<<<   *             else:   *                 new_id = sym_fromstring(self.fda.id2word[word_id], True)   */ -      __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_arity); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_arity); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_v_new_id = __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_t_6);        goto __pyx_L5;      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":464 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":472   *                 new_id = sym_setindex(self.category, arity)   *             else:   *                 new_id = sym_fromstring(self.fda.id2word[word_id], True)             # <<<<<<<<<<<<<<   *             result = result + (new_id,)   *         patterns.append(Phrase(result))   */ -      __pyx_t_4 = PyObject_GetItem(__pyx_v_self->fda->id2word, __pyx_v_word_id); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_4 = PyObject_GetItem(__pyx_v_self->fda->id2word, __pyx_v_word_id); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_t_4); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_t_4); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __pyx_v_new_id = __pyx_f_4cdec_2sa_3_sa_sym_fromstring(__pyx_t_7, 1);      }      __pyx_L5:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":465 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":473   *             else:   *                 new_id = sym_fromstring(self.fda.id2word[word_id], True)   *             result = result + (new_id,)             # <<<<<<<<<<<<<<   *         patterns.append(Phrase(result))   *         patterns.append(Phrase(result + (sym_setindex(self.category, 1),)))   */ -    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_new_id); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_new_id); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8);      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);      __Pyx_GIVEREF(__pyx_t_4);      __pyx_t_4 = 0; -    __pyx_t_4 = PyNumber_Add(__pyx_v_result, __pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyNumber_Add(__pyx_v_result, __pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      __Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_4)); @@ -44091,81 +44205,81 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_6pattern2phra    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":466 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":474   *                 new_id = sym_fromstring(self.fda.id2word[word_id], True)   *             result = result + (new_id,)   *         patterns.append(Phrase(result))             # <<<<<<<<<<<<<<   *         patterns.append(Phrase(result + (sym_setindex(self.category, 1),)))   *         patterns.append(Phrase((sym_setindex(self.category, 1),) + result))   */ -  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(__pyx_v_result);    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_result);    __Pyx_GIVEREF(__pyx_v_result); -  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_patterns, __pyx_t_4); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_patterns, __pyx_t_4); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":467 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":475   *             result = result + (new_id,)   *         patterns.append(Phrase(result))   *         patterns.append(Phrase(result + (sym_setindex(self.category, 1),)))             # <<<<<<<<<<<<<<   *         patterns.append(Phrase((sym_setindex(self.category, 1),) + result))   *         return patterns   */ -  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, 1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, 1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4); -  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);    __Pyx_GIVEREF(__pyx_t_4);    __pyx_t_4 = 0; -  __pyx_t_4 = PyNumber_Add(__pyx_v_result, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyNumber_Add(__pyx_v_result, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);    __Pyx_GIVEREF(__pyx_t_4);    __pyx_t_4 = 0; -  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_patterns, __pyx_t_4); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_patterns, __pyx_t_4); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":468 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":476   *         patterns.append(Phrase(result))   *         patterns.append(Phrase(result + (sym_setindex(self.category, 1),)))   *         patterns.append(Phrase((sym_setindex(self.category, 1),) + result))             # <<<<<<<<<<<<<<   *         return patterns   *    */ -  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, 1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, 1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4); -  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);    __Pyx_GIVEREF(__pyx_t_4);    __pyx_t_4 = 0; -  __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_v_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_v_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);    __Pyx_GIVEREF(__pyx_t_4);    __pyx_t_4 = 0; -  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_patterns, __pyx_t_4); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_patterns, __pyx_t_4); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":469 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":477   *         patterns.append(Phrase(result + (sym_setindex(self.category, 1),)))   *         patterns.append(Phrase((sym_setindex(self.category, 1),) + result))   *         return patterns             # <<<<<<<<<<<<<< @@ -44177,7 +44291,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_6pattern2phra    __pyx_r = __pyx_v_patterns;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":453 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":461   *         return Phrase(result)   *    *     def pattern2phrase_plus(self, pattern):             # <<<<<<<<<<<<<< @@ -44202,7 +44316,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_6pattern2phra    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":471 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":479   *         return patterns   *    *     def precompute(self):             # <<<<<<<<<<<<<< @@ -44250,7 +44364,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("precompute", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":474 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":482   *         cdef Precomputation pre   *    *         if self.precompute_file is not None:             # <<<<<<<<<<<<<< @@ -44261,34 +44375,34 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":475 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":483   *    *         if self.precompute_file is not None:   *             start_time = monitor_cpu()             # <<<<<<<<<<<<<<   *             logger.info("Reading precomputed data from file %s... ", self.precompute_file)   *             pre = Precomputation(from_binary=self.precompute_file)   */ -    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_v_start_time = __pyx_t_4;      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":476 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":484   *         if self.precompute_file is not None:   *             start_time = monitor_cpu()   *             logger.info("Reading precomputed data from file %s... ", self.precompute_file)             # <<<<<<<<<<<<<<   *             pre = Precomputation(from_binary=self.precompute_file)   *             # check parameters of precomputation -- some are critical and some are not   */ -    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_INCREF(__pyx_kp_s_Reading_precomputed_data_from_fi);      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_s_Reading_precomputed_data_from_fi); @@ -44296,29 +44410,29 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s      __Pyx_INCREF(__pyx_v_self->precompute_file);      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_self->precompute_file);      __Pyx_GIVEREF(__pyx_v_self->precompute_file); -    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":477 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":485   *             start_time = monitor_cpu()   *             logger.info("Reading precomputed data from file %s... ", self.precompute_file)   *             pre = Precomputation(from_binary=self.precompute_file)             # <<<<<<<<<<<<<<   *             # check parameters of precomputation -- some are critical and some are not   *             if pre.max_nonterminals != self.max_nonterminals:   */ -    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_from_binary, __pyx_v_self->precompute_file) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Precomputation)), __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_from_binary, __pyx_v_self->precompute_file) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Precomputation)), __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __pyx_v_pre = ((struct __pyx_obj_4cdec_2sa_3_sa_Precomputation *)__pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":479 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":487   *             pre = Precomputation(from_binary=self.precompute_file)   *             # check parameters of precomputation -- some are critical and some are not   *             if pre.max_nonterminals != self.max_nonterminals:             # <<<<<<<<<<<<<< @@ -44328,23 +44442,23 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s      __pyx_t_2 = ((__pyx_v_pre->max_nonterminals != __pyx_v_self->max_nonterminals) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":480 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":488   *             # check parameters of precomputation -- some are critical and some are not   *             if pre.max_nonterminals != self.max_nonterminals:   *                 logger.warn("Precomputation done with max nonterminals %d, decoder uses %d", pre.max_nonterminals, self.max_nonterminals)             # <<<<<<<<<<<<<<   *             if pre.max_length != self.max_length:   *                 logger.warn("Precomputation done with max terminals %d, decoder uses %d", pre.max_length, self.max_length)   */ -      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_warn); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_warn); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_pre->max_nonterminals); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_pre->max_nonterminals); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->max_nonterminals); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->max_nonterminals); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_INCREF(__pyx_kp_s_Precomputation_done_with_max_non);        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_s_Precomputation_done_with_max_non); @@ -44355,7 +44469,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s        __Pyx_GIVEREF(__pyx_t_3);        __pyx_t_4 = 0;        __pyx_t_3 = 0; -      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -44364,7 +44478,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s      }      __pyx_L4:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":481 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":489   *             if pre.max_nonterminals != self.max_nonterminals:   *                 logger.warn("Precomputation done with max nonterminals %d, decoder uses %d", pre.max_nonterminals, self.max_nonterminals)   *             if pre.max_length != self.max_length:             # <<<<<<<<<<<<<< @@ -44374,23 +44488,23 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s      __pyx_t_2 = ((__pyx_v_pre->max_length != __pyx_v_self->max_length) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":482 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":490   *                 logger.warn("Precomputation done with max nonterminals %d, decoder uses %d", pre.max_nonterminals, self.max_nonterminals)   *             if pre.max_length != self.max_length:   *                 logger.warn("Precomputation done with max terminals %d, decoder uses %d", pre.max_length, self.max_length)             # <<<<<<<<<<<<<<   *             if pre.train_max_initial_size != self.train_max_initial_size:   *                 raise Exception("Precomputation done with max initial size %d, decoder uses %d" % (pre.train_max_initial_size, self.train_max_initial_size))   */ -      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_warn); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_warn); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_pre->max_length); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_pre->max_length); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->max_length); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->max_length); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5); -      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_INCREF(__pyx_kp_s_Precomputation_done_with_max_ter);        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_s_Precomputation_done_with_max_ter); @@ -44401,7 +44515,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s        __Pyx_GIVEREF(__pyx_t_5);        __pyx_t_3 = 0;        __pyx_t_5 = 0; -      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -44410,7 +44524,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s      }      __pyx_L5:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":483 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":491   *             if pre.max_length != self.max_length:   *                 logger.warn("Precomputation done with max terminals %d, decoder uses %d", pre.max_length, self.max_length)   *             if pre.train_max_initial_size != self.train_max_initial_size:             # <<<<<<<<<<<<<< @@ -44420,18 +44534,18 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s      __pyx_t_2 = ((__pyx_v_pre->train_max_initial_size != __pyx_v_self->train_max_initial_size) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":484 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":492   *                 logger.warn("Precomputation done with max terminals %d, decoder uses %d", pre.max_length, self.max_length)   *             if pre.train_max_initial_size != self.train_max_initial_size:   *                 raise Exception("Precomputation done with max initial size %d, decoder uses %d" % (pre.train_max_initial_size, self.train_max_initial_size))             # <<<<<<<<<<<<<<   *             if pre.train_min_gap_size != self.train_min_gap_size:   *                 raise Exception("Precomputation done with min gap size %d, decoder uses %d" % (pre.train_min_gap_size, self.train_min_gap_size))   */ -      __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_pre->train_max_initial_size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_pre->train_max_initial_size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5); -      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->train_max_initial_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->train_max_initial_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);        __Pyx_GIVEREF(__pyx_t_5); @@ -44439,23 +44553,23 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s        __Pyx_GIVEREF(__pyx_t_4);        __pyx_t_5 = 0;        __pyx_t_4 = 0; -      __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Precomputation_done_with_max_ini, __pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Precomputation_done_with_max_ini, __pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);        __Pyx_GIVEREF(__pyx_t_4);        __pyx_t_4 = 0; -      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_Exception, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_Exception, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __Pyx_Raise(__pyx_t_4, 0, 0, 0);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":485 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":493   *             if pre.train_max_initial_size != self.train_max_initial_size:   *                 raise Exception("Precomputation done with max initial size %d, decoder uses %d" % (pre.train_max_initial_size, self.train_max_initial_size))   *             if pre.train_min_gap_size != self.train_min_gap_size:             # <<<<<<<<<<<<<< @@ -44465,18 +44579,18 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s      __pyx_t_2 = ((__pyx_v_pre->train_min_gap_size != __pyx_v_self->train_min_gap_size) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":486 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":494   *                 raise Exception("Precomputation done with max initial size %d, decoder uses %d" % (pre.train_max_initial_size, self.train_max_initial_size))   *             if pre.train_min_gap_size != self.train_min_gap_size:   *                 raise Exception("Precomputation done with min gap size %d, decoder uses %d" % (pre.train_min_gap_size, self.train_min_gap_size))             # <<<<<<<<<<<<<<   *             if self.use_index:   *                 logger.info("Converting %d hash keys on precomputed inverted index... ", len(pre.precomputed_index))   */ -      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_pre->train_min_gap_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_pre->train_min_gap_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->train_min_gap_size); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->train_min_gap_size); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);        __Pyx_GIVEREF(__pyx_t_4); @@ -44484,23 +44598,23 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s        __Pyx_GIVEREF(__pyx_t_6);        __pyx_t_4 = 0;        __pyx_t_6 = 0; -      __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Precomputation_done_with_min_gap, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Precomputation_done_with_min_gap, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);        __Pyx_GIVEREF(__pyx_t_6);        __pyx_t_6 = 0; -      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_Exception, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_Exception, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        __Pyx_Raise(__pyx_t_6, 0, 0, 0);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":487 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":495   *             if pre.train_min_gap_size != self.train_min_gap_size:   *                 raise Exception("Precomputation done with min gap size %d, decoder uses %d" % (pre.train_min_gap_size, self.train_min_gap_size))   *             if self.use_index:             # <<<<<<<<<<<<<< @@ -44510,25 +44624,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s      __pyx_t_2 = (__pyx_v_self->use_index != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":488 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":496   *                 raise Exception("Precomputation done with min gap size %d, decoder uses %d" % (pre.train_min_gap_size, self.train_min_gap_size))   *             if self.use_index:   *                 logger.info("Converting %d hash keys on precomputed inverted index... ", len(pre.precomputed_index))             # <<<<<<<<<<<<<<   *                 for pattern, arr in pre.precomputed_index.iteritems():   *                     phrases = self.pattern2phrase_plus(pattern)   */ -      __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_info); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_info); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __pyx_t_6 = __pyx_v_pre->precomputed_index;        __Pyx_INCREF(__pyx_t_6); -      __pyx_t_7 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_INCREF(__pyx_kp_s_Converting_d_hash_keys_on_precom);        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_s_Converting_d_hash_keys_on_precom); @@ -44536,13 +44650,13 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s        PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6);        __Pyx_GIVEREF(__pyx_t_6);        __pyx_t_6 = 0; -      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":489 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":497   *             if self.use_index:   *                 logger.info("Converting %d hash keys on precomputed inverted index... ", len(pre.precomputed_index))   *                 for pattern, arr in pre.precomputed_index.iteritems():             # <<<<<<<<<<<<<< @@ -44552,9 +44666,9 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s        __pyx_t_7 = 0;        if (unlikely(__pyx_v_pre->precomputed_index == Py_None)) {          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iteritems"); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      __pyx_t_4 = __Pyx_dict_iterator(__pyx_v_pre->precomputed_index, 0, __pyx_n_s_iteritems, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_dict_iterator(__pyx_v_pre->precomputed_index, 0, __pyx_n_s_iteritems, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_XDECREF(__pyx_t_6);        __pyx_t_6 = __pyx_t_4; @@ -44562,7 +44676,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s        while (1) {          __pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_8, &__pyx_t_7, &__pyx_t_4, &__pyx_t_5, NULL, __pyx_t_9);          if (unlikely(__pyx_t_10 == 0)) break; -        if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_4);          __Pyx_GOTREF(__pyx_t_5);          __Pyx_XDECREF_SET(__pyx_v_pattern, __pyx_t_4); @@ -44570,28 +44684,28 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s          __Pyx_XDECREF_SET(__pyx_v_arr, __pyx_t_5);          __pyx_t_5 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":490 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":498   *                 logger.info("Converting %d hash keys on precomputed inverted index... ", len(pre.precomputed_index))   *                 for pattern, arr in pre.precomputed_index.iteritems():   *                     phrases = self.pattern2phrase_plus(pattern)             # <<<<<<<<<<<<<<   *                     for phrase in phrases:   *                         self.precomputed_index[phrase] = arr   */ -        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pattern2phrase_plus); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pattern2phrase_plus); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_5); -        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_4);          __Pyx_INCREF(__pyx_v_pattern);          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pattern);          __Pyx_GIVEREF(__pyx_v_pattern); -        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3);          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF_SET(__pyx_v_phrases, __pyx_t_3);          __pyx_t_3 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":491 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":499   *                 for pattern, arr in pre.precomputed_index.iteritems():   *                     phrases = self.pattern2phrase_plus(pattern)   *                     for phrase in phrases:             # <<<<<<<<<<<<<< @@ -44602,7 +44716,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s            __pyx_t_3 = __pyx_v_phrases; __Pyx_INCREF(__pyx_t_3); __pyx_t_11 = 0;            __pyx_t_12 = NULL;          } else { -          __pyx_t_11 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_phrases); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_phrases); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_3);            __pyx_t_12 = Py_TYPE(__pyx_t_3)->tp_iternext;          } @@ -44610,16 +44724,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s            if (!__pyx_t_12 && PyList_CheckExact(__pyx_t_3)) {              if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_3)) break;              #if CYTHON_COMPILING_IN_CPYTHON -            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              #else -            __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              #endif            } else if (!__pyx_t_12 && PyTuple_CheckExact(__pyx_t_3)) {              if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_3)) break;              #if CYTHON_COMPILING_IN_CPYTHON -            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              #else -            __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              #endif            } else {              __pyx_t_4 = __pyx_t_12(__pyx_t_3); @@ -44627,7 +44741,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s                PyObject* exc_type = PyErr_Occurred();                if (exc_type) {                  if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -                else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                }                break;              } @@ -44636,14 +44750,14 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s            __Pyx_XDECREF_SET(__pyx_v_phrase, __pyx_t_4);            __pyx_t_4 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":492 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":500   *                     phrases = self.pattern2phrase_plus(pattern)   *                     for phrase in phrases:   *                         self.precomputed_index[phrase] = arr             # <<<<<<<<<<<<<<   *             if self.use_collocations:   *                 logger.info("Converting %d hash keys on precomputed collocations... ", len(pre.precomputed_collocations))   */ -          if (unlikely(PyObject_SetItem(__pyx_v_self->precomputed_index, __pyx_v_phrase, __pyx_v_arr) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (unlikely(PyObject_SetItem(__pyx_v_self->precomputed_index, __pyx_v_phrase, __pyx_v_arr) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        } @@ -44652,7 +44766,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s      }      __pyx_L8:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":493 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":501   *                     for phrase in phrases:   *                         self.precomputed_index[phrase] = arr   *             if self.use_collocations:             # <<<<<<<<<<<<<< @@ -44662,25 +44776,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s      __pyx_t_2 = (__pyx_v_self->use_collocations != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":494 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":502   *                         self.precomputed_index[phrase] = arr   *             if self.use_collocations:   *                 logger.info("Converting %d hash keys on precomputed collocations... ", len(pre.precomputed_collocations))             # <<<<<<<<<<<<<<   *                 for pattern, arr in pre.precomputed_collocations.iteritems():   *                     phrase = self.pattern2phrase(pattern)   */ -      __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __pyx_t_6 = __pyx_v_pre->precomputed_collocations;        __Pyx_INCREF(__pyx_t_6); -      __pyx_t_8 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_INCREF(__pyx_kp_s_Converting_d_hash_keys_on_precom_2);        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_s_Converting_d_hash_keys_on_precom_2); @@ -44688,13 +44802,13 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s        PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6);        __Pyx_GIVEREF(__pyx_t_6);        __pyx_t_6 = 0; -      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":495 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":503   *             if self.use_collocations:   *                 logger.info("Converting %d hash keys on precomputed collocations... ", len(pre.precomputed_collocations))   *                 for pattern, arr in pre.precomputed_collocations.iteritems():             # <<<<<<<<<<<<<< @@ -44704,9 +44818,9 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s        __pyx_t_8 = 0;        if (unlikely(__pyx_v_pre->precomputed_collocations == Py_None)) {          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iteritems"); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      __pyx_t_4 = __Pyx_dict_iterator(__pyx_v_pre->precomputed_collocations, 0, __pyx_n_s_iteritems, (&__pyx_t_7), (&__pyx_t_9)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_dict_iterator(__pyx_v_pre->precomputed_collocations, 0, __pyx_n_s_iteritems, (&__pyx_t_7), (&__pyx_t_9)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_XDECREF(__pyx_t_6);        __pyx_t_6 = __pyx_t_4; @@ -44714,7 +44828,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s        while (1) {          __pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_8, &__pyx_t_4, &__pyx_t_3, NULL, __pyx_t_9);          if (unlikely(__pyx_t_10 == 0)) break; -        if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_4);          __Pyx_GOTREF(__pyx_t_3);          __Pyx_XDECREF_SET(__pyx_v_pattern, __pyx_t_4); @@ -44722,71 +44836,71 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s          __Pyx_XDECREF_SET(__pyx_v_arr, __pyx_t_3);          __pyx_t_3 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":496 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":504   *                 logger.info("Converting %d hash keys on precomputed collocations... ", len(pre.precomputed_collocations))   *                 for pattern, arr in pre.precomputed_collocations.iteritems():   *                     phrase = self.pattern2phrase(pattern)             # <<<<<<<<<<<<<<   *                     self.precomputed_collocations[phrase] = arr   *             stop_time = monitor_cpu()   */ -        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pattern2phrase); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pattern2phrase); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3); -        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_4);          __Pyx_INCREF(__pyx_v_pattern);          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pattern);          __Pyx_GIVEREF(__pyx_v_pattern); -        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_5);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF_SET(__pyx_v_phrase, __pyx_t_5);          __pyx_t_5 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":497 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":505   *                 for pattern, arr in pre.precomputed_collocations.iteritems():   *                     phrase = self.pattern2phrase(pattern)   *                     self.precomputed_collocations[phrase] = arr             # <<<<<<<<<<<<<<   *             stop_time = monitor_cpu()   *             logger.info("Processing precomputations took %f seconds", stop_time - start_time)   */ -        if (unlikely(PyObject_SetItem(__pyx_v_self->precomputed_collocations, __pyx_v_phrase, __pyx_v_arr) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(PyObject_SetItem(__pyx_v_self->precomputed_collocations, __pyx_v_phrase, __pyx_v_arr) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        goto __pyx_L13;      }      __pyx_L13:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":498 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":506   *                     phrase = self.pattern2phrase(pattern)   *                     self.precomputed_collocations[phrase] = arr   *             stop_time = monitor_cpu()             # <<<<<<<<<<<<<<   *             logger.info("Processing precomputations took %f seconds", stop_time - start_time)   *    */ -    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __pyx_v_stop_time = __pyx_t_5;      __pyx_t_5 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":499 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":507   *                     self.precomputed_collocations[phrase] = arr   *             stop_time = monitor_cpu()   *             logger.info("Processing precomputations took %f seconds", stop_time - start_time)             # <<<<<<<<<<<<<<   *    *    */ -    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_info); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_info); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    __pyx_t_5 = PyNumber_Subtract(__pyx_v_stop_time, __pyx_v_start_time); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyNumber_Subtract(__pyx_v_stop_time, __pyx_v_start_time); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_INCREF(__pyx_kp_s_Processing_precomputations_took);      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_s_Processing_precomputations_took); @@ -44794,7 +44908,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);      __Pyx_GIVEREF(__pyx_t_5);      __pyx_t_5 = 0; -    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -44803,7 +44917,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":471 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":479   *         return patterns   *    *     def precompute(self):             # <<<<<<<<<<<<<< @@ -44834,7 +44948,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8precompute(s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":502 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":510   *    *    *     def get_precomputed_collocation(self, phrase):             # <<<<<<<<<<<<<< @@ -44870,30 +44984,30 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_10get_precomp    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("get_precomputed_collocation", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":503 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":511   *    *     def get_precomputed_collocation(self, phrase):   *         if phrase in self.precomputed_collocations:             # <<<<<<<<<<<<<<   *             arr = self.precomputed_collocations[phrase]   *             return PhraseLocation(arr=arr, arr_low=0, arr_high=len(arr), num_subpatterns=phrase.arity()+1)   */ -  __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_v_phrase, __pyx_v_self->precomputed_collocations, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_v_phrase, __pyx_v_self->precomputed_collocations, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":504 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":512   *     def get_precomputed_collocation(self, phrase):   *         if phrase in self.precomputed_collocations:   *             arr = self.precomputed_collocations[phrase]             # <<<<<<<<<<<<<<   *             return PhraseLocation(arr=arr, arr_low=0, arr_high=len(arr), num_subpatterns=phrase.arity()+1)   *         return None   */ -    __pyx_t_3 = PyObject_GetItem(__pyx_v_self->precomputed_collocations, __pyx_v_phrase); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_3 = PyObject_GetItem(__pyx_v_self->precomputed_collocations, __pyx_v_phrase); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_3);      __pyx_v_arr = __pyx_t_3;      __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":505 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":513   *         if phrase in self.precomputed_collocations:   *             arr = self.precomputed_collocations[phrase]   *             return PhraseLocation(arr=arr, arr_low=0, arr_high=len(arr), num_subpatterns=phrase.arity()+1)             # <<<<<<<<<<<<<< @@ -44901,26 +45015,26 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_10get_precomp   *    */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_arr, __pyx_v_arr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_arr_low, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_4 = PyObject_Length(__pyx_v_arr); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_arr, __pyx_v_arr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_arr_low, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_Length(__pyx_v_arr); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_arr_high, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_arr_high, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_phrase, __pyx_n_s_arity); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_phrase, __pyx_n_s_arity); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_subpatterns, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_subpatterns, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_r = __pyx_t_5; @@ -44928,7 +45042,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_10get_precomp      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":506 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":514   *             arr = self.precomputed_collocations[phrase]   *             return PhraseLocation(arr=arr, arr_low=0, arr_high=len(arr), num_subpatterns=phrase.arity()+1)   *         return None             # <<<<<<<<<<<<<< @@ -44940,7 +45054,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_10get_precomp    __pyx_r = Py_None;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":502 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":510   *    *    *     def get_precomputed_collocation(self, phrase):             # <<<<<<<<<<<<<< @@ -44962,7 +45076,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_10get_precomp    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":509 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":517   *    *    *     cdef int* baeza_yates_helper(self, int low1, int high1, int* arr1, int step1,             # <<<<<<<<<<<<<< @@ -45008,7 +45122,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("baeza_yates_helper", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":522 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":530   *         cdef Matching loc1, loc2   *    *         result = <int*> malloc(0*sizeof(int*))             # <<<<<<<<<<<<<< @@ -45017,7 +45131,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_v_result = ((int *)malloc((0 * (sizeof(int *))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":524 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":532   *         result = <int*> malloc(0*sizeof(int*))   *    *         d_first = 0             # <<<<<<<<<<<<<< @@ -45026,7 +45140,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_v_d_first = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":525 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":533   *    *         d_first = 0   *         if high1 - low1 > high2 - low2:             # <<<<<<<<<<<<<< @@ -45036,7 +45150,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    __pyx_t_1 = (((__pyx_v_high1 - __pyx_v_low1) > (__pyx_v_high2 - __pyx_v_low2)) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":526 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":534   *         d_first = 0   *         if high1 - low1 > high2 - low2:   *             d_first = 1             # <<<<<<<<<<<<<< @@ -45048,7 +45162,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":530 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":538   *         # First, check to see if we are at any of the recursive base cases   *         # Case 1: one of the sets is empty   *         if low1 >= high1 or low2 >= high2:             # <<<<<<<<<<<<<< @@ -45064,7 +45178,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    }    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":531 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":539   *         # Case 1: one of the sets is empty   *         if low1 >= high1 or low2 >= high2:   *             return result             # <<<<<<<<<<<<<< @@ -45075,7 +45189,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":534 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":542   *    *         # Case 2: sets are non-overlapping   *         assign_matching(&loc1, arr1, high1-step1, step1, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -45084,7 +45198,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc1), __pyx_v_arr1, (__pyx_v_high1 - __pyx_v_step1), __pyx_v_step1, __pyx_v_self->fda->sent_id->arr); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":535 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":543   *         # Case 2: sets are non-overlapping   *         assign_matching(&loc1, arr1, high1-step1, step1, self.fda.sent_id.arr)   *         assign_matching(&loc2, arr2, low2, step2, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -45093,7 +45207,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc2), __pyx_v_arr2, __pyx_v_low2, __pyx_v_step2, __pyx_v_self->fda->sent_id->arr); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":536 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":544   *         assign_matching(&loc1, arr1, high1-step1, step1, self.fda.sent_id.arr)   *         assign_matching(&loc2, arr2, low2, step2, self.fda.sent_id.arr)   *         if self.compare_matchings(&loc1, &loc2, offset_by_one, len_last) == -1:             # <<<<<<<<<<<<<< @@ -45103,7 +45217,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    __pyx_t_3 = ((((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->compare_matchings(__pyx_v_self, (&__pyx_v_loc1), (&__pyx_v_loc2), __pyx_v_offset_by_one, __pyx_v_len_last) == -1) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":537 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":545   *         assign_matching(&loc2, arr2, low2, step2, self.fda.sent_id.arr)   *         if self.compare_matchings(&loc1, &loc2, offset_by_one, len_last) == -1:   *             return result             # <<<<<<<<<<<<<< @@ -45114,7 +45228,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":539 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":547   *             return result   *    *         assign_matching(&loc1, arr1, low1, step1, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -45123,7 +45237,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc1), __pyx_v_arr1, __pyx_v_low1, __pyx_v_step1, __pyx_v_self->fda->sent_id->arr); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":540 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":548   *    *         assign_matching(&loc1, arr1, low1, step1, self.fda.sent_id.arr)   *         assign_matching(&loc2, arr2, high2-step2, step2, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -45132,7 +45246,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc2), __pyx_v_arr2, (__pyx_v_high2 - __pyx_v_step2), __pyx_v_step2, __pyx_v_self->fda->sent_id->arr); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":541 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":549   *         assign_matching(&loc1, arr1, low1, step1, self.fda.sent_id.arr)   *         assign_matching(&loc2, arr2, high2-step2, step2, self.fda.sent_id.arr)   *         if self.compare_matchings(&loc1, &loc2, offset_by_one, len_last) == 1:             # <<<<<<<<<<<<<< @@ -45142,7 +45256,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    __pyx_t_3 = ((((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->compare_matchings(__pyx_v_self, (&__pyx_v_loc1), (&__pyx_v_loc2), __pyx_v_offset_by_one, __pyx_v_len_last) == 1) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":542 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":550   *         assign_matching(&loc2, arr2, high2-step2, step2, self.fda.sent_id.arr)   *         if self.compare_matchings(&loc1, &loc2, offset_by_one, len_last) == 1:   *             return result             # <<<<<<<<<<<<<< @@ -45153,7 +45267,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":546 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":554   *         # Case 3: query set and data set do not meet size mismatch constraints;   *         # We use mergesort instead in this case   *         qsetsize = (high1-low1) / step1             # <<<<<<<<<<<<<< @@ -45169,7 +45283,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(      #ifdef WITH_THREAD      PyGILState_Release(__pyx_gilstate_save);      #endif -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 546; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    else if (sizeof(int) == sizeof(long) && (!(((int)-1) > 0)) && unlikely(__pyx_v_step1 == (int)-1)  && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_t_4))) {      #ifdef WITH_THREAD @@ -45179,11 +45293,11 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(      #ifdef WITH_THREAD      PyGILState_Release(__pyx_gilstate_save);      #endif -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 546; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __pyx_v_qsetsize = __Pyx_div_int(__pyx_t_4, __pyx_v_step1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":547 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":555   *         # We use mergesort instead in this case   *         qsetsize = (high1-low1) / step1   *         dsetsize = (high2-low2) / step2             # <<<<<<<<<<<<<< @@ -45199,7 +45313,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(      #ifdef WITH_THREAD      PyGILState_Release(__pyx_gilstate_save);      #endif -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    else if (sizeof(int) == sizeof(long) && (!(((int)-1) > 0)) && unlikely(__pyx_v_step2 == (int)-1)  && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_t_4))) {      #ifdef WITH_THREAD @@ -45209,11 +45323,11 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(      #ifdef WITH_THREAD      PyGILState_Release(__pyx_gilstate_save);      #endif -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __pyx_v_dsetsize = __Pyx_div_int(__pyx_t_4, __pyx_v_step2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":548 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":556   *         qsetsize = (high1-low1) / step1   *         dsetsize = (high2-low2) / step2   *         if d_first:             # <<<<<<<<<<<<<< @@ -45223,7 +45337,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    __pyx_t_3 = (__pyx_v_d_first != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":549 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":557   *         dsetsize = (high2-low2) / step2   *         if d_first:   *             tmp = qsetsize             # <<<<<<<<<<<<<< @@ -45232,7 +45346,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_tmp = __pyx_v_qsetsize; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":550 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":558   *         if d_first:   *             tmp = qsetsize   *             qsetsize = dsetsize             # <<<<<<<<<<<<<< @@ -45241,7 +45355,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_qsetsize = __pyx_v_dsetsize; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":551 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":559   *             tmp = qsetsize   *             qsetsize = dsetsize   *             dsetsize = tmp             # <<<<<<<<<<<<<< @@ -45253,7 +45367,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    }    __pyx_L7:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":553 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":561   *             dsetsize = tmp   *    *         if self.by_slack_factor * qsetsize * log(dsetsize) / log(2) > dsetsize:             # <<<<<<<<<<<<<< @@ -45270,12 +45384,12 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(      #ifdef WITH_THREAD      PyGILState_Release(__pyx_gilstate_save);      #endif -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __pyx_t_3 = (((__pyx_t_5 / __pyx_t_6) > __pyx_v_dsetsize) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":554 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":562   *    *         if self.by_slack_factor * qsetsize * log(dsetsize) / log(2) > dsetsize:   *             free(result)             # <<<<<<<<<<<<<< @@ -45284,7 +45398,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      free(__pyx_v_result); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":555 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":563   *         if self.by_slack_factor * qsetsize * log(dsetsize) / log(2) > dsetsize:   *             free(result)   *             return self.merge_helper(low1, high1, arr1, step1, low2, high2, arr2, step2, offset_by_one, len_last, num_subpatterns, result_len)             # <<<<<<<<<<<<<< @@ -45295,7 +45409,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":559 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":567   *         # binary search.    There are two flavors, depending on   *         # whether the queryset or dataset is first   *         if d_first:             # <<<<<<<<<<<<<< @@ -45305,7 +45419,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    __pyx_t_3 = (__pyx_v_d_first != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":560 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":568   *         # whether the queryset or dataset is first   *         if d_first:   *             med2 = median(low2, high2, step2)             # <<<<<<<<<<<<<< @@ -45314,7 +45428,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_med2 = __pyx_f_4cdec_2sa_3_sa_median(__pyx_v_low2, __pyx_v_high2, __pyx_v_step2); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":561 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":569   *         if d_first:   *             med2 = median(low2, high2, step2)   *             assign_matching(&loc2, arr2, med2, step2, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -45323,7 +45437,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc2), __pyx_v_arr2, __pyx_v_med2, __pyx_v_step2, __pyx_v_self->fda->sent_id->arr); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":563 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":571   *             assign_matching(&loc2, arr2, med2, step2, self.fda.sent_id.arr)   *    *             search_low = low1             # <<<<<<<<<<<<<< @@ -45332,7 +45446,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_search_low = __pyx_v_low1; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":564 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":572   *    *             search_low = low1   *             search_high = high1             # <<<<<<<<<<<<<< @@ -45341,7 +45455,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_search_high = __pyx_v_high1; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":565 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":573   *             search_low = low1   *             search_high = high1   *             while search_low < search_high:             # <<<<<<<<<<<<<< @@ -45352,7 +45466,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        __pyx_t_3 = ((__pyx_v_search_low < __pyx_v_search_high) != 0);        if (!__pyx_t_3) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":566 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":574   *             search_high = high1   *             while search_low < search_high:   *                 med1 = median(search_low, search_high, step1)             # <<<<<<<<<<<<<< @@ -45361,7 +45475,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_v_med1 = __pyx_f_4cdec_2sa_3_sa_median(__pyx_v_search_low, __pyx_v_search_high, __pyx_v_step1); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":567 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":575   *             while search_low < search_high:   *                 med1 = median(search_low, search_high, step1)   *                 find_comparable_matchings(low1, high1, arr1, step1, med1, &med1_minus, &med1_plus)             # <<<<<<<<<<<<<< @@ -45370,7 +45484,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_f_4cdec_2sa_3_sa_find_comparable_matchings(__pyx_v_low1, __pyx_v_high1, __pyx_v_arr1, __pyx_v_step1, __pyx_v_med1, (&__pyx_v_med1_minus), (&__pyx_v_med1_plus)); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":568 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":576   *                 med1 = median(search_low, search_high, step1)   *                 find_comparable_matchings(low1, high1, arr1, step1, med1, &med1_minus, &med1_plus)   *                 comparison = self.compare_matchings_set(med1_minus, med1_plus, arr1, step1, &loc2, offset_by_one, len_last)             # <<<<<<<<<<<<<< @@ -45379,7 +45493,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_v_comparison = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->compare_matchings_set(__pyx_v_self, __pyx_v_med1_minus, __pyx_v_med1_plus, __pyx_v_arr1, __pyx_v_step1, (&__pyx_v_loc2), __pyx_v_offset_by_one, __pyx_v_len_last); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":571 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":579   *                 if comparison == -1:   *                     search_low = med1_plus   *                 elif comparison == 1:             # <<<<<<<<<<<<<< @@ -45388,7 +45502,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        switch (__pyx_v_comparison) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":569 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":577   *                 find_comparable_matchings(low1, high1, arr1, step1, med1, &med1_minus, &med1_plus)   *                 comparison = self.compare_matchings_set(med1_minus, med1_plus, arr1, step1, &loc2, offset_by_one, len_last)   *                 if comparison == -1:             # <<<<<<<<<<<<<< @@ -45397,7 +45511,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */          case -1: -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":570 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":578   *                 comparison = self.compare_matchings_set(med1_minus, med1_plus, arr1, step1, &loc2, offset_by_one, len_last)   *                 if comparison == -1:   *                     search_low = med1_plus             # <<<<<<<<<<<<<< @@ -45407,7 +45521,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(          __pyx_v_search_low = __pyx_v_med1_plus;          break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":571 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":579   *                 if comparison == -1:   *                     search_low = med1_plus   *                 elif comparison == 1:             # <<<<<<<<<<<<<< @@ -45416,7 +45530,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */          case 1: -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":572 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":580   *                     search_low = med1_plus   *                 elif comparison == 1:   *                     search_high = med1_minus             # <<<<<<<<<<<<<< @@ -45427,7 +45541,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(          break;          default: -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":574 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":582   *                     search_high = med1_minus   *                 else:   *                     break             # <<<<<<<<<<<<<< @@ -45443,7 +45557,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":576 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":584   *                     break   *         else:   *             med1 = median(low1, high1, step1)             # <<<<<<<<<<<<<< @@ -45452,7 +45566,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_med1 = __pyx_f_4cdec_2sa_3_sa_median(__pyx_v_low1, __pyx_v_high1, __pyx_v_step1); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":577 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":585   *         else:   *             med1 = median(low1, high1, step1)   *             find_comparable_matchings(low1, high1, arr1, step1, med1, &med1_minus, &med1_plus)             # <<<<<<<<<<<<<< @@ -45461,7 +45575,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_f_4cdec_2sa_3_sa_find_comparable_matchings(__pyx_v_low1, __pyx_v_high1, __pyx_v_arr1, __pyx_v_step1, __pyx_v_med1, (&__pyx_v_med1_minus), (&__pyx_v_med1_plus)); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":579 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":587   *             find_comparable_matchings(low1, high1, arr1, step1, med1, &med1_minus, &med1_plus)   *    *             search_low = low2             # <<<<<<<<<<<<<< @@ -45470,7 +45584,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_search_low = __pyx_v_low2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":580 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":588   *    *             search_low = low2   *             search_high = high2             # <<<<<<<<<<<<<< @@ -45479,7 +45593,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_search_high = __pyx_v_high2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":581 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":589   *             search_low = low2   *             search_high = high2   *             while search_low < search_high:             # <<<<<<<<<<<<<< @@ -45490,7 +45604,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        __pyx_t_3 = ((__pyx_v_search_low < __pyx_v_search_high) != 0);        if (!__pyx_t_3) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":582 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":590   *             search_high = high2   *             while search_low < search_high:   *                 med2 = median(search_low, search_high, step2)             # <<<<<<<<<<<<<< @@ -45499,7 +45613,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_v_med2 = __pyx_f_4cdec_2sa_3_sa_median(__pyx_v_search_low, __pyx_v_search_high, __pyx_v_step2); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":583 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":591   *             while search_low < search_high:   *                 med2 = median(search_low, search_high, step2)   *                 assign_matching(&loc2, arr2, med2, step2, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -45508,7 +45622,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc2), __pyx_v_arr2, __pyx_v_med2, __pyx_v_step2, __pyx_v_self->fda->sent_id->arr); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":584 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":592   *                 med2 = median(search_low, search_high, step2)   *                 assign_matching(&loc2, arr2, med2, step2, self.fda.sent_id.arr)   *                 comparison = self.compare_matchings_set(med1_minus, med1_plus, arr1, step1, &loc2, offset_by_one, len_last)             # <<<<<<<<<<<<<< @@ -45517,7 +45631,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_v_comparison = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->compare_matchings_set(__pyx_v_self, __pyx_v_med1_minus, __pyx_v_med1_plus, __pyx_v_arr1, __pyx_v_step1, (&__pyx_v_loc2), __pyx_v_offset_by_one, __pyx_v_len_last); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":587 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":595   *                 if comparison == -1:   *                     search_high = med2   *                 elif comparison == 1:             # <<<<<<<<<<<<<< @@ -45526,7 +45640,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        switch (__pyx_v_comparison) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":585 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":593   *                 assign_matching(&loc2, arr2, med2, step2, self.fda.sent_id.arr)   *                 comparison = self.compare_matchings_set(med1_minus, med1_plus, arr1, step1, &loc2, offset_by_one, len_last)   *                 if comparison == -1:             # <<<<<<<<<<<<<< @@ -45535,7 +45649,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */          case -1: -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":586 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":594   *                 comparison = self.compare_matchings_set(med1_minus, med1_plus, arr1, step1, &loc2, offset_by_one, len_last)   *                 if comparison == -1:   *                     search_high = med2             # <<<<<<<<<<<<<< @@ -45545,7 +45659,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(          __pyx_v_search_high = __pyx_v_med2;          break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":587 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":595   *                 if comparison == -1:   *                     search_high = med2   *                 elif comparison == 1:             # <<<<<<<<<<<<<< @@ -45554,7 +45668,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */          case 1: -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":588 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":596   *                     search_high = med2   *                 elif comparison == 1:   *                     search_low = med2 + step2             # <<<<<<<<<<<<<< @@ -45565,7 +45679,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(          break;          default: -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":590 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":598   *                     search_low = med2 + step2   *                 else:   *                     break             # <<<<<<<<<<<<<< @@ -45580,7 +45694,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    }    __pyx_L9:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":592 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":600   *                     break   *    *         med_result_len = 0             # <<<<<<<<<<<<<< @@ -45589,7 +45703,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_v_med_result_len = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":593 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":601   *    *         med_result_len = 0   *         med_result = <int*> malloc(0*sizeof(int*))             # <<<<<<<<<<<<<< @@ -45598,7 +45712,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_v_med_result = ((int *)malloc((0 * (sizeof(int *))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":594 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":602   *         med_result_len = 0   *         med_result = <int*> malloc(0*sizeof(int*))   *         if search_high > search_low:             # <<<<<<<<<<<<<< @@ -45608,7 +45722,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    __pyx_t_3 = ((__pyx_v_search_high > __pyx_v_search_low) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":600 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":608   *             # want to store the bindings for all of those elements.    We can   *             # subsequently throw all of them away.   *             med2_minus = med2             # <<<<<<<<<<<<<< @@ -45617,7 +45731,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_med2_minus = __pyx_v_med2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":601 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":609   *             # subsequently throw all of them away.   *             med2_minus = med2   *             med2_plus = med2 + step2             # <<<<<<<<<<<<<< @@ -45626,7 +45740,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_med2_plus = (__pyx_v_med2 + __pyx_v_step2); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":602 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":610   *             med2_minus = med2   *             med2_plus = med2 + step2   *             i1 = med1_minus             # <<<<<<<<<<<<<< @@ -45635,7 +45749,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_i1 = __pyx_v_med1_minus; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":603 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":611   *             med2_plus = med2 + step2   *             i1 = med1_minus   *             while i1 < med1_plus:             # <<<<<<<<<<<<<< @@ -45646,7 +45760,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        __pyx_t_3 = ((__pyx_v_i1 < __pyx_v_med1_plus) != 0);        if (!__pyx_t_3) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":604 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":612   *             i1 = med1_minus   *             while i1 < med1_plus:   *                 assign_matching(&loc1, arr1, i1, step1, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -45655,7 +45769,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc1), __pyx_v_arr1, __pyx_v_i1, __pyx_v_step1, __pyx_v_self->fda->sent_id->arr); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":605 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":613   *             while i1 < med1_plus:   *                 assign_matching(&loc1, arr1, i1, step1, self.fda.sent_id.arr)   *                 while med2_minus-step2 >= low2:             # <<<<<<<<<<<<<< @@ -45666,7 +45780,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(          __pyx_t_3 = (((__pyx_v_med2_minus - __pyx_v_step2) >= __pyx_v_low2) != 0);          if (!__pyx_t_3) break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":606 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":614   *                 assign_matching(&loc1, arr1, i1, step1, self.fda.sent_id.arr)   *                 while med2_minus-step2 >= low2:   *                     assign_matching(&loc2, arr2, med2_minus-step2, step2, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -45675,7 +45789,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */          __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc2), __pyx_v_arr2, (__pyx_v_med2_minus - __pyx_v_step2), __pyx_v_step2, __pyx_v_self->fda->sent_id->arr); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":607 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":615   *                 while med2_minus-step2 >= low2:   *                     assign_matching(&loc2, arr2, med2_minus-step2, step2, self.fda.sent_id.arr)   *                     if self.compare_matchings(&loc1, &loc2, offset_by_one, len_last) < 1:             # <<<<<<<<<<<<<< @@ -45685,7 +45799,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(          __pyx_t_3 = ((((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->compare_matchings(__pyx_v_self, (&__pyx_v_loc1), (&__pyx_v_loc2), __pyx_v_offset_by_one, __pyx_v_len_last) < 1) != 0);          if (__pyx_t_3) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":608 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":616   *                     assign_matching(&loc2, arr2, med2_minus-step2, step2, self.fda.sent_id.arr)   *                     if self.compare_matchings(&loc1, &loc2, offset_by_one, len_last) < 1:   *                         med2_minus = med2_minus - step2             # <<<<<<<<<<<<<< @@ -45697,7 +45811,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":610 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":618   *                         med2_minus = med2_minus - step2   *                     else:   *                         break             # <<<<<<<<<<<<<< @@ -45710,7 +45824,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        }        __pyx_L18_break:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":611 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":619   *                     else:   *                         break   *                 i2 = med2_minus             # <<<<<<<<<<<<<< @@ -45719,7 +45833,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_v_i2 = __pyx_v_med2_minus; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":612 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":620   *                         break   *                 i2 = med2_minus   *                 while i2 < high2:             # <<<<<<<<<<<<<< @@ -45730,7 +45844,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(          __pyx_t_3 = ((__pyx_v_i2 < __pyx_v_high2) != 0);          if (!__pyx_t_3) break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":613 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":621   *                 i2 = med2_minus   *                 while i2 < high2:   *                     assign_matching(&loc2, arr2, i2, step2, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -45739,7 +45853,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */          __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc2), __pyx_v_arr2, __pyx_v_i2, __pyx_v_step2, __pyx_v_self->fda->sent_id->arr); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":614 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":622   *                 while i2 < high2:   *                     assign_matching(&loc2, arr2, i2, step2, self.fda.sent_id.arr)   *                     comparison = self.compare_matchings(&loc1, &loc2, offset_by_one, len_last)             # <<<<<<<<<<<<<< @@ -45748,7 +45862,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */          __pyx_v_comparison = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->compare_matchings(__pyx_v_self, (&__pyx_v_loc1), (&__pyx_v_loc2), __pyx_v_offset_by_one, __pyx_v_len_last); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":615 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":623   *                     assign_matching(&loc2, arr2, i2, step2, self.fda.sent_id.arr)   *                     comparison = self.compare_matchings(&loc1, &loc2, offset_by_one, len_last)   *                     if comparison == 0:             # <<<<<<<<<<<<<< @@ -45758,7 +45872,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(          __pyx_t_3 = ((__pyx_v_comparison == 0) != 0);          if (__pyx_t_3) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":617 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":625   *                     if comparison == 0:   *                         pass   *                         med_result = append_combined_matching(med_result, &loc1, &loc2, offset_by_one, num_subpatterns, &med_result_len)             # <<<<<<<<<<<<<< @@ -45770,7 +45884,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(          }          __pyx_L22:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":618 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":626   *                         pass   *                         med_result = append_combined_matching(med_result, &loc1, &loc2, offset_by_one, num_subpatterns, &med_result_len)   *                     if comparison == -1:             # <<<<<<<<<<<<<< @@ -45780,7 +45894,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(          __pyx_t_3 = ((__pyx_v_comparison == -1) != 0);          if (__pyx_t_3) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":619 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":627   *                         med_result = append_combined_matching(med_result, &loc1, &loc2, offset_by_one, num_subpatterns, &med_result_len)   *                     if comparison == -1:   *                         break             # <<<<<<<<<<<<<< @@ -45790,7 +45904,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(            goto __pyx_L21_break;          } -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":620 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":628   *                     if comparison == -1:   *                         break   *                     i2 = i2 + step2             # <<<<<<<<<<<<<< @@ -45801,7 +45915,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        }        __pyx_L21_break:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":621 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":629   *                         break   *                     i2 = i2 + step2   *                 if i2 > med2_plus:             # <<<<<<<<<<<<<< @@ -45811,7 +45925,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        __pyx_t_3 = ((__pyx_v_i2 > __pyx_v_med2_plus) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":622 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":630   *                     i2 = i2 + step2   *                 if i2 > med2_plus:   *                     med2_plus = i2             # <<<<<<<<<<<<<< @@ -45823,7 +45937,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        }        __pyx_L24:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":623 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":631   *                 if i2 > med2_plus:   *                     med2_plus = i2   *                 i1 = i1 + step1             # <<<<<<<<<<<<<< @@ -45833,7 +45947,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        __pyx_v_i1 = (__pyx_v_i1 + __pyx_v_step1);      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":625 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":633   *                 i1 = i1 + step1   *    *             tmp = med1_minus             # <<<<<<<<<<<<<< @@ -45842,7 +45956,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_tmp = __pyx_v_med1_minus; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":626 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":634   *    *             tmp = med1_minus   *             med1_minus = med1_plus             # <<<<<<<<<<<<<< @@ -45851,7 +45965,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_med1_minus = __pyx_v_med1_plus; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":627 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":635   *             tmp = med1_minus   *             med1_minus = med1_plus   *             med1_plus = tmp             # <<<<<<<<<<<<<< @@ -45863,7 +45977,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":630 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":638   *         else:   *             # No match; need to figure out the point of division in D and Q   *             med2_minus = med2             # <<<<<<<<<<<<<< @@ -45872,7 +45986,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_med2_minus = __pyx_v_med2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":631 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":639   *             # No match; need to figure out the point of division in D and Q   *             med2_minus = med2   *             med2_plus = med2             # <<<<<<<<<<<<<< @@ -45881,7 +45995,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */      __pyx_v_med2_plus = __pyx_v_med2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":632 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":640   *             med2_minus = med2   *             med2_plus = med2   *             if d_first:             # <<<<<<<<<<<<<< @@ -45891,7 +46005,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(      __pyx_t_3 = (__pyx_v_d_first != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":633 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":641   *             med2_plus = med2   *             if d_first:   *                 med2_minus = med2_minus + step2             # <<<<<<<<<<<<<< @@ -45900,7 +46014,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_v_med2_minus = (__pyx_v_med2_minus + __pyx_v_step2); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":634 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":642   *             if d_first:   *                 med2_minus = med2_minus + step2   *                 if comparison == -1:             # <<<<<<<<<<<<<< @@ -45910,7 +46024,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        __pyx_t_3 = ((__pyx_v_comparison == -1) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":635 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":643   *                 med2_minus = med2_minus + step2   *                 if comparison == -1:   *                     med1_minus = med1_plus             # <<<<<<<<<<<<<< @@ -45922,7 +46036,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        }        __pyx_L26:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":636 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":644   *                 if comparison == -1:   *                     med1_minus = med1_plus   *                 if comparison == 1:             # <<<<<<<<<<<<<< @@ -45932,7 +46046,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        __pyx_t_3 = ((__pyx_v_comparison == 1) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":637 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":645   *                     med1_minus = med1_plus   *                 if comparison == 1:   *                     med1_plus = med1_minus             # <<<<<<<<<<<<<< @@ -45947,7 +46061,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":639 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":647   *                     med1_plus = med1_minus   *             else:   *                 tmp = med1_minus             # <<<<<<<<<<<<<< @@ -45956,7 +46070,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_v_tmp = __pyx_v_med1_minus; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":640 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":648   *             else:   *                 tmp = med1_minus   *                 med1_minus = med1_plus             # <<<<<<<<<<<<<< @@ -45965,7 +46079,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_v_med1_minus = __pyx_v_med1_plus; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":641 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":649   *                 tmp = med1_minus   *                 med1_minus = med1_plus   *                 med1_plus = tmp             # <<<<<<<<<<<<<< @@ -45974,7 +46088,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */        __pyx_v_med1_plus = __pyx_v_tmp; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":642 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":650   *                 med1_minus = med1_plus   *                 med1_plus = tmp   *                 if comparison == 1:             # <<<<<<<<<<<<<< @@ -45984,7 +46098,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(        __pyx_t_3 = ((__pyx_v_comparison == 1) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":643 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":651   *                 med1_plus = tmp   *                 if comparison == 1:   *                     med2_minus = med2_minus + step2             # <<<<<<<<<<<<<< @@ -45993,7 +46107,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */          __pyx_v_med2_minus = (__pyx_v_med2_minus + __pyx_v_step2); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":644 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":652   *                 if comparison == 1:   *                     med2_minus = med2_minus + step2   *                     med2_plus = med2_plus + step2             # <<<<<<<<<<<<<< @@ -46009,7 +46123,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    }    __pyx_L14:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":646 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":654   *                     med2_plus = med2_plus + step2   *    *         low_result_len = 0             # <<<<<<<<<<<<<< @@ -46018,7 +46132,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_v_low_result_len = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":647 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":655   *    *         low_result_len = 0   *         low_result = self.baeza_yates_helper(low1, med1_plus, arr1, step1, low2, med2_plus, arr2, step2, offset_by_one, len_last, num_subpatterns, &low_result_len)             # <<<<<<<<<<<<<< @@ -46027,7 +46141,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_v_low_result = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->baeza_yates_helper(__pyx_v_self, __pyx_v_low1, __pyx_v_med1_plus, __pyx_v_arr1, __pyx_v_step1, __pyx_v_low2, __pyx_v_med2_plus, __pyx_v_arr2, __pyx_v_step2, __pyx_v_offset_by_one, __pyx_v_len_last, __pyx_v_num_subpatterns, (&__pyx_v_low_result_len)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":648 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":656   *         low_result_len = 0   *         low_result = self.baeza_yates_helper(low1, med1_plus, arr1, step1, low2, med2_plus, arr2, step2, offset_by_one, len_last, num_subpatterns, &low_result_len)   *         high_result_len = 0             # <<<<<<<<<<<<<< @@ -46036,7 +46150,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_v_high_result_len = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":649 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":657   *         low_result = self.baeza_yates_helper(low1, med1_plus, arr1, step1, low2, med2_plus, arr2, step2, offset_by_one, len_last, num_subpatterns, &low_result_len)   *         high_result_len = 0   *         high_result = self.baeza_yates_helper(med1_minus, high1, arr1, step1, med2_minus, high2, arr2, step2, offset_by_one, len_last, num_subpatterns, &high_result_len)             # <<<<<<<<<<<<<< @@ -46045,7 +46159,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_v_high_result = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->baeza_yates_helper(__pyx_v_self, __pyx_v_med1_minus, __pyx_v_high1, __pyx_v_arr1, __pyx_v_step1, __pyx_v_med2_minus, __pyx_v_high2, __pyx_v_arr2, __pyx_v_step2, __pyx_v_offset_by_one, __pyx_v_len_last, __pyx_v_num_subpatterns, (&__pyx_v_high_result_len)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":651 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":659   *         high_result = self.baeza_yates_helper(med1_minus, high1, arr1, step1, med2_minus, high2, arr2, step2, offset_by_one, len_last, num_subpatterns, &high_result_len)   *    *         result = extend_arr(result, result_len, low_result, low_result_len)             # <<<<<<<<<<<<<< @@ -46054,7 +46168,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_v_result = __pyx_f_4cdec_2sa_3_sa_extend_arr(__pyx_v_result, __pyx_v_result_len, __pyx_v_low_result, __pyx_v_low_result_len); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":652 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":660   *    *         result = extend_arr(result, result_len, low_result, low_result_len)   *         result = extend_arr(result, result_len, med_result, med_result_len)             # <<<<<<<<<<<<<< @@ -46063,7 +46177,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_v_result = __pyx_f_4cdec_2sa_3_sa_extend_arr(__pyx_v_result, __pyx_v_result_len, __pyx_v_med_result, __pyx_v_med_result_len); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":653 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":661   *         result = extend_arr(result, result_len, low_result, low_result_len)   *         result = extend_arr(result, result_len, med_result, med_result_len)   *         result = extend_arr(result, result_len, high_result, high_result_len)             # <<<<<<<<<<<<<< @@ -46072,7 +46186,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    __pyx_v_result = __pyx_f_4cdec_2sa_3_sa_extend_arr(__pyx_v_result, __pyx_v_result_len, __pyx_v_high_result, __pyx_v_high_result_len); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":654 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":662   *         result = extend_arr(result, result_len, med_result, med_result_len)   *         result = extend_arr(result, result_len, high_result, high_result_len)   *         free(low_result)             # <<<<<<<<<<<<<< @@ -46081,7 +46195,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    free(__pyx_v_low_result); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":655 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":663   *         result = extend_arr(result, result_len, high_result, high_result_len)   *         free(low_result)   *         free(med_result)             # <<<<<<<<<<<<<< @@ -46090,7 +46204,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    free(__pyx_v_med_result); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":656 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":664   *         free(low_result)   *         free(med_result)   *         free(high_result)             # <<<<<<<<<<<<<< @@ -46099,7 +46213,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(   */    free(__pyx_v_high_result); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":658 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":666   *         free(high_result)   *    *         return result             # <<<<<<<<<<<<<< @@ -46109,7 +46223,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    __pyx_r = __pyx_v_result;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":509 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":517   *    *    *     cdef int* baeza_yates_helper(self, int low1, int high1, int* arr1, int step1,             # <<<<<<<<<<<<<< @@ -46126,7 +46240,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":662 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":670   *    *    *     cdef long compare_matchings_set(self, int i1_minus, int i1_plus, int* arr1, int step1,             # <<<<<<<<<<<<<< @@ -46145,7 +46259,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s    int __pyx_t_1;    __Pyx_RefNannySetupContext("compare_matchings_set", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":673 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":681   *         cdef Matching* loc1   *    *         loc1 = &l1_stack             # <<<<<<<<<<<<<< @@ -46154,7 +46268,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s   */    __pyx_v_loc1 = (&__pyx_v_l1_stack); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":675 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":683   *         loc1 = &l1_stack   *    *         i1 = i1_minus             # <<<<<<<<<<<<<< @@ -46163,7 +46277,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s   */    __pyx_v_i1 = __pyx_v_i1_minus; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":676 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":684   *    *         i1 = i1_minus   *         while i1 < i1_plus:             # <<<<<<<<<<<<<< @@ -46174,7 +46288,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s      __pyx_t_1 = ((__pyx_v_i1 < __pyx_v_i1_plus) != 0);      if (!__pyx_t_1) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":677 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":685   *         i1 = i1_minus   *         while i1 < i1_plus:   *             assign_matching(loc1, arr1, i1, step1, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -46183,7 +46297,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s   */      __pyx_f_4cdec_2sa_3_sa_assign_matching(__pyx_v_loc1, __pyx_v_arr1, __pyx_v_i1, __pyx_v_step1, __pyx_v_self->fda->sent_id->arr); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":678 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":686   *         while i1 < i1_plus:   *             assign_matching(loc1, arr1, i1, step1, self.fda.sent_id.arr)   *             comparison = self.compare_matchings(loc1, loc2, offset_by_one, len_last)             # <<<<<<<<<<<<<< @@ -46192,7 +46306,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s   */      __pyx_v_comparison = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->compare_matchings(__pyx_v_self, __pyx_v_loc1, __pyx_v_loc2, __pyx_v_offset_by_one, __pyx_v_len_last); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":679 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":687   *             assign_matching(loc1, arr1, i1, step1, self.fda.sent_id.arr)   *             comparison = self.compare_matchings(loc1, loc2, offset_by_one, len_last)   *             if comparison == 0:             # <<<<<<<<<<<<<< @@ -46202,7 +46316,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s      __pyx_t_1 = ((__pyx_v_comparison == 0) != 0);      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":680 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":688   *             comparison = self.compare_matchings(loc1, loc2, offset_by_one, len_last)   *             if comparison == 0:   *                 prev_comparison = 0             # <<<<<<<<<<<<<< @@ -46211,7 +46325,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s   */        __pyx_v_prev_comparison = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":681 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":689   *             if comparison == 0:   *                 prev_comparison = 0   *                 break             # <<<<<<<<<<<<<< @@ -46221,7 +46335,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s        goto __pyx_L4_break;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":682 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":690   *                 prev_comparison = 0   *                 break   *             elif i1 == i1_minus:             # <<<<<<<<<<<<<< @@ -46231,7 +46345,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s      __pyx_t_1 = ((__pyx_v_i1 == __pyx_v_i1_minus) != 0);      if (__pyx_t_1) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":683 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":691   *                 break   *             elif i1 == i1_minus:   *                 prev_comparison = comparison             # <<<<<<<<<<<<<< @@ -46243,7 +46357,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":685 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":693   *                 prev_comparison = comparison   *             else:   *                 if comparison != prev_comparison:             # <<<<<<<<<<<<<< @@ -46253,7 +46367,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s        __pyx_t_1 = ((__pyx_v_comparison != __pyx_v_prev_comparison) != 0);        if (__pyx_t_1) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":686 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":694   *             else:   *                 if comparison != prev_comparison:   *                     prev_comparison = 0             # <<<<<<<<<<<<<< @@ -46262,7 +46376,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s   */          __pyx_v_prev_comparison = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":687 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":695   *                 if comparison != prev_comparison:   *                     prev_comparison = 0   *                     break             # <<<<<<<<<<<<<< @@ -46274,7 +46388,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s      }      __pyx_L5:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":688 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":696   *                     prev_comparison = 0   *                     break   *             i1 = i1 + step1             # <<<<<<<<<<<<<< @@ -46285,7 +46399,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s    }    __pyx_L4_break:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":689 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":697   *                     break   *             i1 = i1 + step1   *         return prev_comparison             # <<<<<<<<<<<<<< @@ -46295,7 +46409,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s    __pyx_r = __pyx_v_prev_comparison;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":662 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":670   *    *    *     cdef long compare_matchings_set(self, int i1_minus, int i1_plus, int* arr1, int step1,             # <<<<<<<<<<<<<< @@ -46309,7 +46423,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings_s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":692 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":700   *    *    *     cdef long compare_matchings(self, Matching* loc1, Matching* loc2, int offset_by_one, int len_last):             # <<<<<<<<<<<<<< @@ -46327,7 +46441,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s    int __pyx_t_4;    __Pyx_RefNannySetupContext("compare_matchings", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":695 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":703   *         cdef int i   *    *         if loc1.sent_id > loc2.sent_id:             # <<<<<<<<<<<<<< @@ -46337,7 +46451,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s    __pyx_t_1 = ((__pyx_v_loc1->sent_id > __pyx_v_loc2->sent_id) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":696 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":704   *    *         if loc1.sent_id > loc2.sent_id:   *             return 1             # <<<<<<<<<<<<<< @@ -46348,7 +46462,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":697 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":705   *         if loc1.sent_id > loc2.sent_id:   *             return 1   *         if loc2.sent_id > loc1.sent_id:             # <<<<<<<<<<<<<< @@ -46358,7 +46472,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s    __pyx_t_1 = ((__pyx_v_loc2->sent_id > __pyx_v_loc1->sent_id) != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":698 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":706   *             return 1   *         if loc2.sent_id > loc1.sent_id:   *             return -1             # <<<<<<<<<<<<<< @@ -46369,7 +46483,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":700 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":708   *             return -1   *    *         if loc1.size == 1 and loc2.size == 1:             # <<<<<<<<<<<<<< @@ -46385,7 +46499,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s    }    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":701 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":709   *    *         if loc1.size == 1 and loc2.size == 1:   *             if loc2.arr[loc2.start] - loc1.arr[loc1.start] <= self.train_min_gap_size:             # <<<<<<<<<<<<<< @@ -46395,7 +46509,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s      __pyx_t_3 = ((((__pyx_v_loc2->arr[__pyx_v_loc2->start]) - (__pyx_v_loc1->arr[__pyx_v_loc1->start])) <= __pyx_v_self->train_min_gap_size) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":702 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":710   *         if loc1.size == 1 and loc2.size == 1:   *             if loc2.arr[loc2.start] - loc1.arr[loc1.start] <= self.train_min_gap_size:   *                 return 1             # <<<<<<<<<<<<<< @@ -46408,7 +46522,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s      goto __pyx_L5;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":704 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":712   *                 return 1   *    *         elif offset_by_one:             # <<<<<<<<<<<<<< @@ -46418,7 +46532,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s    __pyx_t_3 = (__pyx_v_offset_by_one != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":705 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":713   *    *         elif offset_by_one:   *             for i from 1 <= i < loc1.size:             # <<<<<<<<<<<<<< @@ -46428,7 +46542,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s      __pyx_t_4 = __pyx_v_loc1->size;      for (__pyx_v_i = 1; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":706 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":714   *         elif offset_by_one:   *             for i from 1 <= i < loc1.size:   *                 if loc1.arr[loc1.start+i] > loc2.arr[loc2.start+i-1]:             # <<<<<<<<<<<<<< @@ -46438,7 +46552,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s        __pyx_t_3 = (((__pyx_v_loc1->arr[(__pyx_v_loc1->start + __pyx_v_i)]) > (__pyx_v_loc2->arr[((__pyx_v_loc2->start + __pyx_v_i) - 1)])) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":707 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":715   *             for i from 1 <= i < loc1.size:   *                 if loc1.arr[loc1.start+i] > loc2.arr[loc2.start+i-1]:   *                     return 1             # <<<<<<<<<<<<<< @@ -46449,7 +46563,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s          goto __pyx_L0;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":708 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":716   *                 if loc1.arr[loc1.start+i] > loc2.arr[loc2.start+i-1]:   *                     return 1   *                 if loc1.arr[loc1.start+i] < loc2.arr[loc2.start+i-1]:             # <<<<<<<<<<<<<< @@ -46459,7 +46573,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s        __pyx_t_3 = (((__pyx_v_loc1->arr[(__pyx_v_loc1->start + __pyx_v_i)]) < (__pyx_v_loc2->arr[((__pyx_v_loc2->start + __pyx_v_i) - 1)])) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":709 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":717   *                     return 1   *                 if loc1.arr[loc1.start+i] < loc2.arr[loc2.start+i-1]:   *                     return -1             # <<<<<<<<<<<<<< @@ -46474,7 +46588,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":712 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":720   *    *         else:   *             if loc1.arr[loc1.start]+1 > loc2.arr[loc2.start]:             # <<<<<<<<<<<<<< @@ -46484,7 +46598,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s      __pyx_t_3 = ((((__pyx_v_loc1->arr[__pyx_v_loc1->start]) + 1) > (__pyx_v_loc2->arr[__pyx_v_loc2->start])) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":713 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":721   *         else:   *             if loc1.arr[loc1.start]+1 > loc2.arr[loc2.start]:   *                 return 1             # <<<<<<<<<<<<<< @@ -46495,7 +46609,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":714 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":722   *             if loc1.arr[loc1.start]+1 > loc2.arr[loc2.start]:   *                 return 1   *             if loc1.arr[loc1.start]+1 < loc2.arr[loc2.start]:             # <<<<<<<<<<<<<< @@ -46505,7 +46619,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s      __pyx_t_3 = ((((__pyx_v_loc1->arr[__pyx_v_loc1->start]) + 1) < (__pyx_v_loc2->arr[__pyx_v_loc2->start])) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":715 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":723   *                 return 1   *             if loc1.arr[loc1.start]+1 < loc2.arr[loc2.start]:   *                 return -1             # <<<<<<<<<<<<<< @@ -46516,7 +46630,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":717 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":725   *                 return -1   *    *             for i from 1 <= i < loc1.size:             # <<<<<<<<<<<<<< @@ -46526,7 +46640,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s      __pyx_t_4 = __pyx_v_loc1->size;      for (__pyx_v_i = 1; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":718 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":726   *    *             for i from 1 <= i < loc1.size:   *                 if loc1.arr[loc1.start+i] > loc2.arr[loc2.start+i]:             # <<<<<<<<<<<<<< @@ -46536,7 +46650,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s        __pyx_t_3 = (((__pyx_v_loc1->arr[(__pyx_v_loc1->start + __pyx_v_i)]) > (__pyx_v_loc2->arr[(__pyx_v_loc2->start + __pyx_v_i)])) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":719 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":727   *             for i from 1 <= i < loc1.size:   *                 if loc1.arr[loc1.start+i] > loc2.arr[loc2.start+i]:   *                     return 1             # <<<<<<<<<<<<<< @@ -46547,7 +46661,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s          goto __pyx_L0;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":720 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":728   *                 if loc1.arr[loc1.start+i] > loc2.arr[loc2.start+i]:   *                     return 1   *                 if loc1.arr[loc1.start+i] < loc2.arr[loc2.start+i]:             # <<<<<<<<<<<<<< @@ -46557,7 +46671,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s        __pyx_t_3 = (((__pyx_v_loc1->arr[(__pyx_v_loc1->start + __pyx_v_i)]) < (__pyx_v_loc2->arr[(__pyx_v_loc2->start + __pyx_v_i)])) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":721 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":729   *                     return 1   *                 if loc1.arr[loc1.start+i] < loc2.arr[loc2.start+i]:   *                     return -1             # <<<<<<<<<<<<<< @@ -46571,7 +46685,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s    }    __pyx_L5:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":723 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":731   *                     return -1   *    *         if loc2.arr[loc2.end-1] + len_last - loc1.arr[loc1.start] > self.train_max_initial_size:             # <<<<<<<<<<<<<< @@ -46581,7 +46695,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s    __pyx_t_3 = (((((__pyx_v_loc2->arr[(__pyx_v_loc2->end - 1)]) + __pyx_v_len_last) - (__pyx_v_loc1->arr[__pyx_v_loc1->start])) > __pyx_v_self->train_max_initial_size) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":724 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":732   *    *         if loc2.arr[loc2.end-1] + len_last - loc1.arr[loc1.start] > self.train_max_initial_size:   *             return -1             # <<<<<<<<<<<<<< @@ -46592,7 +46706,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":725 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":733   *         if loc2.arr[loc2.end-1] + len_last - loc1.arr[loc1.start] > self.train_max_initial_size:   *             return -1   *         return 0             # <<<<<<<<<<<<<< @@ -46602,7 +46716,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s    __pyx_r = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":692 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":700   *    *    *     cdef long compare_matchings(self, Matching* loc1, Matching* loc2, int offset_by_one, int len_last):             # <<<<<<<<<<<<<< @@ -46616,7 +46730,7 @@ static long __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_compare_matchings(s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":728 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":736   *    *    *     cdef int* merge_helper(self, int low1, int high1, int* arr1, int step1,             # <<<<<<<<<<<<<< @@ -46640,7 +46754,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct    int __pyx_t_3;    __Pyx_RefNannySetupContext("merge_helper", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":736 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":744   *         cdef Matching loc1, loc2   *    *         result_len[0] = 0             # <<<<<<<<<<<<<< @@ -46649,7 +46763,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct   */    (__pyx_v_result_len[0]) = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":737 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":745   *    *         result_len[0] = 0   *         result = <int*> malloc(0*sizeof(int))             # <<<<<<<<<<<<<< @@ -46658,7 +46772,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct   */    __pyx_v_result = ((int *)malloc((0 * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":739 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":747   *         result = <int*> malloc(0*sizeof(int))   *    *         i1 = low1             # <<<<<<<<<<<<<< @@ -46667,7 +46781,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct   */    __pyx_v_i1 = __pyx_v_low1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":740 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":748   *    *         i1 = low1   *         i2 = low2             # <<<<<<<<<<<<<< @@ -46676,7 +46790,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct   */    __pyx_v_i2 = __pyx_v_low2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":741 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":749   *         i1 = low1   *         i2 = low2   *         while i1 < high1 and i2 < high2:             # <<<<<<<<<<<<<< @@ -46693,7 +46807,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct      }      if (!__pyx_t_3) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":744 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":752   *    *             # First, pop all unneeded loc2's off the stack   *             assign_matching(&loc1, arr1, i1, step1, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -46702,7 +46816,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct   */      __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc1), __pyx_v_arr1, __pyx_v_i1, __pyx_v_step1, __pyx_v_self->fda->sent_id->arr); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":745 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":753   *             # First, pop all unneeded loc2's off the stack   *             assign_matching(&loc1, arr1, i1, step1, self.fda.sent_id.arr)   *             while i2 < high2:             # <<<<<<<<<<<<<< @@ -46713,7 +46827,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct        __pyx_t_3 = ((__pyx_v_i2 < __pyx_v_high2) != 0);        if (!__pyx_t_3) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":746 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":754   *             assign_matching(&loc1, arr1, i1, step1, self.fda.sent_id.arr)   *             while i2 < high2:   *                 assign_matching(&loc2, arr2, i2, step2, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -46722,7 +46836,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct   */        __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc2), __pyx_v_arr2, __pyx_v_i2, __pyx_v_step2, __pyx_v_self->fda->sent_id->arr); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":747 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":755   *             while i2 < high2:   *                 assign_matching(&loc2, arr2, i2, step2, self.fda.sent_id.arr)   *                 if self.compare_matchings(&loc1, &loc2, offset_by_one, len_last) == 1:             # <<<<<<<<<<<<<< @@ -46732,7 +46846,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct        __pyx_t_3 = ((((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->compare_matchings(__pyx_v_self, (&__pyx_v_loc1), (&__pyx_v_loc2), __pyx_v_offset_by_one, __pyx_v_len_last) == 1) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":748 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":756   *                 assign_matching(&loc2, arr2, i2, step2, self.fda.sent_id.arr)   *                 if self.compare_matchings(&loc1, &loc2, offset_by_one, len_last) == 1:   *                     i2 = i2 + step2             # <<<<<<<<<<<<<< @@ -46744,7 +46858,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct        }        /*else*/ { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":750 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":758   *                     i2 = i2 + step2   *                 else:   *                     break             # <<<<<<<<<<<<<< @@ -46757,7 +46871,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct      }      __pyx_L6_break:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":753 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":761   *    *             # Next: process all loc1's with the same starting val   *             j1 = i1             # <<<<<<<<<<<<<< @@ -46766,7 +46880,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct   */      __pyx_v_j1 = __pyx_v_i1; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":754 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":762   *             # Next: process all loc1's with the same starting val   *             j1 = i1   *             while i1 < high1 and arr1[j1] == arr1[i1]:             # <<<<<<<<<<<<<< @@ -46783,7 +46897,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct        }        if (!__pyx_t_2) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":755 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":763   *             j1 = i1   *             while i1 < high1 and arr1[j1] == arr1[i1]:   *                 assign_matching(&loc1, arr1, i1, step1, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -46792,7 +46906,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct   */        __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc1), __pyx_v_arr1, __pyx_v_i1, __pyx_v_step1, __pyx_v_self->fda->sent_id->arr); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":756 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":764   *             while i1 < high1 and arr1[j1] == arr1[i1]:   *                 assign_matching(&loc1, arr1, i1, step1, self.fda.sent_id.arr)   *                 j2 = i2             # <<<<<<<<<<<<<< @@ -46801,7 +46915,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct   */        __pyx_v_j2 = __pyx_v_i2; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":757 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":765   *                 assign_matching(&loc1, arr1, i1, step1, self.fda.sent_id.arr)   *                 j2 = i2   *                 while j2 < high2:             # <<<<<<<<<<<<<< @@ -46812,7 +46926,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct          __pyx_t_2 = ((__pyx_v_j2 < __pyx_v_high2) != 0);          if (!__pyx_t_2) break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":758 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":766   *                 j2 = i2   *                 while j2 < high2:   *                     assign_matching(&loc2, arr2, j2, step2, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -46821,7 +46935,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct   */          __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_v_loc2), __pyx_v_arr2, __pyx_v_j2, __pyx_v_step2, __pyx_v_self->fda->sent_id->arr); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":759 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":767   *                 while j2 < high2:   *                     assign_matching(&loc2, arr2, j2, step2, self.fda.sent_id.arr)   *                     comparison = self.compare_matchings(&loc1, &loc2, offset_by_one, len_last)             # <<<<<<<<<<<<<< @@ -46830,7 +46944,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct   */          __pyx_v_comparison = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->compare_matchings(__pyx_v_self, (&__pyx_v_loc1), (&__pyx_v_loc2), __pyx_v_offset_by_one, __pyx_v_len_last); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":760 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":768   *                     assign_matching(&loc2, arr2, j2, step2, self.fda.sent_id.arr)   *                     comparison = self.compare_matchings(&loc1, &loc2, offset_by_one, len_last)   *                     if comparison == 0:             # <<<<<<<<<<<<<< @@ -46840,7 +46954,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct          __pyx_t_2 = ((__pyx_v_comparison == 0) != 0);          if (__pyx_t_2) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":761 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":769   *                     comparison = self.compare_matchings(&loc1, &loc2, offset_by_one, len_last)   *                     if comparison == 0:   *                         result = append_combined_matching(result, &loc1, &loc2, offset_by_one, num_subpatterns, result_len)             # <<<<<<<<<<<<<< @@ -46852,7 +46966,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct          }          __pyx_L12:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":762 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":770   *                     if comparison == 0:   *                         result = append_combined_matching(result, &loc1, &loc2, offset_by_one, num_subpatterns, result_len)   *                     if comparison == 1:             # <<<<<<<<<<<<<< @@ -46865,7 +46979,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct          }          __pyx_L13:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":764 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":772   *                     if comparison == 1:   *                         pass   *                     if comparison == -1:             # <<<<<<<<<<<<<< @@ -46875,7 +46989,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct          __pyx_t_2 = ((__pyx_v_comparison == -1) != 0);          if (__pyx_t_2) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":765 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":773   *                         pass   *                     if comparison == -1:   *                         break             # <<<<<<<<<<<<<< @@ -46886,7 +47000,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":767 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":775   *                         break   *                     else:   *                         j2 = j2 + step2             # <<<<<<<<<<<<<< @@ -46898,7 +47012,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct        }        __pyx_L11_break:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":768 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":776   *                     else:   *                         j2 = j2 + step2   *                 i1 = i1 + step1             # <<<<<<<<<<<<<< @@ -46909,7 +47023,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct      }    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":769 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":777   *                         j2 = j2 + step2   *                 i1 = i1 + step1   *         return result             # <<<<<<<<<<<<<< @@ -46919,7 +47033,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct    __pyx_r = __pyx_v_result;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":728 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":736   *    *    *     cdef int* merge_helper(self, int low1, int high1, int* arr1, int step1,             # <<<<<<<<<<<<<< @@ -46933,7 +47047,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_merge_helper(struct    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":772 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":780   *    *    *     cdef void sort_phrase_loc(self, IntList arr, PhraseLocation loc, Phrase phrase):             # <<<<<<<<<<<<<< @@ -46956,27 +47070,27 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("sort_phrase_loc", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":777 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":785   *         cdef IntList result   *    *         if phrase in self.precomputed_index:             # <<<<<<<<<<<<<<   *             loc.arr = self.precomputed_index[phrase]   *         else:   */ -  __pyx_t_1 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_v_phrase), __pyx_v_self->precomputed_index, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_v_phrase), __pyx_v_self->precomputed_index, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_t_2 = (__pyx_t_1 != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":778 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":786   *    *         if phrase in self.precomputed_index:   *             loc.arr = self.precomputed_index[phrase]             # <<<<<<<<<<<<<<   *         else:   *             loc.arr = IntList(initial_len=loc.sa_high-loc.sa_low)   */ -    __pyx_t_3 = PyObject_GetItem(__pyx_v_self->precomputed_index, ((PyObject *)__pyx_v_phrase)); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_3 = PyObject_GetItem(__pyx_v_self->precomputed_index, ((PyObject *)__pyx_v_phrase)); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_3); -    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GIVEREF(__pyx_t_3);      __Pyx_GOTREF(__pyx_v_loc->arr);      __Pyx_DECREF(((PyObject *)__pyx_v_loc->arr)); @@ -46986,20 +47100,20 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":780 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":788   *             loc.arr = self.precomputed_index[phrase]   *         else:   *             loc.arr = IntList(initial_len=loc.sa_high-loc.sa_low)             # <<<<<<<<<<<<<<   *             veb = VEB(arr.len)   *             for i from loc.sa_low <= i < loc.sa_high:   */ -    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_loc->sa_high - __pyx_v_loc->sa_low)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_loc->sa_high - __pyx_v_loc->sa_low)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_initial_len, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_initial_len, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __Pyx_GIVEREF(__pyx_t_4); @@ -47008,27 +47122,27 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str      __pyx_v_loc->arr = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":781 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":789   *         else:   *             loc.arr = IntList(initial_len=loc.sa_high-loc.sa_low)   *             veb = VEB(arr.len)             # <<<<<<<<<<<<<<   *             for i from loc.sa_low <= i < loc.sa_high:   *                 veb._insert(arr.arr[i])   */ -    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_arr->len); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 781; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_arr->len); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 781; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);      __Pyx_GIVEREF(__pyx_t_4);      __pyx_t_4 = 0; -    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_VEB)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 781; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_VEB)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_v_veb = ((struct __pyx_obj_4cdec_2sa_3_sa_VEB *)__pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":782 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":790   *             loc.arr = IntList(initial_len=loc.sa_high-loc.sa_low)   *             veb = VEB(arr.len)   *             for i from loc.sa_low <= i < loc.sa_high:             # <<<<<<<<<<<<<< @@ -47038,7 +47152,7 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str      __pyx_t_5 = __pyx_v_loc->sa_high;      for (__pyx_v_i = __pyx_v_loc->sa_low; __pyx_v_i < __pyx_t_5; __pyx_v_i++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":783 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":791   *             veb = VEB(arr.len)   *             for i from loc.sa_low <= i < loc.sa_high:   *                 veb._insert(arr.arr[i])             # <<<<<<<<<<<<<< @@ -47048,7 +47162,7 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str        ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_VEB *)__pyx_v_veb->__pyx_vtab)->_insert(__pyx_v_veb, (__pyx_v_arr->arr[__pyx_v_i]));      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":784 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":792   *             for i from loc.sa_low <= i < loc.sa_high:   *                 veb._insert(arr.arr[i])   *             i = veb.veb.min_val             # <<<<<<<<<<<<<< @@ -47058,7 +47172,7 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str      __pyx_t_5 = __pyx_v_veb->veb->min_val;      __pyx_v_i = __pyx_t_5; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":785 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":793   *                 veb._insert(arr.arr[i])   *             i = veb.veb.min_val   *             for j from 0 <= j < loc.sa_high-loc.sa_low:             # <<<<<<<<<<<<<< @@ -47068,7 +47182,7 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str      __pyx_t_5 = (__pyx_v_loc->sa_high - __pyx_v_loc->sa_low);      for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_5; __pyx_v_j++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":786 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":794   *             i = veb.veb.min_val   *             for j from 0 <= j < loc.sa_high-loc.sa_low:   *                 loc.arr.arr[j] = i             # <<<<<<<<<<<<<< @@ -47077,7 +47191,7 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str   */        (__pyx_v_loc->arr->arr[__pyx_v_j]) = __pyx_v_i; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":787 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":795   *             for j from 0 <= j < loc.sa_high-loc.sa_low:   *                 loc.arr.arr[j] = i   *                 i = veb._findsucc(i)             # <<<<<<<<<<<<<< @@ -47089,7 +47203,7 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":788 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":796   *                 loc.arr.arr[j] = i   *                 i = veb._findsucc(i)   *         loc.arr_low = 0             # <<<<<<<<<<<<<< @@ -47098,7 +47212,7 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str   */    __pyx_v_loc->arr_low = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":789 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":797   *                 i = veb._findsucc(i)   *         loc.arr_low = 0   *         loc.arr_high = loc.arr.len             # <<<<<<<<<<<<<< @@ -47108,7 +47222,7 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str    __pyx_t_5 = __pyx_v_loc->arr->len;    __pyx_v_loc->arr_high = __pyx_t_5; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":772 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":780   *    *    *     cdef void sort_phrase_loc(self, IntList arr, PhraseLocation loc, Phrase phrase):             # <<<<<<<<<<<<<< @@ -47127,7 +47241,7 @@ static void __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(str    __Pyx_RefNannyFinishContext();  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":792 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":800   *    *    *     cdef intersect_helper(self, Phrase prefix, Phrase suffix,             # <<<<<<<<<<<<<< @@ -47164,7 +47278,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("intersect_helper", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":799 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":807   *         cdef int* result_ptr   *    *         result_len = 0             # <<<<<<<<<<<<<< @@ -47173,21 +47287,21 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help   */    __pyx_v_result_len = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":801 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":809   *         result_len = 0   *    *         if sym_isvar(suffix[0]):             # <<<<<<<<<<<<<<   *             offset_by_one = 1   *         else:   */ -  __pyx_t_1 = __Pyx_GetItemInt(((PyObject *)__pyx_v_suffix), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_1 = __Pyx_GetItemInt(((PyObject *)__pyx_v_suffix), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 801; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_t_3 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar(__pyx_t_2) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":802 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":810   *    *         if sym_isvar(suffix[0]):   *             offset_by_one = 1             # <<<<<<<<<<<<<< @@ -47199,7 +47313,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":804 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":812   *             offset_by_one = 1   *         else:   *             offset_by_one = 0             # <<<<<<<<<<<<<< @@ -47210,34 +47324,34 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":806 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":814   *             offset_by_one = 0   *    *         len_last = len(suffix.getchunk(suffix.arity()))             # <<<<<<<<<<<<<<   *    *         if prefix_loc.arr is None:   */ -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_suffix), __pyx_n_s_getchunk); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_suffix), __pyx_n_s_getchunk); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_suffix), __pyx_n_s_arity); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_suffix), __pyx_n_s_arity); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4); -  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_5);    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);    __Pyx_GIVEREF(__pyx_t_5);    __pyx_t_5 = 0; -  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_5);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  __pyx_t_6 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;    __pyx_v_len_last = __pyx_t_6; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":808 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":816   *         len_last = len(suffix.getchunk(suffix.arity()))   *    *         if prefix_loc.arr is None:             # <<<<<<<<<<<<<< @@ -47248,7 +47362,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_t_7 = (__pyx_t_3 != 0);    if (__pyx_t_7) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":809 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":817   *    *         if prefix_loc.arr is None:   *             self.sort_phrase_loc(self.fsa.sa, prefix_loc, prefix)             # <<<<<<<<<<<<<< @@ -47263,7 +47377,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    }    __pyx_L4:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":810 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":818   *         if prefix_loc.arr is None:   *             self.sort_phrase_loc(self.fsa.sa, prefix_loc, prefix)   *         arr1 = prefix_loc.arr             # <<<<<<<<<<<<<< @@ -47275,7 +47389,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_v_arr1 = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_5);    __pyx_t_5 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":811 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":819   *             self.sort_phrase_loc(self.fsa.sa, prefix_loc, prefix)   *         arr1 = prefix_loc.arr   *         low1 = prefix_loc.arr_low             # <<<<<<<<<<<<<< @@ -47285,7 +47399,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_t_2 = __pyx_v_prefix_loc->arr_low;    __pyx_v_low1 = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":812 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":820   *         arr1 = prefix_loc.arr   *         low1 = prefix_loc.arr_low   *         high1 = prefix_loc.arr_high             # <<<<<<<<<<<<<< @@ -47295,7 +47409,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_t_2 = __pyx_v_prefix_loc->arr_high;    __pyx_v_high1 = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":813 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":821   *         low1 = prefix_loc.arr_low   *         high1 = prefix_loc.arr_high   *         step1 = prefix_loc.num_subpatterns             # <<<<<<<<<<<<<< @@ -47305,7 +47419,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_t_2 = __pyx_v_prefix_loc->num_subpatterns;    __pyx_v_step1 = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":815 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":823   *         step1 = prefix_loc.num_subpatterns   *    *         if suffix_loc.arr is None:             # <<<<<<<<<<<<<< @@ -47316,7 +47430,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_t_3 = (__pyx_t_7 != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":816 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":824   *    *         if suffix_loc.arr is None:   *             self.sort_phrase_loc(self.fsa.sa, suffix_loc, suffix)             # <<<<<<<<<<<<<< @@ -47331,7 +47445,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    }    __pyx_L5:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":817 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":825   *         if suffix_loc.arr is None:   *             self.sort_phrase_loc(self.fsa.sa, suffix_loc, suffix)   *         arr2 = suffix_loc.arr             # <<<<<<<<<<<<<< @@ -47343,7 +47457,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_v_arr2 = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_5);    __pyx_t_5 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":818 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":826   *             self.sort_phrase_loc(self.fsa.sa, suffix_loc, suffix)   *         arr2 = suffix_loc.arr   *         low2 = suffix_loc.arr_low             # <<<<<<<<<<<<<< @@ -47353,7 +47467,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_t_2 = __pyx_v_suffix_loc->arr_low;    __pyx_v_low2 = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":819 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":827   *         arr2 = suffix_loc.arr   *         low2 = suffix_loc.arr_low   *         high2 = suffix_loc.arr_high             # <<<<<<<<<<<<<< @@ -47363,7 +47477,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_t_2 = __pyx_v_suffix_loc->arr_high;    __pyx_v_high2 = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":820 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":828   *         low2 = suffix_loc.arr_low   *         high2 = suffix_loc.arr_high   *         step2 = suffix_loc.num_subpatterns             # <<<<<<<<<<<<<< @@ -47373,26 +47487,26 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_t_2 = __pyx_v_suffix_loc->num_subpatterns;    __pyx_v_step2 = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":822 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":830   *         step2 = suffix_loc.num_subpatterns   *    *         num_subpatterns = prefix.arity()+1             # <<<<<<<<<<<<<<   *    *         if algorithm == MERGE:   */ -  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_prefix), __pyx_n_s_arity); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_prefix), __pyx_n_s_arity); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_5); -  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -  __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_5);    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;    __pyx_v_num_subpatterns = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":824 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":832   *         num_subpatterns = prefix.arity()+1   *    *         if algorithm == MERGE:             # <<<<<<<<<<<<<< @@ -47402,7 +47516,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_t_3 = ((__pyx_v_algorithm == __pyx_v_4cdec_2sa_3_sa_MERGE) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":825 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":833   *    *         if algorithm == MERGE:   *             result_ptr = self.merge_helper(low1, high1, arr1.arr, step1,             # <<<<<<<<<<<<<< @@ -47414,7 +47528,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":829 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":837   *                                     offset_by_one, len_last, num_subpatterns, &result_len)   *         else:   *             result_ptr = self.baeza_yates_helper(low1, high1, arr1.arr, step1,             # <<<<<<<<<<<<<< @@ -47425,7 +47539,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    }    __pyx_L6:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":833 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":841   *                                     offset_by_one, len_last, num_subpatterns, &result_len)   *    *         if result_len == 0:             # <<<<<<<<<<<<<< @@ -47435,7 +47549,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    __pyx_t_3 = ((__pyx_v_result_len == 0) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":834 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":842   *    *         if result_len == 0:   *             free(result_ptr)             # <<<<<<<<<<<<<< @@ -47444,7 +47558,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help   */      free(__pyx_v_result_ptr); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":835 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":843   *         if result_len == 0:   *             free(result_ptr)   *             return None             # <<<<<<<<<<<<<< @@ -47458,19 +47572,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":837 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":845   *             return None   *         else:   *             result = IntList()             # <<<<<<<<<<<<<<   *             free(result.arr)   *             result.arr = result_ptr   */ -    __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __pyx_v_result = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_5);      __pyx_t_5 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":838 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":846   *         else:   *             result = IntList()   *             free(result.arr)             # <<<<<<<<<<<<<< @@ -47479,7 +47593,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help   */      free(__pyx_v_result->arr); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":839 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":847   *             result = IntList()   *             free(result.arr)   *             result.arr = result_ptr             # <<<<<<<<<<<<<< @@ -47488,7 +47602,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help   */      __pyx_v_result->arr = __pyx_v_result_ptr; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":840 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":848   *             free(result.arr)   *             result.arr = result_ptr   *             result.len = result_len             # <<<<<<<<<<<<<< @@ -47497,7 +47611,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help   */      __pyx_v_result->len = __pyx_v_result_len; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":841 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":849   *             result.arr = result_ptr   *             result.len = result_len   *             result.size = result_len             # <<<<<<<<<<<<<< @@ -47506,7 +47620,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help   */      __pyx_v_result->size = __pyx_v_result_len; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":842 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":850   *             result.len = result_len   *             result.size = result_len   *             return PhraseLocation(arr_low=0, arr_high=result_len, arr=result, num_subpatterns=num_subpatterns)             # <<<<<<<<<<<<<< @@ -47514,19 +47628,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help   *     cdef loc2str(self, PhraseLocation loc):   */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arr_low, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_result_len); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arr_low, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_result_len); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arr_high, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arr_high, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arr, ((PyObject *)__pyx_v_result)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_num_subpatterns); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_arr, ((PyObject *)__pyx_v_result)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_num_subpatterns); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_num_subpatterns, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_num_subpatterns, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __pyx_r = __pyx_t_4; @@ -47534,7 +47648,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":792 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":800   *    *    *     cdef intersect_helper(self, Phrase prefix, Phrase suffix,             # <<<<<<<<<<<<<< @@ -47558,7 +47672,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_intersect_help    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":844 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":852   *             return PhraseLocation(arr_low=0, arr_high=result_len, arr=result, num_subpatterns=num_subpatterns)   *    *     cdef loc2str(self, PhraseLocation loc):             # <<<<<<<<<<<<<< @@ -47581,7 +47695,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_loc2str(CYTHON    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("loc2str", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":846 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":854   *     cdef loc2str(self, PhraseLocation loc):   *         cdef int i, j   *         result = "{"             # <<<<<<<<<<<<<< @@ -47591,7 +47705,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_loc2str(CYTHON    __Pyx_INCREF(__pyx_kp_s__63);    __pyx_v_result = __pyx_kp_s__63; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":847 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":855   *         cdef int i, j   *         result = "{"   *         i = 0             # <<<<<<<<<<<<<< @@ -47600,7 +47714,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_loc2str(CYTHON   */    __pyx_v_i = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":848 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":856   *         result = "{"   *         i = 0   *         while i < loc.arr_high:             # <<<<<<<<<<<<<< @@ -47611,19 +47725,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_loc2str(CYTHON      __pyx_t_1 = ((__pyx_v_i < __pyx_v_loc->arr_high) != 0);      if (!__pyx_t_1) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":849 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":857   *         i = 0   *         while i < loc.arr_high:   *             result = result + "("             # <<<<<<<<<<<<<<   *             for j from i <= j < i + loc.num_subpatterns:   *                 result = result + ("%d " %loc.arr[j])   */ -    __pyx_t_2 = PyNumber_Add(__pyx_v_result, __pyx_kp_s__64); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 849; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyNumber_Add(__pyx_v_result, __pyx_kp_s__64); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_2);      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":850 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":858   *         while i < loc.arr_high:   *             result = result + "("   *             for j from i <= j < i + loc.num_subpatterns:             # <<<<<<<<<<<<<< @@ -47633,38 +47747,38 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_loc2str(CYTHON      __pyx_t_3 = (__pyx_v_i + __pyx_v_loc->num_subpatterns);      for (__pyx_v_j = __pyx_v_i; __pyx_v_j < __pyx_t_3; __pyx_v_j++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":851 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":859   *             result = result + "("   *             for j from i <= j < i + loc.num_subpatterns:   *                 result = result + ("%d " %loc.arr[j])             # <<<<<<<<<<<<<<   *             result = result + ")"   *             i = i + loc.num_subpatterns   */ -      __pyx_t_2 = __Pyx_GetItemInt(((PyObject *)__pyx_v_loc->arr), __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(((PyObject *)__pyx_v_loc->arr), __pyx_v_j, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_d, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_d, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyNumber_Add(__pyx_v_result, __pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_Add(__pyx_v_result, __pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_2);        __pyx_t_2 = 0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":852 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":860   *             for j from i <= j < i + loc.num_subpatterns:   *                 result = result + ("%d " %loc.arr[j])   *             result = result + ")"             # <<<<<<<<<<<<<<   *             i = i + loc.num_subpatterns   *         result = result + "}"   */ -    __pyx_t_2 = PyNumber_Add(__pyx_v_result, __pyx_kp_s__42); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyNumber_Add(__pyx_v_result, __pyx_kp_s__42); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_2);      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":853 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":861   *                 result = result + ("%d " %loc.arr[j])   *             result = result + ")"   *             i = i + loc.num_subpatterns             # <<<<<<<<<<<<<< @@ -47674,19 +47788,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_loc2str(CYTHON      __pyx_v_i = (__pyx_v_i + __pyx_v_loc->num_subpatterns);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":854 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":862   *             result = result + ")"   *             i = i + loc.num_subpatterns   *         result = result + "}"             # <<<<<<<<<<<<<<   *         return result   *    */ -  __pyx_t_2 = PyNumber_Add(__pyx_v_result, __pyx_kp_s__65); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyNumber_Add(__pyx_v_result, __pyx_kp_s__65); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":855 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":863   *             i = i + loc.num_subpatterns   *         result = result + "}"   *         return result             # <<<<<<<<<<<<<< @@ -47698,7 +47812,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_loc2str(CYTHON    __pyx_r = __pyx_v_result;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":844 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":852   *             return PhraseLocation(arr_low=0, arr_high=result_len, arr=result, num_subpatterns=num_subpatterns)   *    *     cdef loc2str(self, PhraseLocation loc):             # <<<<<<<<<<<<<< @@ -47719,7 +47833,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_loc2str(CYTHON    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":857 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":865   *         return result   *    *     cdef PhraseLocation intersect(self, prefix_node, suffix_node, Phrase phrase):             # <<<<<<<<<<<<<< @@ -47746,81 +47860,81 @@ static struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *__pyx_f_4cdec_2sa_3_sa_23    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("intersect", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":861 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":869   *         cdef PhraseLocation prefix_loc, suffix_loc, result   *    *         prefix = prefix_node.phrase             # <<<<<<<<<<<<<<   *         suffix = suffix_node.phrase   *         prefix_loc = prefix_node.phrase_location   */ -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_prefix_node, __pyx_n_s_phrase); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_prefix_node, __pyx_n_s_phrase); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_2sa_3_sa_Phrase))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_2sa_3_sa_Phrase))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_prefix = ((struct __pyx_obj_4cdec_2sa_3_sa_Phrase *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":862 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":870   *    *         prefix = prefix_node.phrase   *         suffix = suffix_node.phrase             # <<<<<<<<<<<<<<   *         prefix_loc = prefix_node.phrase_location   *         suffix_loc = suffix_node.phrase_location   */ -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_suffix_node, __pyx_n_s_phrase); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_suffix_node, __pyx_n_s_phrase); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_2sa_3_sa_Phrase))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_2sa_3_sa_Phrase))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_suffix = ((struct __pyx_obj_4cdec_2sa_3_sa_Phrase *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":863 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":871   *         prefix = prefix_node.phrase   *         suffix = suffix_node.phrase   *         prefix_loc = prefix_node.phrase_location             # <<<<<<<<<<<<<<   *         suffix_loc = suffix_node.phrase_location   *    */ -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_prefix_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 863; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_prefix_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 863; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_prefix_loc = ((struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":864 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":872   *         suffix = suffix_node.phrase   *         prefix_loc = prefix_node.phrase_location   *         suffix_loc = suffix_node.phrase_location             # <<<<<<<<<<<<<<   *    *         result = self.get_precomputed_collocation(phrase)   */ -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_suffix_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_suffix_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_suffix_loc = ((struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":866 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":874   *         suffix_loc = suffix_node.phrase_location   *    *         result = self.get_precomputed_collocation(phrase)             # <<<<<<<<<<<<<<   *         if result is not None:   *             intersect_method = "precomputed"   */ -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_precomputed_collocation); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_precomputed_collocation); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_INCREF(((PyObject *)__pyx_v_phrase));    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_phrase));    __Pyx_GIVEREF(((PyObject *)__pyx_v_phrase)); -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_result = ((struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":867 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":875   *    *         result = self.get_precomputed_collocation(phrase)   *         if result is not None:             # <<<<<<<<<<<<<< @@ -47831,7 +47945,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *__pyx_f_4cdec_2sa_3_sa_23    __pyx_t_5 = (__pyx_t_4 != 0);    if (__pyx_t_5) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":868 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":876   *         result = self.get_precomputed_collocation(phrase)   *         if result is not None:   *             intersect_method = "precomputed"             # <<<<<<<<<<<<<< @@ -47844,7 +47958,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *__pyx_f_4cdec_2sa_3_sa_23    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":870 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":878   *             intersect_method = "precomputed"   *    *         if result is None:             # <<<<<<<<<<<<<< @@ -47855,7 +47969,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *__pyx_f_4cdec_2sa_3_sa_23    __pyx_t_4 = (__pyx_t_5 != 0);    if (__pyx_t_4) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":871 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":879   *    *         if result is None:   *             if self.use_baeza_yates:             # <<<<<<<<<<<<<< @@ -47865,20 +47979,20 @@ static struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *__pyx_f_4cdec_2sa_3_sa_23      __pyx_t_4 = (__pyx_v_self->use_baeza_yates != 0);      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":872 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":880   *         if result is None:   *             if self.use_baeza_yates:   *                 result = self.intersect_helper(prefix, suffix, prefix_loc, suffix_loc, BAEZA_YATES)             # <<<<<<<<<<<<<<   *                 intersect_method="double binary"   *             else:   */ -      __pyx_t_3 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->intersect_helper(__pyx_v_self, __pyx_v_prefix, __pyx_v_suffix, __pyx_v_prefix_loc, __pyx_v_suffix_loc, __pyx_v_4cdec_2sa_3_sa_BAEZA_YATES); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->intersect_helper(__pyx_v_self, __pyx_v_prefix, __pyx_v_suffix, __pyx_v_prefix_loc, __pyx_v_suffix_loc, __pyx_v_4cdec_2sa_3_sa_BAEZA_YATES); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF_SET(__pyx_v_result, ((struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *)__pyx_t_3));        __pyx_t_3 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":873 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":881   *             if self.use_baeza_yates:   *                 result = self.intersect_helper(prefix, suffix, prefix_loc, suffix_loc, BAEZA_YATES)   *                 intersect_method="double binary"             # <<<<<<<<<<<<<< @@ -47891,20 +48005,20 @@ static struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *__pyx_f_4cdec_2sa_3_sa_23      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":875 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":883   *                 intersect_method="double binary"   *             else:   *                 result = self.intersect_helper(prefix, suffix, prefix_loc, suffix_loc, MERGE)             # <<<<<<<<<<<<<<   *                 intersect_method="merge"   *         return result   */ -      __pyx_t_3 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->intersect_helper(__pyx_v_self, __pyx_v_prefix, __pyx_v_suffix, __pyx_v_prefix_loc, __pyx_v_suffix_loc, __pyx_v_4cdec_2sa_3_sa_MERGE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->intersect_helper(__pyx_v_self, __pyx_v_prefix, __pyx_v_suffix, __pyx_v_prefix_loc, __pyx_v_suffix_loc, __pyx_v_4cdec_2sa_3_sa_MERGE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF_SET(__pyx_v_result, ((struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *)__pyx_t_3));        __pyx_t_3 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":876 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":884   *             else:   *                 result = self.intersect_helper(prefix, suffix, prefix_loc, suffix_loc, MERGE)   *                 intersect_method="merge"             # <<<<<<<<<<<<<< @@ -47919,7 +48033,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *__pyx_f_4cdec_2sa_3_sa_23    }    __pyx_L4:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":877 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":885   *                 result = self.intersect_helper(prefix, suffix, prefix_loc, suffix_loc, MERGE)   *                 intersect_method="merge"   *         return result             # <<<<<<<<<<<<<< @@ -47931,7 +48045,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *__pyx_f_4cdec_2sa_3_sa_23    __pyx_r = __pyx_v_result;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":857 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":865   *         return result   *    *     cdef PhraseLocation intersect(self, prefix_node, suffix_node, Phrase phrase):             # <<<<<<<<<<<<<< @@ -47958,7 +48072,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *__pyx_f_4cdec_2sa_3_sa_23    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":879 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":887   *         return result   *    *     def advance(self, frontier, res, fwords):             # <<<<<<<<<<<<<< @@ -47999,16 +48113,16 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13advance(PyO          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_res)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("advance", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("advance", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fwords)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("advance", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("advance", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "advance") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "advance") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -48023,7 +48137,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13advance(PyO    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("advance", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("advance", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.advance", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -48069,19 +48183,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("advance", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":881 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":889   *     def advance(self, frontier, res, fwords):   *         cdef unsigned na   *         nf = []             # <<<<<<<<<<<<<<   *         for toskip, (i, alt, pathlen) in frontier:   *             spanlen = fwords[i][alt][2]   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_nf = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":882 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":890   *         cdef unsigned na   *         nf = []   *         for toskip, (i, alt, pathlen) in frontier:             # <<<<<<<<<<<<<< @@ -48092,7 +48206,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str      __pyx_t_1 = __pyx_v_frontier; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_frontier); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_frontier); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    } @@ -48100,16 +48214,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str      if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1); @@ -48117,7 +48231,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -48133,7 +48247,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str        if (unlikely(size != 2)) {          if (size > 2) __Pyx_RaiseTooManyValuesError(2);          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { @@ -48146,15 +48260,15 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str        __Pyx_INCREF(__pyx_t_5);        __Pyx_INCREF(__pyx_t_6);        #else -      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5); -      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        #endif        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      } else {        Py_ssize_t index = -1; -      __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_7);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -48162,7 +48276,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str        __Pyx_GOTREF(__pyx_t_5);        index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;        __Pyx_GOTREF(__pyx_t_6); -      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_8 = NULL;        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        goto __pyx_L6_unpacking_done; @@ -48170,7 +48284,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        __pyx_t_8 = NULL;        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_L6_unpacking_done:;      }      __Pyx_XDECREF_SET(__pyx_v_toskip, __pyx_t_5); @@ -48185,7 +48299,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str        if (unlikely(size != 3)) {          if (size > 3) __Pyx_RaiseTooManyValuesError(3);          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { @@ -48201,17 +48315,17 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str        __Pyx_INCREF(__pyx_t_9);        __Pyx_INCREF(__pyx_t_10);        #else -      __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_7); -      __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_9); -      __pyx_t_10 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_10 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_10);        #endif        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      } else {        Py_ssize_t index = -1; -      __pyx_t_11 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_11 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_11);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __pyx_t_8 = Py_TYPE(__pyx_t_11)->tp_iternext; @@ -48221,7 +48335,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str        __Pyx_GOTREF(__pyx_t_9);        index = 2; __pyx_t_10 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L7_unpacking_failed;        __Pyx_GOTREF(__pyx_t_10); -      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_11), 3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_11), 3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_8 = NULL;        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;        goto __pyx_L8_unpacking_done; @@ -48229,7 +48343,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;        __pyx_t_8 = NULL;        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_L8_unpacking_done:;      }      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7); @@ -48239,44 +48353,44 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str      __Pyx_XDECREF_SET(__pyx_v_pathlen, __pyx_t_10);      __pyx_t_10 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":883 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":891   *         nf = []   *         for toskip, (i, alt, pathlen) in frontier:   *             spanlen = fwords[i][alt][2]             # <<<<<<<<<<<<<<   *             if toskip == 0:   *                 res.append((i, alt, pathlen))   */ -    __pyx_t_4 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_i); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_i); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_6 = PyObject_GetItem(__pyx_t_4, __pyx_v_alt); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = PyObject_GetItem(__pyx_t_4, __pyx_v_alt); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_XDECREF_SET(__pyx_v_spanlen, __pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":884 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":892   *         for toskip, (i, alt, pathlen) in frontier:   *             spanlen = fwords[i][alt][2]   *             if toskip == 0:             # <<<<<<<<<<<<<<   *                 res.append((i, alt, pathlen))   *             ni = i + spanlen   */ -    __pyx_t_4 = PyObject_RichCompare(__pyx_v_toskip, __pyx_int_0, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_v_toskip, __pyx_int_0, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      if (__pyx_t_12) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":885 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":893   *             spanlen = fwords[i][alt][2]   *             if toskip == 0:   *                 res.append((i, alt, pathlen))             # <<<<<<<<<<<<<<   *             ni = i + spanlen   *             if ni < len(fwords) and pathlen + 1 < self.max_initial_size:   */ -      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_INCREF(__pyx_v_i);        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_i); @@ -48287,47 +48401,47 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str        __Pyx_INCREF(__pyx_v_pathlen);        PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_pathlen);        __Pyx_GIVEREF(__pyx_v_pathlen); -      __pyx_t_13 = __Pyx_PyObject_Append(__pyx_v_res, __pyx_t_4); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_13 = __Pyx_PyObject_Append(__pyx_v_res, __pyx_t_4); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        goto __pyx_L9;      }      __pyx_L9:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":886 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":894   *             if toskip == 0:   *                 res.append((i, alt, pathlen))   *             ni = i + spanlen             # <<<<<<<<<<<<<<   *             if ni < len(fwords) and pathlen + 1 < self.max_initial_size:   *                 for na in range(len(fwords[ni])):   */ -    __pyx_t_4 = PyNumber_Add(__pyx_v_i, __pyx_v_spanlen); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 886; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyNumber_Add(__pyx_v_i, __pyx_v_spanlen); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_XDECREF_SET(__pyx_v_ni, __pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":887 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":895   *                 res.append((i, alt, pathlen))   *             ni = i + spanlen   *             if ni < len(fwords) and pathlen + 1 < self.max_initial_size:             # <<<<<<<<<<<<<<   *                 for na in range(len(fwords[ni])):   *                     nf.append((toskip - 1, (ni, na, pathlen + 1)))   */ -    __pyx_t_14 = PyObject_Length(__pyx_v_fwords); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_14 = PyObject_Length(__pyx_v_fwords); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_6 = PyObject_RichCompare(__pyx_v_ni, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyObject_RichCompare(__pyx_v_ni, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      if (__pyx_t_12) { -      __pyx_t_6 = PyNumber_Add(__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyNumber_Add(__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_5 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        __pyx_t_16 = __pyx_t_15;      } else { @@ -48335,34 +48449,34 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str      }      if (__pyx_t_16) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":888 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":896   *             ni = i + spanlen   *             if ni < len(fwords) and pathlen + 1 < self.max_initial_size:   *                 for na in range(len(fwords[ni])):             # <<<<<<<<<<<<<<   *                     nf.append((toskip - 1, (ni, na, pathlen + 1)))   *         if len(nf) > 0:   */ -      __pyx_t_5 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ni); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_5 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ni); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_5); -      __pyx_t_14 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_14 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_14; __pyx_t_17+=1) {          __pyx_v_na = __pyx_t_17; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":889 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":897   *             if ni < len(fwords) and pathlen + 1 < self.max_initial_size:   *                 for na in range(len(fwords[ni])):   *                     nf.append((toskip - 1, (ni, na, pathlen + 1)))             # <<<<<<<<<<<<<<   *         if len(nf) > 0:   *             return self.advance(nf, res, fwords)   */ -        __pyx_t_5 = PyNumber_Subtract(__pyx_v_toskip, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_5 = PyNumber_Subtract(__pyx_v_toskip, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_5); -        __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_na); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_na); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_4); -        __pyx_t_6 = PyNumber_Add(__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = PyNumber_Add(__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_6); -        __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_10);          __Pyx_INCREF(__pyx_v_ni);          PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_ni); @@ -48373,7 +48487,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str          __Pyx_GIVEREF(__pyx_t_6);          __pyx_t_4 = 0;          __pyx_t_6 = 0; -        __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_6);          PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);          __Pyx_GIVEREF(__pyx_t_5); @@ -48381,7 +48495,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str          __Pyx_GIVEREF(__pyx_t_10);          __pyx_t_5 = 0;          __pyx_t_10 = 0; -        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_nf, __pyx_t_6); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_nf, __pyx_t_6); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        }        goto __pyx_L10; @@ -48390,18 +48504,18 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":890 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":898   *                 for na in range(len(fwords[ni])):   *                     nf.append((toskip - 1, (ni, na, pathlen + 1)))   *         if len(nf) > 0:             # <<<<<<<<<<<<<<   *             return self.advance(nf, res, fwords)   *         else:   */ -  __pyx_t_2 = PyList_GET_SIZE(__pyx_v_nf); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyList_GET_SIZE(__pyx_v_nf); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_t_16 = ((__pyx_t_2 > 0) != 0);    if (__pyx_t_16) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":891 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":899   *                     nf.append((toskip - 1, (ni, na, pathlen + 1)))   *         if len(nf) > 0:   *             return self.advance(nf, res, fwords)             # <<<<<<<<<<<<<< @@ -48409,9 +48523,9 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str   *             return res   */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_advance); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_advance); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_INCREF(__pyx_v_nf);      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_nf); @@ -48422,7 +48536,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str      __Pyx_INCREF(__pyx_v_fwords);      PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_fwords);      __Pyx_GIVEREF(__pyx_v_fwords); -    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_10);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -48432,7 +48546,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":893 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":901   *             return self.advance(nf, res, fwords)   *         else:   *             return res             # <<<<<<<<<<<<<< @@ -48445,7 +48559,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":879 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":887   *         return result   *    *     def advance(self, frontier, res, fwords):             # <<<<<<<<<<<<<< @@ -48478,7 +48592,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12advance(str    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":895 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":903   *             return res   *    *     def get_all_nodes_isteps_away(self, skip, i, spanlen, pathlen, fwords, next_states, reachable_buffer):             # <<<<<<<<<<<<<< @@ -48527,36 +48641,36 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_15get_all_nod          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_i)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_spanlen)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  3:          if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pathlen)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  4:          if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fwords)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 4); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 4); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  5:          if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_next_states)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 5); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 5); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  6:          if (likely((values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_reachable_buffer)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 6); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 6); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_all_nodes_isteps_away") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_all_nodes_isteps_away") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {        goto __pyx_L5_argtuple_error; @@ -48579,7 +48693,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_15get_all_nod    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.get_all_nodes_isteps_away", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -48622,41 +48736,41 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("get_all_nodes_isteps_away", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":897 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":905   *     def get_all_nodes_isteps_away(self, skip, i, spanlen, pathlen, fwords, next_states, reachable_buffer):   *         cdef unsigned alt_it   *         frontier = []             # <<<<<<<<<<<<<<   *         if i+spanlen+skip >= len(next_states):   *             return frontier   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_frontier = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":898 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":906   *         cdef unsigned alt_it   *         frontier = []   *         if i+spanlen+skip >= len(next_states):             # <<<<<<<<<<<<<<   *             return frontier   *         key = tuple([i,spanlen])   */ -  __pyx_t_1 = PyNumber_Add(__pyx_v_i, __pyx_v_spanlen); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyNumber_Add(__pyx_v_i, __pyx_v_spanlen); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_skip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_skip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_3 = PyObject_Length(__pyx_v_next_states); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyObject_Length(__pyx_v_next_states); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    if (__pyx_t_5) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":899 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":907   *         frontier = []   *         if i+spanlen+skip >= len(next_states):   *             return frontier             # <<<<<<<<<<<<<< @@ -48669,14 +48783,14 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":900 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":908   *         if i+spanlen+skip >= len(next_states):   *             return frontier   *         key = tuple([i,spanlen])             # <<<<<<<<<<<<<<   *         reachable = []   *         if key in reachable_buffer:   */ -  __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_INCREF(__pyx_v_i);    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_i); @@ -48684,43 +48798,43 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod    __Pyx_INCREF(__pyx_v_spanlen);    PyList_SET_ITEM(__pyx_t_4, 1, __pyx_v_spanlen);    __Pyx_GIVEREF(__pyx_v_spanlen); -  __pyx_t_1 = PyList_AsTuple(((PyObject*)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_AsTuple(((PyObject*)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    __pyx_v_key = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":901 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":909   *             return frontier   *         key = tuple([i,spanlen])   *         reachable = []             # <<<<<<<<<<<<<<   *         if key in reachable_buffer:   *             reachable = reachable_buffer[key]   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_reachable = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":902 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":910   *         key = tuple([i,spanlen])   *         reachable = []   *         if key in reachable_buffer:             # <<<<<<<<<<<<<<   *             reachable = reachable_buffer[key]   *         else:   */ -  __pyx_t_5 = (__Pyx_PySequence_Contains(__pyx_v_key, __pyx_v_reachable_buffer, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = (__Pyx_PySequence_Contains(__pyx_v_key, __pyx_v_reachable_buffer, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_t_6 = (__pyx_t_5 != 0);    if (__pyx_t_6) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":903 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":911   *         reachable = []   *         if key in reachable_buffer:   *             reachable = reachable_buffer[key]             # <<<<<<<<<<<<<<   *         else:   *             reachable = self.reachable(fwords, i, spanlen)   */ -    __pyx_t_1 = PyObject_GetItem(__pyx_v_reachable_buffer, __pyx_v_key); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = PyObject_GetItem(__pyx_v_reachable_buffer, __pyx_v_key); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF_SET(__pyx_v_reachable, __pyx_t_1);      __pyx_t_1 = 0; @@ -48728,16 +48842,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":905 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":913   *             reachable = reachable_buffer[key]   *         else:   *             reachable = self.reachable(fwords, i, spanlen)             # <<<<<<<<<<<<<<   *             reachable_buffer[key] = reachable   *         for nextreachable in reachable:   */ -    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reachable); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reachable); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_INCREF(__pyx_v_fwords);      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_fwords); @@ -48748,25 +48862,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod      __Pyx_INCREF(__pyx_v_spanlen);      PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_spanlen);      __Pyx_GIVEREF(__pyx_v_spanlen); -    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF_SET(__pyx_v_reachable, __pyx_t_2);      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":906 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":914   *         else:   *             reachable = self.reachable(fwords, i, spanlen)   *             reachable_buffer[key] = reachable             # <<<<<<<<<<<<<<   *         for nextreachable in reachable:   *             for next_id in next_states[nextreachable]:   */ -    if (unlikely(PyObject_SetItem(__pyx_v_reachable_buffer, __pyx_v_key, __pyx_v_reachable) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(PyObject_SetItem(__pyx_v_reachable_buffer, __pyx_v_key, __pyx_v_reachable) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __pyx_L4:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":907 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":915   *             reachable = self.reachable(fwords, i, spanlen)   *             reachable_buffer[key] = reachable   *         for nextreachable in reachable:             # <<<<<<<<<<<<<< @@ -48777,7 +48891,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod      __pyx_t_2 = __pyx_v_reachable; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;      __pyx_t_7 = NULL;    } else { -    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_reachable); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_reachable); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext;    } @@ -48785,16 +48899,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod      if (!__pyx_t_7 && PyList_CheckExact(__pyx_t_2)) {        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_7 && PyTuple_CheckExact(__pyx_t_2)) {        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_4 = __pyx_t_7(__pyx_t_2); @@ -48802,7 +48916,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -48811,20 +48925,20 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod      __Pyx_XDECREF_SET(__pyx_v_nextreachable, __pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":908 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":916   *             reachable_buffer[key] = reachable   *         for nextreachable in reachable:   *             for next_id in next_states[nextreachable]:             # <<<<<<<<<<<<<<   *                 jump = self.shortest(fwords,i,next_id)   *                 if jump < skip:   */ -    __pyx_t_4 = PyObject_GetItem(__pyx_v_next_states, __pyx_v_nextreachable); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = PyObject_GetItem(__pyx_v_next_states, __pyx_v_nextreachable); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4);      if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {        __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;        __pyx_t_9 = NULL;      } else { -      __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext;      } @@ -48833,16 +48947,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod        if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_1)) {          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;          #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #else -        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #endif        } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_1)) {          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;          #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #else -        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #endif        } else {          __pyx_t_4 = __pyx_t_9(__pyx_t_1); @@ -48850,7 +48964,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod            PyObject* exc_type = PyErr_Occurred();            if (exc_type) {              if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -            else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            }            break;          } @@ -48859,16 +48973,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod        __Pyx_XDECREF_SET(__pyx_v_next_id, __pyx_t_4);        __pyx_t_4 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":909 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":917   *         for nextreachable in reachable:   *             for next_id in next_states[nextreachable]:   *                 jump = self.shortest(fwords,i,next_id)             # <<<<<<<<<<<<<<   *                 if jump < skip:   *                     continue   */ -      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_shortest); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_shortest); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_10);        __Pyx_INCREF(__pyx_v_fwords);        PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_fwords); @@ -48879,26 +48993,26 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod        __Pyx_INCREF(__pyx_v_next_id);        PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_next_id);        __Pyx_GIVEREF(__pyx_v_next_id); -      __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_11);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;        __Pyx_XDECREF_SET(__pyx_v_jump, __pyx_t_11);        __pyx_t_11 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":910 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":918   *             for next_id in next_states[nextreachable]:   *                 jump = self.shortest(fwords,i,next_id)   *                 if jump < skip:             # <<<<<<<<<<<<<<   *                     continue   *                 if pathlen+jump <= self.max_initial_size:   */ -      __pyx_t_11 = PyObject_RichCompare(__pyx_v_jump, __pyx_v_skip, Py_LT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_11 = PyObject_RichCompare(__pyx_v_jump, __pyx_v_skip, Py_LT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;        if (__pyx_t_6) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":911 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":919   *                 jump = self.shortest(fwords,i,next_id)   *                 if jump < skip:   *                     continue             # <<<<<<<<<<<<<< @@ -48908,74 +49022,74 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod          goto __pyx_L7_continue;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":912 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":920   *                 if jump < skip:   *                     continue   *                 if pathlen+jump <= self.max_initial_size:             # <<<<<<<<<<<<<<   *                     for alt_id in range(len(fwords[next_id])):   *                         if fwords[next_id][alt_id][0] != EPSILON:   */ -      __pyx_t_11 = PyNumber_Add(__pyx_v_pathlen, __pyx_v_jump); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_11 = PyNumber_Add(__pyx_v_pathlen, __pyx_v_jump); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_11); -      __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_10); -      __pyx_t_4 = PyObject_RichCompare(__pyx_t_11, __pyx_t_10, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyObject_RichCompare(__pyx_t_11, __pyx_t_10, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        if (__pyx_t_6) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":913 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":921   *                     continue   *                 if pathlen+jump <= self.max_initial_size:   *                     for alt_id in range(len(fwords[next_id])):             # <<<<<<<<<<<<<<   *                         if fwords[next_id][alt_id][0] != EPSILON:   *                             newel = (next_id,alt_id,pathlen+jump)   */ -        __pyx_t_4 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_next_id); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_4 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_next_id); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_4); -        __pyx_t_12 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_12 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;          for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {            __pyx_v_alt_id = __pyx_t_13; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":914 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":922   *                 if pathlen+jump <= self.max_initial_size:   *                     for alt_id in range(len(fwords[next_id])):   *                         if fwords[next_id][alt_id][0] != EPSILON:             # <<<<<<<<<<<<<<   *                             newel = (next_id,alt_id,pathlen+jump)   *                             if newel not in frontier:   */ -          __pyx_t_4 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_next_id); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +          __pyx_t_4 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_next_id); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;};            __Pyx_GOTREF(__pyx_t_4); -          __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_4, __pyx_v_alt_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +          __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_4, __pyx_v_alt_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;};            __Pyx_GOTREF(__pyx_t_10);            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_10, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_10, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;};            __Pyx_GOTREF(__pyx_t_4);            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10); -          __pyx_t_11 = PyObject_RichCompare(__pyx_t_4, __pyx_t_10, Py_NE); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = PyObject_RichCompare(__pyx_t_4, __pyx_t_10, Py_NE); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;            if (__pyx_t_6) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":915 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":923   *                     for alt_id in range(len(fwords[next_id])):   *                         if fwords[next_id][alt_id][0] != EPSILON:   *                             newel = (next_id,alt_id,pathlen+jump)             # <<<<<<<<<<<<<<   *                             if newel not in frontier:   *                                 frontier.append((next_id,alt_id,pathlen+jump))   */ -            __pyx_t_11 = PyInt_FromSsize_t(__pyx_v_alt_id); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = PyInt_FromSsize_t(__pyx_v_alt_id); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11); -            __pyx_t_10 = PyNumber_Add(__pyx_v_pathlen, __pyx_v_jump); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = PyNumber_Add(__pyx_v_pathlen, __pyx_v_jump); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10); -            __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_4);              __Pyx_INCREF(__pyx_v_next_id);              PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_next_id); @@ -48989,29 +49103,29 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod              __Pyx_XDECREF_SET(__pyx_v_newel, ((PyObject*)__pyx_t_4));              __pyx_t_4 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":916 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":924   *                         if fwords[next_id][alt_id][0] != EPSILON:   *                             newel = (next_id,alt_id,pathlen+jump)   *                             if newel not in frontier:             # <<<<<<<<<<<<<<   *                                 frontier.append((next_id,alt_id,pathlen+jump))   *         return frontier   */ -            __pyx_t_6 = (__Pyx_PySequence_Contains(__pyx_v_newel, __pyx_v_frontier, Py_NE)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_6 = (__Pyx_PySequence_Contains(__pyx_v_newel, __pyx_v_frontier, Py_NE)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __pyx_t_5 = (__pyx_t_6 != 0);              if (__pyx_t_5) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":917 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":925   *                             newel = (next_id,alt_id,pathlen+jump)   *                             if newel not in frontier:   *                                 frontier.append((next_id,alt_id,pathlen+jump))             # <<<<<<<<<<<<<<   *         return frontier   *    */ -              __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_alt_id); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_alt_id); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_4); -              __pyx_t_10 = PyNumber_Add(__pyx_v_pathlen, __pyx_v_jump); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_10 = PyNumber_Add(__pyx_v_pathlen, __pyx_v_jump); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_10); -              __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_11);                __Pyx_INCREF(__pyx_v_next_id);                PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_next_id); @@ -49022,7 +49136,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod                __Pyx_GIVEREF(__pyx_t_10);                __pyx_t_4 = 0;                __pyx_t_10 = 0; -              __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_frontier, __pyx_t_11); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_frontier, __pyx_t_11); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;                goto __pyx_L14;              } @@ -49040,7 +49154,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod    }    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":918 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":926   *                             if newel not in frontier:   *                                 frontier.append((next_id,alt_id,pathlen+jump))   *         return frontier             # <<<<<<<<<<<<<< @@ -49052,7 +49166,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod    __pyx_r = __pyx_v_frontier;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":895 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":903   *             return res   *    *     def get_all_nodes_isteps_away(self, skip, i, spanlen, pathlen, fwords, next_states, reachable_buffer):             # <<<<<<<<<<<<<< @@ -49082,7 +49196,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_14get_all_nod    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":920 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":928   *         return frontier   *    *     def reachable(self, fwords, ifrom, dist):             # <<<<<<<<<<<<<< @@ -49123,16 +49237,16 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_17reachable(P          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ifrom)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("reachable", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("reachable", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_dist)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("reachable", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("reachable", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "reachable") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "reachable") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -49147,7 +49261,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_17reachable(P    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("reachable", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("reachable", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.reachable", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -49182,35 +49296,35 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("reachable", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":921 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":929   *    *     def reachable(self, fwords, ifrom, dist):   *         ret = []             # <<<<<<<<<<<<<<   *         if ifrom >= len(fwords):   *             return ret   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_ret = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":922 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":930   *     def reachable(self, fwords, ifrom, dist):   *         ret = []   *         if ifrom >= len(fwords):             # <<<<<<<<<<<<<<   *             return ret   *         for alt_id in range(len(fwords[ifrom])):   */ -  __pyx_t_2 = PyObject_Length(__pyx_v_fwords); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Length(__pyx_v_fwords); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_3 = PyObject_RichCompare(__pyx_v_ifrom, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyObject_RichCompare(__pyx_v_ifrom, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    if (__pyx_t_4) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":923 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":931   *         ret = []   *         if ifrom >= len(fwords):   *             return ret             # <<<<<<<<<<<<<< @@ -49223,65 +49337,65 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":924 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":932   *         if ifrom >= len(fwords):   *             return ret   *         for alt_id in range(len(fwords[ifrom])):             # <<<<<<<<<<<<<<   *             if fwords[ifrom][alt_id][0] == EPSILON:   *                 ret.extend(self.reachable(fwords,ifrom+fwords[ifrom][alt_id][2],dist))   */ -  __pyx_t_3 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_3 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_3); -  __pyx_t_2 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 924; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_2; __pyx_t_5+=1) {      __pyx_v_alt_id = __pyx_t_5; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":925 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":933   *             return ret   *         for alt_id in range(len(fwords[ifrom])):   *             if fwords[ifrom][alt_id][0] == EPSILON:             # <<<<<<<<<<<<<<   *                 ret.extend(self.reachable(fwords,ifrom+fwords[ifrom][alt_id][2],dist))   *             else:   */ -    __pyx_t_3 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_3 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_alt_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_alt_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_6 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":926 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":934   *         for alt_id in range(len(fwords[ifrom])):   *             if fwords[ifrom][alt_id][0] == EPSILON:   *                 ret.extend(self.reachable(fwords,ifrom+fwords[ifrom][alt_id][2],dist))             # <<<<<<<<<<<<<<   *             else:   *                 if dist == 0:   */ -      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reachable); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reachable); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_1 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_alt_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_alt_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      __pyx_t_3 = PyNumber_Add(__pyx_v_ifrom, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyNumber_Add(__pyx_v_ifrom, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_INCREF(__pyx_v_fwords);        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_fwords); @@ -49292,47 +49406,47 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_dist);        __Pyx_GIVEREF(__pyx_v_dist);        __pyx_t_3 = 0; -      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_7 = __Pyx_PyList_Extend(__pyx_v_ret, __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyList_Extend(__pyx_v_ret, __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        goto __pyx_L6;      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":928 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":936   *                 ret.extend(self.reachable(fwords,ifrom+fwords[ifrom][alt_id][2],dist))   *             else:   *                 if dist == 0:             # <<<<<<<<<<<<<<   *                     if ifrom not in ret:   *                         ret.append(ifrom)   */ -      __pyx_t_3 = PyObject_RichCompare(__pyx_v_dist, __pyx_int_0, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyObject_RichCompare(__pyx_v_dist, __pyx_int_0, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 936; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        if (__pyx_t_4) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":929 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":937   *             else:   *                 if dist == 0:   *                     if ifrom not in ret:             # <<<<<<<<<<<<<<   *                         ret.append(ifrom)   *                 else:   */ -        __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_v_ifrom, __pyx_v_ret, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_v_ifrom, __pyx_v_ret, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __pyx_t_8 = (__pyx_t_4 != 0);          if (__pyx_t_8) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":930 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":938   *                 if dist == 0:   *                     if ifrom not in ret:   *                         ret.append(ifrom)             # <<<<<<<<<<<<<<   *                 else:   *                     for ifromchild in self.reachable(fwords,ifrom+fwords[ifrom][alt_id][2],dist-1):   */ -          __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_v_ifrom); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_v_ifrom); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            goto __pyx_L8;          }          __pyx_L8:; @@ -49340,29 +49454,29 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s        }        /*else*/ { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":932 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":940   *                         ret.append(ifrom)   *                 else:   *                     for ifromchild in self.reachable(fwords,ifrom+fwords[ifrom][alt_id][2],dist-1):             # <<<<<<<<<<<<<<   *                         if ifromchild not in ret:   *                             ret.append(ifromchild)   */ -        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reachable); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reachable); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3); -        __pyx_t_1 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_1 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_alt_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_alt_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_6);          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_6, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_6, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_1);          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -        __pyx_t_6 = PyNumber_Add(__pyx_v_ifrom, __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = PyNumber_Add(__pyx_v_ifrom, __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_6);          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        __pyx_t_1 = PyNumber_Subtract(__pyx_v_dist, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyNumber_Subtract(__pyx_v_dist, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_9);          __Pyx_INCREF(__pyx_v_fwords);          PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_fwords); @@ -49373,7 +49487,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s          __Pyx_GIVEREF(__pyx_t_1);          __pyx_t_6 = 0;          __pyx_t_1 = 0; -        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -49381,7 +49495,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s            __pyx_t_9 = __pyx_t_1; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;            __pyx_t_11 = NULL;          } else { -          __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_9);            __pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext;          } @@ -49390,16 +49504,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s            if (!__pyx_t_11 && PyList_CheckExact(__pyx_t_9)) {              if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;              #if CYTHON_COMPILING_IN_CPYTHON -            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              #else -            __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              #endif            } else if (!__pyx_t_11 && PyTuple_CheckExact(__pyx_t_9)) {              if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;              #if CYTHON_COMPILING_IN_CPYTHON -            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              #else -            __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              #endif            } else {              __pyx_t_1 = __pyx_t_11(__pyx_t_9); @@ -49407,7 +49521,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s                PyObject* exc_type = PyErr_Occurred();                if (exc_type) {                  if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -                else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                }                break;              } @@ -49416,25 +49530,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s            __Pyx_XDECREF_SET(__pyx_v_ifromchild, __pyx_t_1);            __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":933 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":941   *                 else:   *                     for ifromchild in self.reachable(fwords,ifrom+fwords[ifrom][alt_id][2],dist-1):   *                         if ifromchild not in ret:             # <<<<<<<<<<<<<<   *                             ret.append(ifromchild)   *    */ -          __pyx_t_8 = (__Pyx_PySequence_Contains(__pyx_v_ifromchild, __pyx_v_ret, Py_NE)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_8 = (__Pyx_PySequence_Contains(__pyx_v_ifromchild, __pyx_v_ret, Py_NE)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __pyx_t_4 = (__pyx_t_8 != 0);            if (__pyx_t_4) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":934 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":942   *                     for ifromchild in self.reachable(fwords,ifrom+fwords[ifrom][alt_id][2],dist-1):   *                         if ifromchild not in ret:   *                             ret.append(ifromchild)             # <<<<<<<<<<<<<<   *    *         return ret   */ -            __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_v_ifromchild); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_v_ifromchild); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              goto __pyx_L11;            }            __pyx_L11:; @@ -49446,7 +49560,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s      __pyx_L6:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":936 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":944   *                             ret.append(ifromchild)   *    *         return ret             # <<<<<<<<<<<<<< @@ -49458,7 +49572,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s    __pyx_r = __pyx_v_ret;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":920 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":928   *         return frontier   *    *     def reachable(self, fwords, ifrom, dist):             # <<<<<<<<<<<<<< @@ -49482,7 +49596,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_16reachable(s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":938 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":946   *         return ret   *    *     def shortest(self, fwords, ifrom, ito):             # <<<<<<<<<<<<<< @@ -49523,16 +49637,16 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_19shortest(Py          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ifrom)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("shortest", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 938; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("shortest", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ito)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("shortest", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 938; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("shortest", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "shortest") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 938; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "shortest") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -49547,7 +49661,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_19shortest(Py    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("shortest", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 938; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("shortest", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.shortest", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -49577,7 +49691,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_18shortest(st    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("shortest", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":940 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":948   *     def shortest(self, fwords, ifrom, ito):   *         cdef unsigned alt_id   *         min = 1000             # <<<<<<<<<<<<<< @@ -49587,19 +49701,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_18shortest(st    __Pyx_INCREF(__pyx_int_1000);    __pyx_v_min = __pyx_int_1000; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":941 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":949   *         cdef unsigned alt_id   *         min = 1000   *         if ifrom > ito:             # <<<<<<<<<<<<<<   *             return min   *         if ifrom == ito:   */ -  __pyx_t_1 = PyObject_RichCompare(__pyx_v_ifrom, __pyx_v_ito, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_RichCompare(__pyx_v_ifrom, __pyx_v_ito, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":942 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":950   *         min = 1000   *         if ifrom > ito:   *             return min             # <<<<<<<<<<<<<< @@ -49612,19 +49726,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_18shortest(st      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":943 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":951   *         if ifrom > ito:   *             return min   *         if ifrom == ito:             # <<<<<<<<<<<<<<   *             return 0   *         for alt_id in range(len(fwords[ifrom])):   */ -  __pyx_t_1 = PyObject_RichCompare(__pyx_v_ifrom, __pyx_v_ito, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 943; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 943; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_RichCompare(__pyx_v_ifrom, __pyx_v_ito, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 951; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":944 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":952   *             return min   *         if ifrom == ito:   *             return 0             # <<<<<<<<<<<<<< @@ -49637,41 +49751,41 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_18shortest(st      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":945 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":953   *         if ifrom == ito:   *             return 0   *         for alt_id in range(len(fwords[ifrom])):             # <<<<<<<<<<<<<<   *             currmin = self.shortest(fwords,ifrom+fwords[ifrom][alt_id][2],ito)   *             if fwords[ifrom][alt_id][0] != EPSILON:   */ -  __pyx_t_1 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_1 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 953; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_3 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 953; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {      __pyx_v_alt_id = __pyx_t_4; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":946 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":954   *             return 0   *         for alt_id in range(len(fwords[ifrom])):   *             currmin = self.shortest(fwords,ifrom+fwords[ifrom][alt_id][2],ito)             # <<<<<<<<<<<<<<   *             if fwords[ifrom][alt_id][0] != EPSILON:   *                 currmin += 1   */ -    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_shortest); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_shortest); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_5 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_5 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_alt_id, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_alt_id, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_6 = PyNumber_Add(__pyx_v_ifrom, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyNumber_Add(__pyx_v_ifrom, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __Pyx_INCREF(__pyx_v_fwords);      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_fwords); @@ -49682,45 +49796,45 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_18shortest(st      PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_ito);      __Pyx_GIVEREF(__pyx_v_ito);      __pyx_t_6 = 0; -    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __Pyx_XDECREF_SET(__pyx_v_currmin, __pyx_t_6);      __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":947 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":955   *         for alt_id in range(len(fwords[ifrom])):   *             currmin = self.shortest(fwords,ifrom+fwords[ifrom][alt_id][2],ito)   *             if fwords[ifrom][alt_id][0] != EPSILON:             # <<<<<<<<<<<<<<   *                 currmin += 1   *             if currmin < min:   */ -    __pyx_t_6 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_alt_id, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_alt_id, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":948 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":956   *             currmin = self.shortest(fwords,ifrom+fwords[ifrom][alt_id][2],ito)   *             if fwords[ifrom][alt_id][0] != EPSILON:   *                 currmin += 1             # <<<<<<<<<<<<<<   *             if currmin < min:   *                 min = currmin   */ -      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_currmin, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 948; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_currmin, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 956; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF_SET(__pyx_v_currmin, __pyx_t_1);        __pyx_t_1 = 0; @@ -49728,19 +49842,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_18shortest(st      }      __pyx_L7:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":949 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":957   *             if fwords[ifrom][alt_id][0] != EPSILON:   *                 currmin += 1   *             if currmin < min:             # <<<<<<<<<<<<<<   *                 min = currmin   *         return min   */ -    __pyx_t_1 = PyObject_RichCompare(__pyx_v_currmin, __pyx_v_min, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_currmin, __pyx_v_min, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":950 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":958   *                 currmin += 1   *             if currmin < min:   *                 min = currmin             # <<<<<<<<<<<<<< @@ -49754,7 +49868,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_18shortest(st      __pyx_L8:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":951 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":959   *             if currmin < min:   *                 min = currmin   *         return min             # <<<<<<<<<<<<<< @@ -49766,7 +49880,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_18shortest(st    __pyx_r = __pyx_v_min;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":938 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":946   *         return ret   *    *     def shortest(self, fwords, ifrom, ito):             # <<<<<<<<<<<<<< @@ -49789,7 +49903,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_18shortest(st    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":953 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":961   *         return min   *    *     def get_next_states(self, _columns, curr_idx, min_dist=2):             # <<<<<<<<<<<<<< @@ -49831,7 +49945,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_21get_next_st          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_curr_idx)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("get_next_states", 0, 2, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 953; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("get_next_states", 0, 2, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (kw_args > 0) { @@ -49840,7 +49954,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_21get_next_st          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_next_states") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 953; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_next_states") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -49857,7 +49971,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_21get_next_st    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("get_next_states", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 953; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("get_next_states", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.get_next_states", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -49895,26 +50009,26 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("get_next_states", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":954 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":962   *    *     def get_next_states(self, _columns, curr_idx, min_dist=2):   *         result = []             # <<<<<<<<<<<<<<   *         candidate = [[curr_idx,0]]   *    */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_result = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":955 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":963   *     def get_next_states(self, _columns, curr_idx, min_dist=2):   *         result = []   *         candidate = [[curr_idx,0]]             # <<<<<<<<<<<<<<   *    *         while len(candidate) > 0:   */ -  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(__pyx_v_curr_idx);    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_curr_idx); @@ -49922,7 +50036,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st    __Pyx_INCREF(__pyx_int_0);    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_0);    __Pyx_GIVEREF(__pyx_int_0); -  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); @@ -49930,7 +50044,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st    __pyx_v_candidate = ((PyObject*)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":957 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":965   *         candidate = [[curr_idx,0]]   *    *         while len(candidate) > 0:             # <<<<<<<<<<<<<< @@ -49938,42 +50052,42 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st   *             if curr[0] >= len(_columns):   */    while (1) { -    __pyx_t_3 = PyList_GET_SIZE(__pyx_v_candidate); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyList_GET_SIZE(__pyx_v_candidate); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_t_4 = ((__pyx_t_3 > 0) != 0);      if (!__pyx_t_4) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":958 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":966   *    *         while len(candidate) > 0:   *             curr = candidate.pop()             # <<<<<<<<<<<<<<   *             if curr[0] >= len(_columns):   *                 continue   */ -    __pyx_t_2 = __Pyx_PyList_Pop(__pyx_v_candidate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 958; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyList_Pop(__pyx_v_candidate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_XDECREF_SET(__pyx_v_curr, __pyx_t_2);      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":959 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":967   *         while len(candidate) > 0:   *             curr = candidate.pop()   *             if curr[0] >= len(_columns):             # <<<<<<<<<<<<<<   *                 continue   *             if curr[0] not in result and min_dist <= curr[1] <= self.max_initial_size:   */ -    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_curr, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_curr, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_3 = PyObject_Length(__pyx_v__columns); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_Length(__pyx_v__columns); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":960 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":968   *             curr = candidate.pop()   *             if curr[0] >= len(_columns):   *                 continue             # <<<<<<<<<<<<<< @@ -49983,30 +50097,30 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st        goto __pyx_L3_continue;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":961 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":969   *             if curr[0] >= len(_columns):   *                 continue   *             if curr[0] not in result and min_dist <= curr[1] <= self.max_initial_size:             # <<<<<<<<<<<<<<   *                 result.append(curr[0]);   *             curr_col = _columns[curr[0]]   */ -    __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_curr, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_curr, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_t_5, __pyx_v_result, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_t_5, __pyx_v_result, Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      if (__pyx_t_4) { -      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_curr, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_curr, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_5); -      __pyx_t_1 = PyObject_RichCompare(__pyx_v_min_dist, __pyx_t_5, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_v_min_dist, __pyx_t_5, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {          __Pyx_DECREF(__pyx_t_1); -        __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_2); -        __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_t_2, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_t_2, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        }        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __pyx_t_7 = __pyx_t_6;      } else { @@ -50014,37 +50128,37 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st      }      if (__pyx_t_7) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":962 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":970   *                 continue   *             if curr[0] not in result and min_dist <= curr[1] <= self.max_initial_size:   *                 result.append(curr[0]);             # <<<<<<<<<<<<<<   *             curr_col = _columns[curr[0]]   *             for alt in curr_col:   */ -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        goto __pyx_L6;      }      __pyx_L6:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":963 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":971   *             if curr[0] not in result and min_dist <= curr[1] <= self.max_initial_size:   *                 result.append(curr[0]);   *             curr_col = _columns[curr[0]]             # <<<<<<<<<<<<<<   *             for alt in curr_col:   *                 next_id = curr[0]+alt[2]   */ -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_5 = PyObject_GetItem(__pyx_v__columns, __pyx_t_1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_5 = PyObject_GetItem(__pyx_v__columns, __pyx_t_1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_XDECREF_SET(__pyx_v_curr_col, __pyx_t_5);      __pyx_t_5 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":964 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":972   *                 result.append(curr[0]);   *             curr_col = _columns[curr[0]]   *             for alt in curr_col:             # <<<<<<<<<<<<<< @@ -50055,7 +50169,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st        __pyx_t_5 = __pyx_v_curr_col; __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = 0;        __pyx_t_9 = NULL;      } else { -      __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_curr_col); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_curr_col); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext;      } @@ -50063,16 +50177,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st        if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_5)) {          if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_5)) break;          #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #else -        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #endif        } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_5)) {          if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_5)) break;          #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #else -        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #endif        } else {          __pyx_t_1 = __pyx_t_9(__pyx_t_5); @@ -50080,7 +50194,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st            PyObject* exc_type = PyErr_Occurred();            if (exc_type) {              if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -            else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            }            break;          } @@ -50089,25 +50203,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st        __Pyx_XDECREF_SET(__pyx_v_alt, __pyx_t_1);        __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":965 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":973   *             curr_col = _columns[curr[0]]   *             for alt in curr_col:   *                 next_id = curr[0]+alt[2]             # <<<<<<<<<<<<<<   *                 jump = 1   *                 if alt[0] == EPSILON:   */ -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_alt, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_alt, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_10 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_10 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_10);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __Pyx_XDECREF_SET(__pyx_v_next_id, __pyx_t_10);        __pyx_t_10 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":966 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":974   *             for alt in curr_col:   *                 next_id = curr[0]+alt[2]   *                 jump = 1             # <<<<<<<<<<<<<< @@ -50117,25 +50231,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st        __Pyx_INCREF(__pyx_int_1);        __Pyx_XDECREF_SET(__pyx_v_jump, __pyx_int_1); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":967 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":975   *                 next_id = curr[0]+alt[2]   *                 jump = 1   *                 if alt[0] == EPSILON:             # <<<<<<<<<<<<<<   *                     jump = 0   *                 if next_id not in result and min_dist <= curr[1]+jump <= self.max_initial_size+1:   */ -      __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_alt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_alt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_10); -      __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_1 = PyObject_RichCompare(__pyx_t_10, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_t_10, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        if (__pyx_t_7) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":968 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":976   *                 jump = 1   *                 if alt[0] == EPSILON:   *                     jump = 0             # <<<<<<<<<<<<<< @@ -50148,30 +50262,30 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st        }        __pyx_L9:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":969 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":977   *                 if alt[0] == EPSILON:   *                     jump = 0   *                 if next_id not in result and min_dist <= curr[1]+jump <= self.max_initial_size+1:             # <<<<<<<<<<<<<<   *                     candidate.append([next_id,curr[1]+jump])   *         return sorted(result);   */ -      __pyx_t_7 = (__Pyx_PySequence_Contains(__pyx_v_next_id, __pyx_v_result, Py_NE)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = (__Pyx_PySequence_Contains(__pyx_v_next_id, __pyx_v_result, Py_NE)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        if (__pyx_t_7) { -        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_jump); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_jump); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_2);          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        __pyx_t_1 = PyObject_RichCompare(__pyx_v_min_dist, __pyx_t_2, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyObject_RichCompare(__pyx_v_min_dist, __pyx_t_2, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {            __Pyx_DECREF(__pyx_t_1); -          __pyx_t_10 = __Pyx_PyInt_From_long((__pyx_v_self->max_initial_size + 1)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = __Pyx_PyInt_From_long((__pyx_v_self->max_initial_size + 1)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10); -          __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_10, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_10, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;          }          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          __pyx_t_6 = __pyx_t_4;        } else { @@ -50179,19 +50293,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st        }        if (__pyx_t_6) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":970 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":978   *                     jump = 0   *                 if next_id not in result and min_dist <= curr[1]+jump <= self.max_initial_size+1:   *                     candidate.append([next_id,curr[1]+jump])             # <<<<<<<<<<<<<<   *         return sorted(result);   *    */ -        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_jump); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_jump); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_2);          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1);          __Pyx_INCREF(__pyx_v_next_id);          PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_next_id); @@ -50199,7 +50313,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st          PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);          __Pyx_GIVEREF(__pyx_t_2);          __pyx_t_2 = 0; -        __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_candidate, __pyx_t_1); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_candidate, __pyx_t_1); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          goto __pyx_L10;        } @@ -50209,7 +50323,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st      __pyx_L3_continue:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":971 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":979   *                 if next_id not in result and min_dist <= curr[1]+jump <= self.max_initial_size+1:   *                     candidate.append([next_id,curr[1]+jump])   *         return sorted(result);             # <<<<<<<<<<<<<< @@ -50217,19 +50331,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st   *     def input(self, fwords, meta, ctx_name=None):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_5);    __Pyx_INCREF(__pyx_v_result);    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_result);    __Pyx_GIVEREF(__pyx_v_result); -  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":953 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":961   *         return min   *    *     def get_next_states(self, _columns, curr_idx, min_dist=2):             # <<<<<<<<<<<<<< @@ -50259,7 +50373,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_20get_next_st  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":973 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":981   *         return sorted(result);   *    *     def input(self, fwords, meta, ctx_name=None):             # <<<<<<<<<<<<<< @@ -50302,7 +50416,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_23input(PyObj          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_meta)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("input", 0, 2, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("input", 0, 2, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (kw_args > 0) { @@ -50311,7 +50425,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_23input(PyObj          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "input") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "input") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -50328,7 +50442,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_23input(PyObj    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("input", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("input", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.input", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -50341,7 +50455,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_23input(PyObj    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1142 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1150   *                         if len(extracts) > 0:   *                             fcount = Counter()   *                             fphrases = defaultdict(lambda: defaultdict(lambda: defaultdict(list)))             # <<<<<<<<<<<<<< @@ -50388,14 +50502,14 @@ static PyObject *__pyx_lambda_funcdef_lambda4(CYTHON_UNUSED PyObject *__pyx_self    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("lambda4", 0);    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_INCREF(((PyObject *)((PyObject*)(&PyList_Type))));    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)(&PyList_Type))));    __Pyx_GIVEREF(((PyObject *)((PyObject*)(&PyList_Type)))); -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -50427,16 +50541,16 @@ static PyObject *__pyx_lambda_funcdef_lambda3(CYTHON_UNUSED PyObject *__pyx_self    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("lambda3", 0);    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_7lambda3_lambda4, 0, __pyx_n_s_input_locals_lambda_locals_lambd, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_7lambda3_lambda4, 0, __pyx_n_s_input_locals_lambda_locals_lambd, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    __pyx_t_2 = 0; -  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -50457,7 +50571,7 @@ static PyObject *__pyx_lambda_funcdef_lambda3(CYTHON_UNUSED PyObject *__pyx_self    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1148 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1156   *                             for f, elist in fphrases.iteritems():   *                                 for e, alslist in elist.iteritems():   *                                     alignment, max_locs = max(alslist.iteritems(), key=lambda x: len(x[1]))             # <<<<<<<<<<<<<< @@ -50489,11 +50603,11 @@ static PyObject *__pyx_lambda_funcdef_lambda5(CYTHON_UNUSED PyObject *__pyx_self    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("lambda5", 0);    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -50511,7 +50625,7 @@ static PyObject *__pyx_lambda_funcdef_lambda5(CYTHON_UNUSED PyObject *__pyx_self  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_4generator14(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1188 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1196   *         if self.online:   *             stats = self.online_stats[ctx_name]   *             f_syms = tuple(word[0][0] for word in fwords)             # <<<<<<<<<<<<<< @@ -50537,7 +50651,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_2genex    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_4generator14, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_4generator14, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -50578,13 +50692,13 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_4gener      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fwords)) { __Pyx_RaiseClosureNameError("fwords"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fwords)) { __Pyx_RaiseClosureNameError("fwords"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }    if (PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fwords) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fwords)) {      __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_fwords; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fwords); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fwords); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    } @@ -50592,16 +50706,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_4gener      if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1); @@ -50609,7 +50723,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_4gener          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -50619,9 +50733,9 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_4gener      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_word, __pyx_t_4);      __Pyx_GIVEREF(__pyx_t_4);      __pyx_t_4 = 0; -    __pyx_t_4 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_word, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_word, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __pyx_r = __pyx_t_5; @@ -50641,7 +50755,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_4gener      __Pyx_XGOTREF(__pyx_t_1);      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;      __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; -    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -50661,7 +50775,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_4gener    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":973 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":981   *         return sorted(result);   *    *     def input(self, fwords, meta, ctx_name=None):             # <<<<<<<<<<<<<< @@ -50696,7 +50810,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_22input(struc    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_ctx_name);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_ctx_name);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -50762,9 +50876,9 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":984 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":992   *         cdef Phrase hiero_phrase   *    *         flen = len(fwords)             # <<<<<<<<<<<<<< @@ -50773,27 +50887,27 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */    __pyx_t_1 = __pyx_cur_scope->__pyx_v_fwords;    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 984; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_cur_scope->__pyx_v_flen = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":985 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":993   *    *         flen = len(fwords)   *         start_time = monitor_cpu()             # <<<<<<<<<<<<<<   *         self.extract_time = 0.0   *         self.intersect_time = 0.0   */ -  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 985; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 985; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 985; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __pyx_cur_scope->__pyx_v_start_time = __pyx_t_4; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":986 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":994   *         flen = len(fwords)   *         start_time = monitor_cpu()   *         self.extract_time = 0.0             # <<<<<<<<<<<<<< @@ -50802,7 +50916,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */    __pyx_cur_scope->__pyx_v_self->extract_time = 0.0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":987 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":995   *         start_time = monitor_cpu()   *         self.extract_time = 0.0   *         self.intersect_time = 0.0             # <<<<<<<<<<<<<< @@ -50811,20 +50925,20 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */    __pyx_cur_scope->__pyx_v_self->intersect_time = 0.0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":988 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":996   *         self.extract_time = 0.0   *         self.intersect_time = 0.0   *         nodes_isteps_away_buffer = {}             # <<<<<<<<<<<<<<   *         hit = 0   *         reachable_buffer = {}   */ -  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 996; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_GIVEREF(__pyx_t_3);    __pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer = ((PyObject*)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":989 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":997   *         self.intersect_time = 0.0   *         nodes_isteps_away_buffer = {}   *         hit = 0             # <<<<<<<<<<<<<< @@ -50833,46 +50947,46 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */    __pyx_cur_scope->__pyx_v_hit = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":990 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":998   *         nodes_isteps_away_buffer = {}   *         hit = 0   *         reachable_buffer = {}             # <<<<<<<<<<<<<<   *    *         # Phrase pairs processed by suffix array extractor.  Do not re-extract   */ -  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_GIVEREF(__pyx_t_3);    __pyx_cur_scope->__pyx_v_reachable_buffer = ((PyObject*)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":995 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1003   *         # during online extraction.  This is probably the hackiest part of   *         # online grammar extraction.   *         seen_phrases = set()             # <<<<<<<<<<<<<<   *    *         # Do not cache between sentences   */ -  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_GIVEREF(__pyx_t_3);    __pyx_cur_scope->__pyx_v_seen_phrases = ((PyObject*)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":998 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1006   *    *         # Do not cache between sentences   *         self.rules.root = ExtendedTrieNode(phrase_location=PhraseLocation())             # <<<<<<<<<<<<<<   *    *         frontier = []   */ -  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_phrase_location, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_phrase_location, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_GIVEREF(__pyx_t_1); @@ -50881,20 +50995,20 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(    __pyx_cur_scope->__pyx_v_self->rules->root = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1000 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1008   *         self.rules.root = ExtendedTrieNode(phrase_location=PhraseLocation())   *    *         frontier = []             # <<<<<<<<<<<<<<   *         for i in range(len(fwords)):   *             for alt in range(0, len(fwords[i])):   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_cur_scope->__pyx_v_frontier = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1001 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1009   *    *         frontier = []   *         for i in range(len(fwords)):             # <<<<<<<<<<<<<< @@ -50903,70 +51017,70 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */    __pyx_t_1 = __pyx_cur_scope->__pyx_v_fwords;    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1001; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_2; __pyx_t_5+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_5; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1002 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1010   *         frontier = []   *         for i in range(len(fwords)):   *             for alt in range(0, len(fwords[i])):             # <<<<<<<<<<<<<<   *                 if fwords[i][alt][0] != EPSILON:   *                     frontier.append((i, i, (i,), alt, 0, self.rules.root, (), False))   */ -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1010; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {        __pyx_cur_scope->__pyx_v_alt = __pyx_t_7; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1003 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1011   *         for i in range(len(fwords)):   *             for alt in range(0, len(fwords[i])):   *                 if fwords[i][alt][0] != EPSILON:             # <<<<<<<<<<<<<<   *                     frontier.append((i, i, (i,), alt, 0, self.rules.root, (), False))   *    */ -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_alt, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_alt, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        if (__pyx_t_9) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1004 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1012   *             for alt in range(0, len(fwords[i])):   *                 if fwords[i][alt][0] != EPSILON:   *                     frontier.append((i, i, (i,), alt, 0, self.rules.root, (), False))             # <<<<<<<<<<<<<<   *    *         xroot = None   */ -        __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_8); -        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3); -        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_10);          PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1);          __Pyx_GIVEREF(__pyx_t_1);          __pyx_t_1 = 0; -        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_alt); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_alt); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_11 = PyTuple_New(8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_11 = PyTuple_New(8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_11);          PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8);          __Pyx_GIVEREF(__pyx_t_8); @@ -50992,7 +51106,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __pyx_t_3 = 0;          __pyx_t_10 = 0;          __pyx_t_1 = 0; -        __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_frontier, __pyx_t_11); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_frontier, __pyx_t_11); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;          goto __pyx_L8;        } @@ -51000,7 +51114,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(      }    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1006 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1014   *                     frontier.append((i, i, (i,), alt, 0, self.rules.root, (), False))   *    *         xroot = None             # <<<<<<<<<<<<<< @@ -51011,7 +51125,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(    __Pyx_GIVEREF(Py_None);    __pyx_cur_scope->__pyx_v_xroot = Py_None; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1007 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1015   *    *         xroot = None   *         x1 = sym_setindex(self.category, 1)             # <<<<<<<<<<<<<< @@ -51020,33 +51134,33 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */    __pyx_cur_scope->__pyx_v_x1 = __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1008 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1016   *         xroot = None   *         x1 = sym_setindex(self.category, 1)   *         if x1 in self.rules.root.children:             # <<<<<<<<<<<<<<   *             xroot = self.rules.root.children[x1]   *         else:   */ -  __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_x1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_x1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_11); -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->rules->root, __pyx_n_s_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->rules->root, __pyx_n_s_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_9 = (__Pyx_PySequence_Contains(__pyx_t_11, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_9 = (__Pyx_PySequence_Contains(__pyx_t_11, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_t_13 = (__pyx_t_9 != 0);    if (__pyx_t_13) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1009 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1017   *         x1 = sym_setindex(self.category, 1)   *         if x1 in self.rules.root.children:   *             xroot = self.rules.root.children[x1]             # <<<<<<<<<<<<<<   *         else:   *             xroot = ExtendedTrieNode(suffix_link=self.rules.root, phrase_location=PhraseLocation())   */ -    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->rules->root, __pyx_n_s_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->rules->root, __pyx_n_s_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_x1, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_x1, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_11);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_xroot); @@ -51057,21 +51171,21 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1011 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1019   *             xroot = self.rules.root.children[x1]   *         else:   *             xroot = ExtendedTrieNode(suffix_link=self.rules.root, phrase_location=PhraseLocation())             # <<<<<<<<<<<<<<   *             self.rules.root.children[x1] = xroot   *    */ -    __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_11); -    if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_suffix_link, __pyx_cur_scope->__pyx_v_self->rules->root) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_suffix_link, __pyx_cur_scope->__pyx_v_self->rules->root) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_phrase_location, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_phrase_location, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_11); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_11); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_xroot); @@ -51079,21 +51193,21 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(      __Pyx_GIVEREF(__pyx_t_1);      __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1012 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1020   *         else:   *             xroot = ExtendedTrieNode(suffix_link=self.rules.root, phrase_location=PhraseLocation())   *             self.rules.root.children[x1] = xroot             # <<<<<<<<<<<<<<   *    *         for i in range(self.min_gap_size, len(fwords)):   */ -    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->rules->root, __pyx_n_s_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->rules->root, __pyx_n_s_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_x1, __pyx_cur_scope->__pyx_v_xroot, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_x1, __pyx_cur_scope->__pyx_v_xroot, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    }    __pyx_L9:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1014 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1022   *             self.rules.root.children[x1] = xroot   *    *         for i in range(self.min_gap_size, len(fwords)):             # <<<<<<<<<<<<<< @@ -51102,79 +51216,79 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */    __pyx_t_1 = __pyx_cur_scope->__pyx_v_fwords;    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1014; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    for (__pyx_t_5 = __pyx_cur_scope->__pyx_v_self->min_gap_size; __pyx_t_5 < __pyx_t_2; __pyx_t_5+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_5; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1015 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1023   *    *         for i in range(self.min_gap_size, len(fwords)):   *             for alt in range(0, len(fwords[i])):             # <<<<<<<<<<<<<<   *                 if fwords[i][alt][0] != EPSILON:   *                     frontier.append((i-self.min_gap_size, i, (i,), alt, self.min_gap_size, xroot, (x1,), True))   */ -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1015; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {        __pyx_cur_scope->__pyx_v_alt = __pyx_t_7; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1016 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1024   *         for i in range(self.min_gap_size, len(fwords)):   *             for alt in range(0, len(fwords[i])):   *                 if fwords[i][alt][0] != EPSILON:             # <<<<<<<<<<<<<<   *                     frontier.append((i-self.min_gap_size, i, (i,), alt, self.min_gap_size, xroot, (x1,), True))   *    */ -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_alt, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_alt, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_11);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -      __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_11); -      __pyx_t_10 = PyObject_RichCompare(__pyx_t_1, __pyx_t_11, Py_NE); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_10 = PyObject_RichCompare(__pyx_t_1, __pyx_t_11, Py_NE); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;        if (__pyx_t_13) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1017 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1025   *             for alt in range(0, len(fwords[i])):   *                 if fwords[i][alt][0] != EPSILON:   *                     frontier.append((i-self.min_gap_size, i, (i,), alt, self.min_gap_size, xroot, (x1,), True))             # <<<<<<<<<<<<<<   *    *         next_states = []   */ -        __pyx_t_10 = __Pyx_PyInt_From_int((__pyx_cur_scope->__pyx_v_i - __pyx_cur_scope->__pyx_v_self->min_gap_size)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_10 = __Pyx_PyInt_From_int((__pyx_cur_scope->__pyx_v_i - __pyx_cur_scope->__pyx_v_self->min_gap_size)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_10); -        __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_11); -        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3);          PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);          __Pyx_GIVEREF(__pyx_t_1);          __pyx_t_1 = 0; -        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_alt); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_alt); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_8); -        __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_x1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_x1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_14); -        __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_15);          PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14);          __Pyx_GIVEREF(__pyx_t_14);          __pyx_t_14 = 0; -        __pyx_t_14 = PyTuple_New(8); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_14 = PyTuple_New(8); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_14);          PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_10);          __Pyx_GIVEREF(__pyx_t_10); @@ -51200,7 +51314,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __pyx_t_1 = 0;          __pyx_t_8 = 0;          __pyx_t_15 = 0; -        __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_frontier, __pyx_t_14); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_frontier, __pyx_t_14); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;          goto __pyx_L14;        } @@ -51208,20 +51322,20 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(      }    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1019 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1027   *                     frontier.append((i-self.min_gap_size, i, (i,), alt, self.min_gap_size, xroot, (x1,), True))   *    *         next_states = []             # <<<<<<<<<<<<<<   *         for i in range(len(fwords)):   *             next_states.append(self.get_next_states(fwords,i,self.min_gap_size))   */ -  __pyx_t_14 = PyList_New(0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_14 = PyList_New(0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_14);    __Pyx_GIVEREF(__pyx_t_14);    __pyx_cur_scope->__pyx_v_next_states = ((PyObject*)__pyx_t_14);    __pyx_t_14 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1020 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1028   *    *         next_states = []   *         for i in range(len(fwords)):             # <<<<<<<<<<<<<< @@ -51230,25 +51344,25 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */    __pyx_t_14 = __pyx_cur_scope->__pyx_v_fwords;    __Pyx_INCREF(__pyx_t_14); -  __pyx_t_2 = PyObject_Length(__pyx_t_14); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Length(__pyx_t_14); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;    for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_2; __pyx_t_5+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_5; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1021 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1029   *         next_states = []   *         for i in range(len(fwords)):   *             next_states.append(self.get_next_states(fwords,i,self.min_gap_size))             # <<<<<<<<<<<<<<   *    *         while len(frontier) > 0:   */ -    __pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_get_next_states); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_get_next_states); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_14); -    __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_15); -    __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8); -    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_fwords);      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_fwords); @@ -51259,15 +51373,15 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(      __Pyx_GIVEREF(__pyx_t_8);      __pyx_t_15 = 0;      __pyx_t_8 = 0; -    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8);      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_next_states, __pyx_t_8); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_next_states, __pyx_t_8); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1023 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1031   *             next_states.append(self.get_next_states(fwords,i,self.min_gap_size))   *    *         while len(frontier) > 0:             # <<<<<<<<<<<<<< @@ -51275,25 +51389,25 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   *             for k, i, input_match, alt, pathlen, node, prefix, is_shadow_path in frontier:   */    while (1) { -    __pyx_t_2 = PyList_GET_SIZE(__pyx_cur_scope->__pyx_v_frontier); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyList_GET_SIZE(__pyx_cur_scope->__pyx_v_frontier); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_t_13 = ((__pyx_t_2 > 0) != 0);      if (!__pyx_t_13) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1024 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1032   *    *         while len(frontier) > 0:   *             new_frontier = []             # <<<<<<<<<<<<<<   *             for k, i, input_match, alt, pathlen, node, prefix, is_shadow_path in frontier:   *                 word_id = fwords[i][alt][0]   */ -    __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8);      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_new_frontier);      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_new_frontier, ((PyObject*)__pyx_t_8));      __Pyx_GIVEREF(__pyx_t_8);      __pyx_t_8 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1025 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1033   *         while len(frontier) > 0:   *             new_frontier = []   *             for k, i, input_match, alt, pathlen, node, prefix, is_shadow_path in frontier:             # <<<<<<<<<<<<<< @@ -51304,9 +51418,9 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(      for (;;) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_8)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif        if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {          PyObject* sequence = __pyx_t_1; @@ -51318,7 +51432,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          if (unlikely(size != 8)) {            if (size > 8) __Pyx_RaiseTooManyValuesError(8);            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          #if CYTHON_COMPILING_IN_CPYTHON          if (likely(PyTuple_CheckExact(sequence))) { @@ -51353,7 +51467,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            Py_ssize_t i;            PyObject** temps[8] = {&__pyx_t_14,&__pyx_t_15,&__pyx_t_3,&__pyx_t_11,&__pyx_t_10,&__pyx_t_16,&__pyx_t_17,&__pyx_t_18};            for (i=0; i < 8; i++) { -            PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(item);              *(temps[i]) = item;            } @@ -51363,7 +51477,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        } else {          Py_ssize_t index = -1;          PyObject** temps[8] = {&__pyx_t_14,&__pyx_t_15,&__pyx_t_3,&__pyx_t_11,&__pyx_t_10,&__pyx_t_16,&__pyx_t_17,&__pyx_t_18}; -        __pyx_t_19 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_19 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_19);          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          __pyx_t_20 = Py_TYPE(__pyx_t_19)->tp_iternext; @@ -51372,7 +51486,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_GOTREF(item);            *(temps[index]) = item;          } -        if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_19), 8) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_19), 8) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __pyx_t_20 = NULL;          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;          goto __pyx_L22_unpacking_done; @@ -51380,14 +51494,14 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;          __pyx_t_20 = NULL;          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __pyx_L22_unpacking_done:;        } -      __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -      __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_15); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_15); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -      __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;        __pyx_cur_scope->__pyx_v_k = __pyx_t_5;        __pyx_cur_scope->__pyx_v_i = __pyx_t_7; @@ -51413,19 +51527,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        __Pyx_GIVEREF(__pyx_t_18);        __pyx_t_18 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1026 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1034   *             new_frontier = []   *             for k, i, input_match, alt, pathlen, node, prefix, is_shadow_path in frontier:   *                 word_id = fwords[i][alt][0]             # <<<<<<<<<<<<<<   *                 spanlen = fwords[i][alt][2]   *                 # TODO get rid of k -- pathlen is replacing it   */ -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_alt, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_18 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_alt, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_18 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_18);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_18, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_18, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;        __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_word_id); @@ -51433,19 +51547,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        __Pyx_GIVEREF(__pyx_t_1);        __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1027 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1035   *             for k, i, input_match, alt, pathlen, node, prefix, is_shadow_path in frontier:   *                 word_id = fwords[i][alt][0]   *                 spanlen = fwords[i][alt][2]             # <<<<<<<<<<<<<<   *                 # TODO get rid of k -- pathlen is replacing it   *                 if word_id == EPSILON:   */ -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_fwords, __pyx_cur_scope->__pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_alt, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_18 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_1, __pyx_cur_scope->__pyx_v_alt, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_18 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_18);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_18, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_18, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;        __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_spanlen); @@ -51453,47 +51567,47 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        __Pyx_GIVEREF(__pyx_t_1);        __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1029 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1037   *                 spanlen = fwords[i][alt][2]   *                 # TODO get rid of k -- pathlen is replacing it   *                 if word_id == EPSILON:             # <<<<<<<<<<<<<<   *                     # skipping because word_id is epsilon   *                     if i+spanlen >= len(fwords):   */ -      __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_4cdec_2sa_3_sa_EPSILON); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_18 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_word_id, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_18 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_word_id, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;        if (__pyx_t_13) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1031 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1039   *                 if word_id == EPSILON:   *                     # skipping because word_id is epsilon   *                     if i+spanlen >= len(fwords):             # <<<<<<<<<<<<<<   *                         continue   *                     for nualt in range(0,len(fwords[i+spanlen])):   */ -        __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_18); -        __pyx_t_1 = PyNumber_Add(__pyx_t_18, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyNumber_Add(__pyx_t_18, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1);          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;          __pyx_t_18 = __pyx_cur_scope->__pyx_v_fwords;          __Pyx_INCREF(__pyx_t_18); -        __pyx_t_6 = PyObject_Length(__pyx_t_18); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = PyObject_Length(__pyx_t_18); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -        __pyx_t_18 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_18 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_18); -        __pyx_t_17 = PyObject_RichCompare(__pyx_t_1, __pyx_t_18, Py_GE); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_17 = PyObject_RichCompare(__pyx_t_1, __pyx_t_18, Py_GE); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;          if (__pyx_t_13) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1032 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1040   *                     # skipping because word_id is epsilon   *                     if i+spanlen >= len(fwords):   *                         continue             # <<<<<<<<<<<<<< @@ -51503,43 +51617,43 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            goto __pyx_L19_continue;          } -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1033 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1041   *                     if i+spanlen >= len(fwords):   *                         continue   *                     for nualt in range(0,len(fwords[i+spanlen])):             # <<<<<<<<<<<<<<   *                         frontier.append((k, i+spanlen, input_match, nualt, pathlen, node, prefix, is_shadow_path))   *                     continue   */ -        __pyx_t_17 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_17 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_17); -        __pyx_t_18 = PyNumber_Add(__pyx_t_17, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_18 = PyNumber_Add(__pyx_t_17, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_18);          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; -        __pyx_t_17 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fwords, __pyx_t_18); if (unlikely(__pyx_t_17 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_17 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fwords, __pyx_t_18); if (unlikely(__pyx_t_17 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_17);          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -        __pyx_t_6 = PyObject_Length(__pyx_t_17); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = PyObject_Length(__pyx_t_17); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;          for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_6; __pyx_t_21+=1) {            __pyx_cur_scope->__pyx_v_nualt = __pyx_t_21; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1034 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1042   *                         continue   *                     for nualt in range(0,len(fwords[i+spanlen])):   *                         frontier.append((k, i+spanlen, input_match, nualt, pathlen, node, prefix, is_shadow_path))             # <<<<<<<<<<<<<<   *                     continue   *    */ -          __pyx_t_17 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_17 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_17); -          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18); -          __pyx_t_1 = PyNumber_Add(__pyx_t_18, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PyNumber_Add(__pyx_t_18, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_1);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_nualt); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_nualt); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18); -          __pyx_t_16 = PyTuple_New(8); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_16 = PyTuple_New(8); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_16);            PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_17);            __Pyx_GIVEREF(__pyx_t_17); @@ -51565,11 +51679,11 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __pyx_t_17 = 0;            __pyx_t_1 = 0;            __pyx_t_18 = 0; -          __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_frontier, __pyx_t_16); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_frontier, __pyx_t_16); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;          } -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1035 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1043   *                     for nualt in range(0,len(fwords[i+spanlen])):   *                         frontier.append((k, i+spanlen, input_match, nualt, pathlen, node, prefix, is_shadow_path))   *                     continue             # <<<<<<<<<<<<<< @@ -51579,19 +51693,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          goto __pyx_L19_continue;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1037 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1045   *                     continue   *    *                 phrase = prefix + (word_id,)             # <<<<<<<<<<<<<<   *                 hiero_phrase = Phrase(phrase)   *                 arity = hiero_phrase.arity()   */ -      __pyx_t_16 = PyTuple_New(1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_16 = PyTuple_New(1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_16);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_word_id);        PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_cur_scope->__pyx_v_word_id);        __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_word_id); -      __pyx_t_18 = PyNumber_Add(__pyx_cur_scope->__pyx_v_prefix, __pyx_t_16); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_18 = PyNumber_Add(__pyx_cur_scope->__pyx_v_prefix, __pyx_t_16); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_18);        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;        __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_phrase); @@ -51599,19 +51713,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        __Pyx_GIVEREF(__pyx_t_18);        __pyx_t_18 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1038 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1046   *    *                 phrase = prefix + (word_id,)   *                 hiero_phrase = Phrase(phrase)             # <<<<<<<<<<<<<<   *                 arity = hiero_phrase.arity()   *    */ -      __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_18);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_phrase);        PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_cur_scope->__pyx_v_phrase);        __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_phrase); -      __pyx_t_16 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_18, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_16 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_18, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_16);        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;        __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_hiero_phrase)); @@ -51619,23 +51733,23 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        __Pyx_GIVEREF(__pyx_t_16);        __pyx_t_16 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1039 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1047   *                 phrase = prefix + (word_id,)   *                 hiero_phrase = Phrase(phrase)   *                 arity = hiero_phrase.arity()             # <<<<<<<<<<<<<<   *    *                 lookup_required = False   */ -      __pyx_t_16 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_hiero_phrase), __pyx_n_s_arity); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_16 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_hiero_phrase), __pyx_n_s_arity); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_16); -      __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_18);        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; -      __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_t_18); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_t_18); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;        __pyx_cur_scope->__pyx_v_arity = __pyx_t_21; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1041 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1049   *                 arity = hiero_phrase.arity()   *    *                 lookup_required = False             # <<<<<<<<<<<<<< @@ -51644,30 +51758,30 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */        __pyx_cur_scope->__pyx_v_lookup_required = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1042 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1050   *    *                 lookup_required = False   *                 if word_id in node.children:             # <<<<<<<<<<<<<<   *                     if node.children[word_id] is None:   *                         # Path dead-ends at this node   */ -      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_18); -      __pyx_t_13 = (__Pyx_PySequence_Contains(__pyx_cur_scope->__pyx_v_word_id, __pyx_t_18, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_13 = (__Pyx_PySequence_Contains(__pyx_cur_scope->__pyx_v_word_id, __pyx_t_18, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;        __pyx_t_9 = (__pyx_t_13 != 0);        if (__pyx_t_9) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1043 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1051   *                 lookup_required = False   *                 if word_id in node.children:   *                     if node.children[word_id] is None:             # <<<<<<<<<<<<<<   *                         # Path dead-ends at this node   *                         continue   */ -        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1043; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1051; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_18); -        __pyx_t_16 = PyObject_GetItem(__pyx_t_18, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_16 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_16 = PyObject_GetItem(__pyx_t_18, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_16 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1051; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_16);          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;          __pyx_t_9 = (__pyx_t_16 == Py_None); @@ -51675,7 +51789,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __pyx_t_13 = (__pyx_t_9 != 0);          if (__pyx_t_13) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1045 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1053   *                     if node.children[word_id] is None:   *                         # Path dead-ends at this node   *                         continue             # <<<<<<<<<<<<<< @@ -51686,16 +51800,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1048 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1056   *                     else:   *                         # Path continues at this node   *                         node = node.children[word_id]             # <<<<<<<<<<<<<<   *                 else:   *                     if node.suffix_link is None:   */ -          __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1056; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_16); -          __pyx_t_18 = PyObject_GetItem(__pyx_t_16, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_18 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +          __pyx_t_18 = PyObject_GetItem(__pyx_t_16, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_18 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1056; __pyx_clineno = __LINE__; goto __pyx_L1_error;};            __Pyx_GOTREF(__pyx_t_18);            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_node); @@ -51707,21 +51821,21 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        }        /*else*/ { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1050 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1058   *                         node = node.children[word_id]   *                 else:   *                     if node.suffix_link is None:             # <<<<<<<<<<<<<<   *                         # Current node is root; lookup required   *                         lookup_required = True   */ -        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_18);          __pyx_t_13 = (__pyx_t_18 == Py_None);          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;          __pyx_t_9 = (__pyx_t_13 != 0);          if (__pyx_t_9) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1052 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1060   *                     if node.suffix_link is None:   *                         # Current node is root; lookup required   *                         lookup_required = True             # <<<<<<<<<<<<<< @@ -51733,36 +51847,36 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1054 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1062   *                         lookup_required = True   *                     else:   *                         if word_id in node.suffix_link.children:             # <<<<<<<<<<<<<<   *                             if node.suffix_link.children[word_id] is None:   *                                 # Suffix link reports path is dead end   */ -          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1054; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18); -          __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_children); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1054; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_children); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_16);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          __pyx_t_9 = (__Pyx_PySequence_Contains(__pyx_cur_scope->__pyx_v_word_id, __pyx_t_16, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1054; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_9 = (__Pyx_PySequence_Contains(__pyx_cur_scope->__pyx_v_word_id, __pyx_t_16, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;            __pyx_t_13 = (__pyx_t_9 != 0);            if (__pyx_t_13) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1055 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1063   *                     else:   *                         if word_id in node.suffix_link.children:   *                             if node.suffix_link.children[word_id] is None:             # <<<<<<<<<<<<<<   *                                 # Suffix link reports path is dead end   *                                 node.children[word_id] = None   */ -            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1063; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_16); -            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_children); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_children); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1063; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_18);              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; -            __pyx_t_16 = PyObject_GetItem(__pyx_t_18, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_16 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +            __pyx_t_16 = PyObject_GetItem(__pyx_t_18, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_16 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1063; __pyx_clineno = __LINE__; goto __pyx_L1_error;};              __Pyx_GOTREF(__pyx_t_16);              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;              __pyx_t_13 = (__pyx_t_16 == Py_None); @@ -51770,19 +51884,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __pyx_t_9 = (__pyx_t_13 != 0);              if (__pyx_t_9) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1057 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1065   *                             if node.suffix_link.children[word_id] is None:   *                                 # Suffix link reports path is dead end   *                                 node.children[word_id] = None             # <<<<<<<<<<<<<<   *                                 continue   *                             else:   */ -              __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1057; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_16); -              if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_cur_scope->__pyx_v_word_id, Py_None) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1057; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_cur_scope->__pyx_v_word_id, Py_None) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1058 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1066   *                                 # Suffix link reports path is dead end   *                                 node.children[word_id] = None   *                                 continue             # <<<<<<<<<<<<<< @@ -51793,7 +51907,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              }              /*else*/ { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1061 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1069   *                             else:   *                                 # Suffix link indicates lookup is reqired   *                                 lookup_required = True             # <<<<<<<<<<<<<< @@ -51806,18 +51920,18 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            }            /*else*/ { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1064 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1072   *                         else:   *                             #ERROR: We never get here   *                             raise Exception("Keyword trie error")             # <<<<<<<<<<<<<<   *                 # checking whether lookup_required   *                 if lookup_required:   */ -            __pyx_t_16 = __Pyx_PyObject_Call(__pyx_builtin_Exception, __pyx_tuple__66, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_16 = __Pyx_PyObject_Call(__pyx_builtin_Exception, __pyx_tuple__66, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_16);              __Pyx_Raise(__pyx_t_16, 0, 0, 0);              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; -            {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            }            __pyx_L30:;          } @@ -51825,7 +51939,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        }        __pyx_L27:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1066 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1074   *                             raise Exception("Keyword trie error")   *                 # checking whether lookup_required   *                 if lookup_required:             # <<<<<<<<<<<<<< @@ -51835,7 +51949,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        __pyx_t_9 = (__pyx_cur_scope->__pyx_v_lookup_required != 0);        if (__pyx_t_9) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1067 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1075   *                 # checking whether lookup_required   *                 if lookup_required:   *                     new_node = None             # <<<<<<<<<<<<<< @@ -51847,74 +51961,74 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_new_node, Py_None);          __Pyx_GIVEREF(Py_None); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1068 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1076   *                 if lookup_required:   *                     new_node = None   *                     if is_shadow_path:             # <<<<<<<<<<<<<<   *                         # Extending shadow path   *                         # on the shadow path we don't do any search, we just use info from suffix link   */ -        __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_is_shadow_path); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1068; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_is_shadow_path); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          if (__pyx_t_9) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1071 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1079   *                         # Extending shadow path   *                         # on the shadow path we don't do any search, we just use info from suffix link   *                         new_node = ExtendedTrieNode(phrase_location=node.suffix_link.children[word_id].phrase_location,             # <<<<<<<<<<<<<<   *                                 suffix_link=node.suffix_link.children[word_id],   *                                 phrase=hiero_phrase)   */ -          __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_16); -          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18); -          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_1);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          __pyx_t_18 = PyObject_GetItem(__pyx_t_1, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_18 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +          __pyx_t_18 = PyObject_GetItem(__pyx_t_1, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_18 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;};            __Pyx_GOTREF(__pyx_t_18);            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_1);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_phrase_location, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_phrase_location, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1072 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1080   *                         # on the shadow path we don't do any search, we just use info from suffix link   *                         new_node = ExtendedTrieNode(phrase_location=node.suffix_link.children[word_id].phrase_location,   *                                 suffix_link=node.suffix_link.children[word_id],             # <<<<<<<<<<<<<<   *                                 phrase=hiero_phrase)   *                     else:   */ -          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_1); -          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_children); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_children); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          __pyx_t_1 = PyObject_GetItem(__pyx_t_18, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +          __pyx_t_1 = PyObject_GetItem(__pyx_t_18, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;};            __Pyx_GOTREF(__pyx_t_1);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_suffix_link, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_suffix_link, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1073 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1081   *                         new_node = ExtendedTrieNode(phrase_location=node.suffix_link.children[word_id].phrase_location,   *                                 suffix_link=node.suffix_link.children[word_id],   *                                 phrase=hiero_phrase)             # <<<<<<<<<<<<<<   *                     else:   *                         if arity > 0:   */ -          if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_phrase, ((PyObject *)__pyx_cur_scope->__pyx_v_hiero_phrase)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_phrase, ((PyObject *)__pyx_cur_scope->__pyx_v_hiero_phrase)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1071 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1079   *                         # Extending shadow path   *                         # on the shadow path we don't do any search, we just use info from suffix link   *                         new_node = ExtendedTrieNode(phrase_location=node.suffix_link.children[word_id].phrase_location,             # <<<<<<<<<<<<<<   *                                 suffix_link=node.suffix_link.children[word_id],   *                                 phrase=hiero_phrase)   */ -          __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_16); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_16); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_1);            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_new_node); @@ -51925,7 +52039,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1075 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1083   *                                 phrase=hiero_phrase)   *                     else:   *                         if arity > 0:             # <<<<<<<<<<<<<< @@ -51935,16 +52049,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __pyx_t_9 = ((__pyx_cur_scope->__pyx_v_arity > 0) != 0);            if (__pyx_t_9) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1077 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1085   *                         if arity > 0:   *                             # Intersecting because of arity > 0   *                             intersect_start_time = monitor_cpu()             # <<<<<<<<<<<<<<   *                             phrase_location = self.intersect(node, node.suffix_link.children[word_id], hiero_phrase)   *                             intersect_stop_time = monitor_cpu()   */ -            __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1085; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1085; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_16);              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;              __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_intersect_start_time); @@ -51952,22 +52066,22 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __Pyx_GIVEREF(__pyx_t_16);              __pyx_t_16 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1078 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1086   *                             # Intersecting because of arity > 0   *                             intersect_start_time = monitor_cpu()   *                             phrase_location = self.intersect(node, node.suffix_link.children[word_id], hiero_phrase)             # <<<<<<<<<<<<<<   *                             intersect_stop_time = monitor_cpu()   *                             self.intersect_time += intersect_stop_time - intersect_start_time   */ -            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_16); -            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_children); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_1);              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; -            __pyx_t_16 = PyObject_GetItem(__pyx_t_1, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_16 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +            __pyx_t_16 = PyObject_GetItem(__pyx_t_1, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_16 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;};              __Pyx_GOTREF(__pyx_t_16);              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -            __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->intersect(__pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_node, __pyx_t_16, __pyx_cur_scope->__pyx_v_hiero_phrase)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->intersect(__pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_node, __pyx_t_16, __pyx_cur_scope->__pyx_v_hiero_phrase)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_1);              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;              __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_phrase_location)); @@ -51975,16 +52089,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __Pyx_GIVEREF(__pyx_t_1);              __pyx_t_1 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1079 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1087   *                             intersect_start_time = monitor_cpu()   *                             phrase_location = self.intersect(node, node.suffix_link.children[word_id], hiero_phrase)   *                             intersect_stop_time = monitor_cpu()             # <<<<<<<<<<<<<<   *                             self.intersect_time += intersect_stop_time - intersect_start_time   *                         else:   */ -            __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_16);              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;              __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_intersect_stop_time); @@ -51992,66 +52106,66 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __Pyx_GIVEREF(__pyx_t_16);              __pyx_t_16 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1080 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1088   *                             phrase_location = self.intersect(node, node.suffix_link.children[word_id], hiero_phrase)   *                             intersect_stop_time = monitor_cpu()   *                             self.intersect_time += intersect_stop_time - intersect_start_time             # <<<<<<<<<<<<<<   *                         else:   *                             # Suffix array search   */ -            __pyx_t_16 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->intersect_time); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_16 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->intersect_time); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_16); -            __pyx_t_1 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_intersect_stop_time, __pyx_cur_scope->__pyx_v_intersect_start_time); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_intersect_stop_time, __pyx_cur_scope->__pyx_v_intersect_start_time); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_18 = PyNumber_InPlaceAdd(__pyx_t_16, __pyx_t_1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_18 = PyNumber_InPlaceAdd(__pyx_t_16, __pyx_t_1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_18);              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -            __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_18); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_18); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;              __pyx_cur_scope->__pyx_v_self->intersect_time = __pyx_t_4;              goto __pyx_L34;            }            /*else*/ { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1083 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1091   *                         else:   *                             # Suffix array search   *                             phrase_location = node.phrase_location             # <<<<<<<<<<<<<<   *                             sa_range = self.fsa.lookup(sym_tostring(phrase[-1]), len(phrase)-1, phrase_location.sa_low, phrase_location.sa_high)   *                             if sa_range is not None:   */ -            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_18); -            if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_phrase_location));              __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_phrase_location, ((struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *)__pyx_t_18));              __Pyx_GIVEREF(__pyx_t_18);              __pyx_t_18 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1084 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1092   *                             # Suffix array search   *                             phrase_location = node.phrase_location   *                             sa_range = self.fsa.lookup(sym_tostring(phrase[-1]), len(phrase)-1, phrase_location.sa_low, phrase_location.sa_high)             # <<<<<<<<<<<<<<   *                             if sa_range is not None:   *                                 phrase_location = PhraseLocation(sa_low=sa_range[0], sa_high=sa_range[1])   */ -            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->fsa), __pyx_n_s_lookup); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->fsa), __pyx_n_s_lookup); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_18); -            __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_phrase, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +            __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_phrase, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;};              __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -            __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_f_4cdec_2sa_3_sa_sym_tostring(__pyx_t_21)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_f_4cdec_2sa_3_sa_sym_tostring(__pyx_t_21)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_6 = PyObject_Length(__pyx_cur_scope->__pyx_v_phrase); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __pyx_t_16 = PyInt_FromSsize_t((__pyx_t_6 - 1)); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_6 = PyObject_Length(__pyx_cur_scope->__pyx_v_phrase); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_16 = PyInt_FromSsize_t((__pyx_t_6 - 1)); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_16); -            __pyx_t_17 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_phrase_location->sa_low); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_17 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_phrase_location->sa_low); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_17); -            __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_phrase_location->sa_high); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_phrase_location->sa_high); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10); -            __pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11);              PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);              __Pyx_GIVEREF(__pyx_t_1); @@ -52065,7 +52179,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __pyx_t_16 = 0;              __pyx_t_17 = 0;              __pyx_t_10 = 0; -            __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_11, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_11, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10);              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; @@ -52074,7 +52188,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __Pyx_GIVEREF(__pyx_t_10);              __pyx_t_10 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1085 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1093   *                             phrase_location = node.phrase_location   *                             sa_range = self.fsa.lookup(sym_tostring(phrase[-1]), len(phrase)-1, phrase_location.sa_low, phrase_location.sa_high)   *                             if sa_range is not None:             # <<<<<<<<<<<<<< @@ -52085,24 +52199,24 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __pyx_t_13 = (__pyx_t_9 != 0);              if (__pyx_t_13) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1086 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1094   *                             sa_range = self.fsa.lookup(sym_tostring(phrase[-1]), len(phrase)-1, phrase_location.sa_low, phrase_location.sa_high)   *                             if sa_range is not None:   *                                 phrase_location = PhraseLocation(sa_low=sa_range[0], sa_high=sa_range[1])             # <<<<<<<<<<<<<<   *                             else:   *                                 phrase_location = None   */ -              __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_10); -              __pyx_t_11 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_sa_range, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +              __pyx_t_11 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_sa_range, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;};                __Pyx_GOTREF(__pyx_t_11); -              if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_sa_low, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_sa_low, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -              __pyx_t_11 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_sa_range, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +              __pyx_t_11 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_sa_range, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;};                __Pyx_GOTREF(__pyx_t_11); -              if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_sa_high, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_sa_high, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -              __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, __pyx_t_10); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_PhraseLocation)), __pyx_empty_tuple, __pyx_t_10); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_11);                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;                __Pyx_GOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_phrase_location)); @@ -52113,7 +52227,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              }              /*else*/ { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1088 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1096   *                                 phrase_location = PhraseLocation(sa_low=sa_range[0], sa_high=sa_range[1])   *                             else:   *                                 phrase_location = None             # <<<<<<<<<<<<<< @@ -52129,7 +52243,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            }            __pyx_L34:; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1090 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1098   *                                 phrase_location = None   *    *                         if phrase_location is None:             # <<<<<<<<<<<<<< @@ -52140,19 +52254,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __pyx_t_9 = (__pyx_t_13 != 0);            if (__pyx_t_9) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1091 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1099   *    *                         if phrase_location is None:   *                             node.children[word_id] = None             # <<<<<<<<<<<<<<   *                             # Search failed   *                             continue   */ -            __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11); -            if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_cur_scope->__pyx_v_word_id, Py_None) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_cur_scope->__pyx_v_word_id, Py_None) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1093 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1101   *                             node.children[word_id] = None   *                             # Search failed   *                             continue             # <<<<<<<<<<<<<< @@ -52162,7 +52276,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              goto __pyx_L19_continue;            } -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1095 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1103   *                             continue   *                         # Search succeeded   *                         suffix_link = self.rules.root             # <<<<<<<<<<<<<< @@ -52176,33 +52290,33 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_GIVEREF(__pyx_t_11);            __pyx_t_11 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1096 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1104   *                         # Search succeeded   *                         suffix_link = self.rules.root   *                         if node.suffix_link is not None:             # <<<<<<<<<<<<<<   *                             suffix_link = node.suffix_link.children[word_id]   *                         new_node = ExtendedTrieNode(phrase_location=phrase_location,   */ -          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1096; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11);            __pyx_t_9 = (__pyx_t_11 != Py_None);            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;            __pyx_t_13 = (__pyx_t_9 != 0);            if (__pyx_t_13) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1097 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1105   *                         suffix_link = self.rules.root   *                         if node.suffix_link is not None:   *                             suffix_link = node.suffix_link.children[word_id]             # <<<<<<<<<<<<<<   *                         new_node = ExtendedTrieNode(phrase_location=phrase_location,   *                                 suffix_link=suffix_link,   */ -            __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11); -            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_children); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_children); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10);              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -            __pyx_t_11 = PyObject_GetItem(__pyx_t_10, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +            __pyx_t_11 = PyObject_GetItem(__pyx_t_10, __pyx_cur_scope->__pyx_v_word_id); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;};              __Pyx_GOTREF(__pyx_t_11);              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;              __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_suffix_link); @@ -52213,43 +52327,43 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            }            __pyx_L37:; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1098 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1106   *                         if node.suffix_link is not None:   *                             suffix_link = node.suffix_link.children[word_id]   *                         new_node = ExtendedTrieNode(phrase_location=phrase_location,             # <<<<<<<<<<<<<<   *                                 suffix_link=suffix_link,   *                                 phrase=hiero_phrase)   */ -          __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11); -          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_phrase_location, ((PyObject *)__pyx_cur_scope->__pyx_v_phrase_location)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_phrase_location, ((PyObject *)__pyx_cur_scope->__pyx_v_phrase_location)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1099 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1107   *                             suffix_link = node.suffix_link.children[word_id]   *                         new_node = ExtendedTrieNode(phrase_location=phrase_location,   *                                 suffix_link=suffix_link,             # <<<<<<<<<<<<<<   *                                 phrase=hiero_phrase)   *                     node.children[word_id] = new_node   */ -          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_suffix_link, __pyx_cur_scope->__pyx_v_suffix_link) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_suffix_link, __pyx_cur_scope->__pyx_v_suffix_link) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1100 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1108   *                         new_node = ExtendedTrieNode(phrase_location=phrase_location,   *                                 suffix_link=suffix_link,   *                                 phrase=hiero_phrase)             # <<<<<<<<<<<<<<   *                     node.children[word_id] = new_node   *                     node = new_node   */ -          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_phrase, ((PyObject *)__pyx_cur_scope->__pyx_v_hiero_phrase)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_phrase, ((PyObject *)__pyx_cur_scope->__pyx_v_hiero_phrase)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1098 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1106   *                         if node.suffix_link is not None:   *                             suffix_link = node.suffix_link.children[word_id]   *                         new_node = ExtendedTrieNode(phrase_location=phrase_location,             # <<<<<<<<<<<<<<   *                                 suffix_link=suffix_link,   *                                 phrase=hiero_phrase)   */ -          __pyx_t_10 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_11); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_11); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10);            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_new_node); @@ -52259,19 +52373,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          }          __pyx_L33:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1101 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1109   *                                 suffix_link=suffix_link,   *                                 phrase=hiero_phrase)   *                     node.children[word_id] = new_node             # <<<<<<<<<<<<<<   *                     node = new_node   *    */ -        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_10); -        if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_cur_scope->__pyx_v_word_id, __pyx_cur_scope->__pyx_v_new_node) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_cur_scope->__pyx_v_word_id, __pyx_cur_scope->__pyx_v_new_node) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1102 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1110   *                                 phrase=hiero_phrase)   *                     node.children[word_id] = new_node   *                     node = new_node             # <<<<<<<<<<<<<< @@ -52283,7 +52397,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_node, __pyx_cur_scope->__pyx_v_new_node);          __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_new_node); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1107 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1115   *                     This should happen before we get to extraction (so that   *                     the node will exist if needed)'''   *                     if arity < self.max_nonterminals:             # <<<<<<<<<<<<<< @@ -52293,31 +52407,31 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __pyx_t_13 = ((__pyx_cur_scope->__pyx_v_arity < __pyx_cur_scope->__pyx_v_self->max_nonterminals) != 0);          if (__pyx_t_13) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1108 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1116   *                     the node will exist if needed)'''   *                     if arity < self.max_nonterminals:   *                         xcat_index = arity+1             # <<<<<<<<<<<<<<   *                         xcat = sym_setindex(self.category, xcat_index)   *                         suffix_link_xcat_index = xcat_index   */ -          __pyx_t_10 = __Pyx_PyInt_From_long((__pyx_cur_scope->__pyx_v_arity + 1)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = __Pyx_PyInt_From_long((__pyx_cur_scope->__pyx_v_arity + 1)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10);            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_xcat_index);            __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_xcat_index, __pyx_t_10);            __Pyx_GIVEREF(__pyx_t_10);            __pyx_t_10 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1109 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1117   *                     if arity < self.max_nonterminals:   *                         xcat_index = arity+1   *                         xcat = sym_setindex(self.category, xcat_index)             # <<<<<<<<<<<<<<   *                         suffix_link_xcat_index = xcat_index   *                         if is_shadow_path:   */ -          __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_cur_scope->__pyx_v_xcat_index); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1109; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_cur_scope->__pyx_v_xcat_index); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __pyx_cur_scope->__pyx_v_xcat = __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, __pyx_t_21); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1110 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1118   *                         xcat_index = arity+1   *                         xcat = sym_setindex(self.category, xcat_index)   *                         suffix_link_xcat_index = xcat_index             # <<<<<<<<<<<<<< @@ -52329,24 +52443,24 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_suffix_link_xcat_index, __pyx_cur_scope->__pyx_v_xcat_index);            __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_xcat_index); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1111 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1119   *                         xcat = sym_setindex(self.category, xcat_index)   *                         suffix_link_xcat_index = xcat_index   *                         if is_shadow_path:             # <<<<<<<<<<<<<<   *                             suffix_link_xcat_index = xcat_index-1   *                         suffix_link_xcat = sym_setindex(self.category, suffix_link_xcat_index)   */ -          __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_is_shadow_path); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1111; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_is_shadow_path); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            if (__pyx_t_13) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1112 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1120   *                         suffix_link_xcat_index = xcat_index   *                         if is_shadow_path:   *                             suffix_link_xcat_index = xcat_index-1             # <<<<<<<<<<<<<<   *                         suffix_link_xcat = sym_setindex(self.category, suffix_link_xcat_index)   *                         node.children[xcat] = ExtendedTrieNode(phrase_location=node.phrase_location,   */ -            __pyx_t_10 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_xcat_index, __pyx_int_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_xcat_index, __pyx_int_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10);              __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_suffix_link_xcat_index);              __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_suffix_link_xcat_index, __pyx_t_10); @@ -52356,159 +52470,159 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            }            __pyx_L39:; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1113 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1121   *                         if is_shadow_path:   *                             suffix_link_xcat_index = xcat_index-1   *                         suffix_link_xcat = sym_setindex(self.category, suffix_link_xcat_index)             # <<<<<<<<<<<<<<   *                         node.children[xcat] = ExtendedTrieNode(phrase_location=node.phrase_location,   *                                 suffix_link=node.suffix_link.children[suffix_link_xcat],   */ -          __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_cur_scope->__pyx_v_suffix_link_xcat_index); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_cur_scope->__pyx_v_suffix_link_xcat_index); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __pyx_cur_scope->__pyx_v_suffix_link_xcat = __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, __pyx_t_21); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1114 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1122   *                             suffix_link_xcat_index = xcat_index-1   *                         suffix_link_xcat = sym_setindex(self.category, suffix_link_xcat_index)   *                         node.children[xcat] = ExtendedTrieNode(phrase_location=node.phrase_location,             # <<<<<<<<<<<<<<   *                                 suffix_link=node.suffix_link.children[suffix_link_xcat],   *                                 phrase= Phrase(phrase + (xcat,)))   */ -          __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10); -          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11); -          if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_phrase_location, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_phrase_location, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1115 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1123   *                         suffix_link_xcat = sym_setindex(self.category, suffix_link_xcat_index)   *                         node.children[xcat] = ExtendedTrieNode(phrase_location=node.phrase_location,   *                                 suffix_link=node.suffix_link.children[suffix_link_xcat],             # <<<<<<<<<<<<<<   *                                 phrase= Phrase(phrase + (xcat,)))   *    */ -          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_suffix_link); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11); -          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_children); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_children); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -          __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_18, __pyx_cur_scope->__pyx_v_suffix_link_xcat, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +          __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_18, __pyx_cur_scope->__pyx_v_suffix_link_xcat, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;};            __Pyx_GOTREF(__pyx_t_11);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_suffix_link, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_suffix_link, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1116 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1124   *                         node.children[xcat] = ExtendedTrieNode(phrase_location=node.phrase_location,   *                                 suffix_link=node.suffix_link.children[suffix_link_xcat],   *                                 phrase= Phrase(phrase + (xcat,)))             # <<<<<<<<<<<<<<   *    *                     # sample from range   */ -          __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_xcat); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_xcat); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11); -          __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_11);            __Pyx_GIVEREF(__pyx_t_11);            __pyx_t_11 = 0; -          __pyx_t_11 = PyNumber_Add(__pyx_cur_scope->__pyx_v_phrase, __pyx_t_18); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = PyNumber_Add(__pyx_cur_scope->__pyx_v_phrase, __pyx_t_18); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_11);            __Pyx_GIVEREF(__pyx_t_11);            __pyx_t_11 = 0; -          __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_18, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_18, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_phrase, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_phrase, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1114 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1122   *                             suffix_link_xcat_index = xcat_index-1   *                         suffix_link_xcat = sym_setindex(self.category, suffix_link_xcat_index)   *                         node.children[xcat] = ExtendedTrieNode(phrase_location=node.phrase_location,             # <<<<<<<<<<<<<<   *                                 suffix_link=node.suffix_link.children[suffix_link_xcat],   *                                 phrase= Phrase(phrase + (xcat,)))   */ -          __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_10); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode)), __pyx_empty_tuple, __pyx_t_10); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11);            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10); -          if (unlikely(__Pyx_SetItemInt(__pyx_t_10, __pyx_cur_scope->__pyx_v_xcat, __pyx_t_11, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (unlikely(__Pyx_SetItemInt(__pyx_t_10, __pyx_cur_scope->__pyx_v_xcat, __pyx_t_11, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;            goto __pyx_L38;          }          __pyx_L38:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1119 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1127   *    *                     # sample from range   *                     if not is_shadow_path:             # <<<<<<<<<<<<<<   *                         sample = self.sampler.sample(node.phrase_location)   *                         num_subpatterns = (<PhraseLocation> node.phrase_location).num_subpatterns   */ -        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_is_shadow_path); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_is_shadow_path); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __pyx_t_9 = ((!__pyx_t_13) != 0);          if (__pyx_t_9) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1120 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1128   *                     # sample from range   *                     if not is_shadow_path:   *                         sample = self.sampler.sample(node.phrase_location)             # <<<<<<<<<<<<<<   *                         num_subpatterns = (<PhraseLocation> node.phrase_location).num_subpatterns   *                         chunklen = IntList(initial_len=num_subpatterns)   */ -          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->sampler), __pyx_n_s_sample); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->sampler), __pyx_n_s_sample); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11); -          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10); -          __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_10);            __Pyx_GIVEREF(__pyx_t_10);            __pyx_t_10 = 0; -          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_18, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_18, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10);            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_sample));            __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_sample, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_10));            __Pyx_GIVEREF(__pyx_t_10);            __pyx_t_10 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1121 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1129   *                     if not is_shadow_path:   *                         sample = self.sampler.sample(node.phrase_location)   *                         num_subpatterns = (<PhraseLocation> node.phrase_location).num_subpatterns             # <<<<<<<<<<<<<<   *                         chunklen = IntList(initial_len=num_subpatterns)   *                         for j from 0 <= j < num_subpatterns:   */ -          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_phrase_location); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10);            __pyx_t_21 = ((struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *)__pyx_t_10)->num_subpatterns;            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;            __pyx_cur_scope->__pyx_v_num_subpatterns = __pyx_t_21; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1122 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1130   *                         sample = self.sampler.sample(node.phrase_location)   *                         num_subpatterns = (<PhraseLocation> node.phrase_location).num_subpatterns   *                         chunklen = IntList(initial_len=num_subpatterns)             # <<<<<<<<<<<<<<   *                         for j from 0 <= j < num_subpatterns:   *                             chunklen.arr[j] = hiero_phrase.chunklen(j)   */ -          __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10); -          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_num_subpatterns); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_num_subpatterns); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18); -          if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_initial_len, __pyx_t_18) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_initial_len, __pyx_t_18) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          __pyx_t_18 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, __pyx_t_10); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, __pyx_t_10); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;            __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_chunklen)); @@ -52516,7 +52630,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_GIVEREF(__pyx_t_18);            __pyx_t_18 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1123 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1131   *                         num_subpatterns = (<PhraseLocation> node.phrase_location).num_subpatterns   *                         chunklen = IntList(initial_len=num_subpatterns)   *                         for j from 0 <= j < num_subpatterns:             # <<<<<<<<<<<<<< @@ -52526,7 +52640,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __pyx_t_21 = __pyx_cur_scope->__pyx_v_num_subpatterns;            for (__pyx_cur_scope->__pyx_v_j = 0; __pyx_cur_scope->__pyx_v_j < __pyx_t_21; __pyx_cur_scope->__pyx_v_j++) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1124 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1132   *                         chunklen = IntList(initial_len=num_subpatterns)   *                         for j from 0 <= j < num_subpatterns:   *                             chunklen.arr[j] = hiero_phrase.chunklen(j)             # <<<<<<<<<<<<<< @@ -52536,21 +52650,21 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              (__pyx_cur_scope->__pyx_v_chunklen->arr[__pyx_cur_scope->__pyx_v_j]) = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Phrase *)__pyx_cur_scope->__pyx_v_hiero_phrase->__pyx_vtab)->chunklen(__pyx_cur_scope->__pyx_v_hiero_phrase, __pyx_cur_scope->__pyx_v_j);            } -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1125 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1133   *                         for j from 0 <= j < num_subpatterns:   *                             chunklen.arr[j] = hiero_phrase.chunklen(j)   *                         extracts = []             # <<<<<<<<<<<<<<   *                         j = 0   *                         extract_start = monitor_cpu()   */ -          __pyx_t_18 = PyList_New(0); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = PyList_New(0); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_extracts);            __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_extracts, ((PyObject*)__pyx_t_18));            __Pyx_GIVEREF(__pyx_t_18);            __pyx_t_18 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1126 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1134   *                             chunklen.arr[j] = hiero_phrase.chunklen(j)   *                         extracts = []   *                         j = 0             # <<<<<<<<<<<<<< @@ -52559,16 +52673,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */            __pyx_cur_scope->__pyx_v_j = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1127 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1135   *                         extracts = []   *                         j = 0   *                         extract_start = monitor_cpu()             # <<<<<<<<<<<<<<   *                         while j < sample.len:   *                             extract = []   */ -          __pyx_t_18 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18); -          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_extract_start); @@ -52576,7 +52690,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_GIVEREF(__pyx_t_10);            __pyx_t_10 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1128 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1136   *                         j = 0   *                         extract_start = monitor_cpu()   *                         while j < sample.len:             # <<<<<<<<<<<<<< @@ -52587,21 +52701,21 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __pyx_t_9 = ((__pyx_cur_scope->__pyx_v_j < __pyx_cur_scope->__pyx_v_sample->len) != 0);              if (!__pyx_t_9) break; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1129 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1137   *                         extract_start = monitor_cpu()   *                         while j < sample.len:   *                             extract = []             # <<<<<<<<<<<<<<   *    *                             assign_matching(&matching, sample.arr, j, num_subpatterns, self.fda.sent_id.arr)   */ -            __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1129; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10);              __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_extract);              __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_extract, __pyx_t_10);              __Pyx_GIVEREF(__pyx_t_10);              __pyx_t_10 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1131 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1139   *                             extract = []   *    *                             assign_matching(&matching, sample.arr, j, num_subpatterns, self.fda.sent_id.arr)             # <<<<<<<<<<<<<< @@ -52610,21 +52724,21 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */              __pyx_f_4cdec_2sa_3_sa_assign_matching((&__pyx_cur_scope->__pyx_v_matching), __pyx_cur_scope->__pyx_v_sample->arr, __pyx_cur_scope->__pyx_v_j, __pyx_cur_scope->__pyx_v_num_subpatterns, __pyx_cur_scope->__pyx_v_self->fda->sent_id->arr); -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1132 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1140   *    *                             assign_matching(&matching, sample.arr, j, num_subpatterns, self.fda.sent_id.arr)   *                             loc = tuple(sample[j:j+num_subpatterns])             # <<<<<<<<<<<<<<   *                             extract = self.extract(hiero_phrase, &matching, chunklen.arr, num_subpatterns)   *                             extracts.extend([(e, loc) for e in extract])   */ -            __pyx_t_10 = __Pyx_PyObject_GetSlice(((PyObject *)__pyx_cur_scope->__pyx_v_sample), __pyx_cur_scope->__pyx_v_j, (__pyx_cur_scope->__pyx_v_j + __pyx_cur_scope->__pyx_v_num_subpatterns), NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = __Pyx_PyObject_GetSlice(((PyObject *)__pyx_cur_scope->__pyx_v_sample), __pyx_cur_scope->__pyx_v_j, (__pyx_cur_scope->__pyx_v_j + __pyx_cur_scope->__pyx_v_num_subpatterns), NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10); -            __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_18);              PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_10);              __Pyx_GIVEREF(__pyx_t_10);              __pyx_t_10 = 0; -            __pyx_t_10 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_18, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_18, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10);              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;              __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_loc); @@ -52632,34 +52746,34 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __Pyx_GIVEREF(__pyx_t_10);              __pyx_t_10 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1133 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1141   *                             assign_matching(&matching, sample.arr, j, num_subpatterns, self.fda.sent_id.arr)   *                             loc = tuple(sample[j:j+num_subpatterns])   *                             extract = self.extract(hiero_phrase, &matching, chunklen.arr, num_subpatterns)             # <<<<<<<<<<<<<<   *                             extracts.extend([(e, loc) for e in extract])   *                             j = j + num_subpatterns   */ -            __pyx_t_10 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->extract(__pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_hiero_phrase, (&__pyx_cur_scope->__pyx_v_matching), __pyx_cur_scope->__pyx_v_chunklen->arr, __pyx_cur_scope->__pyx_v_num_subpatterns); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->extract(__pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_hiero_phrase, (&__pyx_cur_scope->__pyx_v_matching), __pyx_cur_scope->__pyx_v_chunklen->arr, __pyx_cur_scope->__pyx_v_num_subpatterns); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10);              __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_extract);              __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_extract, __pyx_t_10);              __Pyx_GIVEREF(__pyx_t_10);              __pyx_t_10 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1134 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1142   *                             loc = tuple(sample[j:j+num_subpatterns])   *                             extract = self.extract(hiero_phrase, &matching, chunklen.arr, num_subpatterns)   *                             extracts.extend([(e, loc) for e in extract])             # <<<<<<<<<<<<<<   *                             j = j + num_subpatterns   *    */ -            __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10);              if (PyList_CheckExact(__pyx_cur_scope->__pyx_v_extract) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_extract)) {                __pyx_t_18 = __pyx_cur_scope->__pyx_v_extract; __Pyx_INCREF(__pyx_t_18); __pyx_t_6 = 0;                __pyx_t_22 = NULL;              } else { -              __pyx_t_6 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_extract); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_6 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_extract); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_18);                __pyx_t_22 = Py_TYPE(__pyx_t_18)->tp_iternext;              } @@ -52667,16 +52781,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                if (!__pyx_t_22 && PyList_CheckExact(__pyx_t_18)) {                  if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_18)) break;                  #if CYTHON_COMPILING_IN_CPYTHON -                __pyx_t_11 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_6); __Pyx_INCREF(__pyx_t_11); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_6); __Pyx_INCREF(__pyx_t_11); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  #else -                __pyx_t_11 = PySequence_ITEM(__pyx_t_18, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = PySequence_ITEM(__pyx_t_18, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  #endif                } else if (!__pyx_t_22 && PyTuple_CheckExact(__pyx_t_18)) {                  if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_18)) break;                  #if CYTHON_COMPILING_IN_CPYTHON -                __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_6); __Pyx_INCREF(__pyx_t_11); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_6); __Pyx_INCREF(__pyx_t_11); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  #else -                __pyx_t_11 = PySequence_ITEM(__pyx_t_18, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = PySequence_ITEM(__pyx_t_18, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  #endif                } else {                  __pyx_t_11 = __pyx_t_22(__pyx_t_18); @@ -52684,7 +52798,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                    PyObject* exc_type = PyErr_Occurred();                    if (exc_type) {                      if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -                    else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    }                    break;                  } @@ -52694,7 +52808,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_e, __pyx_t_11);                __Pyx_GIVEREF(__pyx_t_11);                __pyx_t_11 = 0; -              __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_11);                __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e);                PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_cur_scope->__pyx_v_e); @@ -52702,14 +52816,14 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loc);                PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_cur_scope->__pyx_v_loc);                __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loc); -              if (unlikely(__Pyx_ListComp_Append(__pyx_t_10, (PyObject*)__pyx_t_11))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              if (unlikely(__Pyx_ListComp_Append(__pyx_t_10, (PyObject*)__pyx_t_11))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;              }              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -            __pyx_t_12 = __Pyx_PyList_Extend(__pyx_cur_scope->__pyx_v_extracts, __pyx_t_10); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_12 = __Pyx_PyList_Extend(__pyx_cur_scope->__pyx_v_extracts, __pyx_t_10); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1135 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1143   *                             extract = self.extract(hiero_phrase, &matching, chunklen.arr, num_subpatterns)   *                             extracts.extend([(e, loc) for e in extract])   *                             j = j + num_subpatterns             # <<<<<<<<<<<<<< @@ -52719,7 +52833,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __pyx_cur_scope->__pyx_v_j = (__pyx_cur_scope->__pyx_v_j + __pyx_cur_scope->__pyx_v_num_subpatterns);            } -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1137 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1145   *                             j = j + num_subpatterns   *    *                         num_samples = sample.len/num_subpatterns             # <<<<<<<<<<<<<< @@ -52734,7 +52848,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              #ifdef WITH_THREAD              PyGILState_Release(__pyx_gilstate_save);              #endif -            {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            }            else if (sizeof(int) == sizeof(long) && (!(((int)-1) > 0)) && unlikely(__pyx_cur_scope->__pyx_v_num_subpatterns == (int)-1)  && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_cur_scope->__pyx_v_sample->len))) {              #ifdef WITH_THREAD @@ -52744,20 +52858,20 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              #ifdef WITH_THREAD              PyGILState_Release(__pyx_gilstate_save);              #endif -            {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            }            __pyx_cur_scope->__pyx_v_num_samples = __Pyx_div_int(__pyx_cur_scope->__pyx_v_sample->len, __pyx_cur_scope->__pyx_v_num_subpatterns); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1138 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1146   *    *                         num_samples = sample.len/num_subpatterns   *                         extract_stop = monitor_cpu()             # <<<<<<<<<<<<<<   *                         self.extract_time = self.extract_time + extract_stop - extract_start   *                         if len(extracts) > 0:   */ -          __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10); -          __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_extract_stop); @@ -52765,46 +52879,46 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_GIVEREF(__pyx_t_18);            __pyx_t_18 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1139 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1147   *                         num_samples = sample.len/num_subpatterns   *                         extract_stop = monitor_cpu()   *                         self.extract_time = self.extract_time + extract_stop - extract_start             # <<<<<<<<<<<<<<   *                         if len(extracts) > 0:   *                             fcount = Counter()   */ -          __pyx_t_18 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->extract_time); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->extract_time); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18); -          __pyx_t_10 = PyNumber_Add(__pyx_t_18, __pyx_cur_scope->__pyx_v_extract_stop); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = PyNumber_Add(__pyx_t_18, __pyx_cur_scope->__pyx_v_extract_stop); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          __pyx_t_18 = PyNumber_Subtract(__pyx_t_10, __pyx_cur_scope->__pyx_v_extract_start); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = PyNumber_Subtract(__pyx_t_10, __pyx_cur_scope->__pyx_v_extract_start); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_18); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_18); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;            __pyx_cur_scope->__pyx_v_self->extract_time = __pyx_t_4; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1140 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1148   *                         extract_stop = monitor_cpu()   *                         self.extract_time = self.extract_time + extract_stop - extract_start   *                         if len(extracts) > 0:             # <<<<<<<<<<<<<<   *                             fcount = Counter()   *                             fphrases = defaultdict(lambda: defaultdict(lambda: defaultdict(list)))   */ -          __pyx_t_6 = PyList_GET_SIZE(__pyx_cur_scope->__pyx_v_extracts); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_6 = PyList_GET_SIZE(__pyx_cur_scope->__pyx_v_extracts); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __pyx_t_9 = ((__pyx_t_6 > 0) != 0);            if (__pyx_t_9) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1141 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1149   *                         self.extract_time = self.extract_time + extract_stop - extract_start   *                         if len(extracts) > 0:   *                             fcount = Counter()             # <<<<<<<<<<<<<<   *                             fphrases = defaultdict(lambda: defaultdict(lambda: defaultdict(list)))   *                             for (f, e, count, als), loc in extracts:   */ -            __pyx_t_18 = __Pyx_GetModuleGlobalName(__pyx_n_s_Counter); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_18 = __Pyx_GetModuleGlobalName(__pyx_n_s_Counter); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_18); -            __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10);              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;              __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_fcount); @@ -52812,23 +52926,23 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __Pyx_GIVEREF(__pyx_t_10);              __pyx_t_10 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1142 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1150   *                         if len(extracts) > 0:   *                             fcount = Counter()   *                             fphrases = defaultdict(lambda: defaultdict(lambda: defaultdict(list)))             # <<<<<<<<<<<<<<   *                             for (f, e, count, als), loc in extracts:   *                                 fcount[f] += count   */ -            __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_defaultdict); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10); -            __pyx_t_18 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_lambda3, 0, __pyx_n_s_input_locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_18 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_lambda3, 0, __pyx_n_s_input_locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_18); -            __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11);              PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_18);              __Pyx_GIVEREF(__pyx_t_18);              __pyx_t_18 = 0; -            __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_18);              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; @@ -52837,7 +52951,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __Pyx_GIVEREF(__pyx_t_18);              __pyx_t_18 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1143 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1151   *                             fcount = Counter()   *                             fphrases = defaultdict(lambda: defaultdict(lambda: defaultdict(list)))   *                             for (f, e, count, als), loc in extracts:             # <<<<<<<<<<<<<< @@ -52848,9 +52962,9 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              for (;;) {                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_18)) break;                #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_11 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_6); __Pyx_INCREF(__pyx_t_11); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_11 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_6); __Pyx_INCREF(__pyx_t_11); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                #else -              __pyx_t_11 = PySequence_ITEM(__pyx_t_18, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_11 = PySequence_ITEM(__pyx_t_18, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                #endif                if ((likely(PyTuple_CheckExact(__pyx_t_11))) || (PyList_CheckExact(__pyx_t_11))) {                  PyObject* sequence = __pyx_t_11; @@ -52862,7 +52976,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  if (unlikely(size != 2)) {                    if (size > 2) __Pyx_RaiseTooManyValuesError(2);                    else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  }                  #if CYTHON_COMPILING_IN_CPYTHON                  if (likely(PyTuple_CheckExact(sequence))) { @@ -52875,15 +52989,15 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __Pyx_INCREF(__pyx_t_10);                  __Pyx_INCREF(__pyx_t_17);                  #else -                __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_10); -                __pyx_t_17 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_17 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_17);                  #endif                  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;                } else {                  Py_ssize_t index = -1; -                __pyx_t_16 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_16 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_16);                  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;                  __pyx_t_20 = Py_TYPE(__pyx_t_16)->tp_iternext; @@ -52891,7 +53005,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __Pyx_GOTREF(__pyx_t_10);                  index = 1; __pyx_t_17 = __pyx_t_20(__pyx_t_16); if (unlikely(!__pyx_t_17)) goto __pyx_L50_unpacking_failed;                  __Pyx_GOTREF(__pyx_t_17); -                if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_16), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_16), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __pyx_t_20 = NULL;                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;                  goto __pyx_L51_unpacking_done; @@ -52899,7 +53013,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;                  __pyx_t_20 = NULL;                  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __pyx_L51_unpacking_done:;                }                if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) { @@ -52912,7 +53026,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  if (unlikely(size != 4)) {                    if (size > 4) __Pyx_RaiseTooManyValuesError(4);                    else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  }                  #if CYTHON_COMPILING_IN_CPYTHON                  if (likely(PyTuple_CheckExact(sequence))) { @@ -52935,7 +53049,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                    Py_ssize_t i;                    PyObject** temps[4] = {&__pyx_t_16,&__pyx_t_1,&__pyx_t_3,&__pyx_t_15};                    for (i=0; i < 4; i++) { -                    PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                      __Pyx_GOTREF(item);                      *(temps[i]) = item;                    } @@ -52945,7 +53059,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                } else {                  Py_ssize_t index = -1;                  PyObject** temps[4] = {&__pyx_t_16,&__pyx_t_1,&__pyx_t_3,&__pyx_t_15}; -                __pyx_t_14 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_14 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_14);                  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;                  __pyx_t_20 = Py_TYPE(__pyx_t_14)->tp_iternext; @@ -52954,7 +53068,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                    __Pyx_GOTREF(item);                    *(temps[index]) = item;                  } -                if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_14), 4) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_14), 4) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __pyx_t_20 = NULL;                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                  goto __pyx_L53_unpacking_done; @@ -52962,7 +53076,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                  __pyx_t_20 = NULL;                  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __pyx_L53_unpacking_done:;                }                __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_f); @@ -52986,7 +53100,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                __Pyx_GIVEREF(__pyx_t_17);                __pyx_t_17 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1144 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1152   *                             fphrases = defaultdict(lambda: defaultdict(lambda: defaultdict(list)))   *                             for (f, e, count, als), loc in extracts:   *                                 fcount[f] += count             # <<<<<<<<<<<<<< @@ -52995,36 +53109,36 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */                __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f);                __pyx_t_11 = __pyx_cur_scope->__pyx_v_f; -              __pyx_t_17 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fcount, __pyx_t_11); if (unlikely(__pyx_t_17 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +              __pyx_t_17 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fcount, __pyx_t_11); if (unlikely(__pyx_t_17 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1152; __pyx_clineno = __LINE__; goto __pyx_L1_error;};                __Pyx_GOTREF(__pyx_t_17); -              __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_cur_scope->__pyx_v_count); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_cur_scope->__pyx_v_count); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_10);                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; -              if (unlikely(PyObject_SetItem(__pyx_cur_scope->__pyx_v_fcount, __pyx_t_11, __pyx_t_10) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              if (unlikely(PyObject_SetItem(__pyx_cur_scope->__pyx_v_fcount, __pyx_t_11, __pyx_t_10) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1145 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1153   *                             for (f, e, count, als), loc in extracts:   *                                 fcount[f] += count   *                                 fphrases[f][e][als].append(loc)             # <<<<<<<<<<<<<<   *                             for f, elist in fphrases.iteritems():   *                                 for e, alslist in elist.iteritems():   */ -              __pyx_t_11 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fphrases, __pyx_cur_scope->__pyx_v_f); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +              __pyx_t_11 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fphrases, __pyx_cur_scope->__pyx_v_f); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;};                __Pyx_GOTREF(__pyx_t_11); -              __pyx_t_10 = PyObject_GetItem(__pyx_t_11, __pyx_cur_scope->__pyx_v_e); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +              __pyx_t_10 = PyObject_GetItem(__pyx_t_11, __pyx_cur_scope->__pyx_v_e); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;};                __Pyx_GOTREF(__pyx_t_10);                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -              __pyx_t_11 = PyObject_GetItem(__pyx_t_10, __pyx_cur_scope->__pyx_v_als); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +              __pyx_t_11 = PyObject_GetItem(__pyx_t_10, __pyx_cur_scope->__pyx_v_als); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;};                __Pyx_GOTREF(__pyx_t_11);                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -              __pyx_t_12 = __Pyx_PyObject_Append(__pyx_t_11, __pyx_cur_scope->__pyx_v_loc); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_12 = __Pyx_PyObject_Append(__pyx_t_11, __pyx_cur_scope->__pyx_v_loc); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;              }              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1146 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1154   *                                 fcount[f] += count   *                                 fphrases[f][e][als].append(loc)   *                             for f, elist in fphrases.iteritems():             # <<<<<<<<<<<<<< @@ -53034,9 +53148,9 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __pyx_t_6 = 0;              if (unlikely(__pyx_cur_scope->__pyx_v_fphrases == Py_None)) {                PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iteritems"); -              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              } -            __pyx_t_11 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_fphrases, 0, __pyx_n_s_iteritems, (&__pyx_t_23), (&__pyx_t_21)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_fphrases, 0, __pyx_n_s_iteritems, (&__pyx_t_23), (&__pyx_t_21)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11);              __Pyx_XDECREF(__pyx_t_18);              __pyx_t_18 = __pyx_t_11; @@ -53044,7 +53158,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              while (1) {                __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_18, __pyx_t_23, &__pyx_t_6, &__pyx_t_11, &__pyx_t_10, NULL, __pyx_t_21);                if (unlikely(__pyx_t_7 == 0)) break; -              if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_11);                __Pyx_GOTREF(__pyx_t_10);                __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_f); @@ -53056,7 +53170,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                __Pyx_GIVEREF(__pyx_t_10);                __pyx_t_10 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1147 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1155   *                                 fphrases[f][e][als].append(loc)   *                             for f, elist in fphrases.iteritems():   *                                 for e, alslist in elist.iteritems():             # <<<<<<<<<<<<<< @@ -53066,9 +53180,9 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                __pyx_t_24 = 0;                if (unlikely(__pyx_cur_scope->__pyx_v_elist == Py_None)) {                  PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iteritems"); -                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                } -              __pyx_t_11 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_elist, 0, __pyx_n_s_iteritems, (&__pyx_t_25), (&__pyx_t_7)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_11 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_elist, 0, __pyx_n_s_iteritems, (&__pyx_t_25), (&__pyx_t_7)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_11);                __Pyx_XDECREF(__pyx_t_10);                __pyx_t_10 = __pyx_t_11; @@ -53076,7 +53190,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                while (1) {                  __pyx_t_5 = __Pyx_dict_iter_next(__pyx_t_10, __pyx_t_25, &__pyx_t_24, &__pyx_t_11, &__pyx_t_17, NULL, __pyx_t_7);                  if (unlikely(__pyx_t_5 == 0)) break; -                if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11);                  __Pyx_GOTREF(__pyx_t_17);                  __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_e); @@ -53088,30 +53202,30 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __Pyx_GIVEREF(__pyx_t_17);                  __pyx_t_17 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1148 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1156   *                             for f, elist in fphrases.iteritems():   *                                 for e, alslist in elist.iteritems():   *                                     alignment, max_locs = max(alslist.iteritems(), key=lambda x: len(x[1]))             # <<<<<<<<<<<<<<   *                                     locs = tuple(itertools.chain.from_iterable(alslist.itervalues()))   *                                     count = len(locs)   */ -                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_alslist, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_alslist, __pyx_n_s_iteritems); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_17); -                __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11);                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; -                __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_17);                  PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_11);                  __Pyx_GIVEREF(__pyx_t_11);                  __pyx_t_11 = 0; -                __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11); -                __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_1lambda5, 0, __pyx_n_s_input_locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_1lambda5, 0, __pyx_n_s_input_locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15); -                if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_key, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_key, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -                __pyx_t_15 = __Pyx_PyObject_Call(__pyx_builtin_max, __pyx_t_17, __pyx_t_11); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_15 = __Pyx_PyObject_Call(__pyx_builtin_max, __pyx_t_17, __pyx_t_11); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15);                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;                  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; @@ -53125,7 +53239,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                    if (unlikely(size != 2)) {                      if (size > 2) __Pyx_RaiseTooManyValuesError(2);                      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    }                    #if CYTHON_COMPILING_IN_CPYTHON                    if (likely(PyTuple_CheckExact(sequence))) { @@ -53138,15 +53252,15 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                    __Pyx_INCREF(__pyx_t_11);                    __Pyx_INCREF(__pyx_t_17);                    #else -                  __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_11); -                  __pyx_t_17 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_17 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_17);                    #endif                    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                  } else {                    Py_ssize_t index = -1; -                  __pyx_t_3 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_3);                    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                    __pyx_t_20 = Py_TYPE(__pyx_t_3)->tp_iternext; @@ -53154,7 +53268,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                    __Pyx_GOTREF(__pyx_t_11);                    index = 1; __pyx_t_17 = __pyx_t_20(__pyx_t_3); if (unlikely(!__pyx_t_17)) goto __pyx_L58_unpacking_failed;                    __Pyx_GOTREF(__pyx_t_17); -                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_3), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_3), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __pyx_t_20 = NULL;                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                    goto __pyx_L59_unpacking_done; @@ -53162,7 +53276,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                    __pyx_t_20 = NULL;                    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __pyx_L59_unpacking_done:;                  }                  __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_alignment); @@ -53174,41 +53288,41 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __Pyx_GIVEREF(__pyx_t_17);                  __pyx_t_17 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1149 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1157   *                                 for e, alslist in elist.iteritems():   *                                     alignment, max_locs = max(alslist.iteritems(), key=lambda x: len(x[1]))   *                                     locs = tuple(itertools.chain.from_iterable(alslist.itervalues()))             # <<<<<<<<<<<<<<   *                                     count = len(locs)   *                                     scores = self.scorer.score(FeatureContext(   */ -                __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_itertools); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_itertools); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15); -                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_chain); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_chain); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_17);                  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -                __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_from_iterable); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_from_iterable); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15);                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; -                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_alslist, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_alslist, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_17); -                __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11);                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; -                __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_17);                  PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_11);                  __Pyx_GIVEREF(__pyx_t_11);                  __pyx_t_11 = 0; -                __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_17, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_17, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11);                  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; -                __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_17);                  PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_11);                  __Pyx_GIVEREF(__pyx_t_11);                  __pyx_t_11 = 0; -                __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_17, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_17, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11);                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;                  __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_locs); @@ -53216,58 +53330,58 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __Pyx_GIVEREF(__pyx_t_11);                  __pyx_t_11 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1150 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1158   *                                     alignment, max_locs = max(alslist.iteritems(), key=lambda x: len(x[1]))   *                                     locs = tuple(itertools.chain.from_iterable(alslist.itervalues()))   *                                     count = len(locs)             # <<<<<<<<<<<<<<   *                                     scores = self.scorer.score(FeatureContext(   *                                                f, e, count, fcount[f], num_samples,   */ -                __pyx_t_26 = PyTuple_GET_SIZE(__pyx_cur_scope->__pyx_v_locs); if (unlikely(__pyx_t_26 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __pyx_t_11 = PyInt_FromSsize_t(__pyx_t_26); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_26 = PyTuple_GET_SIZE(__pyx_cur_scope->__pyx_v_locs); if (unlikely(__pyx_t_26 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = PyInt_FromSsize_t(__pyx_t_26); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11);                  __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_count);                  __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_count, __pyx_t_11);                  __Pyx_GIVEREF(__pyx_t_11);                  __pyx_t_11 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1151 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1159   *                                     locs = tuple(itertools.chain.from_iterable(alslist.itervalues()))   *                                     count = len(locs)   *                                     scores = self.scorer.score(FeatureContext(             # <<<<<<<<<<<<<<   *                                                f, e, count, fcount[f], num_samples,   *                                                (k,i+spanlen), locs, input_match,   */ -                __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_FeatureContext); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_FeatureContext); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11); -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1152 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1160   *                                     count = len(locs)   *                                     scores = self.scorer.score(FeatureContext(   *                                                f, e, count, fcount[f], num_samples,             # <<<<<<<<<<<<<<   *                                                (k,i+spanlen), locs, input_match,   *                                                fwords, self.fda, self.eda,   */ -                __pyx_t_17 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fcount, __pyx_cur_scope->__pyx_v_f); if (unlikely(__pyx_t_17 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +                __pyx_t_17 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fcount, __pyx_cur_scope->__pyx_v_f); if (unlikely(__pyx_t_17 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;};                  __Pyx_GOTREF(__pyx_t_17); -                __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_num_samples); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_num_samples); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15); -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1153 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1161   *                                     scores = self.scorer.score(FeatureContext(   *                                                f, e, count, fcount[f], num_samples,   *                                                (k,i+spanlen), locs, input_match,             # <<<<<<<<<<<<<<   *                                                fwords, self.fda, self.eda,   *                                                meta,   */ -                __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3); -                __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_1); -                __pyx_t_16 = PyNumber_Add(__pyx_t_1, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_16 = PyNumber_Add(__pyx_t_1, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_16);                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -                __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_1);                  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);                  __Pyx_GIVEREF(__pyx_t_3); @@ -53276,16 +53390,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __pyx_t_3 = 0;                  __pyx_t_16 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1157 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1165   *                                                meta,   *                                                # Include online stats.  None if none.   *                                                self.online_ctx_lookup(f, e, ctx_name)))             # <<<<<<<<<<<<<<   *                                     # Phrase pair processed   *                                     if self.online:   */ -                __pyx_t_16 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_online_ctx_lookup); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_16 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_online_ctx_lookup); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_16); -                __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3);                  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f);                  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_f); @@ -53296,19 +53410,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_ctx_name);                  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_cur_scope->__pyx_v_ctx_name);                  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_ctx_name); -                __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_14);                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1151 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1159   *                                     locs = tuple(itertools.chain.from_iterable(alslist.itervalues()))   *                                     count = len(locs)   *                                     scores = self.scorer.score(FeatureContext(             # <<<<<<<<<<<<<<   *                                                f, e, count, fcount[f], num_samples,   *                                                (k,i+spanlen), locs, input_match,   */ -                __pyx_t_3 = PyTuple_New(13); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = PyTuple_New(13); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3);                  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f);                  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_f); @@ -53349,11 +53463,11 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __pyx_t_15 = 0;                  __pyx_t_1 = 0;                  __pyx_t_14 = 0; -                __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_14);                  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -                __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Scorer *)__pyx_cur_scope->__pyx_v_self->scorer->__pyx_vtab)->score(__pyx_cur_scope->__pyx_v_self->scorer, __pyx_t_14)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Scorer *)__pyx_cur_scope->__pyx_v_self->scorer->__pyx_vtab)->score(__pyx_cur_scope->__pyx_v_self->scorer, __pyx_t_14)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3);                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                  __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_scores)); @@ -53361,7 +53475,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __Pyx_GIVEREF(__pyx_t_3);                  __pyx_t_3 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1159 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1167   *                                                self.online_ctx_lookup(f, e, ctx_name)))   *                                     # Phrase pair processed   *                                     if self.online:             # <<<<<<<<<<<<<< @@ -53371,14 +53485,14 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __pyx_t_9 = (__pyx_cur_scope->__pyx_v_self->online != 0);                  if (__pyx_t_9) { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1160 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1168   *                                     # Phrase pair processed   *                                     if self.online:   *                                         seen_phrases.add((f, e))             # <<<<<<<<<<<<<<   *                                     yield Rule(self.category, f, e, scores, alignment)   *    */ -                  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_3);                    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f);                    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_f); @@ -53386,22 +53500,22 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e);                    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_cur_scope->__pyx_v_e);                    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_e); -                  __pyx_t_12 = PySet_Add(__pyx_cur_scope->__pyx_v_seen_phrases, __pyx_t_3); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_12 = PySet_Add(__pyx_cur_scope->__pyx_v_seen_phrases, __pyx_t_3); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                    goto __pyx_L60;                  }                  __pyx_L60:; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1161 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1169   *                                     if self.online:   *                                         seen_phrases.add((f, e))   *                                     yield Rule(self.category, f, e, scores, alignment)             # <<<<<<<<<<<<<<   *    *                 if len(phrase) < self.max_length and i+spanlen < len(fwords) and pathlen+1 <= self.max_initial_size:   */ -                __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->category); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->category); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3); -                __pyx_t_14 = PyTuple_New(5); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_14 = PyTuple_New(5); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_14);                  PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3);                  __Pyx_GIVEREF(__pyx_t_3); @@ -53418,7 +53532,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  PyTuple_SET_ITEM(__pyx_t_14, 4, __pyx_cur_scope->__pyx_v_alignment);                  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_alignment);                  __pyx_t_3 = 0; -                __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Rule)), __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Rule)), __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3);                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                  __pyx_r = __pyx_t_3; @@ -53458,7 +53572,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  __pyx_t_23 = __pyx_cur_scope->__pyx_t_7;                  __pyx_t_24 = __pyx_cur_scope->__pyx_t_8;                  __pyx_t_25 = __pyx_cur_scope->__pyx_t_9; -                if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                }                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;              } @@ -53473,41 +53587,41 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        }        __pyx_L32:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1163 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1171   *                                     yield Rule(self.category, f, e, scores, alignment)   *    *                 if len(phrase) < self.max_length and i+spanlen < len(fwords) and pathlen+1 <= self.max_initial_size:             # <<<<<<<<<<<<<<   *                     for alt_id in range(len(fwords[i+spanlen])):   *                         new_frontier.append((k, i+spanlen, input_match, alt_id, pathlen + 1, node, phrase, is_shadow_path))   */ -      __pyx_t_23 = PyObject_Length(__pyx_cur_scope->__pyx_v_phrase); if (unlikely(__pyx_t_23 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_23 = PyObject_Length(__pyx_cur_scope->__pyx_v_phrase); if (unlikely(__pyx_t_23 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_9 = (__pyx_t_23 < __pyx_cur_scope->__pyx_v_self->max_length);        if (__pyx_t_9) { -        __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_18); -        __pyx_t_10 = PyNumber_Add(__pyx_t_18, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_10 = PyNumber_Add(__pyx_t_18, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_10);          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;          __pyx_t_18 = __pyx_cur_scope->__pyx_v_fwords;          __Pyx_INCREF(__pyx_t_18); -        __pyx_t_23 = PyObject_Length(__pyx_t_18); if (unlikely(__pyx_t_23 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_23 = PyObject_Length(__pyx_t_18); if (unlikely(__pyx_t_23 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -        __pyx_t_18 = PyInt_FromSsize_t(__pyx_t_23); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_18 = PyInt_FromSsize_t(__pyx_t_23); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_18); -        __pyx_t_3 = PyObject_RichCompare(__pyx_t_10, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = PyObject_RichCompare(__pyx_t_10, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;          if (__pyx_t_13) { -          __pyx_t_3 = PyNumber_Add(__pyx_cur_scope->__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_3 = PyNumber_Add(__pyx_cur_scope->__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_3); -          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18); -          __pyx_t_10 = PyObject_RichCompare(__pyx_t_3, __pyx_t_18, Py_LE); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = PyObject_RichCompare(__pyx_t_3, __pyx_t_18, Py_LE); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          __pyx_t_27 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_27 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_27 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_27 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;            __pyx_t_28 = __pyx_t_27;          } else { @@ -53519,45 +53633,45 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        }        if (__pyx_t_13) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1164 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1172   *    *                 if len(phrase) < self.max_length and i+spanlen < len(fwords) and pathlen+1 <= self.max_initial_size:   *                     for alt_id in range(len(fwords[i+spanlen])):             # <<<<<<<<<<<<<<   *                         new_frontier.append((k, i+spanlen, input_match, alt_id, pathlen + 1, node, phrase, is_shadow_path))   *                     num_subpatterns = arity   */ -        __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_10); -        __pyx_t_18 = PyNumber_Add(__pyx_t_10, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_18 = PyNumber_Add(__pyx_t_10, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_18);          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -        __pyx_t_10 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fwords, __pyx_t_18); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_10 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fwords, __pyx_t_18); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_10);          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -        __pyx_t_23 = PyObject_Length(__pyx_t_10); if (unlikely(__pyx_t_23 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_23 = PyObject_Length(__pyx_t_10); if (unlikely(__pyx_t_23 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;          for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_23; __pyx_t_21+=1) {            __pyx_cur_scope->__pyx_v_alt_id = __pyx_t_21; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1165 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1173   *                 if len(phrase) < self.max_length and i+spanlen < len(fwords) and pathlen+1 <= self.max_initial_size:   *                     for alt_id in range(len(fwords[i+spanlen])):   *                         new_frontier.append((k, i+spanlen, input_match, alt_id, pathlen + 1, node, phrase, is_shadow_path))             # <<<<<<<<<<<<<<   *                     num_subpatterns = arity   *                     if not is_shadow_path:   */ -          __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10); -          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18); -          __pyx_t_3 = PyNumber_Add(__pyx_t_18, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_3 = PyNumber_Add(__pyx_t_18, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_3);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; -          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_alt_id); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_alt_id); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18); -          __pyx_t_14 = PyNumber_Add(__pyx_cur_scope->__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_14 = PyNumber_Add(__pyx_cur_scope->__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_14); -          __pyx_t_11 = PyTuple_New(8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = PyTuple_New(8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11);            PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10);            __Pyx_GIVEREF(__pyx_t_10); @@ -53583,11 +53697,11 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __pyx_t_3 = 0;            __pyx_t_18 = 0;            __pyx_t_14 = 0; -          __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_new_frontier, __pyx_t_11); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_new_frontier, __pyx_t_11); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;          } -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1166 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1174   *                     for alt_id in range(len(fwords[i+spanlen])):   *                         new_frontier.append((k, i+spanlen, input_match, alt_id, pathlen + 1, node, phrase, is_shadow_path))   *                     num_subpatterns = arity             # <<<<<<<<<<<<<< @@ -53596,18 +53710,18 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */          __pyx_cur_scope->__pyx_v_num_subpatterns = __pyx_cur_scope->__pyx_v_arity; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1167 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1175   *                         new_frontier.append((k, i+spanlen, input_match, alt_id, pathlen + 1, node, phrase, is_shadow_path))   *                     num_subpatterns = arity   *                     if not is_shadow_path:             # <<<<<<<<<<<<<<   *                         num_subpatterns = num_subpatterns + 1   *                     if len(phrase)+1 < self.max_length and arity < self.max_nonterminals and num_subpatterns < self.max_chunks:   */ -        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_is_shadow_path); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_is_shadow_path); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __pyx_t_9 = ((!__pyx_t_13) != 0);          if (__pyx_t_9) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1168 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1176   *                     num_subpatterns = arity   *                     if not is_shadow_path:   *                         num_subpatterns = num_subpatterns + 1             # <<<<<<<<<<<<<< @@ -53619,14 +53733,14 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          }          __pyx_L65:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1169 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1177   *                     if not is_shadow_path:   *                         num_subpatterns = num_subpatterns + 1   *                     if len(phrase)+1 < self.max_length and arity < self.max_nonterminals and num_subpatterns < self.max_chunks:             # <<<<<<<<<<<<<<   *                         xcat = sym_setindex(self.category, arity+1)   *                         xnode = node.children[xcat]   */ -        __pyx_t_23 = PyObject_Length(__pyx_cur_scope->__pyx_v_phrase); if (unlikely(__pyx_t_23 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_23 = PyObject_Length(__pyx_cur_scope->__pyx_v_phrase); if (unlikely(__pyx_t_23 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __pyx_t_9 = (((__pyx_t_23 + 1) < __pyx_cur_scope->__pyx_v_self->max_length) != 0);          if (__pyx_t_9) {            __pyx_t_13 = ((__pyx_cur_scope->__pyx_v_arity < __pyx_cur_scope->__pyx_v_self->max_nonterminals) != 0); @@ -53642,7 +53756,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          }          if (__pyx_t_13) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1170 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1178   *                         num_subpatterns = num_subpatterns + 1   *                     if len(phrase)+1 < self.max_length and arity < self.max_nonterminals and num_subpatterns < self.max_chunks:   *                         xcat = sym_setindex(self.category, arity+1)             # <<<<<<<<<<<<<< @@ -53651,16 +53765,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(   */            __pyx_cur_scope->__pyx_v_xcat = __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, (__pyx_cur_scope->__pyx_v_arity + 1)); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1171 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1179   *                     if len(phrase)+1 < self.max_length and arity < self.max_nonterminals and num_subpatterns < self.max_chunks:   *                         xcat = sym_setindex(self.category, arity+1)   *                         xnode = node.children[xcat]             # <<<<<<<<<<<<<<   *                         # I put spanlen=1 below   *                         key = tuple([self.min_gap_size, i, 1, pathlen])   */ -          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11); -          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_11, __pyx_cur_scope->__pyx_v_xcat, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_14 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_11, __pyx_cur_scope->__pyx_v_xcat, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_14 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1179; __pyx_clineno = __LINE__; goto __pyx_L1_error;};            __Pyx_GOTREF(__pyx_t_14);            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_xnode); @@ -53668,18 +53782,18 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_GIVEREF(__pyx_t_14);            __pyx_t_14 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1173 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1181   *                         xnode = node.children[xcat]   *                         # I put spanlen=1 below   *                         key = tuple([self.min_gap_size, i, 1, pathlen])             # <<<<<<<<<<<<<<   *                         frontier_nodes = []   *                         if key in nodes_isteps_away_buffer:   */ -          __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_14); -          __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11); -          __pyx_t_18 = PyList_New(4); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = PyList_New(4); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            PyList_SET_ITEM(__pyx_t_18, 0, __pyx_t_14);            __Pyx_GIVEREF(__pyx_t_14); @@ -53693,7 +53807,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_pathlen);            __pyx_t_14 = 0;            __pyx_t_11 = 0; -          __pyx_t_11 = PyList_AsTuple(((PyObject*)__pyx_t_18)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = PyList_AsTuple(((PyObject*)__pyx_t_18)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_key); @@ -53701,39 +53815,39 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_GIVEREF(__pyx_t_11);            __pyx_t_11 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1174 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1182   *                         # I put spanlen=1 below   *                         key = tuple([self.min_gap_size, i, 1, pathlen])   *                         frontier_nodes = []             # <<<<<<<<<<<<<<   *                         if key in nodes_isteps_away_buffer:   *                             frontier_nodes = nodes_isteps_away_buffer[key]   */ -          __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11);            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_frontier_nodes);            __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_frontier_nodes, __pyx_t_11);            __Pyx_GIVEREF(__pyx_t_11);            __pyx_t_11 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1175 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1183   *                         key = tuple([self.min_gap_size, i, 1, pathlen])   *                         frontier_nodes = []   *                         if key in nodes_isteps_away_buffer:             # <<<<<<<<<<<<<<   *                             frontier_nodes = nodes_isteps_away_buffer[key]   *                         else:   */ -          __pyx_t_13 = (__Pyx_PyDict_Contains(__pyx_cur_scope->__pyx_v_key, __pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_13 = (__Pyx_PyDict_Contains(__pyx_cur_scope->__pyx_v_key, __pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __pyx_t_9 = (__pyx_t_13 != 0);            if (__pyx_t_9) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1176 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1184   *                         frontier_nodes = []   *                         if key in nodes_isteps_away_buffer:   *                             frontier_nodes = nodes_isteps_away_buffer[key]             # <<<<<<<<<<<<<<   *                         else:   *                             frontier_nodes = self.get_all_nodes_isteps_away(self.min_gap_size, i, 1, pathlen, fwords, next_states, reachable_buffer)   */ -            __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer, __pyx_cur_scope->__pyx_v_key); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +            __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer, __pyx_cur_scope->__pyx_v_key); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1184; __pyx_clineno = __LINE__; goto __pyx_L1_error;};              __Pyx_GOTREF(__pyx_t_11);              __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_frontier_nodes);              __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_frontier_nodes, __pyx_t_11); @@ -53743,20 +53857,20 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            }            /*else*/ { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1178 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1186   *                             frontier_nodes = nodes_isteps_away_buffer[key]   *                         else:   *                             frontier_nodes = self.get_all_nodes_isteps_away(self.min_gap_size, i, 1, pathlen, fwords, next_states, reachable_buffer)             # <<<<<<<<<<<<<<   *                             nodes_isteps_away_buffer[key] = frontier_nodes   *    */ -            __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_get_all_nodes_isteps_away); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_get_all_nodes_isteps_away); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11); -            __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_18); -            __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_14); -            __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_3);              PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_18);              __Pyx_GIVEREF(__pyx_t_18); @@ -53779,7 +53893,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_reachable_buffer);              __pyx_t_18 = 0;              __pyx_t_14 = 0; -            __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_14);              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -53788,18 +53902,18 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __Pyx_GIVEREF(__pyx_t_14);              __pyx_t_14 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1179 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1187   *                         else:   *                             frontier_nodes = self.get_all_nodes_isteps_away(self.min_gap_size, i, 1, pathlen, fwords, next_states, reachable_buffer)   *                             nodes_isteps_away_buffer[key] = frontier_nodes             # <<<<<<<<<<<<<<   *    *                         for i, alt, pathlen in frontier_nodes:   */ -            if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer, __pyx_cur_scope->__pyx_v_key, __pyx_cur_scope->__pyx_v_frontier_nodes) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1179; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer, __pyx_cur_scope->__pyx_v_key, __pyx_cur_scope->__pyx_v_frontier_nodes) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            }            __pyx_L67:; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1181 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1189   *                             nodes_isteps_away_buffer[key] = frontier_nodes   *    *                         for i, alt, pathlen in frontier_nodes:             # <<<<<<<<<<<<<< @@ -53810,7 +53924,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __pyx_t_14 = __pyx_cur_scope->__pyx_v_frontier_nodes; __Pyx_INCREF(__pyx_t_14); __pyx_t_23 = 0;              __pyx_t_22 = NULL;            } else { -            __pyx_t_23 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_frontier_nodes); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_23 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_frontier_nodes); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_14);              __pyx_t_22 = Py_TYPE(__pyx_t_14)->tp_iternext;            } @@ -53818,16 +53932,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              if (!__pyx_t_22 && PyList_CheckExact(__pyx_t_14)) {                if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_14)) break;                #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_3 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_23); __Pyx_INCREF(__pyx_t_3); __pyx_t_23++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_23); __Pyx_INCREF(__pyx_t_3); __pyx_t_23++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                #else -              __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                #endif              } else if (!__pyx_t_22 && PyTuple_CheckExact(__pyx_t_14)) {                if (__pyx_t_23 >= PyTuple_GET_SIZE(__pyx_t_14)) break;                #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_23); __Pyx_INCREF(__pyx_t_3); __pyx_t_23++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_23); __Pyx_INCREF(__pyx_t_3); __pyx_t_23++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                #else -              __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                #endif              } else {                __pyx_t_3 = __pyx_t_22(__pyx_t_14); @@ -53835,7 +53949,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                  PyObject* exc_type = PyErr_Occurred();                  if (exc_type) {                    if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  }                  break;                } @@ -53851,7 +53965,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                if (unlikely(size != 3)) {                  if (size > 3) __Pyx_RaiseTooManyValuesError(3);                  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                }                #if CYTHON_COMPILING_IN_CPYTHON                if (likely(PyTuple_CheckExact(sequence))) { @@ -53867,17 +53981,17 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                __Pyx_INCREF(__pyx_t_18);                __Pyx_INCREF(__pyx_t_10);                #else -              __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_11); -              __pyx_t_18 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_18 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_18); -              __pyx_t_10 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_10 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_10);                #endif                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;              } else {                Py_ssize_t index = -1; -              __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_1);                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                __pyx_t_20 = Py_TYPE(__pyx_t_1)->tp_iternext; @@ -53887,7 +54001,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                __Pyx_GOTREF(__pyx_t_18);                index = 2; __pyx_t_10 = __pyx_t_20(__pyx_t_1); if (unlikely(!__pyx_t_10)) goto __pyx_L70_unpacking_failed;                __Pyx_GOTREF(__pyx_t_10); -              if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_1), 3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_1), 3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __pyx_t_20 = NULL;                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                goto __pyx_L71_unpacking_done; @@ -53895,12 +54009,12 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                __pyx_t_20 = NULL;                if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __pyx_L71_unpacking_done:;              } -            __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -            __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_18); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_18); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;              __pyx_cur_scope->__pyx_v_i = __pyx_t_21;              __pyx_cur_scope->__pyx_v_alt = __pyx_t_7; @@ -53909,40 +54023,40 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __Pyx_GIVEREF(__pyx_t_10);              __pyx_t_10 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1182 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1190   *    *                         for i, alt, pathlen in frontier_nodes:   *                             new_frontier.append((k, i, input_match + (i,), alt, pathlen, xnode, phrase +(xcat,), is_shadow_path))             # <<<<<<<<<<<<<<   *             frontier = new_frontier   *    */ -            __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_3); -            __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10); -            __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_18); -            __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11);              PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_18);              __Pyx_GIVEREF(__pyx_t_18);              __pyx_t_18 = 0; -            __pyx_t_18 = PyNumber_Add(__pyx_cur_scope->__pyx_v_input_match, __pyx_t_11); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_18 = PyNumber_Add(__pyx_cur_scope->__pyx_v_input_match, __pyx_t_11); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_18);              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -            __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_alt); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_alt); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11); -            __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_xcat); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_xcat); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_15);              PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_1);              __Pyx_GIVEREF(__pyx_t_1);              __pyx_t_1 = 0; -            __pyx_t_1 = PyNumber_Add(__pyx_cur_scope->__pyx_v_phrase, __pyx_t_15); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = PyNumber_Add(__pyx_cur_scope->__pyx_v_phrase, __pyx_t_15); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_1);              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -            __pyx_t_15 = PyTuple_New(8); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_15 = PyTuple_New(8); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_15);              PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3);              __Pyx_GIVEREF(__pyx_t_3); @@ -53968,7 +54082,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              __pyx_t_18 = 0;              __pyx_t_11 = 0;              __pyx_t_1 = 0; -            __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_new_frontier, __pyx_t_15); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_12 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_new_frontier, __pyx_t_15); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;            }            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; @@ -53982,7 +54096,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(      }      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1183 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1191   *                         for i, alt, pathlen in frontier_nodes:   *                             new_frontier.append((k, i, input_match + (i,), alt, pathlen, xnode, phrase +(xcat,), is_shadow_path))   *             frontier = new_frontier             # <<<<<<<<<<<<<< @@ -53995,7 +54109,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_new_frontier);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1186 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1194   *    *         # Online rule extraction and scoring   *         if self.online:             # <<<<<<<<<<<<<< @@ -54005,55 +54119,55 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(    __pyx_t_9 = (__pyx_cur_scope->__pyx_v_self->online != 0);    if (__pyx_t_9) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1187 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1195   *         # Online rule extraction and scoring   *         if self.online:   *             stats = self.online_stats[ctx_name]             # <<<<<<<<<<<<<<   *             f_syms = tuple(word[0][0] for word in fwords)   *             for f, lex_i, lex_j in self.get_f_phrases(f_syms):   */ -    __pyx_t_8 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->online_stats, __pyx_cur_scope->__pyx_v_ctx_name); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_8 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->online_stats, __pyx_cur_scope->__pyx_v_ctx_name); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_8);      __Pyx_GIVEREF(__pyx_t_8);      __pyx_cur_scope->__pyx_v_stats = __pyx_t_8;      __pyx_t_8 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1188 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1196   *         if self.online:   *             stats = self.online_stats[ctx_name]   *             f_syms = tuple(word[0][0] for word in fwords)             # <<<<<<<<<<<<<<   *             for f, lex_i, lex_j in self.get_f_phrases(f_syms):   *                 spanlen = (lex_j - lex_i) + 1   */ -    __pyx_t_8 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_2genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_5input_2genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8); -    __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_14);      PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8);      __Pyx_GIVEREF(__pyx_t_8);      __pyx_t_8 = 0; -    __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_14, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_14, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8);      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;      __Pyx_GIVEREF(__pyx_t_8);      __pyx_cur_scope->__pyx_v_f_syms = ((PyObject*)__pyx_t_8);      __pyx_t_8 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1189 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1197   *             stats = self.online_stats[ctx_name]   *             f_syms = tuple(word[0][0] for word in fwords)   *             for f, lex_i, lex_j in self.get_f_phrases(f_syms):             # <<<<<<<<<<<<<<   *                 spanlen = (lex_j - lex_i) + 1   *                 if not sym_isvar(f[0]):   */ -    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_get_f_phrases); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_get_f_phrases); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8); -    __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_14);      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f_syms);      PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_cur_scope->__pyx_v_f_syms);      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_f_syms); -    __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_14, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_14, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_15);      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; @@ -54061,7 +54175,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        __pyx_t_14 = __pyx_t_15; __Pyx_INCREF(__pyx_t_14); __pyx_t_2 = 0;        __pyx_t_22 = NULL;      } else { -      __pyx_t_2 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_14);        __pyx_t_22 = Py_TYPE(__pyx_t_14)->tp_iternext;      } @@ -54070,16 +54184,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        if (!__pyx_t_22 && PyList_CheckExact(__pyx_t_14)) {          if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_14)) break;          #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_15 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_2); __Pyx_INCREF(__pyx_t_15); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_15 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_2); __Pyx_INCREF(__pyx_t_15); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #else -        __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #endif        } else if (!__pyx_t_22 && PyTuple_CheckExact(__pyx_t_14)) {          if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_14)) break;          #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_2); __Pyx_INCREF(__pyx_t_15); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_2); __Pyx_INCREF(__pyx_t_15); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #else -        __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #endif        } else {          __pyx_t_15 = __pyx_t_22(__pyx_t_14); @@ -54087,7 +54201,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            PyObject* exc_type = PyErr_Occurred();            if (exc_type) {              if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -            else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            }            break;          } @@ -54103,7 +54217,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          if (unlikely(size != 3)) {            if (size > 3) __Pyx_RaiseTooManyValuesError(3);            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          #if CYTHON_COMPILING_IN_CPYTHON          if (likely(PyTuple_CheckExact(sequence))) { @@ -54119,17 +54233,17 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __Pyx_INCREF(__pyx_t_1);          __Pyx_INCREF(__pyx_t_11);          #else -        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_8); -        __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_11 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_11 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_11);          #endif          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;        } else {          Py_ssize_t index = -1; -        __pyx_t_18 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_18 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_18);          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;          __pyx_t_20 = Py_TYPE(__pyx_t_18)->tp_iternext; @@ -54139,7 +54253,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __Pyx_GOTREF(__pyx_t_1);          index = 2; __pyx_t_11 = __pyx_t_20(__pyx_t_18); if (unlikely(!__pyx_t_11)) goto __pyx_L75_unpacking_failed;          __Pyx_GOTREF(__pyx_t_11); -        if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_18), 3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_18), 3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __pyx_t_20 = NULL;          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;          goto __pyx_L76_unpacking_done; @@ -54147,7 +54261,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;          __pyx_t_20 = NULL;          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __pyx_L76_unpacking_done:;        }        __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_f); @@ -54163,16 +54277,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        __Pyx_GIVEREF(__pyx_t_11);        __pyx_t_11 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1190 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1198   *             f_syms = tuple(word[0][0] for word in fwords)   *             for f, lex_i, lex_j in self.get_f_phrases(f_syms):   *                 spanlen = (lex_j - lex_i) + 1             # <<<<<<<<<<<<<<   *                 if not sym_isvar(f[0]):   *                     spanlen += 1   */ -      __pyx_t_15 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_lex_j, __pyx_cur_scope->__pyx_v_lex_i); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_15 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_lex_j, __pyx_cur_scope->__pyx_v_lex_i); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_15); -      __pyx_t_11 = PyNumber_Add(__pyx_t_15, __pyx_int_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_11 = PyNumber_Add(__pyx_t_15, __pyx_int_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_11);        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;        __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_spanlen); @@ -54180,28 +54294,28 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        __Pyx_GIVEREF(__pyx_t_11);        __pyx_t_11 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1191 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1199   *             for f, lex_i, lex_j in self.get_f_phrases(f_syms):   *                 spanlen = (lex_j - lex_i) + 1   *                 if not sym_isvar(f[0]):             # <<<<<<<<<<<<<<   *                     spanlen += 1   *                 if not sym_isvar(f[1]):   */ -      __pyx_t_11 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_f, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_11 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_f, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_11); -      __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;        __pyx_t_9 = ((!(__pyx_f_4cdec_2sa_3_sa_sym_isvar(__pyx_t_7) != 0)) != 0);        if (__pyx_t_9) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1192 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1200   *                 spanlen = (lex_j - lex_i) + 1   *                 if not sym_isvar(f[0]):   *                     spanlen += 1             # <<<<<<<<<<<<<<   *                 if not sym_isvar(f[1]):   *                     spanlen += 1   */ -        __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_cur_scope->__pyx_v_spanlen, __pyx_int_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_cur_scope->__pyx_v_spanlen, __pyx_int_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_11);          __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_spanlen);          __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_spanlen, __pyx_t_11); @@ -54211,28 +54325,28 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        }        __pyx_L77:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1193 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1201   *                 if not sym_isvar(f[0]):   *                     spanlen += 1   *                 if not sym_isvar(f[1]):             # <<<<<<<<<<<<<<   *                     spanlen += 1   *                 for e in stats.phrases_fe.get(f, ()):   */ -      __pyx_t_11 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_f, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_11 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_f, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1201; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_11); -      __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;        __pyx_t_9 = ((!(__pyx_f_4cdec_2sa_3_sa_sym_isvar(__pyx_t_7) != 0)) != 0);        if (__pyx_t_9) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1194 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1202   *                     spanlen += 1   *                 if not sym_isvar(f[1]):   *                     spanlen += 1             # <<<<<<<<<<<<<<   *                 for e in stats.phrases_fe.get(f, ()):   *                     if (f, e) not in seen_phrases:   */ -        __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_cur_scope->__pyx_v_spanlen, __pyx_int_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1194; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_cur_scope->__pyx_v_spanlen, __pyx_int_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_11);          __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_spanlen);          __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_spanlen, __pyx_t_11); @@ -54242,19 +54356,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        }        __pyx_L78:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1195 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1203   *                 if not sym_isvar(f[1]):   *                     spanlen += 1   *                 for e in stats.phrases_fe.get(f, ()):             # <<<<<<<<<<<<<<   *                     if (f, e) not in seen_phrases:   *                         # Don't add multiple instances of the same phrase here   */ -      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_stats, __pyx_n_s_phrases_fe); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_stats, __pyx_n_s_phrases_fe); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_11); -      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_get); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_get); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_15);        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -      __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_11);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f);        PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_cur_scope->__pyx_v_f); @@ -54262,7 +54376,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(        __Pyx_INCREF(__pyx_empty_tuple);        PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_empty_tuple);        __Pyx_GIVEREF(__pyx_empty_tuple); -      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; @@ -54270,7 +54384,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __pyx_t_11 = __pyx_t_1; __Pyx_INCREF(__pyx_t_11); __pyx_t_23 = 0;          __pyx_t_29 = NULL;        } else { -        __pyx_t_23 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_23 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_11);          __pyx_t_29 = Py_TYPE(__pyx_t_11)->tp_iternext;        } @@ -54279,16 +54393,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          if (!__pyx_t_29 && PyList_CheckExact(__pyx_t_11)) {            if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_11)) break;            #if CYTHON_COMPILING_IN_CPYTHON -          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_23); __Pyx_INCREF(__pyx_t_1); __pyx_t_23++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_23); __Pyx_INCREF(__pyx_t_1); __pyx_t_23++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #else -          __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #endif          } else if (!__pyx_t_29 && PyTuple_CheckExact(__pyx_t_11)) {            if (__pyx_t_23 >= PyTuple_GET_SIZE(__pyx_t_11)) break;            #if CYTHON_COMPILING_IN_CPYTHON -          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_23); __Pyx_INCREF(__pyx_t_1); __pyx_t_23++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_23); __Pyx_INCREF(__pyx_t_1); __pyx_t_23++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #else -          __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #endif          } else {            __pyx_t_1 = __pyx_t_29(__pyx_t_11); @@ -54296,7 +54410,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(              PyObject* exc_type = PyErr_Occurred();              if (exc_type) {                if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -              else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              }              break;            } @@ -54307,14 +54421,14 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __Pyx_GIVEREF(__pyx_t_1);          __pyx_t_1 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1196 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1204   *                     spanlen += 1   *                 for e in stats.phrases_fe.get(f, ()):   *                     if (f, e) not in seen_phrases:             # <<<<<<<<<<<<<<   *                         # Don't add multiple instances of the same phrase here   *                         seen_phrases.add((f, e))   */ -        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1);          __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f);          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_f); @@ -54322,19 +54436,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(          __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e);          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_e);          __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_e); -        __pyx_t_9 = (__Pyx_PySequence_Contains(__pyx_t_1, __pyx_cur_scope->__pyx_v_seen_phrases, Py_NE)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_9 = (__Pyx_PySequence_Contains(__pyx_t_1, __pyx_cur_scope->__pyx_v_seen_phrases, Py_NE)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          __pyx_t_13 = (__pyx_t_9 != 0);          if (__pyx_t_13) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1198 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1206   *                     if (f, e) not in seen_phrases:   *                         # Don't add multiple instances of the same phrase here   *                         seen_phrases.add((f, e))             # <<<<<<<<<<<<<<   *                         scores = self.scorer.score(FeatureContext(   *                                 f, e, 0, 0, 0,   */ -          __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1198; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_1);            __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f);            PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_f); @@ -54342,29 +54456,29 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e);            PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_e);            __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_e); -          __pyx_t_12 = PySet_Add(__pyx_cur_scope->__pyx_v_seen_phrases, __pyx_t_1); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1198; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_12 = PySet_Add(__pyx_cur_scope->__pyx_v_seen_phrases, __pyx_t_1); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1199 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1207   *                         # Don't add multiple instances of the same phrase here   *                         seen_phrases.add((f, e))   *                         scores = self.scorer.score(FeatureContext(             # <<<<<<<<<<<<<<   *                                 f, e, 0, 0, 0,   *                                 spanlen, None, None,   */ -          __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_FeatureContext); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_FeatureContext); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_1); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1204 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1212   *                                 fwords, self.fda, self.eda,   *                                 meta,   *                                 self.online_ctx_lookup(f, e, ctx_name)))             # <<<<<<<<<<<<<<   *                         alignment = stats.phrases_al[f][e]   *                         yield Rule(self.category, f, e, scores, alignment)   */ -          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_online_ctx_lookup); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_online_ctx_lookup); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_15); -          __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_8);            __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f);            PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_cur_scope->__pyx_v_f); @@ -54375,19 +54489,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_INCREF(__pyx_cur_scope->__pyx_v_ctx_name);            PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_cur_scope->__pyx_v_ctx_name);            __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_ctx_name); -          __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_8, NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_8, NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1199 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1207   *                         # Don't add multiple instances of the same phrase here   *                         seen_phrases.add((f, e))   *                         scores = self.scorer.score(FeatureContext(             # <<<<<<<<<<<<<<   *                                 f, e, 0, 0, 0,   *                                 spanlen, None, None,   */ -          __pyx_t_8 = PyTuple_New(13); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_8 = PyTuple_New(13); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_8);            __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f);            PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_cur_scope->__pyx_v_f); @@ -54428,11 +54542,11 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            PyTuple_SET_ITEM(__pyx_t_8, 12, __pyx_t_18);            __Pyx_GIVEREF(__pyx_t_18);            __pyx_t_18 = 0; -          __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -          __pyx_t_8 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Scorer *)__pyx_cur_scope->__pyx_v_self->scorer->__pyx_vtab)->score(__pyx_cur_scope->__pyx_v_self->scorer, __pyx_t_18)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_8 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Scorer *)__pyx_cur_scope->__pyx_v_self->scorer->__pyx_vtab)->score(__pyx_cur_scope->__pyx_v_self->scorer, __pyx_t_18)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_8);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;            __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_scores)); @@ -54440,19 +54554,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_GIVEREF(__pyx_t_8);            __pyx_t_8 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1205 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1213   *                                 meta,   *                                 self.online_ctx_lookup(f, e, ctx_name)))   *                         alignment = stats.phrases_al[f][e]             # <<<<<<<<<<<<<<   *                         yield Rule(self.category, f, e, scores, alignment)   *    */ -          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_stats, __pyx_n_s_phrases_al); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_stats, __pyx_n_s_phrases_al); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_8); -          __pyx_t_18 = PyObject_GetItem(__pyx_t_8, __pyx_cur_scope->__pyx_v_f); if (unlikely(__pyx_t_18 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +          __pyx_t_18 = PyObject_GetItem(__pyx_t_8, __pyx_cur_scope->__pyx_v_f); if (unlikely(__pyx_t_18 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1213; __pyx_clineno = __LINE__; goto __pyx_L1_error;};            __Pyx_GOTREF(__pyx_t_18);            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -          __pyx_t_8 = PyObject_GetItem(__pyx_t_18, __pyx_cur_scope->__pyx_v_e); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +          __pyx_t_8 = PyObject_GetItem(__pyx_t_18, __pyx_cur_scope->__pyx_v_e); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1213; __pyx_clineno = __LINE__; goto __pyx_L1_error;};            __Pyx_GOTREF(__pyx_t_8);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_alignment); @@ -54460,16 +54574,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __Pyx_GIVEREF(__pyx_t_8);            __pyx_t_8 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1206 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1214   *                                 self.online_ctx_lookup(f, e, ctx_name)))   *                         alignment = stats.phrases_al[f][e]   *                         yield Rule(self.category, f, e, scores, alignment)             # <<<<<<<<<<<<<<   *    *         stop_time = monitor_cpu()   */ -          __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->category); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->category); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_8); -          __pyx_t_18 = PyTuple_New(5); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_18 = PyTuple_New(5); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_18);            PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_8);            __Pyx_GIVEREF(__pyx_t_8); @@ -54486,7 +54600,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            PyTuple_SET_ITEM(__pyx_t_18, 4, __pyx_cur_scope->__pyx_v_alignment);            __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_alignment);            __pyx_t_8 = 0; -          __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Rule)), __pyx_t_18, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Rule)), __pyx_t_18, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_8);            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;            __pyx_r = __pyx_t_8; @@ -54515,7 +54629,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(            __pyx_t_22 = __pyx_cur_scope->__pyx_t_10;            __pyx_t_23 = __pyx_cur_scope->__pyx_t_1;            __pyx_t_29 = __pyx_cur_scope->__pyx_t_11; -          if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            goto __pyx_L81;          }          __pyx_L81:; @@ -54527,40 +54641,40 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(    }    __pyx_L72:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1208 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1216   *                         yield Rule(self.category, f, e, scores, alignment)   *    *         stop_time = monitor_cpu()             # <<<<<<<<<<<<<<   *         logger.info("Total time for rule lookup, extraction, and scoring = %f seconds", (stop_time - start_time))   *         gc.collect()   */ -  __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_monitor_cpu); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_14); -  __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_11);    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;    __Pyx_GIVEREF(__pyx_t_11);    __pyx_cur_scope->__pyx_v_stop_time = __pyx_t_11;    __pyx_t_11 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1209 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1217   *    *         stop_time = monitor_cpu()   *         logger.info("Total time for rule lookup, extraction, and scoring = %f seconds", (stop_time - start_time))             # <<<<<<<<<<<<<<   *         gc.collect()   *         logger.info("    Extract time = %f seconds", self.extract_time)   */ -  __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_11); -  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_info); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_info); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_14);    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -  __pyx_t_11 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_start_time); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_11 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_start_time); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_11); -  __pyx_t_8 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_stop_time, __pyx_t_11); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_stop_time, __pyx_t_11); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8);    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -  __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_11);    __Pyx_INCREF(__pyx_kp_s_Total_time_for_rule_lookup_extra);    PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_kp_s_Total_time_for_rule_lookup_extra); @@ -54568,44 +54682,44 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(    PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_8);    __Pyx_GIVEREF(__pyx_t_8);    __pyx_t_8 = 0; -  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_11, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_11, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8);    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1210 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1218   *         stop_time = monitor_cpu()   *         logger.info("Total time for rule lookup, extraction, and scoring = %f seconds", (stop_time - start_time))   *         gc.collect()             # <<<<<<<<<<<<<<   *         logger.info("    Extract time = %f seconds", self.extract_time)   *         logger.info("    Intersect time = %f seconds", self.intersect_time)   */ -  __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_gc); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_gc); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_collect); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_collect); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_11);    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8);    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1211 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1219   *         logger.info("Total time for rule lookup, extraction, and scoring = %f seconds", (stop_time - start_time))   *         gc.collect()   *         logger.info("    Extract time = %f seconds", self.extract_time)             # <<<<<<<<<<<<<<   *         logger.info("    Intersect time = %f seconds", self.intersect_time)   *    */ -  __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_info); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_info); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_11);    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  __pyx_t_8 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->extract_time); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->extract_time); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_14);    __Pyx_INCREF(__pyx_kp_s_Extract_time_f_seconds);    PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_kp_s_Extract_time_f_seconds); @@ -54613,27 +54727,27 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(    PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_8);    __Pyx_GIVEREF(__pyx_t_8);    __pyx_t_8 = 0; -  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_14, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_14, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8);    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1212 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1220   *         gc.collect()   *         logger.info("    Extract time = %f seconds", self.extract_time)   *         logger.info("    Intersect time = %f seconds", self.intersect_time)             # <<<<<<<<<<<<<<   *    *    */ -  __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_info); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_info); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_14);    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  __pyx_t_8 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->intersect_time); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->intersect_time); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_11);    __Pyx_INCREF(__pyx_kp_s_Intersect_time_f_seconds);    PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_kp_s_Intersect_time_f_seconds); @@ -54641,13 +54755,13 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(    PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_8);    __Pyx_GIVEREF(__pyx_t_8);    __pyx_t_8 = 0; -  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_11, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_11, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8);    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":973 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":981   *         return sorted(result);   *    *     def input(self, fwords, meta, ctx_name=None):             # <<<<<<<<<<<<<< @@ -54679,7 +54793,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_24generator4(    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1215 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1223   *    *    *     cdef int find_fixpoint(self,             # <<<<<<<<<<<<<< @@ -54709,7 +54823,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("find_fixpoint", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1230 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1238   *         cdef int e_low_prev, e_high_prev, f_low_prev, f_high_prev, new_x, new_low_x, new_high_x   *    *         e_low[0] = e_in_low             # <<<<<<<<<<<<<< @@ -54718,7 +54832,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */    (__pyx_v_e_low[0]) = __pyx_v_e_in_low; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1231 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1239   *    *         e_low[0] = e_in_low   *         e_high[0] = e_in_high             # <<<<<<<<<<<<<< @@ -54727,19 +54841,19 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */    (__pyx_v_e_high[0]) = __pyx_v_e_in_high; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1232 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1240   *         e_low[0] = e_in_low   *         e_high[0] = e_in_high   *         self.find_projection(f_low, f_high, f_links_low, f_links_high, e_low, e_high)             # <<<<<<<<<<<<<<   *         if e_low[0] == -1:   *             # low-priority corner case: if phrase w is unaligned,   */ -  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_f_high); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1232; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, __pyx_v_f_low, __pyx_t_1, __pyx_v_f_links_low, __pyx_v_f_links_high, __pyx_v_e_low, __pyx_v_e_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1232; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_f_high); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, __pyx_v_f_low, __pyx_t_1, __pyx_v_f_links_low, __pyx_v_f_links_high, __pyx_v_e_low, __pyx_v_e_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1233 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1241   *         e_high[0] = e_in_high   *         self.find_projection(f_low, f_high, f_links_low, f_links_high, e_low, e_high)   *         if e_low[0] == -1:             # <<<<<<<<<<<<<< @@ -54749,7 +54863,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct    __pyx_t_3 = (((__pyx_v_e_low[0]) == -1) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1239 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1247   *             # rule X -> X_1 w X_2 / X_1 X_2.    This is probably   *             # not worth the bother, though.   *             return 0             # <<<<<<<<<<<<<< @@ -54760,7 +54874,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1240 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1248   *             # not worth the bother, though.   *             return 0   *         elif e_in_low != -1 and e_low[0] != e_in_low:             # <<<<<<<<<<<<<< @@ -54776,7 +54890,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct    }    if (__pyx_t_5) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1241 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1249   *             return 0   *         elif e_in_low != -1 and e_low[0] != e_in_low:   *             if e_in_low - e_low[0] < min_ex_size:             # <<<<<<<<<<<<<< @@ -54786,7 +54900,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      __pyx_t_5 = (((__pyx_v_e_in_low - (__pyx_v_e_low[0])) < __pyx_v_min_ex_size) != 0);      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1242 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1250   *         elif e_in_low != -1 and e_low[0] != e_in_low:   *             if e_in_low - e_low[0] < min_ex_size:   *                 e_low[0] = e_in_low - min_ex_size             # <<<<<<<<<<<<<< @@ -54795,7 +54909,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */        (__pyx_v_e_low[0]) = (__pyx_v_e_in_low - __pyx_v_min_ex_size); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1243 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1251   *             if e_in_low - e_low[0] < min_ex_size:   *                 e_low[0] = e_in_low - min_ex_size   *                 if e_low[0] < 0:             # <<<<<<<<<<<<<< @@ -54805,7 +54919,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        __pyx_t_5 = (((__pyx_v_e_low[0]) < 0) != 0);        if (__pyx_t_5) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1244 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1252   *                 e_low[0] = e_in_low - min_ex_size   *                 if e_low[0] < 0:   *                     return 0             # <<<<<<<<<<<<<< @@ -54822,7 +54936,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1246 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1254   *                     return 0   *    *         if e_high[0] - e_low[0] > max_e_len:             # <<<<<<<<<<<<<< @@ -54832,7 +54946,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct    __pyx_t_5 = ((((__pyx_v_e_high[0]) - (__pyx_v_e_low[0])) > __pyx_v_max_e_len) != 0);    if (__pyx_t_5) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1247 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1255   *    *         if e_high[0] - e_low[0] > max_e_len:   *             return 0             # <<<<<<<<<<<<<< @@ -54843,7 +54957,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1248 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1256   *         if e_high[0] - e_low[0] > max_e_len:   *             return 0   *         elif e_in_high != -1 and e_high[0] != e_in_high:             # <<<<<<<<<<<<<< @@ -54859,7 +54973,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct    }    if (__pyx_t_4) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1249 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1257   *             return 0   *         elif e_in_high != -1 and e_high[0] != e_in_high:   *             if e_high[0] - e_in_high < min_ex_size:             # <<<<<<<<<<<<<< @@ -54869,7 +54983,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      __pyx_t_4 = ((((__pyx_v_e_high[0]) - __pyx_v_e_in_high) < __pyx_v_min_ex_size) != 0);      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1250 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1258   *         elif e_in_high != -1 and e_high[0] != e_in_high:   *             if e_high[0] - e_in_high < min_ex_size:   *                 e_high[0] = e_in_high + min_ex_size             # <<<<<<<<<<<<<< @@ -54878,7 +54992,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */        (__pyx_v_e_high[0]) = (__pyx_v_e_in_high + __pyx_v_min_ex_size); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1251 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1259   *             if e_high[0] - e_in_high < min_ex_size:   *                 e_high[0] = e_in_high + min_ex_size   *                 if e_high[0] > e_sent_len:             # <<<<<<<<<<<<<< @@ -54888,7 +55002,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        __pyx_t_4 = (((__pyx_v_e_high[0]) > __pyx_v_e_sent_len) != 0);        if (__pyx_t_4) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1252 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1260   *                 e_high[0] = e_in_high + min_ex_size   *                 if e_high[0] > e_sent_len:   *                     return 0             # <<<<<<<<<<<<<< @@ -54905,7 +55019,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct    }    __pyx_L6:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1254 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1262   *                     return 0   *    *         f_back_low[0] = -1             # <<<<<<<<<<<<<< @@ -54914,7 +55028,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */    (__pyx_v_f_back_low[0]) = -1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1255 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1263   *    *         f_back_low[0] = -1   *         f_back_high[0] = -1             # <<<<<<<<<<<<<< @@ -54923,7 +55037,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */    (__pyx_v_f_back_high[0]) = -1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1256 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1264   *         f_back_low[0] = -1   *         f_back_high[0] = -1   *         f_low_prev = f_low             # <<<<<<<<<<<<<< @@ -54932,17 +55046,17 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */    __pyx_v_f_low_prev = __pyx_v_f_low; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1257 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1265   *         f_back_high[0] = -1   *         f_low_prev = f_low   *         f_high_prev = f_high             # <<<<<<<<<<<<<<   *         new_x = 0   *         new_low_x = 0   */ -  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_f_high); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_f_high); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_v_f_high_prev = __pyx_t_1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1258 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1266   *         f_low_prev = f_low   *         f_high_prev = f_high   *         new_x = 0             # <<<<<<<<<<<<<< @@ -54951,7 +55065,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */    __pyx_v_new_x = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1259 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1267   *         f_high_prev = f_high   *         new_x = 0   *         new_low_x = 0             # <<<<<<<<<<<<<< @@ -54960,7 +55074,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */    __pyx_v_new_low_x = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1260 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1268   *         new_x = 0   *         new_low_x = 0   *         new_high_x = 0             # <<<<<<<<<<<<<< @@ -54969,7 +55083,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */    __pyx_v_new_high_x = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1262 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1270   *         new_high_x = 0   *    *         while True:             # <<<<<<<<<<<<<< @@ -54978,7 +55092,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */    while (1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1264 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1272   *         while True:   *    *             if f_back_low[0] == -1:             # <<<<<<<<<<<<<< @@ -54988,45 +55102,45 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      __pyx_t_4 = (((__pyx_v_f_back_low[0]) == -1) != 0);      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1265 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1273   *    *             if f_back_low[0] == -1:   *                 self.find_projection(e_low[0], e_high[0], e_links_low, e_links_high, f_back_low, f_back_high)             # <<<<<<<<<<<<<<   *             else:   *                 self.find_projection(e_low[0], e_low_prev, e_links_low, e_links_high, f_back_low, f_back_high)   */ -      __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, (__pyx_v_e_low[0]), (__pyx_v_e_high[0]), __pyx_v_e_links_low, __pyx_v_e_links_high, __pyx_v_f_back_low, __pyx_v_f_back_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1265; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, (__pyx_v_e_low[0]), (__pyx_v_e_high[0]), __pyx_v_e_links_low, __pyx_v_e_links_high, __pyx_v_f_back_low, __pyx_v_f_back_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        goto __pyx_L11;      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1267 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1275   *                 self.find_projection(e_low[0], e_high[0], e_links_low, e_links_high, f_back_low, f_back_high)   *             else:   *                 self.find_projection(e_low[0], e_low_prev, e_links_low, e_links_high, f_back_low, f_back_high)             # <<<<<<<<<<<<<<   *                 self.find_projection(e_high_prev, e_high[0], e_links_low, e_links_high, f_back_low, f_back_high)   *    */ -      __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, (__pyx_v_e_low[0]), __pyx_v_e_low_prev, __pyx_v_e_links_low, __pyx_v_e_links_high, __pyx_v_f_back_low, __pyx_v_f_back_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, (__pyx_v_e_low[0]), __pyx_v_e_low_prev, __pyx_v_e_links_low, __pyx_v_e_links_high, __pyx_v_f_back_low, __pyx_v_f_back_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1268 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1276   *             else:   *                 self.find_projection(e_low[0], e_low_prev, e_links_low, e_links_high, f_back_low, f_back_high)   *                 self.find_projection(e_high_prev, e_high[0], e_links_low, e_links_high, f_back_low, f_back_high)             # <<<<<<<<<<<<<<   *    *             if f_back_low[0] > f_low:   */ -      __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, __pyx_v_e_high_prev, (__pyx_v_e_high[0]), __pyx_v_e_links_low, __pyx_v_e_links_high, __pyx_v_f_back_low, __pyx_v_f_back_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1268; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, __pyx_v_e_high_prev, (__pyx_v_e_high[0]), __pyx_v_e_links_low, __pyx_v_e_links_high, __pyx_v_f_back_low, __pyx_v_f_back_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      }      __pyx_L11:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1270 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1278   *                 self.find_projection(e_high_prev, e_high[0], e_links_low, e_links_high, f_back_low, f_back_high)   *    *             if f_back_low[0] > f_low:             # <<<<<<<<<<<<<< @@ -55036,7 +55150,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      __pyx_t_4 = (((__pyx_v_f_back_low[0]) > __pyx_v_f_low) != 0);      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1271 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1279   *    *             if f_back_low[0] > f_low:   *                 f_back_low[0] = f_low             # <<<<<<<<<<<<<< @@ -55048,35 +55162,35 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      }      __pyx_L12:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1273 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1281   *                 f_back_low[0] = f_low   *    *             if f_back_high[0] < f_high:             # <<<<<<<<<<<<<<   *                 f_back_high[0] = f_high   *    */ -    __pyx_t_2 = __Pyx_PyInt_From_int((__pyx_v_f_back_high[0])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1273; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyInt_From_int((__pyx_v_f_back_high[0])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_v_f_high, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1273; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_v_f_high, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1273; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1274 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1282   *    *             if f_back_high[0] < f_high:   *                 f_back_high[0] = f_high             # <<<<<<<<<<<<<<   *    *             if f_back_low[0] == f_low_prev and f_back_high[0] == f_high_prev:   */ -      __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_f_high); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_f_high); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        (__pyx_v_f_back_high[0]) = __pyx_t_1;        goto __pyx_L13;      }      __pyx_L13:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1276 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1284   *                 f_back_high[0] = f_high   *    *             if f_back_low[0] == f_low_prev and f_back_high[0] == f_high_prev:             # <<<<<<<<<<<<<< @@ -55092,7 +55206,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      }      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1277 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1285   *    *             if f_back_low[0] == f_low_prev and f_back_high[0] == f_high_prev:   *                 return 1             # <<<<<<<<<<<<<< @@ -55103,7 +55217,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1279 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1287   *                 return 1   *    *             if allow_low_x == 0 and f_back_low[0] < f_low:             # <<<<<<<<<<<<<< @@ -55119,7 +55233,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      }      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1281 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1289   *             if allow_low_x == 0 and f_back_low[0] < f_low:   *                 # FAIL: f phrase is not tight   *                 return 0             # <<<<<<<<<<<<<< @@ -55130,7 +55244,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1283 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1291   *                 return 0   *    *             if f_back_high[0] - f_back_low[0] > max_f_len:             # <<<<<<<<<<<<<< @@ -55140,7 +55254,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      __pyx_t_5 = ((((__pyx_v_f_back_high[0]) - (__pyx_v_f_back_low[0])) > __pyx_v_max_f_len) != 0);      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1285 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1293   *             if f_back_high[0] - f_back_low[0] > max_f_len:   *                 # FAIL: f back projection is too wide   *                 return 0             # <<<<<<<<<<<<<< @@ -55151,7 +55265,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1287 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1295   *                 return 0   *    *             if allow_high_x == 0 and f_back_high[0] > f_high:             # <<<<<<<<<<<<<< @@ -55160,11 +55274,11 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */      __pyx_t_5 = (__pyx_v_allow_high_x == 0);      if (__pyx_t_5) { -      __pyx_t_6 = __Pyx_PyInt_From_int((__pyx_v_f_back_high[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyInt_From_int((__pyx_v_f_back_high[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_v_f_high, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_v_f_high, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __pyx_t_4 = __pyx_t_3;      } else { @@ -55172,7 +55286,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      }      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1289 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1297   *             if allow_high_x == 0 and f_back_high[0] > f_high:   *                 # FAIL: extension on high side not allowed   *                 return 0             # <<<<<<<<<<<<<< @@ -55183,7 +55297,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1291 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1299   *                 return 0   *    *             if f_low != f_back_low[0]:             # <<<<<<<<<<<<<< @@ -55193,7 +55307,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      __pyx_t_4 = ((__pyx_v_f_low != (__pyx_v_f_back_low[0])) != 0);      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1292 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1300   *    *             if f_low != f_back_low[0]:   *                 if new_low_x == 0:             # <<<<<<<<<<<<<< @@ -55203,7 +55317,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        __pyx_t_4 = ((__pyx_v_new_low_x == 0) != 0);        if (__pyx_t_4) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1293 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1301   *             if f_low != f_back_low[0]:   *                 if new_low_x == 0:   *                     if new_x >= max_new_x:             # <<<<<<<<<<<<<< @@ -55213,7 +55327,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct          __pyx_t_4 = ((__pyx_v_new_x >= __pyx_v_max_new_x) != 0);          if (__pyx_t_4) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1295 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1303   *                     if new_x >= max_new_x:   *                         # FAIL: extension required on low side violates max # of gaps   *                         return 0             # <<<<<<<<<<<<<< @@ -55225,7 +55339,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1297 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1305   *                         return 0   *                     else:   *                         new_x = new_x + 1             # <<<<<<<<<<<<<< @@ -55234,7 +55348,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */            __pyx_v_new_x = (__pyx_v_new_x + 1); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1298 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1306   *                     else:   *                         new_x = new_x + 1   *                         new_low_x = 1             # <<<<<<<<<<<<<< @@ -55247,7 +55361,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        }        __pyx_L19:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1299 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1307   *                         new_x = new_x + 1   *                         new_low_x = 1   *                 if f_low - f_back_low[0] < min_fx_size:             # <<<<<<<<<<<<<< @@ -55257,7 +55371,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        __pyx_t_4 = (((__pyx_v_f_low - (__pyx_v_f_back_low[0])) < __pyx_v_min_fx_size) != 0);        if (__pyx_t_4) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1300 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1308   *                         new_low_x = 1   *                 if f_low - f_back_low[0] < min_fx_size:   *                     f_back_low[0] = f_low - min_fx_size             # <<<<<<<<<<<<<< @@ -55266,7 +55380,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */          (__pyx_v_f_back_low[0]) = (__pyx_v_f_low - __pyx_v_min_fx_size); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1301 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1309   *                 if f_low - f_back_low[0] < min_fx_size:   *                     f_back_low[0] = f_low - min_fx_size   *                     if f_back_high[0] - f_back_low[0] > max_f_len:             # <<<<<<<<<<<<<< @@ -55276,7 +55390,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct          __pyx_t_4 = ((((__pyx_v_f_back_high[0]) - (__pyx_v_f_back_low[0])) > __pyx_v_max_f_len) != 0);          if (__pyx_t_4) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1303 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1311   *                     if f_back_high[0] - f_back_low[0] > max_f_len:   *                         # FAIL: extension required on low side violates max initial length   *                         return 0             # <<<<<<<<<<<<<< @@ -55287,7 +55401,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct            goto __pyx_L0;          } -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1304 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1312   *                         # FAIL: extension required on low side violates max initial length   *                         return 0   *                     if f_back_low[0] < 0:             # <<<<<<<<<<<<<< @@ -55297,7 +55411,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct          __pyx_t_4 = (((__pyx_v_f_back_low[0]) < 0) != 0);          if (__pyx_t_4) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1306 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1314   *                     if f_back_low[0] < 0:   *                         # FAIL: extension required on low side violates sentence boundary   *                         return 0             # <<<<<<<<<<<<<< @@ -55314,22 +55428,22 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      }      __pyx_L18:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1308 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1316   *                         return 0   *    *             if f_high != f_back_high[0]:             # <<<<<<<<<<<<<<   *                 if new_high_x == 0:   *                     if new_x >= max_new_x:   */ -    __pyx_t_2 = __Pyx_PyInt_From_int((__pyx_v_f_back_high[0])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyInt_From_int((__pyx_v_f_back_high[0])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_6 = PyObject_RichCompare(__pyx_v_f_high, __pyx_t_2, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyObject_RichCompare(__pyx_v_f_high, __pyx_t_2, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      if (__pyx_t_4) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1309 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1317   *    *             if f_high != f_back_high[0]:   *                 if new_high_x == 0:             # <<<<<<<<<<<<<< @@ -55339,7 +55453,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        __pyx_t_4 = ((__pyx_v_new_high_x == 0) != 0);        if (__pyx_t_4) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1310 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1318   *             if f_high != f_back_high[0]:   *                 if new_high_x == 0:   *                     if new_x >= max_new_x:             # <<<<<<<<<<<<<< @@ -55349,7 +55463,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct          __pyx_t_4 = ((__pyx_v_new_x >= __pyx_v_max_new_x) != 0);          if (__pyx_t_4) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1312 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1320   *                     if new_x >= max_new_x:   *                         # FAIL: extension required on high side violates max # of gaps   *                         return 0             # <<<<<<<<<<<<<< @@ -55361,7 +55475,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct          }          /*else*/ { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1314 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1322   *                         return 0   *                     else:   *                         new_x = new_x + 1             # <<<<<<<<<<<<<< @@ -55370,7 +55484,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */            __pyx_v_new_x = (__pyx_v_new_x + 1); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1315 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1323   *                     else:   *                         new_x = new_x + 1   *                         new_high_x = 1             # <<<<<<<<<<<<<< @@ -55383,44 +55497,44 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        }        __pyx_L25:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1316 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1324   *                         new_x = new_x + 1   *                         new_high_x = 1   *                 if f_back_high[0] - f_high < min_fx_size:             # <<<<<<<<<<<<<<   *                     f_back_high[0] = f_high + min_fx_size   *                     if f_back_high[0] - f_back_low[0] > max_f_len:   */ -      __pyx_t_6 = __Pyx_PyInt_From_int((__pyx_v_f_back_high[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyInt_From_int((__pyx_v_f_back_high[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_2 = PyNumber_Subtract(__pyx_t_6, __pyx_v_f_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_Subtract(__pyx_t_6, __pyx_v_f_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_min_fx_size); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_min_fx_size); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        if (__pyx_t_4) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1317 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1325   *                         new_high_x = 1   *                 if f_back_high[0] - f_high < min_fx_size:   *                     f_back_high[0] = f_high + min_fx_size             # <<<<<<<<<<<<<<   *                     if f_back_high[0] - f_back_low[0] > max_f_len:   *                         # FAIL: extension required on high side violates max initial length   */ -        __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_min_fx_size); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_min_fx_size); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_7); -        __pyx_t_6 = PyNumber_Add(__pyx_v_f_high, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = PyNumber_Add(__pyx_v_f_high, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_6);          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -        __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;          (__pyx_v_f_back_high[0]) = __pyx_t_1; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1318 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1326   *                 if f_back_high[0] - f_high < min_fx_size:   *                     f_back_high[0] = f_high + min_fx_size   *                     if f_back_high[0] - f_back_low[0] > max_f_len:             # <<<<<<<<<<<<<< @@ -55430,7 +55544,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct          __pyx_t_4 = ((((__pyx_v_f_back_high[0]) - (__pyx_v_f_back_low[0])) > __pyx_v_max_f_len) != 0);          if (__pyx_t_4) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1320 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1328   *                     if f_back_high[0] - f_back_low[0] > max_f_len:   *                         # FAIL: extension required on high side violates max initial length   *                         return 0             # <<<<<<<<<<<<<< @@ -55441,7 +55555,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct            goto __pyx_L0;          } -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1321 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1329   *                         # FAIL: extension required on high side violates max initial length   *                         return 0   *                     if f_back_high[0] > f_sent_len:             # <<<<<<<<<<<<<< @@ -55451,7 +55565,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct          __pyx_t_4 = (((__pyx_v_f_back_high[0]) > __pyx_v_f_sent_len) != 0);          if (__pyx_t_4) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1323 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1331   *                     if f_back_high[0] > f_sent_len:   *                         # FAIL: extension required on high side violates sentence boundary   *                         return 0             # <<<<<<<<<<<<<< @@ -55468,7 +55582,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      }      __pyx_L24:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1325 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1333   *                         return 0   *    *             e_low_prev = e_low[0]             # <<<<<<<<<<<<<< @@ -55477,7 +55591,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */      __pyx_v_e_low_prev = (__pyx_v_e_low[0]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1326 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1334   *    *             e_low_prev = e_low[0]   *             e_high_prev = e_high[0]             # <<<<<<<<<<<<<< @@ -55486,29 +55600,29 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */      __pyx_v_e_high_prev = (__pyx_v_e_high[0]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1328 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1336   *             e_high_prev = e_high[0]   *    *             self.find_projection(f_back_low[0], f_low_prev, f_links_low, f_links_high, e_low, e_high)             # <<<<<<<<<<<<<<   *             self.find_projection(f_high_prev, f_back_high[0], f_links_low, f_links_high, e_low, e_high)   *             if e_low[0] == e_low_prev and e_high[0] == e_high_prev:   */ -    __pyx_t_6 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, (__pyx_v_f_back_low[0]), __pyx_v_f_low_prev, __pyx_v_f_links_low, __pyx_v_f_links_high, __pyx_v_e_low, __pyx_v_e_high); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, (__pyx_v_f_back_low[0]), __pyx_v_f_low_prev, __pyx_v_f_links_low, __pyx_v_f_links_high, __pyx_v_e_low, __pyx_v_e_high); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1329 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1337   *    *             self.find_projection(f_back_low[0], f_low_prev, f_links_low, f_links_high, e_low, e_high)   *             self.find_projection(f_high_prev, f_back_high[0], f_links_low, f_links_high, e_low, e_high)             # <<<<<<<<<<<<<<   *             if e_low[0] == e_low_prev and e_high[0] == e_high_prev:   *                 return 1   */ -    __pyx_t_6 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, __pyx_v_f_high_prev, (__pyx_v_f_back_high[0]), __pyx_v_f_links_low, __pyx_v_f_links_high, __pyx_v_e_low, __pyx_v_e_high); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1329; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_projection(__pyx_v_self, __pyx_v_f_high_prev, (__pyx_v_f_back_high[0]), __pyx_v_f_links_low, __pyx_v_f_links_high, __pyx_v_e_low, __pyx_v_e_high); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1330 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1338   *             self.find_projection(f_back_low[0], f_low_prev, f_links_low, f_links_high, e_low, e_high)   *             self.find_projection(f_high_prev, f_back_high[0], f_links_low, f_links_high, e_low, e_high)   *             if e_low[0] == e_low_prev and e_high[0] == e_high_prev:             # <<<<<<<<<<<<<< @@ -55524,7 +55638,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      }      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1331 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1339   *             self.find_projection(f_high_prev, f_back_high[0], f_links_low, f_links_high, e_low, e_high)   *             if e_low[0] == e_low_prev and e_high[0] == e_high_prev:   *                 return 1             # <<<<<<<<<<<<<< @@ -55535,7 +55649,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1332 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1340   *             if e_low[0] == e_low_prev and e_high[0] == e_high_prev:   *                 return 1   *             if allow_arbitrary_x == 0:             # <<<<<<<<<<<<<< @@ -55545,7 +55659,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      __pyx_t_3 = ((__pyx_v_allow_arbitrary_x == 0) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1334 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1342   *             if allow_arbitrary_x == 0:   *                 # FAIL: arbitrary expansion not permitted   *                 return 0             # <<<<<<<<<<<<<< @@ -55556,7 +55670,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1335 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1343   *                 # FAIL: arbitrary expansion not permitted   *                 return 0   *             if e_high[0] - e_low[0] > max_e_len:             # <<<<<<<<<<<<<< @@ -55566,7 +55680,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      __pyx_t_3 = ((((__pyx_v_e_high[0]) - (__pyx_v_e_low[0])) > __pyx_v_max_e_len) != 0);      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1337 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1345   *             if e_high[0] - e_low[0] > max_e_len:   *                 # FAIL: re-projection violates sentence max phrase length   *                 return 0             # <<<<<<<<<<<<<< @@ -55577,7 +55691,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1338 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1346   *                 # FAIL: re-projection violates sentence max phrase length   *                 return 0   *             f_low_prev = f_back_low[0]             # <<<<<<<<<<<<<< @@ -55586,7 +55700,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct   */      __pyx_v_f_low_prev = (__pyx_v_f_back_low[0]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1339 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1347   *                 return 0   *             f_low_prev = f_back_low[0]   *             f_high_prev = f_back_high[0]             # <<<<<<<<<<<<<< @@ -55596,7 +55710,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct      __pyx_v_f_high_prev = (__pyx_v_f_back_high[0]);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1215 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1223   *    *    *     cdef int find_fixpoint(self,             # <<<<<<<<<<<<<< @@ -55618,7 +55732,7 @@ static int __pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1342 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1350   *    *    *     cdef find_projection(self, int in_low, int in_high, int* in_links_low, int* in_links_high,             # <<<<<<<<<<<<<< @@ -55636,7 +55750,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_projectio    int __pyx_t_4;    __Pyx_RefNannySetupContext("find_projection", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1345 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1353   *                         int* out_low, int* out_high):   *         cdef int i   *         for i from in_low <= i < in_high:             # <<<<<<<<<<<<<< @@ -55646,7 +55760,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_projectio    __pyx_t_1 = __pyx_v_in_high;    for (__pyx_v_i = __pyx_v_in_low; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1346 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1354   *         cdef int i   *         for i from in_low <= i < in_high:   *             if in_links_low[i] != -1:             # <<<<<<<<<<<<<< @@ -55656,7 +55770,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_projectio      __pyx_t_2 = (((__pyx_v_in_links_low[__pyx_v_i]) != -1) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1347 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1355   *         for i from in_low <= i < in_high:   *             if in_links_low[i] != -1:   *                 if out_low[0] == -1 or in_links_low[i] < out_low[0]:             # <<<<<<<<<<<<<< @@ -55672,7 +55786,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_projectio        }        if (__pyx_t_4) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1348 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1356   *             if in_links_low[i] != -1:   *                 if out_low[0] == -1 or in_links_low[i] < out_low[0]:   *                     out_low[0] = in_links_low[i]             # <<<<<<<<<<<<<< @@ -55684,7 +55798,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_projectio        }        __pyx_L6:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1349 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1357   *                 if out_low[0] == -1 or in_links_low[i] < out_low[0]:   *                     out_low[0] = in_links_low[i]   *                 if out_high[0] == -1 or in_links_high[i] > out_high[0]:             # <<<<<<<<<<<<<< @@ -55700,7 +55814,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_projectio        }        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1350 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1358   *                     out_low[0] = in_links_low[i]   *                 if out_high[0] == -1 or in_links_high[i] > out_high[0]:   *                     out_high[0] = in_links_high[i]             # <<<<<<<<<<<<<< @@ -55716,7 +55830,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_projectio      __pyx_L5:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1342 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1350   *    *    *     cdef find_projection(self, int in_low, int in_high, int* in_links_low, int* in_links_high,             # <<<<<<<<<<<<<< @@ -55731,7 +55845,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_find_projectio    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1353 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1361   *    *    *     cdef int* int_arr_extend(self, int* arr, int* arr_len, int* data, int data_len):             # <<<<<<<<<<<<<< @@ -55745,7 +55859,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_int_arr_extend(CYTH    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("int_arr_extend", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1355 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1363   *     cdef int* int_arr_extend(self, int* arr, int* arr_len, int* data, int data_len):   *         cdef int new_len   *         new_len = arr_len[0] + data_len             # <<<<<<<<<<<<<< @@ -55754,7 +55868,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_int_arr_extend(CYTH   */    __pyx_v_new_len = ((__pyx_v_arr_len[0]) + __pyx_v_data_len); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1356 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1364   *         cdef int new_len   *         new_len = arr_len[0] + data_len   *         arr = <int*> realloc(arr, new_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -55763,7 +55877,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_int_arr_extend(CYTH   */    __pyx_v_arr = ((int *)realloc(__pyx_v_arr, (__pyx_v_new_len * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1357 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1365   *         new_len = arr_len[0] + data_len   *         arr = <int*> realloc(arr, new_len*sizeof(int))   *         memcpy(arr+arr_len[0], data, data_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -55772,7 +55886,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_int_arr_extend(CYTH   */    memcpy((__pyx_v_arr + (__pyx_v_arr_len[0])), __pyx_v_data, (__pyx_v_data_len * (sizeof(int)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1358 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1366   *         arr = <int*> realloc(arr, new_len*sizeof(int))   *         memcpy(arr+arr_len[0], data, data_len*sizeof(int))   *         arr_len[0] = new_len             # <<<<<<<<<<<<<< @@ -55781,7 +55895,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_int_arr_extend(CYTH   */    (__pyx_v_arr_len[0]) = __pyx_v_new_len; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1359 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1367   *         memcpy(arr+arr_len[0], data, data_len*sizeof(int))   *         arr_len[0] = new_len   *         return arr             # <<<<<<<<<<<<<< @@ -55791,7 +55905,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_int_arr_extend(CYTH    __pyx_r = __pyx_v_arr;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1353 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1361   *    *    *     cdef int* int_arr_extend(self, int* arr, int* arr_len, int* data, int data_len):             # <<<<<<<<<<<<<< @@ -55805,7 +55919,7 @@ static int *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_int_arr_extend(CYTH    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1362 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1370   *    *    *     cdef extract_phrases(self, int e_low, int e_high, int* e_gap_low, int* e_gap_high, int* e_links_low, int num_gaps,             # <<<<<<<<<<<<<< @@ -55851,19 +55965,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("extract_phrases", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1370 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1378   *         cdef result   *    *         result = []             # <<<<<<<<<<<<<<   *         len1 = 0   *         e_gaps1 = <int*> malloc(0)   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1370; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_result = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1371 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1379   *    *         result = []   *         len1 = 0             # <<<<<<<<<<<<<< @@ -55872,7 +55986,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_len1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1372 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1380   *         result = []   *         len1 = 0   *         e_gaps1 = <int*> malloc(0)             # <<<<<<<<<<<<<< @@ -55881,19 +55995,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_e_gaps1 = ((int *)malloc(0)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1373 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1381   *         len1 = 0   *         e_gaps1 = <int*> malloc(0)   *         ephr_arr = IntList()             # <<<<<<<<<<<<<<   *    *         e_gap_order = <int*> malloc(num_gaps*sizeof(int))   */ -  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1373; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_ephr_arr = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1375 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1383   *         ephr_arr = IntList()   *    *         e_gap_order = <int*> malloc(num_gaps*sizeof(int))             # <<<<<<<<<<<<<< @@ -55902,7 +56016,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_e_gap_order = ((int *)malloc((__pyx_v_num_gaps * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1376 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1384   *    *         e_gap_order = <int*> malloc(num_gaps*sizeof(int))   *         if num_gaps > 0:             # <<<<<<<<<<<<<< @@ -55912,7 +56026,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase    __pyx_t_2 = ((__pyx_v_num_gaps > 0) != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1377 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1385   *         e_gap_order = <int*> malloc(num_gaps*sizeof(int))   *         if num_gaps > 0:   *             e_gap_order[0] = 0             # <<<<<<<<<<<<<< @@ -55921,7 +56035,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      (__pyx_v_e_gap_order[0]) = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1378 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1386   *         if num_gaps > 0:   *             e_gap_order[0] = 0   *             for i from 1 <= i < num_gaps:             # <<<<<<<<<<<<<< @@ -55931,7 +56045,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase      __pyx_t_3 = __pyx_v_num_gaps;      for (__pyx_v_i = 1; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1379 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1387   *             e_gap_order[0] = 0   *             for i from 1 <= i < num_gaps:   *                 for j from 0 <= j < i:             # <<<<<<<<<<<<<< @@ -55941,7 +56055,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        __pyx_t_4 = __pyx_v_i;        for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_4; __pyx_v_j++) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1380 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1388   *             for i from 1 <= i < num_gaps:   *                 for j from 0 <= j < i:   *                     if e_gap_low[i] < e_gap_low[j]:             # <<<<<<<<<<<<<< @@ -55951,7 +56065,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase          __pyx_t_2 = (((__pyx_v_e_gap_low[__pyx_v_i]) < (__pyx_v_e_gap_low[__pyx_v_j])) != 0);          if (__pyx_t_2) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1381 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1389   *                 for j from 0 <= j < i:   *                     if e_gap_low[i] < e_gap_low[j]:   *                         for k from j <= k < i:             # <<<<<<<<<<<<<< @@ -55961,7 +56075,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase            __pyx_t_5 = __pyx_v_i;            for (__pyx_v_k = __pyx_v_j; __pyx_v_k < __pyx_t_5; __pyx_v_k++) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1382 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1390   *                     if e_gap_low[i] < e_gap_low[j]:   *                         for k from j <= k < i:   *                             e_gap_order[k+1] = e_gap_order[k]             # <<<<<<<<<<<<<< @@ -55971,7 +56085,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase              (__pyx_v_e_gap_order[(__pyx_v_k + 1)]) = (__pyx_v_e_gap_order[__pyx_v_k]);            } -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1383 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1391   *                         for k from j <= k < i:   *                             e_gap_order[k+1] = e_gap_order[k]   *                         e_gap_order[j] = i             # <<<<<<<<<<<<<< @@ -55980,7 +56094,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */            (__pyx_v_e_gap_order[__pyx_v_j]) = __pyx_v_i; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1384 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1392   *                             e_gap_order[k+1] = e_gap_order[k]   *                         e_gap_order[j] = i   *                         break             # <<<<<<<<<<<<<< @@ -55992,7 +56106,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        }        /*else*/ { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1386 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1394   *                         break   *                 else:   *                     e_gap_order[i] = i             # <<<<<<<<<<<<<< @@ -56007,7 +56121,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase    }    __pyx_L3:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1388 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1396   *                     e_gap_order[i] = i   *    *         e_x_low = e_low             # <<<<<<<<<<<<<< @@ -56016,7 +56130,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_e_x_low = __pyx_v_e_low; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1389 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1397   *    *         e_x_low = e_low   *         e_x_high = e_high             # <<<<<<<<<<<<<< @@ -56025,7 +56139,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_e_x_high = __pyx_v_e_high; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1390 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1398   *         e_x_low = e_low   *         e_x_high = e_high   *         if not self.tight_phrases:             # <<<<<<<<<<<<<< @@ -56035,7 +56149,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase    __pyx_t_2 = ((!(__pyx_v_self->tight_phrases != 0)) != 0);    if (__pyx_t_2) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1391 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1399   *         e_x_high = e_high   *         if not self.tight_phrases:   *             while e_x_low > 0 and e_high - e_x_low < self.train_max_initial_size and e_links_low[e_x_low-1] == -1:             # <<<<<<<<<<<<<< @@ -56058,7 +56172,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        }        if (!__pyx_t_6) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1392 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1400   *         if not self.tight_phrases:   *             while e_x_low > 0 and e_high - e_x_low < self.train_max_initial_size and e_links_low[e_x_low-1] == -1:   *                 e_x_low = e_x_low - 1             # <<<<<<<<<<<<<< @@ -56068,7 +56182,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        __pyx_v_e_x_low = (__pyx_v_e_x_low - 1);      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1393 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1401   *             while e_x_low > 0 and e_high - e_x_low < self.train_max_initial_size and e_links_low[e_x_low-1] == -1:   *                 e_x_low = e_x_low - 1   *             while e_x_high < e_sent_len and e_x_high - e_low < self.train_max_initial_size and e_links_low[e_x_high] == -1:             # <<<<<<<<<<<<<< @@ -56091,7 +56205,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        }        if (!__pyx_t_2) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1394 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1402   *                 e_x_low = e_x_low - 1   *             while e_x_high < e_sent_len and e_x_high - e_low < self.train_max_initial_size and e_links_low[e_x_high] == -1:   *                 e_x_high = e_x_high + 1             # <<<<<<<<<<<<<< @@ -56104,7 +56218,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase    }    __pyx_L11:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1396 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1404   *                 e_x_high = e_x_high + 1   *    *         for i from e_x_low <= i <= e_low:             # <<<<<<<<<<<<<< @@ -56114,7 +56228,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase    __pyx_t_3 = __pyx_v_e_low;    for (__pyx_v_i = __pyx_v_e_x_low; __pyx_v_i <= __pyx_t_3; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1397 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1405   *    *         for i from e_x_low <= i <= e_low:   *             e_gaps1 = self.int_arr_extend(e_gaps1, &len1, &i, 1)             # <<<<<<<<<<<<<< @@ -56124,7 +56238,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase      __pyx_v_e_gaps1 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->int_arr_extend(__pyx_v_self, __pyx_v_e_gaps1, (&__pyx_v_len1), (&__pyx_v_i), 1);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1399 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1407   *             e_gaps1 = self.int_arr_extend(e_gaps1, &len1, &i, 1)   *    *         for i from 0 <= i < num_gaps:             # <<<<<<<<<<<<<< @@ -56134,7 +56248,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase    __pyx_t_3 = __pyx_v_num_gaps;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1400 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1408   *    *         for i from 0 <= i < num_gaps:   *             e_gaps2 = <int*> malloc(0)             # <<<<<<<<<<<<<< @@ -56143,7 +56257,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      __pyx_v_e_gaps2 = ((int *)malloc(0)); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1401 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1409   *         for i from 0 <= i < num_gaps:   *             e_gaps2 = <int*> malloc(0)   *             len2 = 0             # <<<<<<<<<<<<<< @@ -56152,7 +56266,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      __pyx_v_len2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1403 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1411   *             len2 = 0   *    *             j = e_gap_order[i]             # <<<<<<<<<<<<<< @@ -56161,7 +56275,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      __pyx_v_j = (__pyx_v_e_gap_order[__pyx_v_i]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1404 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1412   *    *             j = e_gap_order[i]   *             e_x_gap_low = e_gap_low[j]             # <<<<<<<<<<<<<< @@ -56170,7 +56284,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      __pyx_v_e_x_gap_low = (__pyx_v_e_gap_low[__pyx_v_j]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1405 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1413   *             j = e_gap_order[i]   *             e_x_gap_low = e_gap_low[j]   *             e_x_gap_high = e_gap_high[j]             # <<<<<<<<<<<<<< @@ -56179,7 +56293,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      __pyx_v_e_x_gap_high = (__pyx_v_e_gap_high[__pyx_v_j]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1406 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1414   *             e_x_gap_low = e_gap_low[j]   *             e_x_gap_high = e_gap_high[j]   *             if not self.tight_phrases:             # <<<<<<<<<<<<<< @@ -56189,7 +56303,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase      __pyx_t_2 = ((!(__pyx_v_self->tight_phrases != 0)) != 0);      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1407 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1415   *             e_x_gap_high = e_gap_high[j]   *             if not self.tight_phrases:   *                 while e_x_gap_low > e_x_low and e_links_low[e_x_gap_low-1] == -1:             # <<<<<<<<<<<<<< @@ -56206,7 +56320,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase          }          if (!__pyx_t_7) break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1408 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1416   *             if not self.tight_phrases:   *                 while e_x_gap_low > e_x_low and e_links_low[e_x_gap_low-1] == -1:   *                     e_x_gap_low = e_x_gap_low - 1             # <<<<<<<<<<<<<< @@ -56216,7 +56330,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase          __pyx_v_e_x_gap_low = (__pyx_v_e_x_gap_low - 1);        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1409 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1417   *                 while e_x_gap_low > e_x_low and e_links_low[e_x_gap_low-1] == -1:   *                     e_x_gap_low = e_x_gap_low - 1   *                 while e_x_gap_high < e_x_high and e_links_low[e_x_gap_high] == -1:             # <<<<<<<<<<<<<< @@ -56233,7 +56347,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase          }          if (!__pyx_t_6) break; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1410 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1418   *                     e_x_gap_low = e_x_gap_low - 1   *                 while e_x_gap_high < e_x_high and e_links_low[e_x_gap_high] == -1:   *                     e_x_gap_high = e_x_gap_high + 1             # <<<<<<<<<<<<<< @@ -56246,7 +56360,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase      }      __pyx_L20:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1412 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1420   *                     e_x_gap_high = e_x_gap_high + 1   *    *             k = 0             # <<<<<<<<<<<<<< @@ -56255,7 +56369,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      __pyx_v_k = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1413 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1421   *    *             k = 0   *             step = 1+(i*2)             # <<<<<<<<<<<<<< @@ -56264,7 +56378,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      __pyx_v_step = (1 + (__pyx_v_i * 2)); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1414 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1422   *             k = 0   *             step = 1+(i*2)   *             while k < len1:             # <<<<<<<<<<<<<< @@ -56275,7 +56389,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        __pyx_t_6 = ((__pyx_v_k < __pyx_v_len1) != 0);        if (!__pyx_t_6) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1415 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1423   *             step = 1+(i*2)   *             while k < len1:   *                 for m from e_x_gap_low <= m <= e_gap_low[j]:             # <<<<<<<<<<<<<< @@ -56285,7 +56399,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        __pyx_t_4 = (__pyx_v_e_gap_low[__pyx_v_j]);        for (__pyx_v_m = __pyx_v_e_x_gap_low; __pyx_v_m <= __pyx_t_4; __pyx_v_m++) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1416 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1424   *             while k < len1:   *                 for m from e_x_gap_low <= m <= e_gap_low[j]:   *                     if m >= e_gaps1[k+step-1]:             # <<<<<<<<<<<<<< @@ -56295,7 +56409,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase          __pyx_t_6 = ((__pyx_v_m >= (__pyx_v_e_gaps1[((__pyx_v_k + __pyx_v_step) - 1)])) != 0);          if (__pyx_t_6) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1417 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1425   *                 for m from e_x_gap_low <= m <= e_gap_low[j]:   *                     if m >= e_gaps1[k+step-1]:   *                         for n from e_gap_high[j] <= n <= e_x_gap_high:             # <<<<<<<<<<<<<< @@ -56305,7 +56419,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase            __pyx_t_5 = __pyx_v_e_x_gap_high;            for (__pyx_v_n = (__pyx_v_e_gap_high[__pyx_v_j]); __pyx_v_n <= __pyx_t_5; __pyx_v_n++) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1418 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1426   *                     if m >= e_gaps1[k+step-1]:   *                         for n from e_gap_high[j] <= n <= e_x_gap_high:   *                             if n-m >= 1:    # extractor.py doesn't restrict target-side gap length             # <<<<<<<<<<<<<< @@ -56315,7 +56429,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase              __pyx_t_6 = (((__pyx_v_n - __pyx_v_m) >= 1) != 0);              if (__pyx_t_6) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1419 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1427   *                         for n from e_gap_high[j] <= n <= e_x_gap_high:   *                             if n-m >= 1:    # extractor.py doesn't restrict target-side gap length   *                                 e_gaps2 = self.int_arr_extend(e_gaps2, &len2, e_gaps1+k, step)             # <<<<<<<<<<<<<< @@ -56324,7 +56438,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */                __pyx_v_e_gaps2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->int_arr_extend(__pyx_v_self, __pyx_v_e_gaps2, (&__pyx_v_len2), (__pyx_v_e_gaps1 + __pyx_v_k), __pyx_v_step); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1420 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1428   *                             if n-m >= 1:    # extractor.py doesn't restrict target-side gap length   *                                 e_gaps2 = self.int_arr_extend(e_gaps2, &len2, e_gaps1+k, step)   *                                 e_gaps2 = self.int_arr_extend(e_gaps2, &len2, &m, 1)             # <<<<<<<<<<<<<< @@ -56333,7 +56447,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */                __pyx_v_e_gaps2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->int_arr_extend(__pyx_v_self, __pyx_v_e_gaps2, (&__pyx_v_len2), (&__pyx_v_m), 1); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1421 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1429   *                                 e_gaps2 = self.int_arr_extend(e_gaps2, &len2, e_gaps1+k, step)   *                                 e_gaps2 = self.int_arr_extend(e_gaps2, &len2, &m, 1)   *                                 e_gaps2 = self.int_arr_extend(e_gaps2, &len2, &n, 1)             # <<<<<<<<<<<<<< @@ -56350,7 +56464,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase          __pyx_L29:;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1422 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1430   *                                 e_gaps2 = self.int_arr_extend(e_gaps2, &len2, &m, 1)   *                                 e_gaps2 = self.int_arr_extend(e_gaps2, &len2, &n, 1)   *                 k = k + step             # <<<<<<<<<<<<<< @@ -56360,7 +56474,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        __pyx_v_k = (__pyx_v_k + __pyx_v_step);      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1423 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1431   *                                 e_gaps2 = self.int_arr_extend(e_gaps2, &len2, &n, 1)   *                 k = k + step   *             free(e_gaps1)             # <<<<<<<<<<<<<< @@ -56369,7 +56483,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      free(__pyx_v_e_gaps1); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1424 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1432   *                 k = k + step   *             free(e_gaps1)   *             e_gaps1 = e_gaps2             # <<<<<<<<<<<<<< @@ -56378,7 +56492,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      __pyx_v_e_gaps1 = __pyx_v_e_gaps2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1425 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1433   *             free(e_gaps1)   *             e_gaps1 = e_gaps2   *             len1 = len2             # <<<<<<<<<<<<<< @@ -56388,7 +56502,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase      __pyx_v_len1 = __pyx_v_len2;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1427 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1435   *             len1 = len2   *    *         step = 1+(num_gaps*2)             # <<<<<<<<<<<<<< @@ -56397,7 +56511,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_step = (1 + (__pyx_v_num_gaps * 2)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1428 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1436   *    *         step = 1+(num_gaps*2)   *         e_gaps2 = <int*> malloc(0)             # <<<<<<<<<<<<<< @@ -56406,7 +56520,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_e_gaps2 = ((int *)malloc(0)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1429 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1437   *         step = 1+(num_gaps*2)   *         e_gaps2 = <int*> malloc(0)   *         len2 = 0             # <<<<<<<<<<<<<< @@ -56415,7 +56529,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_len2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1430 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1438   *         e_gaps2 = <int*> malloc(0)   *         len2 = 0   *         for i from e_high <= i <= e_x_high:             # <<<<<<<<<<<<<< @@ -56425,7 +56539,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase    __pyx_t_3 = __pyx_v_e_x_high;    for (__pyx_v_i = __pyx_v_e_high; __pyx_v_i <= __pyx_t_3; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1431 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1439   *         len2 = 0   *         for i from e_high <= i <= e_x_high:   *             j = 0             # <<<<<<<<<<<<<< @@ -56434,7 +56548,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      __pyx_v_j = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1432 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1440   *         for i from e_high <= i <= e_x_high:   *             j = 0   *             while j < len1:             # <<<<<<<<<<<<<< @@ -56445,7 +56559,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        __pyx_t_6 = ((__pyx_v_j < __pyx_v_len1) != 0);        if (!__pyx_t_6) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1433 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1441   *             j = 0   *             while j < len1:   *                 if i - e_gaps1[j] <= self.train_max_initial_size and i >= e_gaps1[j+step-1]:             # <<<<<<<<<<<<<< @@ -56461,7 +56575,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        }        if (__pyx_t_2) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1434 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1442   *             while j < len1:   *                 if i - e_gaps1[j] <= self.train_max_initial_size and i >= e_gaps1[j+step-1]:   *                     e_gaps2 = self.int_arr_extend(e_gaps2, &len2, e_gaps1+j, step)             # <<<<<<<<<<<<<< @@ -56470,7 +56584,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */          __pyx_v_e_gaps2 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->int_arr_extend(__pyx_v_self, __pyx_v_e_gaps2, (&__pyx_v_len2), (__pyx_v_e_gaps1 + __pyx_v_j), __pyx_v_step); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1435 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1443   *                 if i - e_gaps1[j] <= self.train_max_initial_size and i >= e_gaps1[j+step-1]:   *                     e_gaps2 = self.int_arr_extend(e_gaps2, &len2, e_gaps1+j, step)   *                     e_gaps2 = self.int_arr_extend(e_gaps2, &len2, &i, 1)             # <<<<<<<<<<<<<< @@ -56482,7 +56596,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        }        __pyx_L37:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1436 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1444   *                     e_gaps2 = self.int_arr_extend(e_gaps2, &len2, e_gaps1+j, step)   *                     e_gaps2 = self.int_arr_extend(e_gaps2, &len2, &i, 1)   *                 j = j + step             # <<<<<<<<<<<<<< @@ -56493,7 +56607,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase      }    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1437 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1445   *                     e_gaps2 = self.int_arr_extend(e_gaps2, &len2, &i, 1)   *                 j = j + step   *         free(e_gaps1)             # <<<<<<<<<<<<<< @@ -56502,7 +56616,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    free(__pyx_v_e_gaps1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1438 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1446   *                 j = j + step   *         free(e_gaps1)   *         e_gaps1 = e_gaps2             # <<<<<<<<<<<<<< @@ -56511,7 +56625,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_e_gaps1 = __pyx_v_e_gaps2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1439 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1447   *         free(e_gaps1)   *         e_gaps1 = e_gaps2   *         len1 = len2             # <<<<<<<<<<<<<< @@ -56520,7 +56634,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_len1 = __pyx_v_len2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1441 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1449   *         len1 = len2   *    *         step = (num_gaps+1)*2             # <<<<<<<<<<<<<< @@ -56529,7 +56643,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_step = ((__pyx_v_num_gaps + 1) * 2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1442 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1450   *    *         step = (num_gaps+1)*2   *         i = 0             # <<<<<<<<<<<<<< @@ -56538,7 +56652,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    __pyx_v_i = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1445 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1453   *    *         cdef IntList indexes   *         while i < len1:             # <<<<<<<<<<<<<< @@ -56549,7 +56663,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase      __pyx_t_2 = ((__pyx_v_i < __pyx_v_len1) != 0);      if (!__pyx_t_2) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1446 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1454   *         cdef IntList indexes   *         while i < len1:   *             ephr_arr._clear()             # <<<<<<<<<<<<<< @@ -56558,7 +56672,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_ephr_arr->__pyx_vtab)->_clear(__pyx_v_ephr_arr); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1447 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1455   *         while i < len1:   *             ephr_arr._clear()   *             num_chunks = 0             # <<<<<<<<<<<<<< @@ -56567,19 +56681,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      __pyx_v_num_chunks = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1448 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1456   *             ephr_arr._clear()   *             num_chunks = 0   *             indexes = IntList()             # <<<<<<<<<<<<<<   *             for j from 0 <= j < num_gaps+1:   *                 if e_gaps1[i+2*j] < e_gaps1[i+(2*j)+1]:   */ -    __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1448; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_XDECREF_SET(__pyx_v_indexes, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1));      __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1449 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1457   *             num_chunks = 0   *             indexes = IntList()   *             for j from 0 <= j < num_gaps+1:             # <<<<<<<<<<<<<< @@ -56589,7 +56703,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase      __pyx_t_9 = (__pyx_v_num_gaps + 1);      for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_9; __pyx_v_j++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1450 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1458   *             indexes = IntList()   *             for j from 0 <= j < num_gaps+1:   *                 if e_gaps1[i+2*j] < e_gaps1[i+(2*j)+1]:             # <<<<<<<<<<<<<< @@ -56599,7 +56713,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        __pyx_t_2 = (((__pyx_v_e_gaps1[(__pyx_v_i + (2 * __pyx_v_j))]) < (__pyx_v_e_gaps1[((__pyx_v_i + (2 * __pyx_v_j)) + 1)])) != 0);        if (__pyx_t_2) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1451 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1459   *             for j from 0 <= j < num_gaps+1:   *                 if e_gaps1[i+2*j] < e_gaps1[i+(2*j)+1]:   *                     num_chunks = num_chunks + 1             # <<<<<<<<<<<<<< @@ -56611,7 +56725,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        }        __pyx_L42:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1452 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1460   *                 if e_gaps1[i+2*j] < e_gaps1[i+(2*j)+1]:   *                     num_chunks = num_chunks + 1   *                 for k from e_gaps1[i+2*j] <= k < e_gaps1[i+(2*j)+1]:             # <<<<<<<<<<<<<< @@ -56621,19 +56735,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        __pyx_t_3 = (__pyx_v_e_gaps1[((__pyx_v_i + (2 * __pyx_v_j)) + 1)]);        for (__pyx_v_k = (__pyx_v_e_gaps1[(__pyx_v_i + (2 * __pyx_v_j))]); __pyx_v_k < __pyx_t_3; __pyx_v_k++) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1453 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1461   *                     num_chunks = num_chunks + 1   *                 for k from e_gaps1[i+2*j] <= k < e_gaps1[i+(2*j)+1]:   *                     indexes.append(k)             # <<<<<<<<<<<<<<   *                     ephr_arr._append(self.eid2symid[self.eda.data.arr[e_sent_start+k]])   *                 if j < num_gaps:   */ -        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_k); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_k); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_10 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_indexes), __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_10 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_indexes), __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1454 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1462   *                 for k from e_gaps1[i+2*j] <= k < e_gaps1[i+(2*j)+1]:   *                     indexes.append(k)   *                     ephr_arr._append(self.eid2symid[self.eda.data.arr[e_sent_start+k]])             # <<<<<<<<<<<<<< @@ -56641,14 +56755,14 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   *                     indexes.append(sym_setindex(self.category, e_gap_order[j]+1))   */          __pyx_t_4 = (__pyx_v_self->eda->data->arr[(__pyx_v_e_sent_start + __pyx_v_k)]); -        __pyx_t_1 = __Pyx_GetItemInt(((PyObject *)__pyx_v_self->eid2symid), __pyx_t_4, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_1 = __Pyx_GetItemInt(((PyObject *)__pyx_v_self->eid2symid), __pyx_t_4, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1462; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_ephr_arr->__pyx_vtab)->_append(__pyx_v_ephr_arr, __pyx_t_4);        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1455 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1463   *                     indexes.append(k)   *                     ephr_arr._append(self.eid2symid[self.eda.data.arr[e_sent_start+k]])   *                 if j < num_gaps:             # <<<<<<<<<<<<<< @@ -56658,19 +56772,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        __pyx_t_2 = ((__pyx_v_j < __pyx_v_num_gaps) != 0);        if (__pyx_t_2) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1456 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1464   *                     ephr_arr._append(self.eid2symid[self.eda.data.arr[e_sent_start+k]])   *                 if j < num_gaps:   *                     indexes.append(sym_setindex(self.category, e_gap_order[j]+1))             # <<<<<<<<<<<<<<   *                     ephr_arr._append(sym_setindex(self.category, e_gap_order[j]+1))   *             i = i + step   */ -        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, ((__pyx_v_e_gap_order[__pyx_v_j]) + 1))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, ((__pyx_v_e_gap_order[__pyx_v_j]) + 1))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_10 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_indexes), __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_10 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_indexes), __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1457 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1465   *                 if j < num_gaps:   *                     indexes.append(sym_setindex(self.category, e_gap_order[j]+1))   *                     ephr_arr._append(sym_setindex(self.category, e_gap_order[j]+1))             # <<<<<<<<<<<<<< @@ -56683,7 +56797,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        __pyx_L45:;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1458 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1466   *                     indexes.append(sym_setindex(self.category, e_gap_order[j]+1))   *                     ephr_arr._append(sym_setindex(self.category, e_gap_order[j]+1))   *             i = i + step             # <<<<<<<<<<<<<< @@ -56692,7 +56806,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */      __pyx_v_i = (__pyx_v_i + __pyx_v_step); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1459 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1467   *                     ephr_arr._append(sym_setindex(self.category, e_gap_order[j]+1))   *             i = i + step   *             if ephr_arr.len <= self.max_target_length and num_chunks <= self.max_target_chunks:             # <<<<<<<<<<<<<< @@ -56708,22 +56822,22 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase      }      if (__pyx_t_7) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1460 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1468   *             i = i + step   *             if ephr_arr.len <= self.max_target_length and num_chunks <= self.max_target_chunks:   *                 result.append((Phrase(ephr_arr),indexes))             # <<<<<<<<<<<<<<   *    *         free(e_gaps1)   */ -      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1460; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_INCREF(((PyObject *)__pyx_v_ephr_arr));        PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_ephr_arr));        __Pyx_GIVEREF(((PyObject *)__pyx_v_ephr_arr)); -      __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1460; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_11);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1460; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_11);        __Pyx_GIVEREF(__pyx_t_11); @@ -56731,14 +56845,14 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase        PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_indexes));        __Pyx_GIVEREF(((PyObject *)__pyx_v_indexes));        __pyx_t_11 = 0; -      __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1460; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        goto __pyx_L46;      }      __pyx_L46:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1462 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1470   *                 result.append((Phrase(ephr_arr),indexes))   *    *         free(e_gaps1)             # <<<<<<<<<<<<<< @@ -56747,7 +56861,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    free(__pyx_v_e_gaps1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1463 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1471   *    *         free(e_gaps1)   *         free(e_gap_order)             # <<<<<<<<<<<<<< @@ -56756,7 +56870,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase   */    free(__pyx_v_e_gap_order); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1464 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1472   *         free(e_gaps1)   *         free(e_gap_order)   *         return result             # <<<<<<<<<<<<<< @@ -56768,7 +56882,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase    __pyx_r = __pyx_v_result;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1362 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1370   *    *    *     cdef extract_phrases(self, int e_low, int e_high, int* e_gap_low, int* e_gap_high, int* e_links_low, int num_gaps,             # <<<<<<<<<<<<<< @@ -56791,7 +56905,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrase    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1466 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1474   *         return result   *    *     cdef IntList create_alignments(self, int* sent_links, int num_links,             # <<<<<<<<<<<<<< @@ -56820,19 +56934,19 @@ static struct __pyx_obj_4cdec_2sa_3_sa_IntList *__pyx_f_4cdec_2sa_3_sa_23HieroCa    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("create_alignments", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1469 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1477   *             IntList findexes, IntList eindexes):   *         cdef unsigned i   *         cdef IntList ret = IntList()             # <<<<<<<<<<<<<<   *         for i in range(findexes.len):   *             s = findexes.arr[i]   */ -  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_ret = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1470 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1478   *         cdef unsigned i   *         cdef IntList ret = IntList()   *         for i in range(findexes.len):             # <<<<<<<<<<<<<< @@ -56843,7 +56957,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_IntList *__pyx_f_4cdec_2sa_3_sa_23HieroCa    for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {      __pyx_v_i = __pyx_t_3; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1471 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1479   *         cdef IntList ret = IntList()   *         for i in range(findexes.len):   *             s = findexes.arr[i]             # <<<<<<<<<<<<<< @@ -56852,7 +56966,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_IntList *__pyx_f_4cdec_2sa_3_sa_23HieroCa   */      __pyx_v_s = (__pyx_v_findexes->arr[__pyx_v_i]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1472 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1480   *         for i in range(findexes.len):   *             s = findexes.arr[i]   *             if s < 0: continue             # <<<<<<<<<<<<<< @@ -56864,7 +56978,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_IntList *__pyx_f_4cdec_2sa_3_sa_23HieroCa        goto __pyx_L3_continue;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1473 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1481   *             s = findexes.arr[i]   *             if s < 0: continue   *             idx = 0             # <<<<<<<<<<<<<< @@ -56874,7 +56988,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_IntList *__pyx_f_4cdec_2sa_3_sa_23HieroCa      __Pyx_INCREF(__pyx_int_0);      __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_int_0); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1474 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1482   *             if s < 0: continue   *             idx = 0   *             while idx < num_links * 2:             # <<<<<<<<<<<<<< @@ -56882,78 +56996,78 @@ static struct __pyx_obj_4cdec_2sa_3_sa_IntList *__pyx_f_4cdec_2sa_3_sa_23HieroCa   *                     j = eindexes.index(sent_links[idx+1])   */      while (1) { -      __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_num_links * 2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_num_links * 2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_5 = PyObject_RichCompare(__pyx_v_idx, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyObject_RichCompare(__pyx_v_idx, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        if (!__pyx_t_4) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1475 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1483   *             idx = 0   *             while idx < num_links * 2:   *                 if sent_links[idx] == s:             # <<<<<<<<<<<<<<   *                     j = eindexes.index(sent_links[idx+1])   *                     ret.append(i * ALIGNMENT_CODE + j)   */ -      __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1475; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_4 = (((__pyx_v_sent_links[__pyx_t_6]) == __pyx_v_s) != 0);        if (__pyx_t_4) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1476 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1484   *             while idx < num_links * 2:   *                 if sent_links[idx] == s:   *                     j = eindexes.index(sent_links[idx+1])             # <<<<<<<<<<<<<<   *                     ret.append(i * ALIGNMENT_CODE + j)   *                 idx += 2   */ -        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_eindexes), __pyx_n_s_index); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_eindexes), __pyx_n_s_index); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_5); -        __pyx_t_1 = PyNumber_Add(__pyx_v_idx, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyNumber_Add(__pyx_v_idx, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_sent_links[__pyx_t_6])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_sent_links[__pyx_t_6])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_7);          PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);          __Pyx_GIVEREF(__pyx_t_1);          __pyx_t_1 = 0; -        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1);          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;          __Pyx_XDECREF_SET(__pyx_v_j, __pyx_t_1);          __pyx_t_1 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1477 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1485   *                 if sent_links[idx] == s:   *                     j = eindexes.index(sent_links[idx+1])   *                     ret.append(i * ALIGNMENT_CODE + j)             # <<<<<<<<<<<<<<   *                 idx += 2   *         return ret   */ -        __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_i * __pyx_v_4cdec_2sa_3_sa_ALIGNMENT_CODE)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_i * __pyx_v_4cdec_2sa_3_sa_ALIGNMENT_CODE)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_7 = PyNumber_Add(__pyx_t_1, __pyx_v_j); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_7 = PyNumber_Add(__pyx_t_1, __pyx_v_j); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_7);          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        __pyx_t_8 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_ret), __pyx_t_7); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_8 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_ret), __pyx_t_7); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;          goto __pyx_L8;        }        __pyx_L8:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1478 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1486   *                     j = eindexes.index(sent_links[idx+1])   *                     ret.append(i * ALIGNMENT_CODE + j)   *                 idx += 2             # <<<<<<<<<<<<<<   *         return ret   *    */ -      __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_idx, __pyx_int_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_idx, __pyx_int_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_7);        __Pyx_DECREF_SET(__pyx_v_idx, __pyx_t_7);        __pyx_t_7 = 0; @@ -56961,7 +57075,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_IntList *__pyx_f_4cdec_2sa_3_sa_23HieroCa      __pyx_L3_continue:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1479 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1487   *                     ret.append(i * ALIGNMENT_CODE + j)   *                 idx += 2   *         return ret             # <<<<<<<<<<<<<< @@ -56973,7 +57087,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_IntList *__pyx_f_4cdec_2sa_3_sa_23HieroCa    __pyx_r = __pyx_v_ret;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1466 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1474   *         return result   *    *     cdef IntList create_alignments(self, int* sent_links, int num_links,             # <<<<<<<<<<<<<< @@ -56997,7 +57111,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_IntList *__pyx_f_4cdec_2sa_3_sa_23HieroCa    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1481 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1489   *         return ret   *    *     cdef extract(self, Phrase phrase, Matching* matching, int* chunklen, int num_chunks):             # <<<<<<<<<<<<<< @@ -57091,19 +57205,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("extract", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1494 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1502   *         cdef reason_for_failure   *    *         fphr_arr = IntList()             # <<<<<<<<<<<<<<   *         phrase_len = phrase.n   *         extracts = []   */ -  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1494; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_IntList)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_fphr_arr = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1495 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1503   *    *         fphr_arr = IntList()   *         phrase_len = phrase.n             # <<<<<<<<<<<<<< @@ -57113,19 +57227,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    __pyx_t_2 = __pyx_v_phrase->n;    __pyx_v_phrase_len = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1496 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1504   *         fphr_arr = IntList()   *         phrase_len = phrase.n   *         extracts = []             # <<<<<<<<<<<<<<   *         sent_links = self.alignment._get_sent_links(matching.sent_id, &num_links)   *    */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1496; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_extracts = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1497 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1505   *         phrase_len = phrase.n   *         extracts = []   *         sent_links = self.alignment._get_sent_links(matching.sent_id, &num_links)             # <<<<<<<<<<<<<< @@ -57134,7 +57248,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_sent_links = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alignment *)__pyx_v_self->alignment->__pyx_vtab)->_get_sent_links(__pyx_v_self->alignment, __pyx_v_matching->sent_id, (&__pyx_v_num_links)); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1499 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1507   *         sent_links = self.alignment._get_sent_links(matching.sent_id, &num_links)   *    *         e_sent_start = self.eda.sent_index.arr[matching.sent_id]             # <<<<<<<<<<<<<< @@ -57143,7 +57257,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_e_sent_start = (__pyx_v_self->eda->sent_index->arr[__pyx_v_matching->sent_id]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1500 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1508   *    *         e_sent_start = self.eda.sent_index.arr[matching.sent_id]   *         e_sent_end = self.eda.sent_index.arr[matching.sent_id+1]             # <<<<<<<<<<<<<< @@ -57152,7 +57266,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_e_sent_end = (__pyx_v_self->eda->sent_index->arr[(__pyx_v_matching->sent_id + 1)]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1501 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1509   *         e_sent_start = self.eda.sent_index.arr[matching.sent_id]   *         e_sent_end = self.eda.sent_index.arr[matching.sent_id+1]   *         e_sent_len = e_sent_end - e_sent_start - 1             # <<<<<<<<<<<<<< @@ -57161,7 +57275,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_e_sent_len = ((__pyx_v_e_sent_end - __pyx_v_e_sent_start) - 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1502 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1510   *         e_sent_end = self.eda.sent_index.arr[matching.sent_id+1]   *         e_sent_len = e_sent_end - e_sent_start - 1   *         f_sent_start = self.fda.sent_index.arr[matching.sent_id]             # <<<<<<<<<<<<<< @@ -57170,7 +57284,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_f_sent_start = (__pyx_v_self->fda->sent_index->arr[__pyx_v_matching->sent_id]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1503 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1511   *         e_sent_len = e_sent_end - e_sent_start - 1   *         f_sent_start = self.fda.sent_index.arr[matching.sent_id]   *         f_sent_end = self.fda.sent_index.arr[matching.sent_id+1]             # <<<<<<<<<<<<<< @@ -57179,7 +57293,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_f_sent_end = (__pyx_v_self->fda->sent_index->arr[(__pyx_v_matching->sent_id + 1)]); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1504 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1512   *         f_sent_start = self.fda.sent_index.arr[matching.sent_id]   *         f_sent_end = self.fda.sent_index.arr[matching.sent_id+1]   *         f_sent_len = f_sent_end - f_sent_start - 1             # <<<<<<<<<<<<<< @@ -57188,21 +57302,21 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_f_sent_len = ((__pyx_v_f_sent_end - __pyx_v_f_sent_start) - 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1506 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1514   *         f_sent_len = f_sent_end - f_sent_start - 1   *    *         self.findexes1.reset()             # <<<<<<<<<<<<<<   *         sofar = 0   *         for i in range(num_chunks):   */ -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes1), __pyx_n_s_reset); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes1), __pyx_n_s_reset); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1507 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1515   *    *         self.findexes1.reset()   *         sofar = 0             # <<<<<<<<<<<<<< @@ -57212,7 +57326,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    __Pyx_INCREF(__pyx_int_0);    __pyx_v_sofar = __pyx_int_0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1508 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1516   *         self.findexes1.reset()   *         sofar = 0   *         for i in range(num_chunks):             # <<<<<<<<<<<<<< @@ -57223,7 +57337,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_2; __pyx_t_4+=1) {      __pyx_v_i = __pyx_t_4; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1509 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1517   *         sofar = 0   *         for i in range(num_chunks):   *             for j in range(chunklen[i]):             # <<<<<<<<<<<<<< @@ -57234,32 +57348,32 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {        __pyx_v_j = __pyx_t_6; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1510 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1518   *         for i in range(num_chunks):   *             for j in range(chunklen[i]):   *                 self.findexes1.append(matching.arr[matching.start+i]+j-f_sent_start);             # <<<<<<<<<<<<<<   *                 sofar += 1   *             if i+1 < num_chunks:   */ -      __pyx_t_3 = __Pyx_PyInt_From_int((((__pyx_v_matching->arr[(__pyx_v_matching->start + __pyx_v_i)]) + __pyx_v_j) - __pyx_v_f_sent_start)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyInt_From_int((((__pyx_v_matching->arr[(__pyx_v_matching->start + __pyx_v_i)]) + __pyx_v_j) - __pyx_v_f_sent_start)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes1), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes1), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1511 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1519   *             for j in range(chunklen[i]):   *                 self.findexes1.append(matching.arr[matching.start+i]+j-f_sent_start);   *                 sofar += 1             # <<<<<<<<<<<<<<   *             if i+1 < num_chunks:   *                 self.findexes1.append(phrase[sofar])   */ -      __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_sofar, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1511; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_sofar, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF_SET(__pyx_v_sofar, __pyx_t_3);        __pyx_t_3 = 0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1512 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1520   *                 self.findexes1.append(matching.arr[matching.start+i]+j-f_sent_start);   *                 sofar += 1   *             if i+1 < num_chunks:             # <<<<<<<<<<<<<< @@ -57269,26 +57383,26 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      __pyx_t_8 = (((__pyx_v_i + 1) < __pyx_v_num_chunks) != 0);      if (__pyx_t_8) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1513 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1521   *                 sofar += 1   *             if i+1 < num_chunks:   *                 self.findexes1.append(phrase[sofar])             # <<<<<<<<<<<<<<   *                 sofar += 1   *    */ -      __pyx_t_3 = PyObject_GetItem(((PyObject *)__pyx_v_phrase), __pyx_v_sofar); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_3 = PyObject_GetItem(((PyObject *)__pyx_v_phrase), __pyx_v_sofar); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1521; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes1), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes1), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1514 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1522   *             if i+1 < num_chunks:   *                 self.findexes1.append(phrase[sofar])   *                 sofar += 1             # <<<<<<<<<<<<<<   *    *    */ -      __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_sofar, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_sofar, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF_SET(__pyx_v_sofar, __pyx_t_3);        __pyx_t_3 = 0; @@ -57297,7 +57411,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      __pyx_L7:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1517 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1525   *    *    *         e_links_low = <int*> malloc(e_sent_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -57306,7 +57420,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_e_links_low = ((int *)malloc((__pyx_v_e_sent_len * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1518 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1526   *    *         e_links_low = <int*> malloc(e_sent_len*sizeof(int))   *         e_links_high = <int*> malloc(e_sent_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -57315,7 +57429,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_e_links_high = ((int *)malloc((__pyx_v_e_sent_len * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1519 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1527   *         e_links_low = <int*> malloc(e_sent_len*sizeof(int))   *         e_links_high = <int*> malloc(e_sent_len*sizeof(int))   *         f_links_low = <int*> malloc(f_sent_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -57324,7 +57438,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_f_links_low = ((int *)malloc((__pyx_v_f_sent_len * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1520 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1528   *         e_links_high = <int*> malloc(e_sent_len*sizeof(int))   *         f_links_low = <int*> malloc(f_sent_len*sizeof(int))   *         f_links_high = <int*> malloc(f_sent_len*sizeof(int))             # <<<<<<<<<<<<<< @@ -57333,7 +57447,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_f_links_high = ((int *)malloc((__pyx_v_f_sent_len * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1521 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1529   *         f_links_low = <int*> malloc(f_sent_len*sizeof(int))   *         f_links_high = <int*> malloc(f_sent_len*sizeof(int))   *         f_gap_low = <int*> malloc((num_chunks+1)*sizeof(int))             # <<<<<<<<<<<<<< @@ -57342,7 +57456,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_f_gap_low = ((int *)malloc(((__pyx_v_num_chunks + 1) * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1522 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1530   *         f_links_high = <int*> malloc(f_sent_len*sizeof(int))   *         f_gap_low = <int*> malloc((num_chunks+1)*sizeof(int))   *         f_gap_high = <int*> malloc((num_chunks+1)*sizeof(int))             # <<<<<<<<<<<<<< @@ -57351,7 +57465,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_f_gap_high = ((int *)malloc(((__pyx_v_num_chunks + 1) * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1523 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1531   *         f_gap_low = <int*> malloc((num_chunks+1)*sizeof(int))   *         f_gap_high = <int*> malloc((num_chunks+1)*sizeof(int))   *         e_gap_low = <int*> malloc((num_chunks+1)*sizeof(int))             # <<<<<<<<<<<<<< @@ -57360,7 +57474,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_e_gap_low = ((int *)malloc(((__pyx_v_num_chunks + 1) * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1524 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1532   *         f_gap_high = <int*> malloc((num_chunks+1)*sizeof(int))   *         e_gap_low = <int*> malloc((num_chunks+1)*sizeof(int))   *         e_gap_high = <int*> malloc((num_chunks+1)*sizeof(int))             # <<<<<<<<<<<<<< @@ -57369,7 +57483,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_e_gap_high = ((int *)malloc(((__pyx_v_num_chunks + 1) * (sizeof(int))))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1525 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1533   *         e_gap_low = <int*> malloc((num_chunks+1)*sizeof(int))   *         e_gap_high = <int*> malloc((num_chunks+1)*sizeof(int))   *         memset(f_gap_low, 0, (num_chunks+1)*sizeof(int))             # <<<<<<<<<<<<<< @@ -57378,7 +57492,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    memset(__pyx_v_f_gap_low, 0, ((__pyx_v_num_chunks + 1) * (sizeof(int)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1526 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1534   *         e_gap_high = <int*> malloc((num_chunks+1)*sizeof(int))   *         memset(f_gap_low, 0, (num_chunks+1)*sizeof(int))   *         memset(f_gap_high, 0, (num_chunks+1)*sizeof(int))             # <<<<<<<<<<<<<< @@ -57387,7 +57501,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    memset(__pyx_v_f_gap_high, 0, ((__pyx_v_num_chunks + 1) * (sizeof(int)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1527 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1535   *         memset(f_gap_low, 0, (num_chunks+1)*sizeof(int))   *         memset(f_gap_high, 0, (num_chunks+1)*sizeof(int))   *         memset(e_gap_low, 0, (num_chunks+1)*sizeof(int))             # <<<<<<<<<<<<<< @@ -57396,7 +57510,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    memset(__pyx_v_e_gap_low, 0, ((__pyx_v_num_chunks + 1) * (sizeof(int)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1528 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1536   *         memset(f_gap_high, 0, (num_chunks+1)*sizeof(int))   *         memset(e_gap_low, 0, (num_chunks+1)*sizeof(int))   *         memset(e_gap_high, 0, (num_chunks+1)*sizeof(int))             # <<<<<<<<<<<<<< @@ -57405,7 +57519,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    memset(__pyx_v_e_gap_high, 0, ((__pyx_v_num_chunks + 1) * (sizeof(int)))); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1530 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1538   *         memset(e_gap_high, 0, (num_chunks+1)*sizeof(int))   *    *         reason_for_failure = ""             # <<<<<<<<<<<<<< @@ -57415,7 +57529,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    __Pyx_INCREF(__pyx_kp_s__32);    __pyx_v_reason_for_failure = __pyx_kp_s__32; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1532 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1540   *         reason_for_failure = ""   *    *         for i from 0 <= i < e_sent_len:             # <<<<<<<<<<<<<< @@ -57425,7 +57539,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    __pyx_t_2 = __pyx_v_e_sent_len;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1533 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1541   *    *         for i from 0 <= i < e_sent_len:   *             e_links_low[i] = -1             # <<<<<<<<<<<<<< @@ -57434,7 +57548,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */      (__pyx_v_e_links_low[__pyx_v_i]) = -1; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1534 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1542   *         for i from 0 <= i < e_sent_len:   *             e_links_low[i] = -1   *             e_links_high[i] = -1             # <<<<<<<<<<<<<< @@ -57444,7 +57558,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      (__pyx_v_e_links_high[__pyx_v_i]) = -1;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1535 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1543   *             e_links_low[i] = -1   *             e_links_high[i] = -1   *         for i from 0 <= i < f_sent_len:             # <<<<<<<<<<<<<< @@ -57454,7 +57568,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    __pyx_t_2 = __pyx_v_f_sent_len;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1536 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1544   *             e_links_high[i] = -1   *         for i from 0 <= i < f_sent_len:   *             f_links_low[i] = -1             # <<<<<<<<<<<<<< @@ -57463,7 +57577,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */      (__pyx_v_f_links_low[__pyx_v_i]) = -1; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1537 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1545   *         for i from 0 <= i < f_sent_len:   *             f_links_low[i] = -1   *             f_links_high[i] = -1             # <<<<<<<<<<<<<< @@ -57473,7 +57587,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      (__pyx_v_f_links_high[__pyx_v_i]) = -1;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1543 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1551   *         # links that we care about (but then how to look up   *         # when we want to check something on the e side?)   *         i = 0             # <<<<<<<<<<<<<< @@ -57482,7 +57596,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_i = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1544 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1552   *         # when we want to check something on the e side?)   *         i = 0   *         while i < num_links*2:             # <<<<<<<<<<<<<< @@ -57493,7 +57607,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      __pyx_t_8 = ((__pyx_v_i < (__pyx_v_num_links * 2)) != 0);      if (!__pyx_t_8) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1545 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1553   *         i = 0   *         while i < num_links*2:   *             f_i = sent_links[i]             # <<<<<<<<<<<<<< @@ -57502,7 +57616,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */      __pyx_v_f_i = (__pyx_v_sent_links[__pyx_v_i]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1546 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1554   *         while i < num_links*2:   *             f_i = sent_links[i]   *             e_i = sent_links[i+1]             # <<<<<<<<<<<<<< @@ -57511,7 +57625,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */      __pyx_v_e_i = (__pyx_v_sent_links[(__pyx_v_i + 1)]); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1547 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1555   *             f_i = sent_links[i]   *             e_i = sent_links[i+1]   *             if f_links_low[f_i] == -1 or f_links_low[f_i] > e_i:             # <<<<<<<<<<<<<< @@ -57527,7 +57641,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      }      if (__pyx_t_10) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1548 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1556   *             e_i = sent_links[i+1]   *             if f_links_low[f_i] == -1 or f_links_low[f_i] > e_i:   *                 f_links_low[f_i] = e_i             # <<<<<<<<<<<<<< @@ -57539,7 +57653,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      }      __pyx_L14:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1549 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1557   *             if f_links_low[f_i] == -1 or f_links_low[f_i] > e_i:   *                 f_links_low[f_i] = e_i   *             if f_links_high[f_i] == -1 or f_links_high[f_i] < e_i + 1:             # <<<<<<<<<<<<<< @@ -57555,7 +57669,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      }      if (__pyx_t_9) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1550 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1558   *                 f_links_low[f_i] = e_i   *             if f_links_high[f_i] == -1 or f_links_high[f_i] < e_i + 1:   *                 f_links_high[f_i] = e_i + 1             # <<<<<<<<<<<<<< @@ -57567,7 +57681,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      }      __pyx_L15:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1551 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1559   *             if f_links_high[f_i] == -1 or f_links_high[f_i] < e_i + 1:   *                 f_links_high[f_i] = e_i + 1   *             if e_links_low[e_i] == -1 or e_links_low[e_i] > f_i:             # <<<<<<<<<<<<<< @@ -57583,7 +57697,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      }      if (__pyx_t_8) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1552 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1560   *                 f_links_high[f_i] = e_i + 1   *             if e_links_low[e_i] == -1 or e_links_low[e_i] > f_i:   *                 e_links_low[e_i] = f_i             # <<<<<<<<<<<<<< @@ -57595,7 +57709,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      }      __pyx_L16:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1553 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1561   *             if e_links_low[e_i] == -1 or e_links_low[e_i] > f_i:   *                 e_links_low[e_i] = f_i   *             if e_links_high[e_i] == -1 or e_links_high[e_i] < f_i + 1:             # <<<<<<<<<<<<<< @@ -57611,7 +57725,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      }      if (__pyx_t_10) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1554 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1562   *                 e_links_low[e_i] = f_i   *             if e_links_high[e_i] == -1 or e_links_high[e_i] < f_i + 1:   *                 e_links_high[e_i] = f_i + 1             # <<<<<<<<<<<<<< @@ -57623,7 +57737,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      }      __pyx_L17:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1555 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1563   *             if e_links_high[e_i] == -1 or e_links_high[e_i] < f_i + 1:   *                 e_links_high[e_i] = f_i + 1   *             i = i + 2             # <<<<<<<<<<<<<< @@ -57633,19 +57747,19 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      __pyx_v_i = (__pyx_v_i + 2);    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1557 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1565   *             i = i + 2   *    *         als = []             # <<<<<<<<<<<<<<   *         for x in range(matching.start,matching.end):   *             al = (matching.arr[x]-f_sent_start,f_links_low[matching.arr[x]-f_sent_start])   */ -  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1557; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __pyx_v_als = ((PyObject*)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1558 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1566   *    *         als = []   *         for x in range(matching.start,matching.end):             # <<<<<<<<<<<<<< @@ -57656,18 +57770,18 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    for (__pyx_t_4 = __pyx_v_matching->start; __pyx_t_4 < __pyx_t_2; __pyx_t_4+=1) {      __pyx_v_x = __pyx_t_4; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1559 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1567   *         als = []   *         for x in range(matching.start,matching.end):   *             al = (matching.arr[x]-f_sent_start,f_links_low[matching.arr[x]-f_sent_start])             # <<<<<<<<<<<<<<   *             als.append(al)   *         # check all source-side alignment constraints   */ -    __pyx_t_3 = __Pyx_PyInt_From_int(((__pyx_v_matching->arr[__pyx_v_x]) - __pyx_v_f_sent_start)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1559; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyInt_From_int(((__pyx_v_matching->arr[__pyx_v_x]) - __pyx_v_f_sent_start)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_f_links_low[((__pyx_v_matching->arr[__pyx_v_x]) - __pyx_v_f_sent_start)])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1559; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_f_links_low[((__pyx_v_matching->arr[__pyx_v_x]) - __pyx_v_f_sent_start)])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1559; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_11);      PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3);      __Pyx_GIVEREF(__pyx_t_3); @@ -57678,17 +57792,17 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      __Pyx_XDECREF_SET(__pyx_v_al, ((PyObject*)__pyx_t_11));      __pyx_t_11 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1560 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1568   *         for x in range(matching.start,matching.end):   *             al = (matching.arr[x]-f_sent_start,f_links_low[matching.arr[x]-f_sent_start])   *             als.append(al)             # <<<<<<<<<<<<<<   *         # check all source-side alignment constraints   *         met_constraints = 1   */ -    __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_als, __pyx_v_al); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1560; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_als, __pyx_v_al); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1562 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1570   *             als.append(al)   *         # check all source-side alignment constraints   *         met_constraints = 1             # <<<<<<<<<<<<<< @@ -57697,7 +57811,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_met_constraints = 1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1563 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1571   *         # check all source-side alignment constraints   *         met_constraints = 1   *         if self.require_aligned_terminal:             # <<<<<<<<<<<<<< @@ -57707,7 +57821,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    __pyx_t_10 = (__pyx_v_self->require_aligned_terminal != 0);    if (__pyx_t_10) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1564 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1572   *         met_constraints = 1   *         if self.require_aligned_terminal:   *             num_aligned_chunks = 0             # <<<<<<<<<<<<<< @@ -57716,7 +57830,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */      __pyx_v_num_aligned_chunks = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1565 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1573   *         if self.require_aligned_terminal:   *             num_aligned_chunks = 0   *             for i from 0 <= i < num_chunks:             # <<<<<<<<<<<<<< @@ -57726,7 +57840,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      __pyx_t_2 = __pyx_v_num_chunks;      for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1566 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1574   *             num_aligned_chunks = 0   *             for i from 0 <= i < num_chunks:   *                 for j from 0 <= j < chunklen[i]:             # <<<<<<<<<<<<<< @@ -57736,7 +57850,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        __pyx_t_4 = (__pyx_v_chunklen[__pyx_v_i]);        for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_4; __pyx_v_j++) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1567 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1575   *             for i from 0 <= i < num_chunks:   *                 for j from 0 <= j < chunklen[i]:   *                     if f_links_low[matching.arr[matching.start+i]+j-f_sent_start] > -1:             # <<<<<<<<<<<<<< @@ -57746,7 +57860,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_t_10 = (((__pyx_v_f_links_low[(((__pyx_v_matching->arr[(__pyx_v_matching->start + __pyx_v_i)]) + __pyx_v_j) - __pyx_v_f_sent_start)]) > -1) != 0);          if (__pyx_t_10) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1568 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1576   *                 for j from 0 <= j < chunklen[i]:   *                     if f_links_low[matching.arr[matching.start+i]+j-f_sent_start] > -1:   *                         num_aligned_chunks = num_aligned_chunks + 1             # <<<<<<<<<<<<<< @@ -57755,7 +57869,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */            __pyx_v_num_aligned_chunks = (__pyx_v_num_aligned_chunks + 1); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1569 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1577   *                     if f_links_low[matching.arr[matching.start+i]+j-f_sent_start] > -1:   *                         num_aligned_chunks = num_aligned_chunks + 1   *                         break             # <<<<<<<<<<<<<< @@ -57768,7 +57882,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        __pyx_L24_break:;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1570 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1578   *                         num_aligned_chunks = num_aligned_chunks + 1   *                         break   *             if num_aligned_chunks == 0:             # <<<<<<<<<<<<<< @@ -57778,7 +57892,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      __pyx_t_10 = ((__pyx_v_num_aligned_chunks == 0) != 0);      if (__pyx_t_10) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1571 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1579   *                         break   *             if num_aligned_chunks == 0:   *                 reason_for_failure = "No aligned terminals"             # <<<<<<<<<<<<<< @@ -57788,7 +57902,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        __Pyx_INCREF(__pyx_kp_s_No_aligned_terminals);        __Pyx_DECREF_SET(__pyx_v_reason_for_failure, __pyx_kp_s_No_aligned_terminals); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1572 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1580   *             if num_aligned_chunks == 0:   *                 reason_for_failure = "No aligned terminals"   *                 met_constraints = 0             # <<<<<<<<<<<<<< @@ -57800,7 +57914,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      }      __pyx_L26:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1573 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1581   *                 reason_for_failure = "No aligned terminals"   *                 met_constraints = 0   *             if self.require_aligned_chunks and num_aligned_chunks < num_chunks:             # <<<<<<<<<<<<<< @@ -57815,7 +57929,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      }      if (__pyx_t_8) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1574 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1582   *                 met_constraints = 0   *             if self.require_aligned_chunks and num_aligned_chunks < num_chunks:   *                 reason_for_failure = "Unaligned chunk"             # <<<<<<<<<<<<<< @@ -57825,7 +57939,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        __Pyx_INCREF(__pyx_kp_s_Unaligned_chunk);        __Pyx_DECREF_SET(__pyx_v_reason_for_failure, __pyx_kp_s_Unaligned_chunk); -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1575 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1583   *             if self.require_aligned_chunks and num_aligned_chunks < num_chunks:   *                 reason_for_failure = "Unaligned chunk"   *                 met_constraints = 0             # <<<<<<<<<<<<<< @@ -57840,7 +57954,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    }    __pyx_L20:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1577 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1585   *                 met_constraints = 0   *    *         if met_constraints and self.tight_phrases:             # <<<<<<<<<<<<<< @@ -57855,7 +57969,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    }    if (__pyx_t_10) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1579 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1587   *         if met_constraints and self.tight_phrases:   *             # outside edge constraints are checked later   *             for i from 0 <= i < num_chunks-1:             # <<<<<<<<<<<<<< @@ -57865,7 +57979,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      __pyx_t_12 = (__pyx_v_num_chunks - 1);      for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_12; __pyx_v_i++) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1580 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1588   *             # outside edge constraints are checked later   *             for i from 0 <= i < num_chunks-1:   *                 if f_links_low[matching.arr[matching.start+i]+chunklen[i]-f_sent_start] == -1:             # <<<<<<<<<<<<<< @@ -57875,7 +57989,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        __pyx_t_10 = (((__pyx_v_f_links_low[(((__pyx_v_matching->arr[(__pyx_v_matching->start + __pyx_v_i)]) + (__pyx_v_chunklen[__pyx_v_i])) - __pyx_v_f_sent_start)]) == -1) != 0);        if (__pyx_t_10) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1581 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1589   *             for i from 0 <= i < num_chunks-1:   *                 if f_links_low[matching.arr[matching.start+i]+chunklen[i]-f_sent_start] == -1:   *                     reason_for_failure = "Gaps are not tight phrases"             # <<<<<<<<<<<<<< @@ -57885,7 +57999,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __Pyx_INCREF(__pyx_kp_s_Gaps_are_not_tight_phrases);          __Pyx_DECREF_SET(__pyx_v_reason_for_failure, __pyx_kp_s_Gaps_are_not_tight_phrases); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1582 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1590   *                 if f_links_low[matching.arr[matching.start+i]+chunklen[i]-f_sent_start] == -1:   *                     reason_for_failure = "Gaps are not tight phrases"   *                     met_constraints = 0             # <<<<<<<<<<<<<< @@ -57894,7 +58008,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          __pyx_v_met_constraints = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1583 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1591   *                     reason_for_failure = "Gaps are not tight phrases"   *                     met_constraints = 0   *                     break             # <<<<<<<<<<<<<< @@ -57904,7 +58018,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          goto __pyx_L30_break;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1584 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1592   *                     met_constraints = 0   *                     break   *                 if f_links_low[matching.arr[matching.start+i+1]-1-f_sent_start] == -1:             # <<<<<<<<<<<<<< @@ -57914,7 +58028,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        __pyx_t_10 = (((__pyx_v_f_links_low[(((__pyx_v_matching->arr[((__pyx_v_matching->start + __pyx_v_i) + 1)]) - 1) - __pyx_v_f_sent_start)]) == -1) != 0);        if (__pyx_t_10) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1585 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1593   *                     break   *                 if f_links_low[matching.arr[matching.start+i+1]-1-f_sent_start] == -1:   *                     reason_for_failure = "Gaps are not tight phrases"             # <<<<<<<<<<<<<< @@ -57924,7 +58038,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __Pyx_INCREF(__pyx_kp_s_Gaps_are_not_tight_phrases);          __Pyx_DECREF_SET(__pyx_v_reason_for_failure, __pyx_kp_s_Gaps_are_not_tight_phrases); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1586 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1594   *                 if f_links_low[matching.arr[matching.start+i+1]-1-f_sent_start] == -1:   *                     reason_for_failure = "Gaps are not tight phrases"   *                     met_constraints = 0             # <<<<<<<<<<<<<< @@ -57933,7 +58047,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          __pyx_v_met_constraints = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1587 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1595   *                     reason_for_failure = "Gaps are not tight phrases"   *                     met_constraints = 0   *                     break             # <<<<<<<<<<<<<< @@ -57948,7 +58062,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    }    __pyx_L28:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1589 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1597   *                     break   *    *         f_low = matching.arr[matching.start] - f_sent_start             # <<<<<<<<<<<<<< @@ -57957,7 +58071,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_f_low = ((__pyx_v_matching->arr[__pyx_v_matching->start]) - __pyx_v_f_sent_start); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1590 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1598   *    *         f_low = matching.arr[matching.start] - f_sent_start   *         f_high = matching.arr[matching.start + matching.size - 1] + chunklen[num_chunks-1] - f_sent_start             # <<<<<<<<<<<<<< @@ -57966,7 +58080,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    __pyx_v_f_high = (((__pyx_v_matching->arr[((__pyx_v_matching->start + __pyx_v_matching->size) - 1)]) + (__pyx_v_chunklen[(__pyx_v_num_chunks - 1)])) - __pyx_v_f_sent_start); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1591 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1599   *         f_low = matching.arr[matching.start] - f_sent_start   *         f_high = matching.arr[matching.start + matching.size - 1] + chunklen[num_chunks-1] - f_sent_start   *         if met_constraints:             # <<<<<<<<<<<<<< @@ -57976,17 +58090,17 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    __pyx_t_10 = (__pyx_v_met_constraints != 0);    if (__pyx_t_10) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1593 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1601   *         if met_constraints:   *    *             if self.find_fixpoint(f_low, f_high, f_links_low, f_links_high, e_links_low, e_links_high,             # <<<<<<<<<<<<<<   *                                 -1, -1, &e_low, &e_high, &f_back_low, &f_back_high, f_sent_len, e_sent_len,   *                                 self.train_max_initial_size, self.train_max_initial_size,   */ -    __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_f_high); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_f_high); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_11); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1597 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1605   *                                 self.train_max_initial_size, self.train_max_initial_size,   *                                 self.train_min_gap_size, 0,   *                                 self.max_nonterminals - num_chunks + 1, 1, 1, 0, 0):             # <<<<<<<<<<<<<< @@ -57997,7 +58111,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;      if (__pyx_t_10) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1598 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1606   *                                 self.train_min_gap_size, 0,   *                                 self.max_nonterminals - num_chunks + 1, 1, 1, 0, 0):   *                 gap_error = 0             # <<<<<<<<<<<<<< @@ -58006,7 +58120,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */        __pyx_v_gap_error = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1599 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1607   *                                 self.max_nonterminals - num_chunks + 1, 1, 1, 0, 0):   *                 gap_error = 0   *                 num_gaps = 0             # <<<<<<<<<<<<<< @@ -58015,7 +58129,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */        __pyx_v_num_gaps = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1601 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1609   *                 num_gaps = 0   *    *                 if f_back_low < f_low:             # <<<<<<<<<<<<<< @@ -58025,7 +58139,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        __pyx_t_10 = ((__pyx_v_f_back_low < __pyx_v_f_low) != 0);        if (__pyx_t_10) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1602 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1610   *    *                 if f_back_low < f_low:   *                     f_gap_low[0] = f_back_low             # <<<<<<<<<<<<<< @@ -58034,7 +58148,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          (__pyx_v_f_gap_low[0]) = __pyx_v_f_back_low; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1603 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1611   *                 if f_back_low < f_low:   *                     f_gap_low[0] = f_back_low   *                     f_gap_high[0] = f_low             # <<<<<<<<<<<<<< @@ -58043,7 +58157,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          (__pyx_v_f_gap_high[0]) = __pyx_v_f_low; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1604 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1612   *                     f_gap_low[0] = f_back_low   *                     f_gap_high[0] = f_low   *                     num_gaps = 1             # <<<<<<<<<<<<<< @@ -58052,7 +58166,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          __pyx_v_num_gaps = 1; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1605 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1613   *                     f_gap_high[0] = f_low   *                     num_gaps = 1   *                     gap_start = 0             # <<<<<<<<<<<<<< @@ -58061,7 +58175,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          __pyx_v_gap_start = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1606 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1614   *                     num_gaps = 1   *                     gap_start = 0   *                     phrase_len = phrase_len+1             # <<<<<<<<<<<<<< @@ -58070,7 +58184,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          __pyx_v_phrase_len = (__pyx_v_phrase_len + 1); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1607 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1615   *                     gap_start = 0   *                     phrase_len = phrase_len+1   *                     if phrase_len > self.max_length:             # <<<<<<<<<<<<<< @@ -58080,7 +58194,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_t_10 = ((__pyx_v_phrase_len > __pyx_v_self->max_length) != 0);          if (__pyx_t_10) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1608 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1616   *                     phrase_len = phrase_len+1   *                     if phrase_len > self.max_length:   *                         gap_error = 1             # <<<<<<<<<<<<<< @@ -58092,7 +58206,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          }          __pyx_L36:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1609 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1617   *                     if phrase_len > self.max_length:   *                         gap_error = 1   *                     if self.tight_phrases:             # <<<<<<<<<<<<<< @@ -58102,7 +58216,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_t_10 = (__pyx_v_self->tight_phrases != 0);          if (__pyx_t_10) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1610 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1618   *                         gap_error = 1   *                     if self.tight_phrases:   *                         if f_links_low[f_back_low] == -1 or f_links_low[f_low-1] == -1:             # <<<<<<<<<<<<<< @@ -58118,7 +58232,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            }            if (__pyx_t_9) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1611 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1619   *                     if self.tight_phrases:   *                         if f_links_low[f_back_low] == -1 or f_links_low[f_low-1] == -1:   *                             gap_error = 1             # <<<<<<<<<<<<<< @@ -58127,7 +58241,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_v_gap_error = 1; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1612 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1620   *                         if f_links_low[f_back_low] == -1 or f_links_low[f_low-1] == -1:   *                             gap_error = 1   *                             reason_for_failure = "Inside edges of preceding subphrase are not tight"             # <<<<<<<<<<<<<< @@ -58146,7 +58260,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        }        /*else*/ { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1614 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1622   *                             reason_for_failure = "Inside edges of preceding subphrase are not tight"   *                 else:   *                     gap_start = 1             # <<<<<<<<<<<<<< @@ -58155,7 +58269,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          __pyx_v_gap_start = 1; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1615 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1623   *                 else:   *                     gap_start = 1   *                     if self.tight_phrases and f_links_low[f_low] == -1:             # <<<<<<<<<<<<<< @@ -58170,7 +58284,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          }          if (__pyx_t_10) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1618 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1626   *                         # this is not a hard error.    we can't extract this phrase   *                         # but we still might be able to extract a superphrase   *                         met_constraints = 0             # <<<<<<<<<<<<<< @@ -58184,7 +58298,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        }        __pyx_L35:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1620 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1628   *                         met_constraints = 0   *    *                 for i from 0 <= i < matching.size - 1:             # <<<<<<<<<<<<<< @@ -58194,7 +58308,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        __pyx_t_12 = (__pyx_v_matching->size - 1);        for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_12; __pyx_v_i++) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1621 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1629   *    *                 for i from 0 <= i < matching.size - 1:   *                     f_gap_low[1+i] = matching.arr[matching.start+i] + chunklen[i] - f_sent_start             # <<<<<<<<<<<<<< @@ -58203,7 +58317,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          (__pyx_v_f_gap_low[(1 + __pyx_v_i)]) = (((__pyx_v_matching->arr[(__pyx_v_matching->start + __pyx_v_i)]) + (__pyx_v_chunklen[__pyx_v_i])) - __pyx_v_f_sent_start); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1622 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1630   *                 for i from 0 <= i < matching.size - 1:   *                     f_gap_low[1+i] = matching.arr[matching.start+i] + chunklen[i] - f_sent_start   *                     f_gap_high[1+i] = matching.arr[matching.start+i+1] - f_sent_start             # <<<<<<<<<<<<<< @@ -58212,7 +58326,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          (__pyx_v_f_gap_high[(1 + __pyx_v_i)]) = ((__pyx_v_matching->arr[((__pyx_v_matching->start + __pyx_v_i) + 1)]) - __pyx_v_f_sent_start); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1623 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1631   *                     f_gap_low[1+i] = matching.arr[matching.start+i] + chunklen[i] - f_sent_start   *                     f_gap_high[1+i] = matching.arr[matching.start+i+1] - f_sent_start   *                     num_gaps = num_gaps + 1             # <<<<<<<<<<<<<< @@ -58222,7 +58336,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_v_num_gaps = (__pyx_v_num_gaps + 1);        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1625 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1633   *                     num_gaps = num_gaps + 1   *    *                 if f_high < f_back_high:             # <<<<<<<<<<<<<< @@ -58232,7 +58346,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        __pyx_t_10 = ((__pyx_v_f_high < __pyx_v_f_back_high) != 0);        if (__pyx_t_10) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1626 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1634   *    *                 if f_high < f_back_high:   *                     f_gap_low[gap_start+num_gaps] = f_high             # <<<<<<<<<<<<<< @@ -58241,7 +58355,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          (__pyx_v_f_gap_low[(__pyx_v_gap_start + __pyx_v_num_gaps)]) = __pyx_v_f_high; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1627 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1635   *                 if f_high < f_back_high:   *                     f_gap_low[gap_start+num_gaps] = f_high   *                     f_gap_high[gap_start+num_gaps] = f_back_high             # <<<<<<<<<<<<<< @@ -58250,7 +58364,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          (__pyx_v_f_gap_high[(__pyx_v_gap_start + __pyx_v_num_gaps)]) = __pyx_v_f_back_high; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1628 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1636   *                     f_gap_low[gap_start+num_gaps] = f_high   *                     f_gap_high[gap_start+num_gaps] = f_back_high   *                     num_gaps = num_gaps + 1             # <<<<<<<<<<<<<< @@ -58259,7 +58373,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          __pyx_v_num_gaps = (__pyx_v_num_gaps + 1); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1629 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1637   *                     f_gap_high[gap_start+num_gaps] = f_back_high   *                     num_gaps = num_gaps + 1   *                     phrase_len = phrase_len+1             # <<<<<<<<<<<<<< @@ -58268,7 +58382,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          __pyx_v_phrase_len = (__pyx_v_phrase_len + 1); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1630 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1638   *                     num_gaps = num_gaps + 1   *                     phrase_len = phrase_len+1   *                     if phrase_len > self.max_length:             # <<<<<<<<<<<<<< @@ -58278,7 +58392,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_t_10 = ((__pyx_v_phrase_len > __pyx_v_self->max_length) != 0);          if (__pyx_t_10) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1631 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1639   *                     phrase_len = phrase_len+1   *                     if phrase_len > self.max_length:   *                         gap_error = 1             # <<<<<<<<<<<<<< @@ -58290,7 +58404,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          }          __pyx_L43:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1632 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1640   *                     if phrase_len > self.max_length:   *                         gap_error = 1   *                     if self.tight_phrases:             # <<<<<<<<<<<<<< @@ -58300,7 +58414,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_t_10 = (__pyx_v_self->tight_phrases != 0);          if (__pyx_t_10) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1633 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1641   *                         gap_error = 1   *                     if self.tight_phrases:   *                         if f_links_low[f_back_high-1] == -1 or f_links_low[f_high] == -1:             # <<<<<<<<<<<<<< @@ -58316,7 +58430,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            }            if (__pyx_t_8) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1634 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1642   *                     if self.tight_phrases:   *                         if f_links_low[f_back_high-1] == -1 or f_links_low[f_high] == -1:   *                             gap_error = 1             # <<<<<<<<<<<<<< @@ -58325,7 +58439,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_v_gap_error = 1; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1635 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1643   *                         if f_links_low[f_back_high-1] == -1 or f_links_low[f_high] == -1:   *                             gap_error = 1   *                             reason_for_failure = "Inside edges of following subphrase are not tight"             # <<<<<<<<<<<<<< @@ -58344,7 +58458,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        }        /*else*/ { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1637 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1645   *                             reason_for_failure = "Inside edges of following subphrase are not tight"   *                 else:   *                     if self.tight_phrases and f_links_low[f_high-1] == -1:             # <<<<<<<<<<<<<< @@ -58359,7 +58473,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          }          if (__pyx_t_10) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1638 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1646   *                 else:   *                     if self.tight_phrases and f_links_low[f_high-1] == -1:   *                         met_constraints = 0             # <<<<<<<<<<<<<< @@ -58373,7 +58487,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        }        __pyx_L42:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1640 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1648   *                         met_constraints = 0   *    *                 if gap_error == 0:             # <<<<<<<<<<<<<< @@ -58383,7 +58497,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        __pyx_t_10 = ((__pyx_v_gap_error == 0) != 0);        if (__pyx_t_10) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1641 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1649   *    *                 if gap_error == 0:   *                     e_word_count = e_high - e_low             # <<<<<<<<<<<<<< @@ -58392,7 +58506,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          __pyx_v_e_word_count = (__pyx_v_e_high - __pyx_v_e_low); -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1642 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1650   *                 if gap_error == 0:   *                     e_word_count = e_high - e_low   *                     for i from 0 <= i < num_gaps: # check integrity of subphrases             # <<<<<<<<<<<<<< @@ -58402,17 +58516,17 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_t_2 = __pyx_v_num_gaps;          for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1643 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1651   *                     e_word_count = e_high - e_low   *                     for i from 0 <= i < num_gaps: # check integrity of subphrases   *                         if self.find_fixpoint(f_gap_low[gap_start+i], f_gap_high[gap_start+i],             # <<<<<<<<<<<<<<   *                                             f_links_low, f_links_high, e_links_low, e_links_high,   *                                             -1, -1, e_gap_low+gap_start+i, e_gap_high+gap_start+i,   */ -          __pyx_t_11 = __Pyx_PyInt_From_int((__pyx_v_f_gap_high[(__pyx_v_gap_start + __pyx_v_i)])); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1643; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = __Pyx_PyInt_From_int((__pyx_v_f_gap_high[(__pyx_v_gap_start + __pyx_v_i)])); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1649 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1657   *                                             f_sent_len, e_sent_len,   *                                             self.train_max_initial_size, self.train_max_initial_size,   *                                             0, 0, 0, 0, 0, 0, 0) == 0:             # <<<<<<<<<<<<<< @@ -58423,7 +58537,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;            if (__pyx_t_10) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1650 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1658   *                                             self.train_max_initial_size, self.train_max_initial_size,   *                                             0, 0, 0, 0, 0, 0, 0) == 0:   *                             gap_error = 1             # <<<<<<<<<<<<<< @@ -58432,18 +58546,18 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_v_gap_error = 1; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1651 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1659   *                                             0, 0, 0, 0, 0, 0, 0) == 0:   *                             gap_error = 1   *                             reason_for_failure = "Subphrase [%d, %d] failed integrity check" % (f_gap_low[gap_start+i], f_gap_high[gap_start+i])             # <<<<<<<<<<<<<<   *                             break   *    */ -            __pyx_t_11 = __Pyx_PyInt_From_int((__pyx_v_f_gap_low[(__pyx_v_gap_start + __pyx_v_i)])); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1651; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = __Pyx_PyInt_From_int((__pyx_v_f_gap_low[(__pyx_v_gap_start + __pyx_v_i)])); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11); -            __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_f_gap_high[(__pyx_v_gap_start + __pyx_v_i)])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1651; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_f_gap_high[(__pyx_v_gap_start + __pyx_v_i)])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1651; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_3);              PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_11);              __Pyx_GIVEREF(__pyx_t_11); @@ -58451,13 +58565,13 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __Pyx_GIVEREF(__pyx_t_1);              __pyx_t_11 = 0;              __pyx_t_1 = 0; -            __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Subphrase_d_d_failed_integrity_c, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1651; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Subphrase_d_d_failed_integrity_c, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_1);              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;              __Pyx_DECREF_SET(__pyx_v_reason_for_failure, __pyx_t_1);              __pyx_t_1 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1652 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1660   *                             gap_error = 1   *                             reason_for_failure = "Subphrase [%d, %d] failed integrity check" % (f_gap_low[gap_start+i], f_gap_high[gap_start+i])   *                             break             # <<<<<<<<<<<<<< @@ -58472,7 +58586,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        }        __pyx_L47:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1654 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1662   *                             break   *    *                 if gap_error == 0:             # <<<<<<<<<<<<<< @@ -58482,7 +58596,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct        __pyx_t_10 = ((__pyx_v_gap_error == 0) != 0);        if (__pyx_t_10) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1655 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1663   *    *                 if gap_error == 0:   *                     i = 1             # <<<<<<<<<<<<<< @@ -58491,21 +58605,21 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */          __pyx_v_i = 1; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1656 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1664   *                 if gap_error == 0:   *                     i = 1   *                     self.findexes.reset()             # <<<<<<<<<<<<<<   *                     if f_back_low < f_low:   *                         fphr_arr._append(sym_setindex(self.category, i))   */ -        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_reset); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1656; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_reset); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1656; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3);          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1657 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1665   *                     i = 1   *                     self.findexes.reset()   *                     if f_back_low < f_low:             # <<<<<<<<<<<<<< @@ -58515,7 +58629,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_t_10 = ((__pyx_v_f_back_low < __pyx_v_f_low) != 0);          if (__pyx_t_10) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1658 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1666   *                     self.findexes.reset()   *                     if f_back_low < f_low:   *                         fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -58524,7 +58638,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */            ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1659 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1667   *                     if f_back_low < f_low:   *                         fphr_arr._append(sym_setindex(self.category, i))   *                         i = i+1             # <<<<<<<<<<<<<< @@ -58533,42 +58647,42 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */            __pyx_v_i = (__pyx_v_i + 1); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1660 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1668   *                         fphr_arr._append(sym_setindex(self.category, i))   *                         i = i+1   *                         self.findexes.append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<<   *                     self.findexes.extend(self.findexes1)   *                     for j from 0 <= j < phrase.n:   */ -          __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1660; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_3); -          __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1660; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;            goto __pyx_L52;          }          __pyx_L52:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1661 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1669   *                         i = i+1   *                         self.findexes.append(sym_setindex(self.category, i))   *                     self.findexes.extend(self.findexes1)             # <<<<<<<<<<<<<<   *                     for j from 0 <= j < phrase.n:   *                         if sym_isvar(phrase.syms[j]):   */ -        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_extend); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1661; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_extend); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3); -        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1661; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1);          __Pyx_INCREF(((PyObject *)__pyx_v_self->findexes1));          PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->findexes1));          __Pyx_GIVEREF(((PyObject *)__pyx_v_self->findexes1)); -        __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1661; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_11);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1662 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1670   *                         self.findexes.append(sym_setindex(self.category, i))   *                     self.findexes.extend(self.findexes1)   *                     for j from 0 <= j < phrase.n:             # <<<<<<<<<<<<<< @@ -58578,7 +58692,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_t_2 = __pyx_v_phrase->n;          for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_2; __pyx_v_j++) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1663 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1671   *                     self.findexes.extend(self.findexes1)   *                     for j from 0 <= j < phrase.n:   *                         if sym_isvar(phrase.syms[j]):             # <<<<<<<<<<<<<< @@ -58588,7 +58702,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            __pyx_t_10 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar((__pyx_v_phrase->syms[__pyx_v_j])) != 0);            if (__pyx_t_10) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1664 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1672   *                     for j from 0 <= j < phrase.n:   *                         if sym_isvar(phrase.syms[j]):   *                             fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -58597,7 +58711,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1665 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1673   *                         if sym_isvar(phrase.syms[j]):   *                             fphr_arr._append(sym_setindex(self.category, i))   *                             i = i + 1             # <<<<<<<<<<<<<< @@ -58609,7 +58723,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            }            /*else*/ { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1667 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1675   *                             i = i + 1   *                         else:   *                             fphr_arr._append(phrase.syms[j])             # <<<<<<<<<<<<<< @@ -58621,7 +58735,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            __pyx_L55:;          } -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1668 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1676   *                         else:   *                             fphr_arr._append(phrase.syms[j])   *                     if f_back_high > f_high:             # <<<<<<<<<<<<<< @@ -58631,7 +58745,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_t_10 = ((__pyx_v_f_back_high > __pyx_v_f_high) != 0);          if (__pyx_t_10) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1669 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1677   *                             fphr_arr._append(phrase.syms[j])   *                     if f_back_high > f_high:   *                         fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -58640,40 +58754,40 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */            ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1670 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1678   *                     if f_back_high > f_high:   *                         fphr_arr._append(sym_setindex(self.category, i))   *                         self.findexes.append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<<   *    *                     fphr = Phrase(fphr_arr)   */ -          __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1670; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_11); -          __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_11); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1670; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_11); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;            goto __pyx_L56;          }          __pyx_L56:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1672 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1680   *                         self.findexes.append(sym_setindex(self.category, i))   *    *                     fphr = Phrase(fphr_arr)             # <<<<<<<<<<<<<<   *                     if met_constraints:   *                         phrase_list = self.extract_phrases(e_low, e_high, e_gap_low + gap_start, e_gap_high + gap_start, e_links_low, num_gaps,   */ -        __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_11);          __Pyx_INCREF(((PyObject *)__pyx_v_fphr_arr));          PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_v_fphr_arr));          __Pyx_GIVEREF(((PyObject *)__pyx_v_fphr_arr)); -        __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1672; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1);          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;          __pyx_v_fphr = ((struct __pyx_obj_4cdec_2sa_3_sa_Phrase *)__pyx_t_1);          __pyx_t_1 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1673 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1681   *    *                     fphr = Phrase(fphr_arr)   *                     if met_constraints:             # <<<<<<<<<<<<<< @@ -58683,37 +58797,37 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_t_10 = (__pyx_v_met_constraints != 0);          if (__pyx_t_10) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1674 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1682   *                     fphr = Phrase(fphr_arr)   *                     if met_constraints:   *                         phrase_list = self.extract_phrases(e_low, e_high, e_gap_low + gap_start, e_gap_high + gap_start, e_links_low, num_gaps,             # <<<<<<<<<<<<<<   *                                             f_back_low, f_back_high, f_gap_low + gap_start, f_gap_high + gap_start, f_links_low,   *                                             matching.sent_id, e_sent_len, e_sent_start)   */ -          __pyx_t_1 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->extract_phrases(__pyx_v_self, __pyx_v_e_low, __pyx_v_e_high, (__pyx_v_e_gap_low + __pyx_v_gap_start), (__pyx_v_e_gap_high + __pyx_v_gap_start), __pyx_v_e_links_low, __pyx_v_num_gaps, __pyx_v_f_back_low, __pyx_v_f_back_high, (__pyx_v_f_gap_low + __pyx_v_gap_start), (__pyx_v_f_gap_high + __pyx_v_gap_start), __pyx_v_f_links_low, __pyx_v_matching->sent_id, __pyx_v_e_sent_len, __pyx_v_e_sent_start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->extract_phrases(__pyx_v_self, __pyx_v_e_low, __pyx_v_e_high, (__pyx_v_e_gap_low + __pyx_v_gap_start), (__pyx_v_e_gap_high + __pyx_v_gap_start), __pyx_v_e_links_low, __pyx_v_num_gaps, __pyx_v_f_back_low, __pyx_v_f_back_high, (__pyx_v_f_gap_low + __pyx_v_gap_start), (__pyx_v_f_gap_high + __pyx_v_gap_start), __pyx_v_f_links_low, __pyx_v_matching->sent_id, __pyx_v_e_sent_len, __pyx_v_e_sent_start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_1);            __pyx_v_phrase_list = __pyx_t_1;            __pyx_t_1 = 0; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1677 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1685   *                                             f_back_low, f_back_high, f_gap_low + gap_start, f_gap_high + gap_start, f_links_low,   *                                             matching.sent_id, e_sent_len, e_sent_start)   *                         if len(phrase_list) > 0:             # <<<<<<<<<<<<<<   *                             pair_count = 1.0 / len(phrase_list)   *                         else:   */ -          __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1677; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __pyx_t_10 = ((__pyx_t_13 > 0) != 0);            if (__pyx_t_10) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1678 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1686   *                                             matching.sent_id, e_sent_len, e_sent_start)   *                         if len(phrase_list) > 0:   *                             pair_count = 1.0 / len(phrase_list)             # <<<<<<<<<<<<<<   *                         else:   *                             pair_count = 0   */ -            __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1678; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              if (unlikely(__pyx_t_13 == 0)) {                #ifdef WITH_THREAD                PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); @@ -58722,14 +58836,14 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                #ifdef WITH_THREAD                PyGILState_Release(__pyx_gilstate_save);                #endif -              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1678; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              }              __pyx_v_pair_count = (1.0 / __pyx_t_13);              goto __pyx_L58;            }            /*else*/ { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1680 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1688   *                             pair_count = 1.0 / len(phrase_list)   *                         else:   *                             pair_count = 0             # <<<<<<<<<<<<<< @@ -58738,22 +58852,22 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_v_pair_count = 0.0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1681 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1689   *                         else:   *                             pair_count = 0   *                             reason_for_failure = "Didn't extract anything from [%d, %d] -> [%d, %d]" % (f_back_low, f_back_high, e_low, e_high)             # <<<<<<<<<<<<<<   *                         for phrase2, eindexes in phrase_list:   *                             als1 = self.create_alignments(sent_links,num_links,self.findexes,eindexes)   */ -            __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_f_back_low); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_f_back_low); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_f_back_high); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_f_back_high); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11); -            __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_e_low); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_e_low); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_3); -            __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_e_high); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_e_high); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_14); -            __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_15);              PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_1);              __Pyx_GIVEREF(__pyx_t_1); @@ -58767,7 +58881,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __pyx_t_11 = 0;              __pyx_t_3 = 0;              __pyx_t_14 = 0; -            __pyx_t_14 = __Pyx_PyString_Format(__pyx_kp_s_Didn_t_extract_anything_from_d_d, __pyx_t_15); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_14 = __Pyx_PyString_Format(__pyx_kp_s_Didn_t_extract_anything_from_d_d, __pyx_t_15); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_14);              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;              __Pyx_DECREF_SET(__pyx_v_reason_for_failure, __pyx_t_14); @@ -58775,7 +58889,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            }            __pyx_L58:; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1682 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1690   *                             pair_count = 0   *                             reason_for_failure = "Didn't extract anything from [%d, %d] -> [%d, %d]" % (f_back_low, f_back_high, e_low, e_high)   *                         for phrase2, eindexes in phrase_list:             # <<<<<<<<<<<<<< @@ -58786,7 +58900,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __pyx_t_14 = __pyx_v_phrase_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_13 = 0;              __pyx_t_16 = NULL;            } else { -            __pyx_t_13 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_v_phrase_list); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_13 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_v_phrase_list); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_14);              __pyx_t_16 = Py_TYPE(__pyx_t_14)->tp_iternext;            } @@ -58794,16 +58908,16 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              if (!__pyx_t_16 && PyList_CheckExact(__pyx_t_14)) {                if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_14)) break;                #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_15 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                #else -              __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                #endif              } else if (!__pyx_t_16 && PyTuple_CheckExact(__pyx_t_14)) {                if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_14)) break;                #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                #else -              __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                #endif              } else {                __pyx_t_15 = __pyx_t_16(__pyx_t_14); @@ -58811,7 +58925,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  PyObject* exc_type = PyErr_Occurred();                  if (exc_type) {                    if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  }                  break;                } @@ -58827,7 +58941,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                if (unlikely(size != 2)) {                  if (size > 2) __Pyx_RaiseTooManyValuesError(2);                  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                }                #if CYTHON_COMPILING_IN_CPYTHON                if (likely(PyTuple_CheckExact(sequence))) { @@ -58840,15 +58954,15 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                __Pyx_INCREF(__pyx_t_3);                __Pyx_INCREF(__pyx_t_11);                #else -              __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_3); -              __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_11);                #endif                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;              } else {                Py_ssize_t index = -1; -              __pyx_t_1 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_1 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_1);                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                __pyx_t_17 = Py_TYPE(__pyx_t_1)->tp_iternext; @@ -58856,7 +58970,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                __Pyx_GOTREF(__pyx_t_3);                index = 1; __pyx_t_11 = __pyx_t_17(__pyx_t_1); if (unlikely(!__pyx_t_11)) goto __pyx_L61_unpacking_failed;                __Pyx_GOTREF(__pyx_t_11); -              if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __pyx_t_17 = NULL;                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                goto __pyx_L62_unpacking_done; @@ -58864,7 +58978,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                __pyx_t_17 = NULL;                if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __pyx_L62_unpacking_done:;              }              __Pyx_XDECREF_SET(__pyx_v_phrase2, __pyx_t_3); @@ -58872,7 +58986,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __Pyx_XDECREF_SET(__pyx_v_eindexes, __pyx_t_11);              __pyx_t_11 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1683 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1691   *                             reason_for_failure = "Didn't extract anything from [%d, %d] -> [%d, %d]" % (f_back_low, f_back_high, e_low, e_high)   *                         for phrase2, eindexes in phrase_list:   *                             als1 = self.create_alignments(sent_links,num_links,self.findexes,eindexes)             # <<<<<<<<<<<<<< @@ -58881,31 +58995,31 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_t_15 = ((PyObject *)__pyx_v_self->findexes);              __Pyx_INCREF(__pyx_t_15); -            if (!(likely(((__pyx_v_eindexes) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_eindexes, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __pyx_t_11 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->create_alignments(__pyx_v_self, __pyx_v_sent_links, __pyx_v_num_links, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_15), ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_v_eindexes))); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            if (!(likely(((__pyx_v_eindexes) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_eindexes, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->create_alignments(__pyx_v_self, __pyx_v_sent_links, __pyx_v_num_links, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_15), ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_v_eindexes))); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11);              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;              __Pyx_XDECREF_SET(__pyx_v_als1, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_11));              __pyx_t_11 = 0; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1684 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1692   *                         for phrase2, eindexes in phrase_list:   *                             als1 = self.create_alignments(sent_links,num_links,self.findexes,eindexes)   *                             extracts.append((fphr, phrase2, pair_count, tuple(als1)))             # <<<<<<<<<<<<<<   *                     if (num_gaps < self.max_nonterminals and   *                         phrase_len < self.max_length and   */ -            __pyx_t_11 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_11 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_11); -            __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_15);              __Pyx_INCREF(((PyObject *)__pyx_v_als1));              PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_als1));              __Pyx_GIVEREF(((PyObject *)__pyx_v_als1)); -            __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_3);              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -            __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_15);              __Pyx_INCREF(((PyObject *)__pyx_v_fphr));              PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_fphr)); @@ -58919,7 +59033,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __Pyx_GIVEREF(__pyx_t_3);              __pyx_t_11 = 0;              __pyx_t_3 = 0; -            __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_extracts, __pyx_t_15); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_extracts, __pyx_t_15); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;            }            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; @@ -58927,7 +59041,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          }          __pyx_L57:; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1685 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1693   *                             als1 = self.create_alignments(sent_links,num_links,self.findexes,eindexes)   *                             extracts.append((fphr, phrase2, pair_count, tuple(als1)))   *                     if (num_gaps < self.max_nonterminals and             # <<<<<<<<<<<<<< @@ -58937,7 +59051,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          __pyx_t_10 = ((__pyx_v_num_gaps < __pyx_v_self->max_nonterminals) != 0);          if (__pyx_t_10) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1686 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1694   *                             extracts.append((fphr, phrase2, pair_count, tuple(als1)))   *                     if (num_gaps < self.max_nonterminals and   *                         phrase_len < self.max_length and             # <<<<<<<<<<<<<< @@ -58947,7 +59061,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            __pyx_t_8 = ((__pyx_v_phrase_len < __pyx_v_self->max_length) != 0);            if (__pyx_t_8) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1687 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1695   *                     if (num_gaps < self.max_nonterminals and   *                         phrase_len < self.max_length and   *                         f_back_high - f_back_low + self.train_min_gap_size <= self.train_max_initial_size):             # <<<<<<<<<<<<<< @@ -58965,7 +59079,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct          }          if (__pyx_t_8) { -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1688 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1696   *                         phrase_len < self.max_length and   *                         f_back_high - f_back_low + self.train_min_gap_size <= self.train_max_initial_size):   *                         if (f_back_low == f_low and             # <<<<<<<<<<<<<< @@ -58975,7 +59089,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            __pyx_t_8 = ((__pyx_v_f_back_low == __pyx_v_f_low) != 0);            if (__pyx_t_8) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1689 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1697   *                         f_back_high - f_back_low + self.train_min_gap_size <= self.train_max_initial_size):   *                         if (f_back_low == f_low and   *                                 f_low >= self.train_min_gap_size and             # <<<<<<<<<<<<<< @@ -58985,7 +59099,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __pyx_t_10 = ((__pyx_v_f_low >= __pyx_v_self->train_min_gap_size) != 0);              if (__pyx_t_10) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1690 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1698   *                         if (f_back_low == f_low and   *                                 f_low >= self.train_min_gap_size and   *                                 ((not self.tight_phrases) or (f_links_low[f_low-1] != -1 and f_links_low[f_back_high-1] != -1))):             # <<<<<<<<<<<<<< @@ -59015,7 +59129,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            }            if (__pyx_t_10) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1691 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1699   *                                 f_low >= self.train_min_gap_size and   *                                 ((not self.tight_phrases) or (f_links_low[f_low-1] != -1 and f_links_low[f_back_high-1] != -1))):   *                             f_x_low = f_low-self.train_min_gap_size             # <<<<<<<<<<<<<< @@ -59024,7 +59138,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_v_f_x_low = (__pyx_v_f_low - __pyx_v_self->train_min_gap_size); -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1692 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1700   *                                 ((not self.tight_phrases) or (f_links_low[f_low-1] != -1 and f_links_low[f_back_high-1] != -1))):   *                             f_x_low = f_low-self.train_min_gap_size   *                             met_constraints = 1             # <<<<<<<<<<<<<< @@ -59033,7 +59147,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_v_met_constraints = 1; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1693 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1701   *                             f_x_low = f_low-self.train_min_gap_size   *                             met_constraints = 1   *                             if self.tight_phrases:             # <<<<<<<<<<<<<< @@ -59043,7 +59157,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __pyx_t_10 = (__pyx_v_self->tight_phrases != 0);              if (__pyx_t_10) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1694 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1702   *                             met_constraints = 1   *                             if self.tight_phrases:   *                                 while f_x_low >= 0 and f_links_low[f_x_low] == -1:             # <<<<<<<<<<<<<< @@ -59060,7 +59174,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  }                  if (!__pyx_t_18) break; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1695 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1703   *                             if self.tight_phrases:   *                                 while f_x_low >= 0 and f_links_low[f_x_low] == -1:   *                                     f_x_low = f_x_low - 1             # <<<<<<<<<<<<<< @@ -59073,7 +59187,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              __pyx_L65:; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1696 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1704   *                                 while f_x_low >= 0 and f_links_low[f_x_low] == -1:   *                                     f_x_low = f_x_low - 1   *                             if f_x_low < 0 or f_back_high - f_x_low > self.train_max_initial_size:             # <<<<<<<<<<<<<< @@ -59089,7 +59203,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              if (__pyx_t_8) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1697 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1705   *                                     f_x_low = f_x_low - 1   *                             if f_x_low < 0 or f_back_high - f_x_low > self.train_max_initial_size:   *                                 met_constraints = 0             # <<<<<<<<<<<<<< @@ -59101,7 +59215,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              __pyx_L68:; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1699 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1707   *                                 met_constraints = 0   *    *                             if (met_constraints and             # <<<<<<<<<<<<<< @@ -59110,17 +59224,17 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              if ((__pyx_v_met_constraints != 0)) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1700 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1708   *    *                             if (met_constraints and   *                                 (self.find_fixpoint(f_x_low, f_back_high,             # <<<<<<<<<<<<<<   *                                             f_links_low, f_links_high, e_links_low, e_links_high,   *                                             e_low, e_high, &e_x_low, &e_x_high, &f_x_low, &f_x_high,   */ -              __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_back_high); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1700; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_back_high); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1705 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1713   *                                             f_sent_len, e_sent_len,   *                                             self.train_max_initial_size, self.train_max_initial_size,   *                                             1, 1, 1, 1, 0, 1, 0) == 1) and             # <<<<<<<<<<<<<< @@ -59131,7 +59245,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                if (__pyx_t_8) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1706 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1714   *                                             self.train_max_initial_size, self.train_max_initial_size,   *                                             1, 1, 1, 1, 0, 1, 0) == 1) and   *                                 ((not self.tight_phrases) or f_links_low[f_x_low] != -1) and             # <<<<<<<<<<<<<< @@ -59147,17 +59261,17 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  }                  if (__pyx_t_9) { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1707 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1715   *                                             1, 1, 1, 1, 0, 1, 0) == 1) and   *                                 ((not self.tight_phrases) or f_links_low[f_x_low] != -1) and   *                                 self.find_fixpoint(f_x_low, f_low,    # check integrity of new subphrase             # <<<<<<<<<<<<<<   *                                             f_links_low, f_links_high, e_links_low, e_links_high,   *                                             -1, -1, e_gap_low, e_gap_high, f_gap_low, f_gap_high,   */ -                  __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_low); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1707; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_low); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_14); -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1711 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1719   *                                             -1, -1, e_gap_low, e_gap_high, f_gap_low, f_gap_high,   *                                             f_sent_len, e_sent_len,   *                                             self.train_max_initial_size, self.train_max_initial_size,             # <<<<<<<<<<<<<< @@ -59179,7 +59293,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              if (__pyx_t_8) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1713 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1721   *                                             self.train_max_initial_size, self.train_max_initial_size,   *                                             0, 0, 0, 0, 0, 0, 0)):   *                                 fphr_arr._clear()             # <<<<<<<<<<<<<< @@ -59188,7 +59302,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_clear(__pyx_v_fphr_arr); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1714 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1722   *                                             0, 0, 0, 0, 0, 0, 0)):   *                                 fphr_arr._clear()   *                                 i = 1             # <<<<<<<<<<<<<< @@ -59197,33 +59311,33 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                __pyx_v_i = 1; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1715 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1723   *                                 fphr_arr._clear()   *                                 i = 1   *                                 self.findexes.reset()             # <<<<<<<<<<<<<<   *                                 self.findexes.append(sym_setindex(self.category, i))   *                                 fphr_arr._append(sym_setindex(self.category, i))   */ -              __pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_reset); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_reset); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14); -              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_15);                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1716 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1724   *                                 i = 1   *                                 self.findexes.reset()   *                                 self.findexes.append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<<   *                                 fphr_arr._append(sym_setindex(self.category, i))   *                                 i = i+1   */ -              __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1716; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_15); -              __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_15); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1716; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_15); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1717 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1725   *                                 self.findexes.reset()   *                                 self.findexes.append(sym_setindex(self.category, i))   *                                 fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -59232,7 +59346,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1718 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1726   *                                 self.findexes.append(sym_setindex(self.category, i))   *                                 fphr_arr._append(sym_setindex(self.category, i))   *                                 i = i+1             # <<<<<<<<<<<<<< @@ -59241,27 +59355,27 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                __pyx_v_i = (__pyx_v_i + 1); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1719 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1727   *                                 fphr_arr._append(sym_setindex(self.category, i))   *                                 i = i+1   *                                 self.findexes.extend(self.findexes1)             # <<<<<<<<<<<<<<   *                                 for j from 0 <= j < phrase.n:   *                                     if sym_isvar(phrase.syms[j]):   */ -              __pyx_t_15 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_extend); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_extend); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_15); -              __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14);                __Pyx_INCREF(((PyObject *)__pyx_v_self->findexes1));                PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_self->findexes1));                __Pyx_GIVEREF(((PyObject *)__pyx_v_self->findexes1)); -              __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_3);                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1720 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1728   *                                 i = i+1   *                                 self.findexes.extend(self.findexes1)   *                                 for j from 0 <= j < phrase.n:             # <<<<<<<<<<<<<< @@ -59271,7 +59385,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                __pyx_t_2 = __pyx_v_phrase->n;                for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_2; __pyx_v_j++) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1721 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1729   *                                 self.findexes.extend(self.findexes1)   *                                 for j from 0 <= j < phrase.n:   *                                     if sym_isvar(phrase.syms[j]):             # <<<<<<<<<<<<<< @@ -59281,7 +59395,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __pyx_t_8 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar((__pyx_v_phrase->syms[__pyx_v_j])) != 0);                  if (__pyx_t_8) { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1722 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1730   *                                 for j from 0 <= j < phrase.n:   *                                     if sym_isvar(phrase.syms[j]):   *                                         fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -59290,7 +59404,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1723 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1731   *                                     if sym_isvar(phrase.syms[j]):   *                                         fphr_arr._append(sym_setindex(self.category, i))   *                                         i = i + 1             # <<<<<<<<<<<<<< @@ -59302,7 +59416,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  }                  /*else*/ { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1725 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1733   *                                         i = i + 1   *                                     else:   *                                         fphr_arr._append(phrase.syms[j])             # <<<<<<<<<<<<<< @@ -59314,7 +59428,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __pyx_L72:;                } -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1726 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1734   *                                     else:   *                                         fphr_arr._append(phrase.syms[j])   *                                 if f_back_high > f_high:             # <<<<<<<<<<<<<< @@ -59324,7 +59438,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                __pyx_t_8 = ((__pyx_v_f_back_high > __pyx_v_f_high) != 0);                if (__pyx_t_8) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1727 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1735   *                                         fphr_arr._append(phrase.syms[j])   *                                 if f_back_high > f_high:   *                                     fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -59333,70 +59447,70 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                  ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1728 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1736   *                                 if f_back_high > f_high:   *                                     fphr_arr._append(sym_setindex(self.category, i))   *                                     self.findexes.append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<<   *                                 fphr = Phrase(fphr_arr)   *                                 phrase_list = self.extract_phrases(e_x_low, e_x_high, e_gap_low, e_gap_high, e_links_low, num_gaps+1,   */ -                __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1728; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3); -                __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1728; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                  goto __pyx_L73;                }                __pyx_L73:; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1729 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1737   *                                     fphr_arr._append(sym_setindex(self.category, i))   *                                     self.findexes.append(sym_setindex(self.category, i))   *                                 fphr = Phrase(fphr_arr)             # <<<<<<<<<<<<<<   *                                 phrase_list = self.extract_phrases(e_x_low, e_x_high, e_gap_low, e_gap_high, e_links_low, num_gaps+1,   *                                                     f_x_low, f_x_high, f_gap_low, f_gap_high, f_links_low, matching.sent_id,   */ -              __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_3);                __Pyx_INCREF(((PyObject *)__pyx_v_fphr_arr));                PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_fphr_arr));                __Pyx_GIVEREF(((PyObject *)__pyx_v_fphr_arr)); -              __pyx_t_14 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14);                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                __Pyx_DECREF_SET(__pyx_v_fphr, ((struct __pyx_obj_4cdec_2sa_3_sa_Phrase *)__pyx_t_14));                __pyx_t_14 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1730 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1738   *                                     self.findexes.append(sym_setindex(self.category, i))   *                                 fphr = Phrase(fphr_arr)   *                                 phrase_list = self.extract_phrases(e_x_low, e_x_high, e_gap_low, e_gap_high, e_links_low, num_gaps+1,             # <<<<<<<<<<<<<<   *                                                     f_x_low, f_x_high, f_gap_low, f_gap_high, f_links_low, matching.sent_id,   *                                                     e_sent_len, e_sent_start)   */ -              __pyx_t_14 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->extract_phrases(__pyx_v_self, __pyx_v_e_x_low, __pyx_v_e_x_high, __pyx_v_e_gap_low, __pyx_v_e_gap_high, __pyx_v_e_links_low, (__pyx_v_num_gaps + 1), __pyx_v_f_x_low, __pyx_v_f_x_high, __pyx_v_f_gap_low, __pyx_v_f_gap_high, __pyx_v_f_links_low, __pyx_v_matching->sent_id, __pyx_v_e_sent_len, __pyx_v_e_sent_start); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1730; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->extract_phrases(__pyx_v_self, __pyx_v_e_x_low, __pyx_v_e_x_high, __pyx_v_e_gap_low, __pyx_v_e_gap_high, __pyx_v_e_links_low, (__pyx_v_num_gaps + 1), __pyx_v_f_x_low, __pyx_v_f_x_high, __pyx_v_f_gap_low, __pyx_v_f_gap_high, __pyx_v_f_links_low, __pyx_v_matching->sent_id, __pyx_v_e_sent_len, __pyx_v_e_sent_start); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14);                __Pyx_XDECREF_SET(__pyx_v_phrase_list, __pyx_t_14);                __pyx_t_14 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1733 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1741   *                                                     f_x_low, f_x_high, f_gap_low, f_gap_high, f_links_low, matching.sent_id,   *                                                     e_sent_len, e_sent_start)   *                                 if len(phrase_list) > 0:             # <<<<<<<<<<<<<<   *                                     pair_count = 1.0 / len(phrase_list)   *                                 else:   */ -              __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1733; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __pyx_t_8 = ((__pyx_t_13 > 0) != 0);                if (__pyx_t_8) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1734 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1742   *                                                     e_sent_len, e_sent_start)   *                                 if len(phrase_list) > 0:   *                                     pair_count = 1.0 / len(phrase_list)             # <<<<<<<<<<<<<<   *                                 else:   *                                     pair_count = 0   */ -                __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1734; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  if (unlikely(__pyx_t_13 == 0)) {                    #ifdef WITH_THREAD                    PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); @@ -59405,14 +59519,14 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    #ifdef WITH_THREAD                    PyGILState_Release(__pyx_gilstate_save);                    #endif -                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1734; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  }                  __pyx_v_pair_count = (1.0 / __pyx_t_13);                  goto __pyx_L74;                }                /*else*/ { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1736 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1744   *                                     pair_count = 1.0 / len(phrase_list)   *                                 else:   *                                     pair_count = 0             # <<<<<<<<<<<<<< @@ -59423,7 +59537,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                }                __pyx_L74:; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1737 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1745   *                                 else:   *                                     pair_count = 0   *                                 for phrase2, eindexes in phrase_list:             # <<<<<<<<<<<<<< @@ -59434,7 +59548,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __pyx_t_14 = __pyx_v_phrase_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_13 = 0;                  __pyx_t_16 = NULL;                } else { -                __pyx_t_13 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_v_phrase_list); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_13 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_v_phrase_list); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_14);                  __pyx_t_16 = Py_TYPE(__pyx_t_14)->tp_iternext;                } @@ -59442,16 +59556,16 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  if (!__pyx_t_16 && PyList_CheckExact(__pyx_t_14)) {                    if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_14)) break;                    #if CYTHON_COMPILING_IN_CPYTHON -                  __pyx_t_3 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_3); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_3); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #else -                  __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #endif                  } else if (!__pyx_t_16 && PyTuple_CheckExact(__pyx_t_14)) {                    if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_14)) break;                    #if CYTHON_COMPILING_IN_CPYTHON -                  __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_3); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_3); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #else -                  __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #endif                  } else {                    __pyx_t_3 = __pyx_t_16(__pyx_t_14); @@ -59459,7 +59573,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                      PyObject* exc_type = PyErr_Occurred();                      if (exc_type) {                        if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -                      else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                      else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                      }                      break;                    } @@ -59475,7 +59589,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    if (unlikely(size != 2)) {                      if (size > 2) __Pyx_RaiseTooManyValuesError(2);                      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    }                    #if CYTHON_COMPILING_IN_CPYTHON                    if (likely(PyTuple_CheckExact(sequence))) { @@ -59488,15 +59602,15 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    __Pyx_INCREF(__pyx_t_15);                    __Pyx_INCREF(__pyx_t_11);                    #else -                  __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_15); -                  __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_11);                    #endif                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                  } else {                    Py_ssize_t index = -1; -                  __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_1);                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                    __pyx_t_17 = Py_TYPE(__pyx_t_1)->tp_iternext; @@ -59504,7 +59618,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    __Pyx_GOTREF(__pyx_t_15);                    index = 1; __pyx_t_11 = __pyx_t_17(__pyx_t_1); if (unlikely(!__pyx_t_11)) goto __pyx_L77_unpacking_failed;                    __Pyx_GOTREF(__pyx_t_11); -                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __pyx_t_17 = NULL;                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                    goto __pyx_L78_unpacking_done; @@ -59512,7 +59626,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                    __pyx_t_17 = NULL;                    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __pyx_L78_unpacking_done:;                  }                  __Pyx_XDECREF_SET(__pyx_v_phrase2, __pyx_t_15); @@ -59520,7 +59634,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __Pyx_XDECREF_SET(__pyx_v_eindexes, __pyx_t_11);                  __pyx_t_11 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1738 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1746   *                                     pair_count = 0   *                                 for phrase2, eindexes in phrase_list:   *                                     als2 = self.create_alignments(sent_links,num_links,self.findexes,eindexes)             # <<<<<<<<<<<<<< @@ -59529,31 +59643,31 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                  __pyx_t_3 = ((PyObject *)__pyx_v_self->findexes);                  __Pyx_INCREF(__pyx_t_3); -                if (!(likely(((__pyx_v_eindexes) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_eindexes, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1738; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __pyx_t_11 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->create_alignments(__pyx_v_self, __pyx_v_sent_links, __pyx_v_num_links, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_3), ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_v_eindexes))); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1738; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                if (!(likely(((__pyx_v_eindexes) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_eindexes, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1746; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->create_alignments(__pyx_v_self, __pyx_v_sent_links, __pyx_v_num_links, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_3), ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_v_eindexes))); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11);                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                  __Pyx_XDECREF_SET(__pyx_v_als2, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_11));                  __pyx_t_11 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1739 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1747   *                                 for phrase2, eindexes in phrase_list:   *                                     als2 = self.create_alignments(sent_links,num_links,self.findexes,eindexes)   *                                     extracts.append((fphr, phrase2, pair_count, tuple(als2)))             # <<<<<<<<<<<<<<   *    *                         if (f_back_high == f_high and   */ -                __pyx_t_11 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11); -                __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3);                  __Pyx_INCREF(((PyObject *)__pyx_v_als2));                  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_als2));                  __Pyx_GIVEREF(((PyObject *)__pyx_v_als2)); -                __pyx_t_15 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_3, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_15 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_3, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15);                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -                __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3);                  __Pyx_INCREF(((PyObject *)__pyx_v_fphr));                  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_fphr)); @@ -59567,7 +59681,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __Pyx_GIVEREF(__pyx_t_15);                  __pyx_t_11 = 0;                  __pyx_t_15 = 0; -                __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_extracts, __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_extracts, __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                }                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; @@ -59578,7 +59692,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            }            __pyx_L64:; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1741 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1749   *                                     extracts.append((fphr, phrase2, pair_count, tuple(als2)))   *    *                         if (f_back_high == f_high and             # <<<<<<<<<<<<<< @@ -59588,7 +59702,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            __pyx_t_8 = ((__pyx_v_f_back_high == __pyx_v_f_high) != 0);            if (__pyx_t_8) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1742 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1750   *    *                         if (f_back_high == f_high and   *                             f_sent_len - f_high >= self.train_min_gap_size and             # <<<<<<<<<<<<<< @@ -59598,7 +59712,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __pyx_t_9 = (((__pyx_v_f_sent_len - __pyx_v_f_high) >= __pyx_v_self->train_min_gap_size) != 0);              if (__pyx_t_9) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1743 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1751   *                         if (f_back_high == f_high and   *                             f_sent_len - f_high >= self.train_min_gap_size and   *                             ((not self.tight_phrases) or (f_links_low[f_high] != -1 and f_links_low[f_back_low] != -1))):             # <<<<<<<<<<<<<< @@ -59628,7 +59742,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            }            if (__pyx_t_9) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1744 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1752   *                             f_sent_len - f_high >= self.train_min_gap_size and   *                             ((not self.tight_phrases) or (f_links_low[f_high] != -1 and f_links_low[f_back_low] != -1))):   *                             f_x_high = f_high+self.train_min_gap_size             # <<<<<<<<<<<<<< @@ -59637,7 +59751,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_v_f_x_high = (__pyx_v_f_high + __pyx_v_self->train_min_gap_size); -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1745 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1753   *                             ((not self.tight_phrases) or (f_links_low[f_high] != -1 and f_links_low[f_back_low] != -1))):   *                             f_x_high = f_high+self.train_min_gap_size   *                             met_constraints = 1             # <<<<<<<<<<<<<< @@ -59646,7 +59760,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_v_met_constraints = 1; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1746 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1754   *                             f_x_high = f_high+self.train_min_gap_size   *                             met_constraints = 1   *                             if self.tight_phrases:             # <<<<<<<<<<<<<< @@ -59656,7 +59770,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __pyx_t_9 = (__pyx_v_self->tight_phrases != 0);              if (__pyx_t_9) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1747 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1755   *                             met_constraints = 1   *                             if self.tight_phrases:   *                                 while f_x_high <= f_sent_len and f_links_low[f_x_high-1] == -1:             # <<<<<<<<<<<<<< @@ -59673,7 +59787,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  }                  if (!__pyx_t_18) break; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1748 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1756   *                             if self.tight_phrases:   *                                 while f_x_high <= f_sent_len and f_links_low[f_x_high-1] == -1:   *                                     f_x_high = f_x_high + 1             # <<<<<<<<<<<<<< @@ -59686,7 +59800,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              __pyx_L80:; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1749 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1757   *                                 while f_x_high <= f_sent_len and f_links_low[f_x_high-1] == -1:   *                                     f_x_high = f_x_high + 1   *                             if f_x_high > f_sent_len or f_x_high - f_back_low > self.train_max_initial_size:             # <<<<<<<<<<<<<< @@ -59702,7 +59816,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              if (__pyx_t_8) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1750 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1758   *                                     f_x_high = f_x_high + 1   *                             if f_x_high > f_sent_len or f_x_high - f_back_low > self.train_max_initial_size:   *                                 met_constraints = 0             # <<<<<<<<<<<<<< @@ -59714,7 +59828,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              __pyx_L83:; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1752 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1760   *                                 met_constraints = 0   *    *                             if (met_constraints and             # <<<<<<<<<<<<<< @@ -59723,17 +59837,17 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              if ((__pyx_v_met_constraints != 0)) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1753 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1761   *    *                             if (met_constraints and   *                                 self.find_fixpoint(f_back_low, f_x_high,             # <<<<<<<<<<<<<<   *                                             f_links_low, f_links_high, e_links_low, e_links_high,   *                                             e_low, e_high, &e_x_low, &e_x_high, &f_x_low, &f_x_high,   */ -              __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_x_high); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1753; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_x_high); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1757 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1765   *                                             e_low, e_high, &e_x_low, &e_x_high, &f_x_low, &f_x_high,   *                                             f_sent_len, e_sent_len,   *                                             self.train_max_initial_size, self.train_max_initial_size,             # <<<<<<<<<<<<<< @@ -59743,7 +59857,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                if ((((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->find_fixpoint(__pyx_v_self, __pyx_v_f_back_low, __pyx_t_14, __pyx_v_f_links_low, __pyx_v_f_links_high, __pyx_v_e_links_low, __pyx_v_e_links_high, __pyx_v_e_low, __pyx_v_e_high, (&__pyx_v_e_x_low), (&__pyx_v_e_x_high), (&__pyx_v_f_x_low), (&__pyx_v_f_x_high), __pyx_v_f_sent_len, __pyx_v_e_sent_len, __pyx_v_self->train_max_initial_size, __pyx_v_self->train_max_initial_size, 1, 1, 1, 0, 1, 1, 0) != 0)) {                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1759 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1767   *                                             self.train_max_initial_size, self.train_max_initial_size,   *                                             1, 1, 1, 0, 1, 1, 0) and   *                                 ((not self.tight_phrases) or f_links_low[f_x_high-1] != -1) and             # <<<<<<<<<<<<<< @@ -59759,17 +59873,17 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  }                  if (__pyx_t_9) { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1760 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1768   *                                             1, 1, 1, 0, 1, 1, 0) and   *                                 ((not self.tight_phrases) or f_links_low[f_x_high-1] != -1) and   *                                 self.find_fixpoint(f_high, f_x_high,             # <<<<<<<<<<<<<<   *                                             f_links_low, f_links_high, e_links_low, e_links_high,   *                                             -1, -1, e_gap_low+gap_start+num_gaps, e_gap_high+gap_start+num_gaps,   */ -                  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_f_x_high); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1760; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_f_x_high); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_3); -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1765 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1773   *                                             f_gap_low+gap_start+num_gaps, f_gap_high+gap_start+num_gaps,   *                                             f_sent_len, e_sent_len,   *                                             self.train_max_initial_size, self.train_max_initial_size,             # <<<<<<<<<<<<<< @@ -59792,7 +59906,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              if (__pyx_t_8) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1767 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1775   *                                             self.train_max_initial_size, self.train_max_initial_size,   *                                             0, 0, 0, 0, 0, 0, 0)):   *                                 fphr_arr._clear()             # <<<<<<<<<<<<<< @@ -59801,7 +59915,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_clear(__pyx_v_fphr_arr); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1768 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1776   *                                             0, 0, 0, 0, 0, 0, 0)):   *                                 fphr_arr._clear()   *                                 i = 1             # <<<<<<<<<<<<<< @@ -59810,21 +59924,21 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                __pyx_v_i = 1; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1769 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1777   *                                 fphr_arr._clear()   *                                 i = 1   *                                 self.findexes.reset()             # <<<<<<<<<<<<<<   *                                 if f_back_low < f_low:   *                                     fphr_arr._append(sym_setindex(self.category, i))   */ -              __pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_reset); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1769; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_reset); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14); -              __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1769; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_3);                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1770 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1778   *                                 i = 1   *                                 self.findexes.reset()   *                                 if f_back_low < f_low:             # <<<<<<<<<<<<<< @@ -59834,7 +59948,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                __pyx_t_8 = ((__pyx_v_f_back_low < __pyx_v_f_low) != 0);                if (__pyx_t_8) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1771 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1779   *                                 self.findexes.reset()   *                                 if f_back_low < f_low:   *                                     fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -59843,7 +59957,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                  ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1772 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1780   *                                 if f_back_low < f_low:   *                                     fphr_arr._append(sym_setindex(self.category, i))   *                                     i = i+1             # <<<<<<<<<<<<<< @@ -59852,42 +59966,42 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                  __pyx_v_i = (__pyx_v_i + 1); -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1773 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1781   *                                     fphr_arr._append(sym_setindex(self.category, i))   *                                     i = i+1   *                                     self.findexes.append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<<   *                                 self.findexes.extend(self.findexes1)   *                                 for j from 0 <= j < phrase.n:   */ -                __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1773; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3); -                __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1773; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                  goto __pyx_L85;                }                __pyx_L85:; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1774 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1782   *                                     i = i+1   *                                     self.findexes.append(sym_setindex(self.category, i))   *                                 self.findexes.extend(self.findexes1)             # <<<<<<<<<<<<<<   *                                 for j from 0 <= j < phrase.n:   *                                     if sym_isvar(phrase.syms[j]):   */ -              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_extend); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1774; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_extend); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_3); -              __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1774; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14);                __Pyx_INCREF(((PyObject *)__pyx_v_self->findexes1));                PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_self->findexes1));                __Pyx_GIVEREF(((PyObject *)__pyx_v_self->findexes1)); -              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_14, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1774; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_14, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_15);                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1775 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1783   *                                     self.findexes.append(sym_setindex(self.category, i))   *                                 self.findexes.extend(self.findexes1)   *                                 for j from 0 <= j < phrase.n:             # <<<<<<<<<<<<<< @@ -59897,7 +60011,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                __pyx_t_2 = __pyx_v_phrase->n;                for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_2; __pyx_v_j++) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1776 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1784   *                                 self.findexes.extend(self.findexes1)   *                                 for j from 0 <= j < phrase.n:   *                                     if sym_isvar(phrase.syms[j]):             # <<<<<<<<<<<<<< @@ -59907,7 +60021,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __pyx_t_8 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar((__pyx_v_phrase->syms[__pyx_v_j])) != 0);                  if (__pyx_t_8) { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1777 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1785   *                                 for j from 0 <= j < phrase.n:   *                                     if sym_isvar(phrase.syms[j]):   *                                         fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -59916,7 +60030,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1778 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1786   *                                     if sym_isvar(phrase.syms[j]):   *                                         fphr_arr._append(sym_setindex(self.category, i))   *                                         i = i + 1             # <<<<<<<<<<<<<< @@ -59928,7 +60042,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  }                  /*else*/ { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1780 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1788   *                                         i = i + 1   *                                     else:   *                                         fphr_arr._append(phrase.syms[j])             # <<<<<<<<<<<<<< @@ -59940,7 +60054,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __pyx_L88:;                } -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1781 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1789   *                                     else:   *                                         fphr_arr._append(phrase.syms[j])   *                                 fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -59949,67 +60063,67 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1782 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1790   *                                         fphr_arr._append(phrase.syms[j])   *                                 fphr_arr._append(sym_setindex(self.category, i))   *                                 self.findexes.append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<<   *                                 fphr = Phrase(fphr_arr)   *                                 phrase_list = self.extract_phrases(e_x_low, e_x_high, e_gap_low+gap_start, e_gap_high+gap_start, e_links_low, num_gaps+1,   */ -              __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1782; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_15); -              __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_15); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1782; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_15); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1783 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1791   *                                 fphr_arr._append(sym_setindex(self.category, i))   *                                 self.findexes.append(sym_setindex(self.category, i))   *                                 fphr = Phrase(fphr_arr)             # <<<<<<<<<<<<<<   *                                 phrase_list = self.extract_phrases(e_x_low, e_x_high, e_gap_low+gap_start, e_gap_high+gap_start, e_links_low, num_gaps+1,   *                                                     f_x_low, f_x_high, f_gap_low+gap_start, f_gap_high+gap_start, f_links_low,   */ -              __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1783; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_15);                __Pyx_INCREF(((PyObject *)__pyx_v_fphr_arr));                PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_fphr_arr));                __Pyx_GIVEREF(((PyObject *)__pyx_v_fphr_arr)); -              __pyx_t_14 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_15, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1783; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_15, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14);                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                __Pyx_DECREF_SET(__pyx_v_fphr, ((struct __pyx_obj_4cdec_2sa_3_sa_Phrase *)__pyx_t_14));                __pyx_t_14 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1784 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1792   *                                 self.findexes.append(sym_setindex(self.category, i))   *                                 fphr = Phrase(fphr_arr)   *                                 phrase_list = self.extract_phrases(e_x_low, e_x_high, e_gap_low+gap_start, e_gap_high+gap_start, e_links_low, num_gaps+1,             # <<<<<<<<<<<<<<   *                                                     f_x_low, f_x_high, f_gap_low+gap_start, f_gap_high+gap_start, f_links_low,   *                                                     matching.sent_id, e_sent_len, e_sent_start)   */ -              __pyx_t_14 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->extract_phrases(__pyx_v_self, __pyx_v_e_x_low, __pyx_v_e_x_high, (__pyx_v_e_gap_low + __pyx_v_gap_start), (__pyx_v_e_gap_high + __pyx_v_gap_start), __pyx_v_e_links_low, (__pyx_v_num_gaps + 1), __pyx_v_f_x_low, __pyx_v_f_x_high, (__pyx_v_f_gap_low + __pyx_v_gap_start), (__pyx_v_f_gap_high + __pyx_v_gap_start), __pyx_v_f_links_low, __pyx_v_matching->sent_id, __pyx_v_e_sent_len, __pyx_v_e_sent_start); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1784; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->extract_phrases(__pyx_v_self, __pyx_v_e_x_low, __pyx_v_e_x_high, (__pyx_v_e_gap_low + __pyx_v_gap_start), (__pyx_v_e_gap_high + __pyx_v_gap_start), __pyx_v_e_links_low, (__pyx_v_num_gaps + 1), __pyx_v_f_x_low, __pyx_v_f_x_high, (__pyx_v_f_gap_low + __pyx_v_gap_start), (__pyx_v_f_gap_high + __pyx_v_gap_start), __pyx_v_f_links_low, __pyx_v_matching->sent_id, __pyx_v_e_sent_len, __pyx_v_e_sent_start); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14);                __Pyx_XDECREF_SET(__pyx_v_phrase_list, __pyx_t_14);                __pyx_t_14 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1787 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1795   *                                                     f_x_low, f_x_high, f_gap_low+gap_start, f_gap_high+gap_start, f_links_low,   *                                                     matching.sent_id, e_sent_len, e_sent_start)   *                                 if len(phrase_list) > 0:             # <<<<<<<<<<<<<<   *                                     pair_count = 1.0 / len(phrase_list)   *                                 else:   */ -              __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __pyx_t_8 = ((__pyx_t_13 > 0) != 0);                if (__pyx_t_8) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1788 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1796   *                                                     matching.sent_id, e_sent_len, e_sent_start)   *                                 if len(phrase_list) > 0:   *                                     pair_count = 1.0 / len(phrase_list)             # <<<<<<<<<<<<<<   *                                 else:   *                                     pair_count = 0   */ -                __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  if (unlikely(__pyx_t_13 == 0)) {                    #ifdef WITH_THREAD                    PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); @@ -60018,14 +60132,14 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    #ifdef WITH_THREAD                    PyGILState_Release(__pyx_gilstate_save);                    #endif -                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  }                  __pyx_v_pair_count = (1.0 / __pyx_t_13);                  goto __pyx_L89;                }                /*else*/ { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1790 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1798   *                                     pair_count = 1.0 / len(phrase_list)   *                                 else:   *                                     pair_count = 0             # <<<<<<<<<<<<<< @@ -60036,7 +60150,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                }                __pyx_L89:; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1791 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1799   *                                 else:   *                                     pair_count = 0   *                                 for phrase2, eindexes in phrase_list:             # <<<<<<<<<<<<<< @@ -60047,7 +60161,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __pyx_t_14 = __pyx_v_phrase_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_13 = 0;                  __pyx_t_16 = NULL;                } else { -                __pyx_t_13 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_v_phrase_list); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_13 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_v_phrase_list); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_14);                  __pyx_t_16 = Py_TYPE(__pyx_t_14)->tp_iternext;                } @@ -60055,16 +60169,16 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  if (!__pyx_t_16 && PyList_CheckExact(__pyx_t_14)) {                    if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_14)) break;                    #if CYTHON_COMPILING_IN_CPYTHON -                  __pyx_t_15 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_15 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #else -                  __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #endif                  } else if (!__pyx_t_16 && PyTuple_CheckExact(__pyx_t_14)) {                    if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_14)) break;                    #if CYTHON_COMPILING_IN_CPYTHON -                  __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #else -                  __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #endif                  } else {                    __pyx_t_15 = __pyx_t_16(__pyx_t_14); @@ -60072,7 +60186,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                      PyObject* exc_type = PyErr_Occurred();                      if (exc_type) {                        if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -                      else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                      else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                      }                      break;                    } @@ -60088,7 +60202,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    if (unlikely(size != 2)) {                      if (size > 2) __Pyx_RaiseTooManyValuesError(2);                      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    }                    #if CYTHON_COMPILING_IN_CPYTHON                    if (likely(PyTuple_CheckExact(sequence))) { @@ -60101,15 +60215,15 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    __Pyx_INCREF(__pyx_t_3);                    __Pyx_INCREF(__pyx_t_11);                    #else -                  __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_3); -                  __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_11);                    #endif                    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                  } else {                    Py_ssize_t index = -1; -                  __pyx_t_1 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_1 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_1);                    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                    __pyx_t_17 = Py_TYPE(__pyx_t_1)->tp_iternext; @@ -60117,7 +60231,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    __Pyx_GOTREF(__pyx_t_3);                    index = 1; __pyx_t_11 = __pyx_t_17(__pyx_t_1); if (unlikely(!__pyx_t_11)) goto __pyx_L92_unpacking_failed;                    __Pyx_GOTREF(__pyx_t_11); -                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __pyx_t_17 = NULL;                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                    goto __pyx_L93_unpacking_done; @@ -60125,7 +60239,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                    __pyx_t_17 = NULL;                    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __pyx_L93_unpacking_done:;                  }                  __Pyx_XDECREF_SET(__pyx_v_phrase2, __pyx_t_3); @@ -60133,7 +60247,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __Pyx_XDECREF_SET(__pyx_v_eindexes, __pyx_t_11);                  __pyx_t_11 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1792 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1800   *                                     pair_count = 0   *                                 for phrase2, eindexes in phrase_list:   *                                     als3 = self.create_alignments(sent_links,num_links,self.findexes,eindexes)             # <<<<<<<<<<<<<< @@ -60142,31 +60256,31 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                  __pyx_t_15 = ((PyObject *)__pyx_v_self->findexes);                  __Pyx_INCREF(__pyx_t_15); -                if (!(likely(((__pyx_v_eindexes) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_eindexes, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1792; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __pyx_t_11 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->create_alignments(__pyx_v_self, __pyx_v_sent_links, __pyx_v_num_links, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_15), ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_v_eindexes))); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1792; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                if (!(likely(((__pyx_v_eindexes) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_eindexes, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1800; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->create_alignments(__pyx_v_self, __pyx_v_sent_links, __pyx_v_num_links, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_15), ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_v_eindexes))); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11);                  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                  __Pyx_XDECREF_SET(__pyx_v_als3, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_11));                  __pyx_t_11 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1793 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1801   *                                 for phrase2, eindexes in phrase_list:   *                                     als3 = self.create_alignments(sent_links,num_links,self.findexes,eindexes)   *                                     extracts.append((fphr, phrase2, pair_count, tuple(als3)))             # <<<<<<<<<<<<<<   *                         if (num_gaps < self.max_nonterminals - 1 and   *                             phrase_len+1 < self.max_length and   */ -                __pyx_t_11 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11); -                __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15);                  __Pyx_INCREF(((PyObject *)__pyx_v_als3));                  PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_als3));                  __Pyx_GIVEREF(((PyObject *)__pyx_v_als3)); -                __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3);                  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -                __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15);                  __Pyx_INCREF(((PyObject *)__pyx_v_fphr));                  PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_fphr)); @@ -60180,7 +60294,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __Pyx_GIVEREF(__pyx_t_3);                  __pyx_t_11 = 0;                  __pyx_t_3 = 0; -                __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_extracts, __pyx_t_15); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_extracts, __pyx_t_15); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                }                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; @@ -60191,7 +60305,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            }            __pyx_L79:; -          /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1794 +          /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1802   *                                     als3 = self.create_alignments(sent_links,num_links,self.findexes,eindexes)   *                                     extracts.append((fphr, phrase2, pair_count, tuple(als3)))   *                         if (num_gaps < self.max_nonterminals - 1 and             # <<<<<<<<<<<<<< @@ -60201,7 +60315,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            __pyx_t_8 = ((__pyx_v_num_gaps < (__pyx_v_self->max_nonterminals - 1)) != 0);            if (__pyx_t_8) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1795 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1803   *                                     extracts.append((fphr, phrase2, pair_count, tuple(als3)))   *                         if (num_gaps < self.max_nonterminals - 1 and   *                             phrase_len+1 < self.max_length and             # <<<<<<<<<<<<<< @@ -60211,7 +60325,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __pyx_t_9 = (((__pyx_v_phrase_len + 1) < __pyx_v_self->max_length) != 0);              if (__pyx_t_9) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1796 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1804   *                         if (num_gaps < self.max_nonterminals - 1 and   *                             phrase_len+1 < self.max_length and   *                             f_back_high == f_high and             # <<<<<<<<<<<<<< @@ -60221,7 +60335,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                __pyx_t_18 = ((__pyx_v_f_back_high == __pyx_v_f_high) != 0);                if (__pyx_t_18) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1797 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1805   *                             phrase_len+1 < self.max_length and   *                             f_back_high == f_high and   *                             f_back_low == f_low and             # <<<<<<<<<<<<<< @@ -60231,7 +60345,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __pyx_t_10 = ((__pyx_v_f_back_low == __pyx_v_f_low) != 0);                  if (__pyx_t_10) { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1798 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1806   *                             f_back_high == f_high and   *                             f_back_low == f_low and   *                             f_back_high - f_back_low + (2*self.train_min_gap_size) <= self.train_max_initial_size and             # <<<<<<<<<<<<<< @@ -60241,7 +60355,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    __pyx_t_19 = ((((__pyx_v_f_back_high - __pyx_v_f_back_low) + (2 * __pyx_v_self->train_min_gap_size)) <= __pyx_v_self->train_max_initial_size) != 0);                    if (__pyx_t_19) { -                    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1799 +                    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1807   *                             f_back_low == f_low and   *                             f_back_high - f_back_low + (2*self.train_min_gap_size) <= self.train_max_initial_size and   *                             f_low >= self.train_min_gap_size and             # <<<<<<<<<<<<<< @@ -60251,7 +60365,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                      __pyx_t_20 = ((__pyx_v_f_low >= __pyx_v_self->train_min_gap_size) != 0);                      if (__pyx_t_20) { -                      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1800 +                      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1808   *                             f_back_high - f_back_low + (2*self.train_min_gap_size) <= self.train_max_initial_size and   *                             f_low >= self.train_min_gap_size and   *                             f_high <= f_sent_len - self.train_min_gap_size and             # <<<<<<<<<<<<<< @@ -60261,7 +60375,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                        __pyx_t_21 = ((__pyx_v_f_high <= (__pyx_v_f_sent_len - __pyx_v_self->train_min_gap_size)) != 0);                        if (__pyx_t_21) { -                        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1801 +                        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1809   *                             f_low >= self.train_min_gap_size and   *                             f_high <= f_sent_len - self.train_min_gap_size and   *                             ((not self.tight_phrases) or (f_links_low[f_low-1] != -1 and f_links_low[f_high] != -1))):             # <<<<<<<<<<<<<< @@ -60311,7 +60425,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct            }            if (__pyx_t_9) { -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1803 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1811   *                             ((not self.tight_phrases) or (f_links_low[f_low-1] != -1 and f_links_low[f_high] != -1))):   *    *                             met_constraints = 1             # <<<<<<<<<<<<<< @@ -60320,7 +60434,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_v_met_constraints = 1; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1804 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1812   *    *                             met_constraints = 1   *                             f_x_low = f_low-self.train_min_gap_size             # <<<<<<<<<<<<<< @@ -60329,7 +60443,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_v_f_x_low = (__pyx_v_f_low - __pyx_v_self->train_min_gap_size); -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1805 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1813   *                             met_constraints = 1   *                             f_x_low = f_low-self.train_min_gap_size   *                             if self.tight_phrases:             # <<<<<<<<<<<<<< @@ -60339,7 +60453,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __pyx_t_9 = (__pyx_v_self->tight_phrases != 0);              if (__pyx_t_9) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1806 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1814   *                             f_x_low = f_low-self.train_min_gap_size   *                             if self.tight_phrases:   *                                 while f_x_low >= 0 and f_links_low[f_x_low] == -1:             # <<<<<<<<<<<<<< @@ -60356,7 +60470,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  }                  if (!__pyx_t_18) break; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1807 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1815   *                             if self.tight_phrases:   *                                 while f_x_low >= 0 and f_links_low[f_x_low] == -1:   *                                     f_x_low = f_x_low - 1             # <<<<<<<<<<<<<< @@ -60369,7 +60483,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              __pyx_L95:; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1808 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1816   *                                 while f_x_low >= 0 and f_links_low[f_x_low] == -1:   *                                     f_x_low = f_x_low - 1   *                             if f_x_low < 0:             # <<<<<<<<<<<<<< @@ -60379,7 +60493,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __pyx_t_18 = ((__pyx_v_f_x_low < 0) != 0);              if (__pyx_t_18) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1809 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1817   *                                     f_x_low = f_x_low - 1   *                             if f_x_low < 0:   *                                 met_constraints = 0             # <<<<<<<<<<<<<< @@ -60391,7 +60505,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              __pyx_L98:; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1811 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1819   *                                 met_constraints = 0   *    *                             f_x_high = f_high+self.train_min_gap_size             # <<<<<<<<<<<<<< @@ -60400,7 +60514,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              __pyx_v_f_x_high = (__pyx_v_f_high + __pyx_v_self->train_min_gap_size); -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1812 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1820   *    *                             f_x_high = f_high+self.train_min_gap_size   *                             if self.tight_phrases:             # <<<<<<<<<<<<<< @@ -60410,7 +60524,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              __pyx_t_18 = (__pyx_v_self->tight_phrases != 0);              if (__pyx_t_18) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1813 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1821   *                             f_x_high = f_high+self.train_min_gap_size   *                             if self.tight_phrases:   *                                 while f_x_high <= f_sent_len and f_links_low[f_x_high-1] == -1:             # <<<<<<<<<<<<<< @@ -60427,7 +60541,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  }                  if (!__pyx_t_8) break; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1814 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1822   *                             if self.tight_phrases:   *                                 while f_x_high <= f_sent_len and f_links_low[f_x_high-1] == -1:   *                                     f_x_high = f_x_high + 1             # <<<<<<<<<<<<<< @@ -60440,7 +60554,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              __pyx_L99:; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1815 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1823   *                                 while f_x_high <= f_sent_len and f_links_low[f_x_high-1] == -1:   *                                     f_x_high = f_x_high + 1   *                             if f_x_high > f_sent_len or f_x_high - f_x_low > self.train_max_initial_size:             # <<<<<<<<<<<<<< @@ -60456,7 +60570,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              if (__pyx_t_9) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1816 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1824   *                                     f_x_high = f_x_high + 1   *                             if f_x_high > f_sent_len or f_x_high - f_x_low > self.train_max_initial_size:   *                                 met_constraints = 0             # <<<<<<<<<<<<<< @@ -60468,7 +60582,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              __pyx_L102:; -            /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1818 +            /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1826   *                                 met_constraints = 0   *    *                             if (met_constraints and             # <<<<<<<<<<<<<< @@ -60477,17 +60591,17 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */              if ((__pyx_v_met_constraints != 0)) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1819 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1827   *    *                             if (met_constraints and   *                                 (self.find_fixpoint(f_x_low, f_x_high,             # <<<<<<<<<<<<<<   *                                                 f_links_low, f_links_high, e_links_low, e_links_high,   *                                                 e_low, e_high, &e_x_low, &e_x_high, &f_x_low, &f_x_high,   */ -              __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_x_high); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1819; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_x_high); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1824 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1832   *                                                 f_sent_len, e_sent_len,   *                                                 self.train_max_initial_size, self.train_max_initial_size,   *                                                 1, 1, 2, 1, 1, 1, 1) == 1) and             # <<<<<<<<<<<<<< @@ -60498,7 +60612,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                if (__pyx_t_9) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1825 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1833   *                                                 self.train_max_initial_size, self.train_max_initial_size,   *                                                 1, 1, 2, 1, 1, 1, 1) == 1) and   *                                 ((not self.tight_phrases) or (f_links_low[f_x_low] != -1 and f_links_low[f_x_high-1] != -1)) and             # <<<<<<<<<<<<<< @@ -60520,17 +60634,17 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  }                  if (__pyx_t_18) { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1826 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1834   *                                                 1, 1, 2, 1, 1, 1, 1) == 1) and   *                                 ((not self.tight_phrases) or (f_links_low[f_x_low] != -1 and f_links_low[f_x_high-1] != -1)) and   *                                 self.find_fixpoint(f_x_low, f_low,             # <<<<<<<<<<<<<<   *                                                 f_links_low, f_links_high, e_links_low, e_links_high,   *                                                 -1, -1, e_gap_low, e_gap_high, f_gap_low, f_gap_high,   */ -                  __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_low); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1826; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_low); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_14); -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1830 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1838   *                                                 -1, -1, e_gap_low, e_gap_high, f_gap_low, f_gap_high,   *                                                 f_sent_len, e_sent_len,   *                                                 self.train_max_initial_size, self.train_max_initial_size,             # <<<<<<<<<<<<<< @@ -60541,17 +60655,17 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                    if (__pyx_t_8) { -                    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1832 +                    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1840   *                                                 self.train_max_initial_size, self.train_max_initial_size,   *                                                 0, 0, 0, 0, 0, 0, 0) and   *                                 self.find_fixpoint(f_high, f_x_high,             # <<<<<<<<<<<<<<   *                                                 f_links_low, f_links_high, e_links_low, e_links_high,   *                                                 -1, -1, e_gap_low+1+num_gaps, e_gap_high+1+num_gaps,   */ -                    __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_x_high); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_f_x_high); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                      __Pyx_GOTREF(__pyx_t_14); -                    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1837 +                    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1845   *                                                 f_gap_low+1+num_gaps, f_gap_high+1+num_gaps,   *                                                 f_sent_len, e_sent_len,   *                                                 self.train_max_initial_size, self.train_max_initial_size,             # <<<<<<<<<<<<<< @@ -60578,7 +60692,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct              }              if (__pyx_t_9) { -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1839 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1847   *                                                 self.train_max_initial_size, self.train_max_initial_size,   *                                                 0, 0, 0, 0, 0, 0, 0)):   *                                 fphr_arr._clear()             # <<<<<<<<<<<<<< @@ -60587,7 +60701,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_clear(__pyx_v_fphr_arr); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1840 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1848   *                                                 0, 0, 0, 0, 0, 0, 0)):   *                                 fphr_arr._clear()   *                                 i = 1             # <<<<<<<<<<<<<< @@ -60596,33 +60710,33 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                __pyx_v_i = 1; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1841 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1849   *                                 fphr_arr._clear()   *                                 i = 1   *                                 self.findexes.reset()             # <<<<<<<<<<<<<<   *                                 self.findexes.append(sym_setindex(self.category, i))   *                                 fphr_arr._append(sym_setindex(self.category, i))   */ -              __pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_reset); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_reset); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14); -              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_15);                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1842 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1850   *                                 i = 1   *                                 self.findexes.reset()   *                                 self.findexes.append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<<   *                                 fphr_arr._append(sym_setindex(self.category, i))   *                                 i = i+1   */ -              __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1842; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_15); -              __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_15); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1842; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_15); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1843 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1851   *                                 self.findexes.reset()   *                                 self.findexes.append(sym_setindex(self.category, i))   *                                 fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -60631,7 +60745,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1844 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1852   *                                 self.findexes.append(sym_setindex(self.category, i))   *                                 fphr_arr._append(sym_setindex(self.category, i))   *                                 i = i+1             # <<<<<<<<<<<<<< @@ -60640,27 +60754,27 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                __pyx_v_i = (__pyx_v_i + 1); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1845 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1853   *                                 fphr_arr._append(sym_setindex(self.category, i))   *                                 i = i+1   *                                 self.findexes.extend(self.findexes1)             # <<<<<<<<<<<<<<   *                                 for j from 0 <= j < phrase.n:   *                                     if sym_isvar(phrase.syms[j]):   */ -              __pyx_t_15 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_extend); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1845; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_15 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s_extend); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_15); -              __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1845; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14);                __Pyx_INCREF(((PyObject *)__pyx_v_self->findexes1));                PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_self->findexes1));                __Pyx_GIVEREF(((PyObject *)__pyx_v_self->findexes1)); -              __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1845; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_3);                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1846 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1854   *                                 i = i+1   *                                 self.findexes.extend(self.findexes1)   *                                 for j from 0 <= j < phrase.n:             # <<<<<<<<<<<<<< @@ -60670,7 +60784,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                __pyx_t_2 = __pyx_v_phrase->n;                for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_2; __pyx_v_j++) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1847 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1855   *                                 self.findexes.extend(self.findexes1)   *                                 for j from 0 <= j < phrase.n:   *                                     if sym_isvar(phrase.syms[j]):             # <<<<<<<<<<<<<< @@ -60680,7 +60794,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __pyx_t_9 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar((__pyx_v_phrase->syms[__pyx_v_j])) != 0);                  if (__pyx_t_9) { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1848 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1856   *                                 for j from 0 <= j < phrase.n:   *                                     if sym_isvar(phrase.syms[j]):   *                                         fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -60689,7 +60803,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                    ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1849 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1857   *                                     if sym_isvar(phrase.syms[j]):   *                                         fphr_arr._append(sym_setindex(self.category, i))   *                                         i = i + 1             # <<<<<<<<<<<<<< @@ -60701,7 +60815,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  }                  /*else*/ { -                  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1851 +                  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1859   *                                         i = i + 1   *                                     else:   *                                         fphr_arr._append(phrase.syms[j])             # <<<<<<<<<<<<<< @@ -60713,7 +60827,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __pyx_L106:;                } -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1852 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1860   *                                     else:   *                                         fphr_arr._append(phrase.syms[j])   *                                 fphr_arr._append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<< @@ -60722,67 +60836,67 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_IntList *)__pyx_v_fphr_arr->__pyx_vtab)->_append(__pyx_v_fphr_arr, __pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1853 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1861   *                                         fphr_arr._append(phrase.syms[j])   *                                 fphr_arr._append(sym_setindex(self.category, i))   *                                 self.findexes.append(sym_setindex(self.category, i))             # <<<<<<<<<<<<<<   *                                 fphr = Phrase(fphr_arr)   *                                 phrase_list = self.extract_phrases(e_x_low, e_x_high, e_gap_low, e_gap_high, e_links_low, num_gaps+2,   */ -              __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_v_self->category, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_3); -              __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_7 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->findexes), __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1854 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1862   *                                 fphr_arr._append(sym_setindex(self.category, i))   *                                 self.findexes.append(sym_setindex(self.category, i))   *                                 fphr = Phrase(fphr_arr)             # <<<<<<<<<<<<<<   *                                 phrase_list = self.extract_phrases(e_x_low, e_x_high, e_gap_low, e_gap_high, e_links_low, num_gaps+2,   *                                                     f_x_low, f_x_high, f_gap_low, f_gap_high, f_links_low,   */ -              __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1854; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_3);                __Pyx_INCREF(((PyObject *)__pyx_v_fphr_arr));                PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_fphr_arr));                __Pyx_GIVEREF(((PyObject *)__pyx_v_fphr_arr)); -              __pyx_t_14 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1854; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14);                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                __Pyx_DECREF_SET(__pyx_v_fphr, ((struct __pyx_obj_4cdec_2sa_3_sa_Phrase *)__pyx_t_14));                __pyx_t_14 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1855 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1863   *                                 self.findexes.append(sym_setindex(self.category, i))   *                                 fphr = Phrase(fphr_arr)   *                                 phrase_list = self.extract_phrases(e_x_low, e_x_high, e_gap_low, e_gap_high, e_links_low, num_gaps+2,             # <<<<<<<<<<<<<<   *                                                     f_x_low, f_x_high, f_gap_low, f_gap_high, f_links_low,   *                                                     matching.sent_id, e_sent_len, e_sent_start)   */ -              __pyx_t_14 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->extract_phrases(__pyx_v_self, __pyx_v_e_x_low, __pyx_v_e_x_high, __pyx_v_e_gap_low, __pyx_v_e_gap_high, __pyx_v_e_links_low, (__pyx_v_num_gaps + 2), __pyx_v_f_x_low, __pyx_v_f_x_high, __pyx_v_f_gap_low, __pyx_v_f_gap_high, __pyx_v_f_links_low, __pyx_v_matching->sent_id, __pyx_v_e_sent_len, __pyx_v_e_sent_start); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1855; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = ((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->extract_phrases(__pyx_v_self, __pyx_v_e_x_low, __pyx_v_e_x_high, __pyx_v_e_gap_low, __pyx_v_e_gap_high, __pyx_v_e_links_low, (__pyx_v_num_gaps + 2), __pyx_v_f_x_low, __pyx_v_f_x_high, __pyx_v_f_gap_low, __pyx_v_f_gap_high, __pyx_v_f_links_low, __pyx_v_matching->sent_id, __pyx_v_e_sent_len, __pyx_v_e_sent_start); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1863; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14);                __Pyx_XDECREF_SET(__pyx_v_phrase_list, __pyx_t_14);                __pyx_t_14 = 0; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1858 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1866   *                                                     f_x_low, f_x_high, f_gap_low, f_gap_high, f_links_low,   *                                                     matching.sent_id, e_sent_len, e_sent_start)   *                                 if len(phrase_list) > 0:             # <<<<<<<<<<<<<<   *                                     pair_count = 1.0 / len(phrase_list)   *                                 else:   */ -              __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1858; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __pyx_t_9 = ((__pyx_t_13 > 0) != 0);                if (__pyx_t_9) { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1859 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1867   *                                                     matching.sent_id, e_sent_len, e_sent_start)   *                                 if len(phrase_list) > 0:   *                                     pair_count = 1.0 / len(phrase_list)             # <<<<<<<<<<<<<<   *                                 else:   *                                     pair_count = 0   */ -                __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1859; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_13 = PyObject_Length(__pyx_v_phrase_list); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  if (unlikely(__pyx_t_13 == 0)) {                    #ifdef WITH_THREAD                    PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); @@ -60791,14 +60905,14 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    #ifdef WITH_THREAD                    PyGILState_Release(__pyx_gilstate_save);                    #endif -                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1859; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  }                  __pyx_v_pair_count = (1.0 / __pyx_t_13);                  goto __pyx_L107;                }                /*else*/ { -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1861 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1869   *                                     pair_count = 1.0 / len(phrase_list)   *                                 else:   *                                     pair_count = 0             # <<<<<<<<<<<<<< @@ -60809,7 +60923,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                }                __pyx_L107:; -              /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1862 +              /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1870   *                                 else:   *                                     pair_count = 0   *                                 for phrase2, eindexes in phrase_list:             # <<<<<<<<<<<<<< @@ -60820,7 +60934,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __pyx_t_14 = __pyx_v_phrase_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_13 = 0;                  __pyx_t_16 = NULL;                } else { -                __pyx_t_13 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_v_phrase_list); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_13 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_v_phrase_list); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_14);                  __pyx_t_16 = Py_TYPE(__pyx_t_14)->tp_iternext;                } @@ -60828,16 +60942,16 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  if (!__pyx_t_16 && PyList_CheckExact(__pyx_t_14)) {                    if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_14)) break;                    #if CYTHON_COMPILING_IN_CPYTHON -                  __pyx_t_3 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_3); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_3); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #else -                  __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #endif                  } else if (!__pyx_t_16 && PyTuple_CheckExact(__pyx_t_14)) {                    if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_14)) break;                    #if CYTHON_COMPILING_IN_CPYTHON -                  __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_3); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_3); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #else -                  __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    #endif                  } else {                    __pyx_t_3 = __pyx_t_16(__pyx_t_14); @@ -60845,7 +60959,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                      PyObject* exc_type = PyErr_Occurred();                      if (exc_type) {                        if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -                      else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                      else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                      }                      break;                    } @@ -60861,7 +60975,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    if (unlikely(size != 2)) {                      if (size > 2) __Pyx_RaiseTooManyValuesError(2);                      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    }                    #if CYTHON_COMPILING_IN_CPYTHON                    if (likely(PyTuple_CheckExact(sequence))) { @@ -60874,15 +60988,15 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    __Pyx_INCREF(__pyx_t_15);                    __Pyx_INCREF(__pyx_t_11);                    #else -                  __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_15); -                  __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_11);                    #endif                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                  } else {                    Py_ssize_t index = -1; -                  __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_1);                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                    __pyx_t_17 = Py_TYPE(__pyx_t_1)->tp_iternext; @@ -60890,7 +61004,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    __Pyx_GOTREF(__pyx_t_15);                    index = 1; __pyx_t_11 = __pyx_t_17(__pyx_t_1); if (unlikely(!__pyx_t_11)) goto __pyx_L110_unpacking_failed;                    __Pyx_GOTREF(__pyx_t_11); -                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __pyx_t_17 = NULL;                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                    goto __pyx_L111_unpacking_done; @@ -60898,7 +61012,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                    __pyx_t_17 = NULL;                    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __pyx_L111_unpacking_done:;                  }                  __Pyx_XDECREF_SET(__pyx_v_phrase2, __pyx_t_15); @@ -60906,7 +61020,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __Pyx_XDECREF_SET(__pyx_v_eindexes, __pyx_t_11);                  __pyx_t_11 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1863 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1871   *                                     pair_count = 0   *                                 for phrase2, eindexes in phrase_list:   *                                     als4 = self.create_alignments(sent_links,num_links,self.findexes,eindexes)             # <<<<<<<<<<<<<< @@ -60915,31 +61029,31 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */                  __pyx_t_3 = ((PyObject *)__pyx_v_self->findexes);                  __Pyx_INCREF(__pyx_t_3); -                if (!(likely(((__pyx_v_eindexes) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_eindexes, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1863; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __pyx_t_11 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->create_alignments(__pyx_v_self, __pyx_v_sent_links, __pyx_v_num_links, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_3), ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_v_eindexes))); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1863; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                if (!(likely(((__pyx_v_eindexes) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_eindexes, __pyx_ptype_4cdec_2sa_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1871; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = ((PyObject *)((struct __pyx_vtabstruct_4cdec_2sa_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->create_alignments(__pyx_v_self, __pyx_v_sent_links, __pyx_v_num_links, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_3), ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_v_eindexes))); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11);                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                  __Pyx_XDECREF_SET(__pyx_v_als4, ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_11));                  __pyx_t_11 = 0; -                /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1864 +                /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1872   *                                 for phrase2, eindexes in phrase_list:   *                                     als4 = self.create_alignments(sent_links,num_links,self.findexes,eindexes)   *                                     extracts.append((fphr, phrase2, pair_count, tuple(als4)))             # <<<<<<<<<<<<<<   *             else:   *                 reason_for_failure = "Unable to extract basic phrase"   */ -                __pyx_t_11 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1864; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_11 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_11); -                __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1864; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3);                  __Pyx_INCREF(((PyObject *)__pyx_v_als4));                  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_als4));                  __Pyx_GIVEREF(((PyObject *)__pyx_v_als4)); -                __pyx_t_15 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_3, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1864; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_15 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_3, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15);                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -                __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1864; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_3);                  __Pyx_INCREF(((PyObject *)__pyx_v_fphr));                  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_fphr)); @@ -60953,7 +61067,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct                  __Pyx_GIVEREF(__pyx_t_15);                  __pyx_t_11 = 0;                  __pyx_t_15 = 0; -                __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_extracts, __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1864; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_extracts, __pyx_t_3); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                }                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; @@ -60973,7 +61087,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct      }      /*else*/ { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1866 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1874   *                                     extracts.append((fphr, phrase2, pair_count, tuple(als4)))   *             else:   *                 reason_for_failure = "Unable to extract basic phrase"             # <<<<<<<<<<<<<< @@ -60988,7 +61102,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    }    __pyx_L33:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1868 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1876   *                 reason_for_failure = "Unable to extract basic phrase"   *    *         free(sent_links)             # <<<<<<<<<<<<<< @@ -60997,7 +61111,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    free(__pyx_v_sent_links); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1869 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1877   *    *         free(sent_links)   *         free(f_links_low)             # <<<<<<<<<<<<<< @@ -61006,7 +61120,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    free(__pyx_v_f_links_low); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1870 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1878   *         free(sent_links)   *         free(f_links_low)   *         free(f_links_high)             # <<<<<<<<<<<<<< @@ -61015,7 +61129,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    free(__pyx_v_f_links_high); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1871 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1879   *         free(f_links_low)   *         free(f_links_high)   *         free(e_links_low)             # <<<<<<<<<<<<<< @@ -61024,7 +61138,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    free(__pyx_v_e_links_low); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1872 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1880   *         free(f_links_high)   *         free(e_links_low)   *         free(e_links_high)             # <<<<<<<<<<<<<< @@ -61033,7 +61147,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    free(__pyx_v_e_links_high); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1873 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1881   *         free(e_links_low)   *         free(e_links_high)   *         free(f_gap_low)             # <<<<<<<<<<<<<< @@ -61042,7 +61156,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    free(__pyx_v_f_gap_low); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1874 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1882   *         free(e_links_high)   *         free(f_gap_low)   *         free(f_gap_high)             # <<<<<<<<<<<<<< @@ -61051,7 +61165,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    free(__pyx_v_f_gap_high); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1875 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1883   *         free(f_gap_low)   *         free(f_gap_high)   *         free(e_gap_low)             # <<<<<<<<<<<<<< @@ -61060,7 +61174,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    free(__pyx_v_e_gap_low); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1876 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1884   *         free(f_gap_high)   *         free(e_gap_low)   *         free(e_gap_high)             # <<<<<<<<<<<<<< @@ -61069,7 +61183,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct   */    free(__pyx_v_e_gap_high); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1878 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1886   *         free(e_gap_high)   *    *         return extracts             # <<<<<<<<<<<<<< @@ -61081,7 +61195,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    __pyx_r = __pyx_v_extracts;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1481 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1489   *         return ret   *    *     cdef extract(self, Phrase phrase, Matching* matching, int* chunklen, int num_chunks):             # <<<<<<<<<<<<<< @@ -61118,7 +61232,7 @@ static PyObject *__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract(struct    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1886 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1894   *     # Aggregate stats from a training instance   *     # (Extract rules, update counts)   *     def add_instance(self, f_words, e_words, alignment, ctx_name=None):             # <<<<<<<<<<<<<< @@ -61162,12 +61276,12 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_26add_instanc          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_e_words)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("add_instance", 0, 3, 4, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("add_instance", 0, 3, 4, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_alignment)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("add_instance", 0, 3, 4, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("add_instance", 0, 3, 4, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  3:          if (kw_args > 0) { @@ -61176,7 +61290,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_26add_instanc          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_instance") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_instance") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -61195,7 +61309,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_26add_instanc    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("add_instance", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("add_instance", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.add_instance", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -61208,7 +61322,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_26add_instanc    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1920 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1928   *         # f_ i and j are current, e_ i and j are previous   *         # We care _considering_ f_j, so it is not yet in counts   *         def extract(f_i, f_j, e_i, e_j, min_bound, wc, links, nt, nt_open):             # <<<<<<<<<<<<<< @@ -61262,46 +61376,46 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_f_j)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_e_i)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  3:          if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_e_j)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  4:          if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_min_bound)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 4); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 4); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  5:          if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_wc)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 5); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 5); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  6:          if (likely((values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_links)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 6); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 6); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  7:          if (likely((values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nt)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 7); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 7); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  8:          if (likely((values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nt_open)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 8); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, 8); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "extract") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "extract") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 9) {        goto __pyx_L5_argtuple_error; @@ -61328,7 +61442,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("extract", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.add_instance.extract", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -61378,33 +61492,33 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    __pyx_outer_scope = (struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_21_add_instance *) __Pyx_CyFunction_GetClosure(__pyx_self);    __pyx_cur_scope = __pyx_outer_scope; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1922 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1930   *         def extract(f_i, f_j, e_i, e_j, min_bound, wc, links, nt, nt_open):   *             # Phrase extraction limits   *             if f_j > (f_len - 1) or (f_j - f_i) + 1 > self.max_initial_size:             # <<<<<<<<<<<<<<   *                 return   *             # Unaligned word   */ -  if (unlikely(!__pyx_cur_scope->__pyx_v_f_len)) { __Pyx_RaiseClosureNameError("f_len"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -  __pyx_t_1 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_f_len, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_cur_scope->__pyx_v_f_len)) { __Pyx_RaiseClosureNameError("f_len"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +  __pyx_t_1 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_f_len, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyObject_RichCompare(__pyx_v_f_j, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_RichCompare(__pyx_v_f_j, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    if (!__pyx_t_3) { -    __pyx_t_2 = PyNumber_Subtract(__pyx_v_f_j, __pyx_v_f_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyNumber_Subtract(__pyx_v_f_j, __pyx_v_f_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __pyx_t_6 = __pyx_t_5;    } else { @@ -61412,7 +61526,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    }    if (__pyx_t_6) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1923 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1931   *             # Phrase extraction limits   *             if f_j > (f_len - 1) or (f_j - f_i) + 1 > self.max_initial_size:   *                 return             # <<<<<<<<<<<<<< @@ -61424,41 +61538,41 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1925 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1933   *                 return   *             # Unaligned word   *             if not al[f_j]:             # <<<<<<<<<<<<<<   *                 # Adjacent to non-terminal: extend (non-terminal now open)   *                 if nt and nt[-1][2] == f_j - 1:   */ -  if (unlikely(!__pyx_cur_scope->__pyx_v_al)) { __Pyx_RaiseClosureNameError("al"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1925; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -  __pyx_t_4 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_al, __pyx_v_f_j); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  if (unlikely(!__pyx_cur_scope->__pyx_v_al)) { __Pyx_RaiseClosureNameError("al"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +  __pyx_t_4 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_al, __pyx_v_f_j); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_4); -  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1925; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    __pyx_t_3 = ((!__pyx_t_6) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1927 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1935   *             if not al[f_j]:   *                 # Adjacent to non-terminal: extend (non-terminal now open)   *                 if nt and nt[-1][2] == f_j - 1:             # <<<<<<<<<<<<<<   *                     nt[-1][2] += 1   *                     extract(f_i, f_j + 1, e_i, e_j, min_bound, wc, links, nt, True)   */ -    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_nt); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1927; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_nt); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      if (__pyx_t_3) { -      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_4, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_4, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      __pyx_t_4 = PyNumber_Subtract(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1927; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyNumber_Subtract(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1927; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1927; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __pyx_t_5 = __pyx_t_6;      } else { @@ -61466,78 +61580,78 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      }      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1928 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1936   *                 # Adjacent to non-terminal: extend (non-terminal now open)   *                 if nt and nt[-1][2] == f_j - 1:   *                     nt[-1][2] += 1             # <<<<<<<<<<<<<<   *                     extract(f_i, f_j + 1, e_i, e_j, min_bound, wc, links, nt, True)   *                     nt[-1][2] -= 1   */ -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1936; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __pyx_t_7 = 2; -      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_7, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_7, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1936; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_t_7, __pyx_t_2, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_t_7, __pyx_t_2, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1929 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1937   *                 if nt and nt[-1][2] == f_j - 1:   *                     nt[-1][2] += 1   *                     extract(f_i, f_j + 1, e_i, e_j, min_bound, wc, links, nt, True)             # <<<<<<<<<<<<<<   *                     nt[-1][2] -= 1   *                 # Unless non-terminal already open, always extend with word   */ -      __pyx_t_1 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1929; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1); -      if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1929; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_2 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_1, __pyx_v_e_i, __pyx_v_e_j, __pyx_v_min_bound, __pyx_v_wc, __pyx_v_links, __pyx_v_nt, Py_True); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1929; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_2 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_1, __pyx_v_e_i, __pyx_v_e_j, __pyx_v_min_bound, __pyx_v_wc, __pyx_v_links, __pyx_v_nt, Py_True); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1930 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1938   *                     nt[-1][2] += 1   *                     extract(f_i, f_j + 1, e_i, e_j, min_bound, wc, links, nt, True)   *                     nt[-1][2] -= 1             # <<<<<<<<<<<<<<   *                 # Unless non-terminal already open, always extend with word   *                 # Make sure adding a word doesn't exceed length   */ -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2);        __pyx_t_7 = 2; -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_t_7, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_t_7, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_t_7, __pyx_t_4, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_t_7, __pyx_t_4, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        goto __pyx_L5;      }      __pyx_L5:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1933 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1941   *                 # Unless non-terminal already open, always extend with word   *                 # Make sure adding a word doesn't exceed length   *                 if not nt_open and wc < self.max_length:             # <<<<<<<<<<<<<<   *                     extract(f_i, f_j + 1, e_i, e_j, min_bound, wc + 1, links, nt, False)   *                 return   */ -    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_nt_open); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_nt_open); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_t_3 = (!__pyx_t_5);      if (__pyx_t_3) { -      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_length); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_length); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_4 = PyObject_RichCompare(__pyx_v_wc, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyObject_RichCompare(__pyx_v_wc, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __pyx_t_6 = __pyx_t_5;      } else { @@ -61545,19 +61659,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      }      if (__pyx_t_6) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1934 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1942   *                 # Make sure adding a word doesn't exceed length   *                 if not nt_open and wc < self.max_length:   *                     extract(f_i, f_j + 1, e_i, e_j, min_bound, wc + 1, links, nt, False)             # <<<<<<<<<<<<<<   *                 return   *             # Aligned word   */ -      __pyx_t_4 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_2 = PyNumber_Add(__pyx_v_wc, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_Add(__pyx_v_wc, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_1 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_4, __pyx_v_e_i, __pyx_v_e_j, __pyx_v_min_bound, __pyx_t_2, __pyx_v_links, __pyx_v_nt, Py_False); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_1 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_4, __pyx_v_e_i, __pyx_v_e_j, __pyx_v_min_bound, __pyx_t_2, __pyx_v_links, __pyx_v_nt, Py_False); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -61566,7 +61680,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      }      __pyx_L6:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1935 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1943   *                 if not nt_open and wc < self.max_length:   *                     extract(f_i, f_j + 1, e_i, e_j, min_bound, wc + 1, links, nt, False)   *                 return             # <<<<<<<<<<<<<< @@ -61578,47 +61692,47 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1937 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1945   *                 return   *             # Aligned word   *             link_i = fe_span[f_j][0]             # <<<<<<<<<<<<<<   *             link_j = fe_span[f_j][1]   *             new_e_i = min(link_i, e_i)   */ -  if (unlikely(!__pyx_cur_scope->__pyx_v_fe_span)) { __Pyx_RaiseClosureNameError("fe_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +  if (unlikely(!__pyx_cur_scope->__pyx_v_fe_span)) { __Pyx_RaiseClosureNameError("fe_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }    if (unlikely(__pyx_cur_scope->__pyx_v_fe_span == Py_None)) {      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f_j); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f_j); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_link_i = __pyx_t_2;    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1938 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1946   *             # Aligned word   *             link_i = fe_span[f_j][0]   *             link_j = fe_span[f_j][1]             # <<<<<<<<<<<<<<   *             new_e_i = min(link_i, e_i)   *             new_e_j = max(link_j, e_j)   */ -  if (unlikely(!__pyx_cur_scope->__pyx_v_fe_span)) { __Pyx_RaiseClosureNameError("fe_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +  if (unlikely(!__pyx_cur_scope->__pyx_v_fe_span)) { __Pyx_RaiseClosureNameError("fe_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }    if (unlikely(__pyx_cur_scope->__pyx_v_fe_span == Py_None)) {      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  __pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f_j); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f_j); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __pyx_v_link_j = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1939 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1947   *             link_i = fe_span[f_j][0]   *             link_j = fe_span[f_j][1]   *             new_e_i = min(link_i, e_i)             # <<<<<<<<<<<<<< @@ -61629,8 +61743,8 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    __pyx_t_1 = __pyx_v_e_i;    __Pyx_INCREF(__pyx_v_link_i);    __pyx_t_2 = __pyx_v_link_i; -  __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1939; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1939; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1947; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;    if (__pyx_t_6) {      __Pyx_INCREF(__pyx_t_1); @@ -61647,7 +61761,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    __pyx_v_new_e_i = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1940 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1948   *             link_j = fe_span[f_j][1]   *             new_e_i = min(link_i, e_i)   *             new_e_j = max(link_j, e_j)             # <<<<<<<<<<<<<< @@ -61658,8 +61772,8 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    __pyx_t_1 = __pyx_v_e_j;    __Pyx_INCREF(__pyx_v_link_j);    __pyx_t_4 = __pyx_v_link_j; -  __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1940; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1940; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1948; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;    if (__pyx_t_6) {      __Pyx_INCREF(__pyx_t_1); @@ -61676,7 +61790,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    __pyx_v_new_e_j = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1943 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1951   *             # Check reverse links of newly covered words to see if they violate left   *             # bound (return) or extend minimum right bound for chunk   *             new_min_bound = min_bound             # <<<<<<<<<<<<<< @@ -61686,57 +61800,57 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    __Pyx_INCREF(__pyx_v_min_bound);    __pyx_v_new_min_bound = __pyx_v_min_bound; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1945 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1953   *             new_min_bound = min_bound   *             # First aligned word creates span   *             if e_j == -1:             # <<<<<<<<<<<<<<   *                 for i from new_e_i <= i <= new_e_j:   *                     if ef_span[i][0] < f_i:   */ -  __pyx_t_1 = PyObject_RichCompare(__pyx_v_e_j, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_RichCompare(__pyx_v_e_j, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1953; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1953; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_6) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1946 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1954   *             # First aligned word creates span   *             if e_j == -1:   *                 for i from new_e_i <= i <= new_e_j:             # <<<<<<<<<<<<<<   *                     if ef_span[i][0] < f_i:   *                         return   */ -    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_v_new_e_i); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_v_new_e_j); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_v_new_e_i); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1954; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_v_new_e_j); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      for (__pyx_t_11 = __pyx_t_9; __pyx_t_11 <= __pyx_t_10; __pyx_t_11++) { -      __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_t_11); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_t_11); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);        __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1947 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1955   *             if e_j == -1:   *                 for i from new_e_i <= i <= new_e_j:   *                     if ef_span[i][0] < f_i:             # <<<<<<<<<<<<<<   *                         return   *                     new_min_bound = max(new_min_bound, ef_span[i][1])   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1947; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }        if (unlikely(__pyx_cur_scope->__pyx_v_ef_span == Py_None)) {          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1947; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_v_f_i, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1947; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_v_f_i, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1947; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        if (__pyx_t_6) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1948 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1956   *                 for i from new_e_i <= i <= new_e_j:   *                     if ef_span[i][0] < f_i:   *                         return             # <<<<<<<<<<<<<< @@ -61748,27 +61862,27 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          goto __pyx_L0;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1949 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1957   *                     if ef_span[i][0] < f_i:   *                         return   *                     new_min_bound = max(new_min_bound, ef_span[i][1])             # <<<<<<<<<<<<<<   *             # Other aligned words extend span   *             else:   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1949; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }        if (unlikely(__pyx_cur_scope->__pyx_v_ef_span == Py_None)) {          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1949; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_INCREF(__pyx_v_new_min_bound);        __pyx_t_1 = __pyx_v_new_min_bound; -      __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1949; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1949; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        if (__pyx_t_6) {          __Pyx_INCREF(__pyx_t_2); @@ -61784,17 +61898,17 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF_SET(__pyx_v_new_min_bound, __pyx_t_2);        __pyx_t_2 = 0; -      __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1946 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1954   *             # First aligned word creates span   *             if e_j == -1:   *                 for i from new_e_i <= i <= new_e_j:             # <<<<<<<<<<<<<<   *                     if ef_span[i][0] < f_i:   *                         return   */ -    __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_t_11); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_t_11); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2);      __pyx_t_2 = 0; @@ -61802,45 +61916,45 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    }    /*else*/ { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1952 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1960   *             # Other aligned words extend span   *             else:   *                 for i from new_e_i <= i < e_i:             # <<<<<<<<<<<<<<   *                     if ef_span[i][0] < f_i:   *                         return   */ -    __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_v_new_e_i); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_v_e_i); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_v_new_e_i); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1960; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_v_e_i); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      for (__pyx_t_9 = __pyx_t_11; __pyx_t_9 < __pyx_t_10; __pyx_t_9++) { -      __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_t_9); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_t_9); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2);        __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1953 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1961   *             else:   *                 for i from new_e_i <= i < e_i:   *                     if ef_span[i][0] < f_i:             # <<<<<<<<<<<<<<   *                         return   *                     new_min_bound = max(new_min_bound, ef_span[i][1])   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1953; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }        if (unlikely(__pyx_cur_scope->__pyx_v_ef_span == Py_None)) {          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1953; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      __pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1953; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1961; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1953; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1961; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_v_f_i, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1953; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_v_f_i, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1953; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        if (__pyx_t_6) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1954 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1962   *                 for i from new_e_i <= i < e_i:   *                     if ef_span[i][0] < f_i:   *                         return             # <<<<<<<<<<<<<< @@ -61852,27 +61966,27 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          goto __pyx_L0;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1955 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1963   *                     if ef_span[i][0] < f_i:   *                         return   *                     new_min_bound = max(new_min_bound, ef_span[i][1])             # <<<<<<<<<<<<<<   *                 for i from e_j < i <= new_e_j:   *                     if ef_span[i][0] < f_i:   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }        if (unlikely(__pyx_cur_scope->__pyx_v_ef_span == Py_None)) {          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      __pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __Pyx_INCREF(__pyx_v_new_min_bound);        __pyx_t_2 = __pyx_v_new_min_bound; -      __pyx_t_8 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        if (__pyx_t_6) {          __Pyx_INCREF(__pyx_t_4); @@ -61888,60 +62002,60 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF_SET(__pyx_v_new_min_bound, __pyx_t_4);        __pyx_t_4 = 0; -      __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1952 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1960   *             # Other aligned words extend span   *             else:   *                 for i from new_e_i <= i < e_i:             # <<<<<<<<<<<<<<   *                     if ef_span[i][0] < f_i:   *                         return   */ -    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_t_9); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_t_9); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1956 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1964   *                         return   *                     new_min_bound = max(new_min_bound, ef_span[i][1])   *                 for i from e_j < i <= new_e_j:             # <<<<<<<<<<<<<<   *                     if ef_span[i][0] < f_i:   *                         return   */ -    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_v_e_j); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1956; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_v_new_e_j); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1956; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_v_e_j); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1964; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_v_new_e_j); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      for (__pyx_t_11 = __pyx_t_9+1; __pyx_t_11 <= __pyx_t_10; __pyx_t_11++) { -      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_t_11); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1956; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_t_11); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);        __pyx_t_4 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1957 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1965   *                     new_min_bound = max(new_min_bound, ef_span[i][1])   *                 for i from e_j < i <= new_e_j:   *                     if ef_span[i][0] < f_i:             # <<<<<<<<<<<<<<   *                         return   *                     new_min_bound = max(new_min_bound, ef_span[i][1])   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1965; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }        if (unlikely(__pyx_cur_scope->__pyx_v_ef_span == Py_None)) {          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      __pyx_t_4 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_4 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1965; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1965; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_v_f_i, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_v_f_i, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        if (__pyx_t_6) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1958 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1966   *                 for i from e_j < i <= new_e_j:   *                     if ef_span[i][0] < f_i:   *                         return             # <<<<<<<<<<<<<< @@ -61953,27 +62067,27 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          goto __pyx_L0;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1959 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1967   *                     if ef_span[i][0] < f_i:   *                         return   *                     new_min_bound = max(new_min_bound, ef_span[i][1])             # <<<<<<<<<<<<<<   *             # Extract, extend with word (unless non-terminal open)   *             if not nt_open:   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1959; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      if (unlikely(!__pyx_cur_scope->__pyx_v_ef_span)) { __Pyx_RaiseClosureNameError("ef_span"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1967; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }        if (unlikely(__pyx_cur_scope->__pyx_v_ef_span == Py_None)) {          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1959; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      __pyx_t_4 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_4 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_i); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1967; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1967; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_INCREF(__pyx_v_new_min_bound);        __pyx_t_4 = __pyx_v_new_min_bound; -      __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1959; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1959; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1967; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        if (__pyx_t_6) {          __Pyx_INCREF(__pyx_t_1); @@ -61989,35 +62103,35 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __Pyx_DECREF_SET(__pyx_v_new_min_bound, __pyx_t_1);        __pyx_t_1 = 0; -      __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1956; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1956 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1964   *                         return   *                     new_min_bound = max(new_min_bound, ef_span[i][1])   *                 for i from e_j < i <= new_e_j:             # <<<<<<<<<<<<<<   *                     if ef_span[i][0] < f_i:   *                         return   */ -    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_t_11); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1956; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_t_11); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);      __pyx_t_1 = 0;    }    __pyx_L7:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1961 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1969   *                     new_min_bound = max(new_min_bound, ef_span[i][1])   *             # Extract, extend with word (unless non-terminal open)   *             if not nt_open:             # <<<<<<<<<<<<<<   *                 nt_collision = False   *                 for link in al[f_j]:   */ -  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_nt_open); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_nt_open); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_t_3 = ((!__pyx_t_6) != 0);    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1962 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1970   *             # Extract, extend with word (unless non-terminal open)   *             if not nt_open:   *                 nt_collision = False             # <<<<<<<<<<<<<< @@ -62026,21 +62140,21 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc   */      __pyx_v_nt_collision = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1963 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1971   *             if not nt_open:   *                 nt_collision = False   *                 for link in al[f_j]:             # <<<<<<<<<<<<<<   *                     if e_nt_cover[link]:   *                         nt_collision = True   */ -    if (unlikely(!__pyx_cur_scope->__pyx_v_al)) { __Pyx_RaiseClosureNameError("al"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_al, __pyx_v_f_j); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    if (unlikely(!__pyx_cur_scope->__pyx_v_al)) { __Pyx_RaiseClosureNameError("al"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_al, __pyx_v_f_j); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1);      if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {        __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0;        __pyx_t_12 = NULL;      } else { -      __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext;      } @@ -62049,16 +62163,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        if (!__pyx_t_12 && PyList_CheckExact(__pyx_t_2)) {          if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break;          #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #else -        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #endif        } else if (!__pyx_t_12 && PyTuple_CheckExact(__pyx_t_2)) {          if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_2)) break;          #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #else -        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #endif        } else {          __pyx_t_1 = __pyx_t_12(__pyx_t_2); @@ -62066,7 +62180,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc            PyObject* exc_type = PyErr_Occurred();            if (exc_type) {              if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -            else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1963; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            }            break;          } @@ -62075,25 +62189,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        __Pyx_XDECREF_SET(__pyx_v_link, __pyx_t_1);        __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1964 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1972   *                 nt_collision = False   *                 for link in al[f_j]:   *                     if e_nt_cover[link]:             # <<<<<<<<<<<<<<   *                         nt_collision = True   *                 # Non-terminal collisions block word extraction and extension, but   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1964; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }        if (unlikely(__pyx_cur_scope->__pyx_v_e_nt_cover == Py_None)) {          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1964; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_e_nt_cover, __pyx_v_link); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_e_nt_cover, __pyx_v_link); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1964; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1965 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1973   *                 for link in al[f_j]:   *                     if e_nt_cover[link]:   *                         nt_collision = True             # <<<<<<<<<<<<<< @@ -62107,7 +62221,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      }      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1968 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1976   *                 # Non-terminal collisions block word extraction and extension, but   *                 # may be okay for continuing non-terminals   *                 if not nt_collision and wc < self.max_length:             # <<<<<<<<<<<<<< @@ -62116,12 +62230,12 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc   */      __pyx_t_3 = (!(__pyx_v_nt_collision != 0));      if (__pyx_t_3) { -      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1968; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_length); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1968; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_length); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_1 = PyObject_RichCompare(__pyx_v_wc, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1968; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_v_wc, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1968; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __pyx_t_5 = __pyx_t_6;      } else { @@ -62129,33 +62243,33 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      }      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1969 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1977   *                 # may be okay for continuing non-terminals   *                 if not nt_collision and wc < self.max_length:   *                     plus_links = []             # <<<<<<<<<<<<<<   *                     for link in al[f_j]:   *                         plus_links.append((f_j, link))   */ -      __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1969; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __pyx_v_plus_links = ((PyObject*)__pyx_t_1);        __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1970 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1978   *                 if not nt_collision and wc < self.max_length:   *                     plus_links = []   *                     for link in al[f_j]:             # <<<<<<<<<<<<<<   *                         plus_links.append((f_j, link))   *                         cover[link] += 1   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_al)) { __Pyx_RaiseClosureNameError("al"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_al, __pyx_v_f_j); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_al)) { __Pyx_RaiseClosureNameError("al"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_al, __pyx_v_f_j); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {          __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0;          __pyx_t_12 = NULL;        } else { -        __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_2);          __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext;        } @@ -62164,16 +62278,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          if (!__pyx_t_12 && PyList_CheckExact(__pyx_t_2)) {            if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break;            #if CYTHON_COMPILING_IN_CPYTHON -          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #else -          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #endif          } else if (!__pyx_t_12 && PyTuple_CheckExact(__pyx_t_2)) {            if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_2)) break;            #if CYTHON_COMPILING_IN_CPYTHON -          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #else -          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #endif          } else {            __pyx_t_1 = __pyx_t_12(__pyx_t_2); @@ -62181,7 +62295,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc              PyObject* exc_type = PyErr_Occurred();              if (exc_type) {                if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -              else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              }              break;            } @@ -62190,14 +62304,14 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          __Pyx_XDECREF_SET(__pyx_v_link, __pyx_t_1);          __pyx_t_1 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1971 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1979   *                     plus_links = []   *                     for link in al[f_j]:   *                         plus_links.append((f_j, link))             # <<<<<<<<<<<<<<   *                         cover[link] += 1   *                     links.append(plus_links)   */ -        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1);          __Pyx_INCREF(__pyx_v_f_j);          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_f_j); @@ -62205,20 +62319,20 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          __Pyx_INCREF(__pyx_v_link);          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_link);          __Pyx_GIVEREF(__pyx_v_link); -        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_plus_links, __pyx_t_1); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_plus_links, __pyx_t_1); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1972 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1980   *                     for link in al[f_j]:   *                         plus_links.append((f_j, link))   *                         cover[link] += 1             # <<<<<<<<<<<<<<   *                     links.append(plus_links)   *                     if links and f_j >= new_min_bound:   */ -        if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +        if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1980; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }          if (unlikely(__pyx_cur_scope->__pyx_v_cover == Py_None)) {            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cover);          __pyx_t_14 = __pyx_cur_scope->__pyx_v_cover; @@ -62226,44 +62340,44 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          __pyx_t_1 = __pyx_v_link;          if (unlikely(__pyx_t_14 == Py_None)) {            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          } -        __pyx_t_4 = PyObject_GetItem(__pyx_t_14, __pyx_t_1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_4 = PyObject_GetItem(__pyx_t_14, __pyx_t_1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1980; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_4); -        __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_8);          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;          if (unlikely(__pyx_t_14 == Py_None)) {            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          } -        if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_t_1, __pyx_t_8) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_t_1, __pyx_t_8) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;        }        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1973 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1981   *                         plus_links.append((f_j, link))   *                         cover[link] += 1   *                     links.append(plus_links)             # <<<<<<<<<<<<<<   *                     if links and f_j >= new_min_bound:   *                         rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))   */ -      __pyx_t_13 = __Pyx_PyObject_Append(__pyx_v_links, __pyx_v_plus_links); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1973; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_13 = __Pyx_PyObject_Append(__pyx_v_links, __pyx_v_plus_links); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1981; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1974 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1982   *                         cover[link] += 1   *                     links.append(plus_links)   *                     if links and f_j >= new_min_bound:             # <<<<<<<<<<<<<<   *                         rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))   *                     extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc + 1, links, nt, False)   */ -      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_links); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_links); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        if (__pyx_t_5) { -        __pyx_t_2 = PyObject_RichCompare(__pyx_v_f_j, __pyx_v_new_min_bound, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = PyObject_RichCompare(__pyx_v_f_j, __pyx_v_new_min_bound, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1982; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;          __pyx_t_6 = __pyx_t_3;        } else { @@ -62271,34 +62385,34 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        }        if (__pyx_t_6) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1975 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1983   *                     links.append(plus_links)   *                     if links and f_j >= new_min_bound:   *                         rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))             # <<<<<<<<<<<<<<   *                     extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc + 1, links, nt, False)   *                     links.pop()   */ -        if (unlikely(!__pyx_cur_scope->__pyx_v_rules)) { __Pyx_RaiseClosureNameError("rules"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +        if (unlikely(!__pyx_cur_scope->__pyx_v_rules)) { __Pyx_RaiseClosureNameError("rules"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }          if (unlikely(__pyx_cur_scope->__pyx_v_rules == Py_None)) {            PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add"); -          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          } -        if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_form_rule); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_form_rule); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_2); -        if (unlikely(!__pyx_cur_scope->__pyx_v_f_words)) { __Pyx_RaiseClosureNameError("f_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -        __pyx_t_1 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(!__pyx_cur_scope->__pyx_v_f_words)) { __Pyx_RaiseClosureNameError("f_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +        __pyx_t_1 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_8 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_f_words, 0, 0, &__pyx_v_f_i, &__pyx_t_1, NULL, 0, 0, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_8 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_f_words, 0, 0, &__pyx_v_f_i, &__pyx_t_1, NULL, 0, 0, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_8);          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        if (unlikely(!__pyx_cur_scope->__pyx_v_e_words)) { __Pyx_RaiseClosureNameError("e_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -        __pyx_t_1 = PyNumber_Add(__pyx_v_new_e_j, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(!__pyx_cur_scope->__pyx_v_e_words)) { __Pyx_RaiseClosureNameError("e_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +        __pyx_t_1 = PyNumber_Add(__pyx_v_new_e_j, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); -        __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_e_words, 0, 0, &__pyx_v_new_e_i, &__pyx_t_1, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_e_words, 0, 0, &__pyx_v_new_e_i, &__pyx_t_1, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_4);          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        __pyx_t_1 = PyTuple_New(6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyTuple_New(6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1);          __Pyx_INCREF(__pyx_v_f_i);          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_f_i); @@ -62318,60 +62432,60 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          __Pyx_GIVEREF(__pyx_v_links);          __pyx_t_8 = 0;          __pyx_t_4 = 0; -        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_4);          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -        __pyx_t_13 = PySet_Add(__pyx_cur_scope->__pyx_v_rules, __pyx_t_4); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_13 = PySet_Add(__pyx_cur_scope->__pyx_v_rules, __pyx_t_4); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;          goto __pyx_L24;        }        __pyx_L24:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1976 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1984   *                     if links and f_j >= new_min_bound:   *                         rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))   *                     extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc + 1, links, nt, False)             # <<<<<<<<<<<<<<   *                     links.pop()   *                     for link in al[f_j]:   */ -      __pyx_t_4 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_1 = PyNumber_Add(__pyx_v_wc, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_Add(__pyx_v_wc, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1); -      if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_2 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_4, __pyx_v_new_e_i, __pyx_v_new_e_j, __pyx_v_new_min_bound, __pyx_t_1, __pyx_v_links, __pyx_v_nt, Py_False); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_2 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_4, __pyx_v_new_e_i, __pyx_v_new_e_j, __pyx_v_new_min_bound, __pyx_t_1, __pyx_v_links, __pyx_v_nt, Py_False); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1977 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1985   *                         rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))   *                     extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc + 1, links, nt, False)   *                     links.pop()             # <<<<<<<<<<<<<<   *                     for link in al[f_j]:   *                         cover[link] -= 1   */ -      __pyx_t_2 = __Pyx_PyObject_Pop(__pyx_v_links); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1977; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_PyObject_Pop(__pyx_v_links); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1978 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1986   *                     extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc + 1, links, nt, False)   *                     links.pop()   *                     for link in al[f_j]:             # <<<<<<<<<<<<<<   *                         cover[link] -= 1   *             # Try to add a word to current non-terminal (if any), extract, extend   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_al)) { __Pyx_RaiseClosureNameError("al"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_al, __pyx_v_f_j); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_al)) { __Pyx_RaiseClosureNameError("al"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_al, __pyx_v_f_j); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2);        if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {          __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;          __pyx_t_12 = NULL;        } else { -        __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1);          __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext;        } @@ -62380,16 +62494,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          if (!__pyx_t_12 && PyList_CheckExact(__pyx_t_1)) {            if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;            #if CYTHON_COMPILING_IN_CPYTHON -          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #else -          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #endif          } else if (!__pyx_t_12 && PyTuple_CheckExact(__pyx_t_1)) {            if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break;            #if CYTHON_COMPILING_IN_CPYTHON -          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #else -          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            #endif          } else {            __pyx_t_2 = __pyx_t_12(__pyx_t_1); @@ -62397,7 +62511,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc              PyObject* exc_type = PyErr_Occurred();              if (exc_type) {                if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -              else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              }              break;            } @@ -62406,17 +62520,17 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          __Pyx_XDECREF_SET(__pyx_v_link, __pyx_t_2);          __pyx_t_2 = 0; -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1979 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1987   *                     links.pop()   *                     for link in al[f_j]:   *                         cover[link] -= 1             # <<<<<<<<<<<<<<   *             # Try to add a word to current non-terminal (if any), extract, extend   *             if nt and nt[-1][2] == f_j - 1:   */ -        if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +        if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }          if (unlikely(__pyx_cur_scope->__pyx_v_cover == Py_None)) {            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cover);          __pyx_t_14 = __pyx_cur_scope->__pyx_v_cover; @@ -62424,18 +62538,18 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          __pyx_t_2 = __pyx_v_link;          if (unlikely(__pyx_t_14 == Py_None)) {            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          } -        __pyx_t_4 = PyObject_GetItem(__pyx_t_14, __pyx_t_2); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_4 = PyObject_GetItem(__pyx_t_14, __pyx_t_2); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_4); -        __pyx_t_8 = PyNumber_InPlaceSubtract(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_8 = PyNumber_InPlaceSubtract(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_8);          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;          if (unlikely(__pyx_t_14 == Py_None)) {            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          } -        if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_t_2, __pyx_t_8) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_t_2, __pyx_t_8) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; @@ -62448,26 +62562,26 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    }    __pyx_L17:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1981 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1989   *                         cover[link] -= 1   *             # Try to add a word to current non-terminal (if any), extract, extend   *             if nt and nt[-1][2] == f_j - 1:             # <<<<<<<<<<<<<<   *                 # Add to non-terminal, checking for collisions   *                 old_last_nt = nt[-1][:]   */ -  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_nt); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1981; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_nt); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_6) { -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = PyNumber_Subtract(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1981; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Subtract(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1981; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1981; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      __pyx_t_3 = __pyx_t_5;    } else { @@ -62475,70 +62589,70 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    }    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1983 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1991   *             if nt and nt[-1][2] == f_j - 1:   *                 # Add to non-terminal, checking for collisions   *                 old_last_nt = nt[-1][:]             # <<<<<<<<<<<<<<   *                 nt[-1][2] = f_j   *                 if link_i < nt[-1][3]:   */ -    __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1991; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_8); -    __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_8, 0, 0, NULL, NULL, &__pyx_slice__67, 0, 0, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_8, 0, 0, NULL, NULL, &__pyx_slice__67, 0, 0, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1991; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      __pyx_v_old_last_nt = __pyx_t_1;      __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1984 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1992   *                 # Add to non-terminal, checking for collisions   *                 old_last_nt = nt[-1][:]   *                 nt[-1][2] = f_j             # <<<<<<<<<<<<<<   *                 if link_i < nt[-1][3]:   *                     if not span_check(cover, link_i, nt[-1][3] - 1):   */ -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1992; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 2, __pyx_v_f_j, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1984; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 2, __pyx_v_f_j, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1985 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1993   *                 old_last_nt = nt[-1][:]   *                 nt[-1][2] = f_j   *                 if link_i < nt[-1][3]:             # <<<<<<<<<<<<<<   *                     if not span_check(cover, link_i, nt[-1][3] - 1):   *                         nt[-1] = old_last_nt   */ -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_8);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = PyObject_RichCompare(__pyx_v_link_i, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_link_i, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1986 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1994   *                 nt[-1][2] = f_j   *                 if link_i < nt[-1][3]:   *                     if not span_check(cover, link_i, nt[-1][3] - 1):             # <<<<<<<<<<<<<<   *                         nt[-1] = old_last_nt   *                         return   */ -      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_check); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_check); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1); -      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_8); -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_8, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_8, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_8 = PyNumber_Subtract(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyNumber_Subtract(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cover);        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_cover); @@ -62549,25 +62663,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_8);        __Pyx_GIVEREF(__pyx_t_8);        __pyx_t_8 = 0; -      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        __pyx_t_6 = ((!__pyx_t_3) != 0);        if (__pyx_t_6) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1987 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1995   *                 if link_i < nt[-1][3]:   *                     if not span_check(cover, link_i, nt[-1][3] - 1):   *                         nt[-1] = old_last_nt             # <<<<<<<<<<<<<<   *                         return   *                     span_inc(cover, link_i, nt[-1][3] - 1)   */ -        if (unlikely(__Pyx_SetItemInt(__pyx_v_nt, -1, __pyx_v_old_last_nt, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(__Pyx_SetItemInt(__pyx_v_nt, -1, __pyx_v_old_last_nt, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1988 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1996   *                     if not span_check(cover, link_i, nt[-1][3] - 1):   *                         nt[-1] = old_last_nt   *                         return             # <<<<<<<<<<<<<< @@ -62579,25 +62693,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          goto __pyx_L0;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1989 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1997   *                         nt[-1] = old_last_nt   *                         return   *                     span_inc(cover, link_i, nt[-1][3] - 1)             # <<<<<<<<<<<<<<   *                     span_inc(e_nt_cover, link_i, nt[-1][3] - 1)   *                     nt[-1][3] = link_i   */ -      __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8); -      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cover);        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_cover); @@ -62608,31 +62722,31 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2);        __Pyx_GIVEREF(__pyx_t_2);        __pyx_t_2 = 0; -      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1990 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1998   *                         return   *                     span_inc(cover, link_i, nt[-1][3] - 1)   *                     span_inc(e_nt_cover, link_i, nt[-1][3] - 1)             # <<<<<<<<<<<<<<   *                     nt[-1][3] = link_i   *                 if link_j > nt[-1][4]:   */ -      __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_8);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyNumber_Subtract(__pyx_t_8, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_Subtract(__pyx_t_8, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e_nt_cover);        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_cur_scope->__pyx_v_e_nt_cover); @@ -62643,64 +62757,64 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_1);        __Pyx_GIVEREF(__pyx_t_1);        __pyx_t_1 = 0; -      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1991 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1999   *                     span_inc(cover, link_i, nt[-1][3] - 1)   *                     span_inc(e_nt_cover, link_i, nt[-1][3] - 1)   *                     nt[-1][3] = link_i             # <<<<<<<<<<<<<<   *                 if link_j > nt[-1][4]:   *                     if not span_check(cover, nt[-1][4] + 1, link_j):   */ -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1991; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 3, __pyx_v_link_i, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1991; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 3, __pyx_v_link_i, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        goto __pyx_L28;      }      __pyx_L28:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1992 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2000   *                     span_inc(e_nt_cover, link_i, nt[-1][3] - 1)   *                     nt[-1][3] = link_i   *                 if link_j > nt[-1][4]:             # <<<<<<<<<<<<<<   *                     if not span_check(cover, nt[-1][4] + 1, link_j):   *                         nt[-1] = old_last_nt   */ -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_8);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = PyObject_RichCompare(__pyx_v_link_j, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1992; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_link_j, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1992; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      if (__pyx_t_6) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1993 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2001   *                     nt[-1][3] = link_i   *                 if link_j > nt[-1][4]:   *                     if not span_check(cover, nt[-1][4] + 1, link_j):             # <<<<<<<<<<<<<<   *                         nt[-1] = old_last_nt   *                         return   */ -      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_check); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_check); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1); -      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2001; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2001; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_8); -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_8, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_8, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2001; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_8 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cover);        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_cover); @@ -62711,25 +62825,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_link_j);        __Pyx_GIVEREF(__pyx_v_link_j);        __pyx_t_8 = 0; -      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        __pyx_t_3 = ((!__pyx_t_6) != 0);        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1994 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2002   *                 if link_j > nt[-1][4]:   *                     if not span_check(cover, nt[-1][4] + 1, link_j):   *                         nt[-1] = old_last_nt             # <<<<<<<<<<<<<<   *                         return   *                     span_inc(cover, nt[-1][4] + 1, link_j)   */ -        if (unlikely(__Pyx_SetItemInt(__pyx_v_nt, -1, __pyx_v_old_last_nt, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(__Pyx_SetItemInt(__pyx_v_nt, -1, __pyx_v_old_last_nt, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2002; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1995 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2003   *                     if not span_check(cover, nt[-1][4] + 1, link_j):   *                         nt[-1] = old_last_nt   *                         return             # <<<<<<<<<<<<<< @@ -62741,25 +62855,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc          goto __pyx_L0;        } -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1996 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2004   *                         nt[-1] = old_last_nt   *                         return   *                     span_inc(cover, nt[-1][4] + 1, link_j)             # <<<<<<<<<<<<<<   *                     span_inc(e_nt_cover, nt[-1][4] + 1, link_j)   *                     nt[-1][4] = link_j   */ -      __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1996; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8); -      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1996; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1996; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1996; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1996; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1996; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cover);        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_cover); @@ -62770,31 +62884,31 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_link_j);        __Pyx_GIVEREF(__pyx_v_link_j);        __pyx_t_2 = 0; -      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1996; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1997 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2005   *                         return   *                     span_inc(cover, nt[-1][4] + 1, link_j)   *                     span_inc(e_nt_cover, nt[-1][4] + 1, link_j)             # <<<<<<<<<<<<<<   *                     nt[-1][4] = link_j   *                 if links and f_j >= new_min_bound:   */ -      __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_8);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyNumber_Add(__pyx_t_8, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_Add(__pyx_t_8, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e_nt_cover);        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_cur_scope->__pyx_v_e_nt_cover); @@ -62805,38 +62919,38 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_link_j);        __Pyx_GIVEREF(__pyx_v_link_j);        __pyx_t_1 = 0; -      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1998 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2006   *                     span_inc(cover, nt[-1][4] + 1, link_j)   *                     span_inc(e_nt_cover, nt[-1][4] + 1, link_j)   *                     nt[-1][4] = link_j             # <<<<<<<<<<<<<<   *                 if links and f_j >= new_min_bound:   *                     rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))   */ -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 4, __pyx_v_link_j, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1998; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 4, __pyx_v_link_j, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        goto __pyx_L30;      }      __pyx_L30:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1999 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2007   *                     span_inc(e_nt_cover, nt[-1][4] + 1, link_j)   *                     nt[-1][4] = link_j   *                 if links and f_j >= new_min_bound:             # <<<<<<<<<<<<<<   *                     rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))   *                 extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc, links, nt, False)   */ -    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_links); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_links); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      if (__pyx_t_3) { -      __pyx_t_1 = PyObject_RichCompare(__pyx_v_f_j, __pyx_v_new_min_bound, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_v_f_j, __pyx_v_new_min_bound, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __pyx_t_5 = __pyx_t_6;      } else { @@ -62844,34 +62958,34 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      }      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2000 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2008   *                     nt[-1][4] = link_j   *                 if links and f_j >= new_min_bound:   *                     rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))             # <<<<<<<<<<<<<<   *                 extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc, links, nt, False)   *                 nt[-1] = old_last_nt   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_rules)) { __Pyx_RaiseClosureNameError("rules"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      if (unlikely(!__pyx_cur_scope->__pyx_v_rules)) { __Pyx_RaiseClosureNameError("rules"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }        if (unlikely(__pyx_cur_scope->__pyx_v_rules == Py_None)) {          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add"); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_form_rule); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_form_rule); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1); -      if (unlikely(!__pyx_cur_scope->__pyx_v_f_words)) { __Pyx_RaiseClosureNameError("f_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_8 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_f_words)) { __Pyx_RaiseClosureNameError("f_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_8 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8); -      __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_f_words, 0, 0, &__pyx_v_f_i, &__pyx_t_8, NULL, 0, 0, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_f_words, 0, 0, &__pyx_v_f_i, &__pyx_t_8, NULL, 0, 0, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      if (unlikely(!__pyx_cur_scope->__pyx_v_e_words)) { __Pyx_RaiseClosureNameError("e_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_8 = PyNumber_Add(__pyx_v_new_e_j, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_e_words)) { __Pyx_RaiseClosureNameError("e_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_8 = PyNumber_Add(__pyx_v_new_e_j, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8); -      __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_e_words, 0, 0, &__pyx_v_new_e_i, &__pyx_t_8, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_e_words, 0, 0, &__pyx_v_new_e_i, &__pyx_t_8, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_8 = PyTuple_New(6); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyTuple_New(6); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __Pyx_INCREF(__pyx_v_f_i);        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_f_i); @@ -62891,77 +63005,77 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        __Pyx_GIVEREF(__pyx_v_links);        __pyx_t_2 = 0;        __pyx_t_4 = 0; -      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_13 = PySet_Add(__pyx_cur_scope->__pyx_v_rules, __pyx_t_4); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_13 = PySet_Add(__pyx_cur_scope->__pyx_v_rules, __pyx_t_4); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        goto __pyx_L32;      }      __pyx_L32:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2001 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2009   *                 if links and f_j >= new_min_bound:   *                     rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))   *                 extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc, links, nt, False)             # <<<<<<<<<<<<<<   *                 nt[-1] = old_last_nt   *                 if link_i < nt[-1][3]:   */ -    __pyx_t_4 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2001; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2001; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_8 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_4, __pyx_v_new_e_i, __pyx_v_new_e_j, __pyx_v_new_min_bound, __pyx_v_wc, __pyx_v_links, __pyx_v_nt, Py_False); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2001; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_8 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_4, __pyx_v_new_e_i, __pyx_v_new_e_j, __pyx_v_new_min_bound, __pyx_v_wc, __pyx_v_links, __pyx_v_nt, Py_False); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2002 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2010   *                     rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))   *                 extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc, links, nt, False)   *                 nt[-1] = old_last_nt             # <<<<<<<<<<<<<<   *                 if link_i < nt[-1][3]:   *                     span_dec(cover, link_i, nt[-1][3] - 1)   */ -    if (unlikely(__Pyx_SetItemInt(__pyx_v_nt, -1, __pyx_v_old_last_nt, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2002; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_SetItemInt(__pyx_v_nt, -1, __pyx_v_old_last_nt, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2003 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2011   *                 extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc, links, nt, False)   *                 nt[-1] = old_last_nt   *                 if link_i < nt[-1][3]:             # <<<<<<<<<<<<<<   *                     span_dec(cover, link_i, nt[-1][3] - 1)   *                     span_dec(e_nt_cover, link_i, nt[-1][3] - 1)   */ -    __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2011; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_8); -    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_8, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_8, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2011; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -    __pyx_t_8 = PyObject_RichCompare(__pyx_v_link_i, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2003; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = PyObject_RichCompare(__pyx_v_link_i, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2003; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2004 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2012   *                 nt[-1] = old_last_nt   *                 if link_i < nt[-1][3]:   *                     span_dec(cover, link_i, nt[-1][3] - 1)             # <<<<<<<<<<<<<<   *                     span_dec(e_nt_cover, link_i, nt[-1][3] - 1)   *                 if link_j > nt[-1][4]:   */ -      __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8); -      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cover);        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_cover); @@ -62972,31 +63086,31 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4);        __Pyx_GIVEREF(__pyx_t_4);        __pyx_t_4 = 0; -      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2004; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2005 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2013   *                 if link_i < nt[-1][3]:   *                     span_dec(cover, link_i, nt[-1][3] - 1)   *                     span_dec(e_nt_cover, link_i, nt[-1][3] - 1)             # <<<<<<<<<<<<<<   *                 if link_j > nt[-1][4]:   *                     span_dec(cover, nt[-1][4] + 1, link_j)   */ -      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_8);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyNumber_Subtract(__pyx_t_8, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_Subtract(__pyx_t_8, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e_nt_cover);        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_cur_scope->__pyx_v_e_nt_cover); @@ -63007,7 +63121,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_1);        __Pyx_GIVEREF(__pyx_t_1);        __pyx_t_1 = 0; -      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -63016,43 +63130,43 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      }      __pyx_L33:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2006 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2014   *                     span_dec(cover, link_i, nt[-1][3] - 1)   *                     span_dec(e_nt_cover, link_i, nt[-1][3] - 1)   *                 if link_j > nt[-1][4]:             # <<<<<<<<<<<<<<   *                     span_dec(cover, nt[-1][4] + 1, link_j)   *                     span_dec(e_nt_cover, nt[-1][4] + 1, link_j)   */ -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2014; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2014; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_8);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = PyObject_RichCompare(__pyx_v_link_j, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_link_j, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      if (__pyx_t_5) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2007 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2015   *                     span_dec(e_nt_cover, link_i, nt[-1][3] - 1)   *                 if link_j > nt[-1][4]:   *                     span_dec(cover, nt[-1][4] + 1, link_j)             # <<<<<<<<<<<<<<   *                     span_dec(e_nt_cover, nt[-1][4] + 1, link_j)   *             # Try to start a new non-terminal, extract, extend   */ -      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1); -      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_8); -      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_8, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_8, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_8 = PyNumber_Add(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyNumber_Add(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cover);        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_cur_scope->__pyx_v_cover); @@ -63063,31 +63177,31 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_link_j);        __Pyx_GIVEREF(__pyx_v_link_j);        __pyx_t_8 = 0; -      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2008 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2016   *                 if link_j > nt[-1][4]:   *                     span_dec(cover, nt[-1][4] + 1, link_j)   *                     span_dec(e_nt_cover, nt[-1][4] + 1, link_j)             # <<<<<<<<<<<<<<   *             # Try to start a new non-terminal, extract, extend   *             if (not nt or f_j - nt[-1][2] > 1) and wc < self.max_length and len(nt) < self.max_nonterminals:   */ -      __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8); -      if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e_nt_cover);        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_e_nt_cover); @@ -63098,7 +63212,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_link_j);        __Pyx_GIVEREF(__pyx_v_link_j);        __pyx_t_4 = 0; -      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -63110,43 +63224,43 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    }    __pyx_L27:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2010 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2018   *                     span_dec(e_nt_cover, nt[-1][4] + 1, link_j)   *             # Try to start a new non-terminal, extract, extend   *             if (not nt or f_j - nt[-1][2] > 1) and wc < self.max_length and len(nt) < self.max_nonterminals:             # <<<<<<<<<<<<<<   *                 # Check for collisions   *                 if not span_check(cover, link_i, link_j):   */ -  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_nt); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_nt); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_t_3 = (!__pyx_t_5);    if (!__pyx_t_3) { -    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_4 = PyNumber_Subtract(__pyx_v_f_j, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyNumber_Subtract(__pyx_v_f_j, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_int_1, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_int_1, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __pyx_t_6 = __pyx_t_5;    } else {      __pyx_t_6 = __pyx_t_3;    }    if (__pyx_t_6) { -    if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_length); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_length); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_4 = PyObject_RichCompare(__pyx_v_wc, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_v_wc, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      if (__pyx_t_3) { -      __pyx_t_7 = PyObject_Length(__pyx_v_nt); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_7 = PyObject_Length(__pyx_v_nt); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }        __pyx_t_5 = (__pyx_t_7 < __pyx_cur_scope->__pyx_v_self->max_nonterminals);        __pyx_t_15 = __pyx_t_5;      } else { @@ -63158,17 +63272,17 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    }    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2012 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2020   *             if (not nt or f_j - nt[-1][2] > 1) and wc < self.max_length and len(nt) < self.max_nonterminals:   *                 # Check for collisions   *                 if not span_check(cover, link_i, link_j):             # <<<<<<<<<<<<<<   *                     return   *                 span_inc(cover, link_i, link_j)   */ -    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_check); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_check); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2020; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cover);      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_cover); @@ -63179,16 +63293,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      __Pyx_INCREF(__pyx_v_link_j);      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_link_j);      __Pyx_GIVEREF(__pyx_v_link_j); -    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      __pyx_t_6 = ((!__pyx_t_3) != 0);      if (__pyx_t_6) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2013 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2021   *                 # Check for collisions   *                 if not span_check(cover, link_i, link_j):   *                     return             # <<<<<<<<<<<<<< @@ -63200,17 +63314,17 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2014 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2022   *                 if not span_check(cover, link_i, link_j):   *                     return   *                 span_inc(cover, link_i, link_j)             # <<<<<<<<<<<<<<   *                 span_inc(e_nt_cover, link_i, link_j)   *                 nt.append([(nt[-1][0] + 1) if nt else 1, f_j, f_j, link_i, link_j])   */ -    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2014; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8); -    if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2014; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2014; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cover);      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_cover); @@ -63221,23 +63335,23 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      __Pyx_INCREF(__pyx_v_link_j);      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_link_j);      __Pyx_GIVEREF(__pyx_v_link_j); -    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2014; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2015 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2023   *                     return   *                 span_inc(cover, link_i, link_j)   *                 span_inc(e_nt_cover, link_i, link_j)             # <<<<<<<<<<<<<<   *                 nt.append([(nt[-1][0] + 1) if nt else 1, f_j, f_j, link_i, link_j])   *                 # Require at least one word in phrase   */ -    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_inc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2023; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e_nt_cover);      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_e_nt_cover); @@ -63248,27 +63362,27 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      __Pyx_INCREF(__pyx_v_link_j);      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_link_j);      __Pyx_GIVEREF(__pyx_v_link_j); -    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2016 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2024   *                 span_inc(cover, link_i, link_j)   *                 span_inc(e_nt_cover, link_i, link_j)   *                 nt.append([(nt[-1][0] + 1) if nt else 1, f_j, f_j, link_i, link_j])             # <<<<<<<<<<<<<<   *                 # Require at least one word in phrase   *                 if links and f_j >= new_min_bound:   */ -    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_nt); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_nt); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      if (__pyx_t_6) { -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2024; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2024; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __pyx_t_8 = __pyx_t_1; @@ -63277,7 +63391,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        __Pyx_INCREF(__pyx_int_1);        __pyx_t_8 = __pyx_int_1;      } -    __pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_8);      __Pyx_GIVEREF(__pyx_t_8); @@ -63294,20 +63408,20 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      PyList_SET_ITEM(__pyx_t_1, 4, __pyx_v_link_j);      __Pyx_GIVEREF(__pyx_v_link_j);      __pyx_t_8 = 0; -    __pyx_t_13 = __Pyx_PyObject_Append(__pyx_v_nt, __pyx_t_1); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2016; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_13 = __Pyx_PyObject_Append(__pyx_v_nt, __pyx_t_1); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2018 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2026   *                 nt.append([(nt[-1][0] + 1) if nt else 1, f_j, f_j, link_i, link_j])   *                 # Require at least one word in phrase   *                 if links and f_j >= new_min_bound:             # <<<<<<<<<<<<<<   *                     rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))   *                 extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc + 1, links, nt, False)   */ -    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_links); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_links); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      if (__pyx_t_6) { -      __pyx_t_1 = PyObject_RichCompare(__pyx_v_f_j, __pyx_v_new_min_bound, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2018; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_v_f_j, __pyx_v_new_min_bound, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __pyx_t_15 = __pyx_t_3;      } else { @@ -63315,34 +63429,34 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      }      if (__pyx_t_15) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2019 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2027   *                 # Require at least one word in phrase   *                 if links and f_j >= new_min_bound:   *                     rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))             # <<<<<<<<<<<<<<   *                 extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc + 1, links, nt, False)   *                 nt.pop()   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_rules)) { __Pyx_RaiseClosureNameError("rules"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      if (unlikely(!__pyx_cur_scope->__pyx_v_rules)) { __Pyx_RaiseClosureNameError("rules"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }        if (unlikely(__pyx_cur_scope->__pyx_v_rules == Py_None)) {          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add"); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_form_rule); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_form_rule); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1); -      if (unlikely(!__pyx_cur_scope->__pyx_v_f_words)) { __Pyx_RaiseClosureNameError("f_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_8 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_f_words)) { __Pyx_RaiseClosureNameError("f_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_8 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8); -      __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_f_words, 0, 0, &__pyx_v_f_i, &__pyx_t_8, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_f_words, 0, 0, &__pyx_v_f_i, &__pyx_t_8, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      if (unlikely(!__pyx_cur_scope->__pyx_v_e_words)) { __Pyx_RaiseClosureNameError("e_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_8 = PyNumber_Add(__pyx_v_new_e_j, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_e_words)) { __Pyx_RaiseClosureNameError("e_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_8 = PyNumber_Add(__pyx_v_new_e_j, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8); -      __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_e_words, 0, 0, &__pyx_v_new_e_i, &__pyx_t_8, NULL, 0, 0, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_cur_scope->__pyx_v_e_words, 0, 0, &__pyx_v_new_e_i, &__pyx_t_8, NULL, 0, 0, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_8 = PyTuple_New(6); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyTuple_New(6); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __Pyx_INCREF(__pyx_v_f_i);        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_f_i); @@ -63362,56 +63476,56 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc        __Pyx_GIVEREF(__pyx_v_links);        __pyx_t_4 = 0;        __pyx_t_2 = 0; -      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_13 = PySet_Add(__pyx_cur_scope->__pyx_v_rules, __pyx_t_2); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_13 = PySet_Add(__pyx_cur_scope->__pyx_v_rules, __pyx_t_2); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        goto __pyx_L37;      }      __pyx_L37:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2020 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2028   *                 if links and f_j >= new_min_bound:   *                     rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))   *                 extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc + 1, links, nt, False)             # <<<<<<<<<<<<<<   *                 nt.pop()   *                 span_dec(cover, link_i, link_j)   */ -    __pyx_t_2 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2020; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_8 = PyNumber_Add(__pyx_v_wc, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2020; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = PyNumber_Add(__pyx_v_wc, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8); -    if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2020; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_1 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_2, __pyx_v_new_e_i, __pyx_v_new_e_j, __pyx_v_new_min_bound, __pyx_t_8, __pyx_v_links, __pyx_v_nt, Py_False); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2020; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_1 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_2, __pyx_v_new_e_i, __pyx_v_new_e_j, __pyx_v_new_min_bound, __pyx_t_8, __pyx_v_links, __pyx_v_nt, Py_False); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2021 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2029   *                     rules.add(self.form_rule(f_i, new_e_i, f_words[f_i:f_j + 1], e_words[new_e_i:new_e_j + 1], nt, links))   *                 extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc + 1, links, nt, False)   *                 nt.pop()             # <<<<<<<<<<<<<<   *                 span_dec(cover, link_i, link_j)   *                 span_dec(e_nt_cover, link_i, link_j)   */ -    __pyx_t_1 = __Pyx_PyObject_Pop(__pyx_v_nt); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2021; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_Pop(__pyx_v_nt); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2022 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2030   *                 extract(f_i, f_j + 1, new_e_i, new_e_j, new_min_bound, wc + 1, links, nt, False)   *                 nt.pop()   *                 span_dec(cover, link_i, link_j)             # <<<<<<<<<<<<<<   *                 span_dec(e_nt_cover, link_i, link_j)   *    */ -    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_cover)) { __Pyx_RaiseClosureNameError("cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8);      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cover);      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_cur_scope->__pyx_v_cover); @@ -63422,23 +63536,23 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      __Pyx_INCREF(__pyx_v_link_j);      PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_link_j);      __Pyx_GIVEREF(__pyx_v_link_j); -    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2023 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2031   *                 nt.pop()   *                 span_dec(cover, link_i, link_j)   *                 span_dec(e_nt_cover, link_i, link_j)             # <<<<<<<<<<<<<<   *    *         # Try to extract phrases from every f index   */ -    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2023; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_span_dec); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2023; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2023; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_e_nt_cover)) { __Pyx_RaiseClosureNameError("e_nt_cover"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2031; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8);      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e_nt_cover);      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_cur_scope->__pyx_v_e_nt_cover); @@ -63449,7 +63563,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc      __Pyx_INCREF(__pyx_v_link_j);      PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_link_j);      __Pyx_GIVEREF(__pyx_v_link_j); -    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2023; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -63458,7 +63572,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    }    __pyx_L35:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1920 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1928   *         # f_ i and j are current, e_ i and j are previous   *         # We care _considering_ f_j, so it is not yet in counts   *         def extract(f_i, f_j, e_i, e_j, min_bound, wc, links, nt, nt_open):             # <<<<<<<<<<<<<< @@ -63492,7 +63606,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instanc    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1886 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1894   *     # Aggregate stats from a training instance   *     # (Extract rules, update counts)   *     def add_instance(self, f_words, e_words, alignment, ctx_name=None):             # <<<<<<<<<<<<<< @@ -63550,7 +63664,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e_words);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_e_words); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1888 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1896   *     def add_instance(self, f_words, e_words, alignment, ctx_name=None):   *    *         self.online = True             # <<<<<<<<<<<<<< @@ -63559,20 +63673,20 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc   */    __pyx_cur_scope->__pyx_v_self->online = 1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1895 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1903   *         # span more than once.   *         # (f, e, al, lex_f_i, lex_f_j)   *         rules = set()             # <<<<<<<<<<<<<<   *    *         f_len = len(f_words)   */ -  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1895; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_cur_scope->__pyx_v_rules = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1897 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1905   *         rules = set()   *    *         f_len = len(f_words)             # <<<<<<<<<<<<<< @@ -63581,15 +63695,15 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc   */    __pyx_t_1 = __pyx_cur_scope->__pyx_v_f_words;    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_cur_scope->__pyx_v_f_len = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1898 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1906   *    *         f_len = len(f_words)   *         e_len = len(e_words)             # <<<<<<<<<<<<<< @@ -63598,35 +63712,35 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc   */    __pyx_t_1 = __pyx_cur_scope->__pyx_v_e_words;    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1898; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1898; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_v_e_len = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1901 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1909   *    *         # Pre-compute alignment info   *         al = [[] for i in range(f_len)]             # <<<<<<<<<<<<<<   *         fe_span = [[e_len + 1, -1] for i in range(f_len)]   *         ef_span = [[f_len + 1, -1] for i in range(e_len)]   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f_len);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_f_len);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_f_len); -  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {      __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = 0;      __pyx_t_5 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;    } @@ -63635,16 +63749,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_3)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_3)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_4 = __pyx_t_5(__pyx_t_3); @@ -63652,7 +63766,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -63660,9 +63774,9 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      }      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);      __pyx_t_4 = 0; -    __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    }    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -63670,28 +63784,28 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc    __pyx_cur_scope->__pyx_v_al = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1902 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1910   *         # Pre-compute alignment info   *         al = [[] for i in range(f_len)]   *         fe_span = [[e_len + 1, -1] for i in range(f_len)]             # <<<<<<<<<<<<<<   *         ef_span = [[f_len + 1, -1] for i in range(e_len)]   *         for f, e in alignment:   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f_len);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_f_len);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_f_len); -  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {      __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = 0;      __pyx_t_5 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;    } @@ -63700,16 +63814,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_3)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_3)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_4 = __pyx_t_5(__pyx_t_3); @@ -63717,7 +63831,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -63725,9 +63839,9 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      }      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);      __pyx_t_4 = 0; -    __pyx_t_4 = PyNumber_Add(__pyx_v_e_len, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyNumber_Add(__pyx_v_e_len, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);      __Pyx_GIVEREF(__pyx_t_4); @@ -63735,7 +63849,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      PyList_SET_ITEM(__pyx_t_6, 1, __pyx_int_neg_1);      __Pyx_GIVEREF(__pyx_int_neg_1);      __pyx_t_4 = 0; -    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_6))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1902; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_6))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;    }    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -63743,28 +63857,28 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc    __pyx_cur_scope->__pyx_v_fe_span = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1903 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1911   *         al = [[] for i in range(f_len)]   *         fe_span = [[e_len + 1, -1] for i in range(f_len)]   *         ef_span = [[f_len + 1, -1] for i in range(e_len)]             # <<<<<<<<<<<<<<   *         for f, e in alignment:   *             al[f].append(e)   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_INCREF(__pyx_v_e_len);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_e_len);    __Pyx_GIVEREF(__pyx_v_e_len); -  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_6);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {      __pyx_t_3 = __pyx_t_6; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = 0;      __pyx_t_5 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;    } @@ -63773,16 +63887,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_3)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_3)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_6 = __pyx_t_5(__pyx_t_3); @@ -63790,7 +63904,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -63798,9 +63912,9 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      }      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);      __pyx_t_6 = 0; -    __pyx_t_6 = PyNumber_Add(__pyx_cur_scope->__pyx_v_f_len, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyNumber_Add(__pyx_cur_scope->__pyx_v_f_len, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);      __Pyx_GIVEREF(__pyx_t_6); @@ -63808,7 +63922,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_neg_1);      __Pyx_GIVEREF(__pyx_int_neg_1);      __pyx_t_6 = 0; -    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    }    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -63816,7 +63930,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc    __pyx_cur_scope->__pyx_v_ef_span = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1904 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1912   *         fe_span = [[e_len + 1, -1] for i in range(f_len)]   *         ef_span = [[f_len + 1, -1] for i in range(e_len)]   *         for f, e in alignment:             # <<<<<<<<<<<<<< @@ -63827,7 +63941,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      __pyx_t_1 = __pyx_v_alignment; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;      __pyx_t_5 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_alignment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_alignment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext;    } @@ -63835,16 +63949,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_3 = __pyx_t_5(__pyx_t_1); @@ -63852,7 +63966,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -63868,7 +63982,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        if (unlikely(size != 2)) {          if (size > 2) __Pyx_RaiseTooManyValuesError(2);          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { @@ -63881,15 +63995,15 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        __Pyx_INCREF(__pyx_t_4);        __Pyx_INCREF(__pyx_t_6);        #else -      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        #endif        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      } else {        Py_ssize_t index = -1; -      __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_7);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -63897,7 +64011,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        __Pyx_GOTREF(__pyx_t_4);        index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L11_unpacking_failed;        __Pyx_GOTREF(__pyx_t_6); -      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_8 = NULL;        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        goto __pyx_L12_unpacking_done; @@ -63905,7 +64019,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        __pyx_t_8 = NULL;        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_L12_unpacking_done:;      }      __Pyx_XDECREF_SET(__pyx_v_f, __pyx_t_4); @@ -63913,19 +64027,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      __Pyx_XDECREF_SET(__pyx_v_e, __pyx_t_6);      __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1905 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1913   *         ef_span = [[f_len + 1, -1] for i in range(e_len)]   *         for f, e in alignment:   *             al[f].append(e)             # <<<<<<<<<<<<<<   *             fe_span[f][0] = min(fe_span[f][0], e)   *             fe_span[f][1] = max(fe_span[f][1], e)   */ -    __pyx_t_3 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_al, __pyx_v_f); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_3 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_al, __pyx_v_f); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1913; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_9 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_e); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1905; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_e); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1906 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1914   *         for f, e in alignment:   *             al[f].append(e)   *             fe_span[f][0] = min(fe_span[f][0], e)             # <<<<<<<<<<<<<< @@ -63934,13 +64048,13 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc   */      __Pyx_INCREF(__pyx_v_e);      __pyx_t_3 = __pyx_v_e; -    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;      if (__pyx_t_10) {        __Pyx_INCREF(__pyx_t_3); @@ -63954,13 +64068,13 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      __pyx_t_3 = __pyx_t_6;      __Pyx_INCREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    if (unlikely(__Pyx_SetItemInt(__pyx_t_6, 0, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_SetItemInt(__pyx_t_6, 0, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1907 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1915   *             al[f].append(e)   *             fe_span[f][0] = min(fe_span[f][0], e)   *             fe_span[f][1] = max(fe_span[f][1], e)             # <<<<<<<<<<<<<< @@ -63969,13 +64083,13 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc   */      __Pyx_INCREF(__pyx_v_e);      __pyx_t_3 = __pyx_v_e; -    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;      if (__pyx_t_10) {        __Pyx_INCREF(__pyx_t_3); @@ -63989,13 +64103,13 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      __pyx_t_3 = __pyx_t_6;      __Pyx_INCREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fe_span, __pyx_v_f); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    if (unlikely(__Pyx_SetItemInt(__pyx_t_6, 1, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_SetItemInt(__pyx_t_6, 1, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1908 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1916   *             fe_span[f][0] = min(fe_span[f][0], e)   *             fe_span[f][1] = max(fe_span[f][1], e)   *             ef_span[e][0] = min(ef_span[e][0], f)             # <<<<<<<<<<<<<< @@ -64004,13 +64118,13 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc   */      __Pyx_INCREF(__pyx_v_f);      __pyx_t_3 = __pyx_v_f; -    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_e); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_e); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1916; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1916; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1908; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1908; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1916; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;      if (__pyx_t_10) {        __Pyx_INCREF(__pyx_t_3); @@ -64024,13 +64138,13 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      __pyx_t_3 = __pyx_t_6;      __Pyx_INCREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_e); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_e); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1916; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    if (unlikely(__Pyx_SetItemInt(__pyx_t_6, 0, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1908; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_SetItemInt(__pyx_t_6, 0, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1909 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1917   *             fe_span[f][1] = max(fe_span[f][1], e)   *             ef_span[e][0] = min(ef_span[e][0], f)   *             ef_span[e][1] = max(ef_span[e][1], f)             # <<<<<<<<<<<<<< @@ -64039,13 +64153,13 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc   */      __Pyx_INCREF(__pyx_v_f);      __pyx_t_3 = __pyx_v_f; -    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_e); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_e); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;      if (__pyx_t_10) {        __Pyx_INCREF(__pyx_t_3); @@ -64059,27 +64173,27 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      __pyx_t_3 = __pyx_t_6;      __Pyx_INCREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_e); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_ef_span, __pyx_v_e); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    if (unlikely(__Pyx_SetItemInt(__pyx_t_6, 1, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_SetItemInt(__pyx_t_6, 1, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1912 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1920   *    *         # Target side word coverage   *         cover = [0] * e_len             # <<<<<<<<<<<<<<   *         # Non-terminal coverage   *         f_nt_cover = [0] * f_len   */ -  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(__pyx_int_0);    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0);    __Pyx_GIVEREF(__pyx_int_0); -  { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_1, __pyx_v_e_len); if (unlikely(!__pyx_temp)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_1, __pyx_v_e_len); if (unlikely(!__pyx_temp)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_temp);      __Pyx_DECREF(__pyx_t_1);      __pyx_t_1 = __pyx_temp; @@ -64088,19 +64202,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc    __pyx_cur_scope->__pyx_v_cover = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1914 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1922   *         cover = [0] * e_len   *         # Non-terminal coverage   *         f_nt_cover = [0] * f_len             # <<<<<<<<<<<<<<   *         e_nt_cover = [0] * e_len   *    */ -  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(__pyx_int_0);    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0);    __Pyx_GIVEREF(__pyx_int_0); -  { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_1, __pyx_cur_scope->__pyx_v_f_len); if (unlikely(!__pyx_temp)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_1, __pyx_cur_scope->__pyx_v_f_len); if (unlikely(!__pyx_temp)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_temp);      __Pyx_DECREF(__pyx_t_1);      __pyx_t_1 = __pyx_temp; @@ -64108,19 +64222,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc    __pyx_v_f_nt_cover = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1915 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1923   *         # Non-terminal coverage   *         f_nt_cover = [0] * f_len   *         e_nt_cover = [0] * e_len             # <<<<<<<<<<<<<<   *    *         # Extract all possible hierarchical phrases starting at a source index   */ -  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(__pyx_int_0);    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0);    __Pyx_GIVEREF(__pyx_int_0); -  { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_1, __pyx_v_e_len); if (unlikely(!__pyx_temp)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_1, __pyx_v_e_len); if (unlikely(!__pyx_temp)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_temp);      __Pyx_DECREF(__pyx_t_1);      __pyx_t_1 = __pyx_temp; @@ -64129,44 +64243,44 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc    __pyx_cur_scope->__pyx_v_e_nt_cover = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1920 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1928   *         # f_ i and j are current, e_ i and j are previous   *         # We care _considering_ f_j, so it is not yet in counts   *         def extract(f_i, f_j, e_i, e_j, min_bound, wc, links, nt, nt_open):             # <<<<<<<<<<<<<<   *             # Phrase extraction limits   *             if f_j > (f_len - 1) or (f_j - f_i) + 1 > self.max_initial_size:   */ -  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_1extract, 0, __pyx_n_s_add_instance_locals_extract, ((PyObject*)__pyx_cur_scope), __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_1extract, 0, __pyx_n_s_add_instance_locals_extract, ((PyObject*)__pyx_cur_scope), __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_cur_scope->__pyx_v_extract = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2026 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2034   *    *         # Try to extract phrases from every f index   *         for f_i from 0 <= f_i < f_len:             # <<<<<<<<<<<<<<   *             # Skip if phrases won't be tight on left side   *             if not al[f_i]:   */ -  __pyx_t_11 = __Pyx_PyInt_As_long(__pyx_cur_scope->__pyx_v_f_len); if (unlikely((__pyx_t_11 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_11 = __Pyx_PyInt_As_long(__pyx_cur_scope->__pyx_v_f_len); if (unlikely((__pyx_t_11 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    for (__pyx_v_f_i = 0; __pyx_v_f_i < __pyx_t_11; __pyx_v_f_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2028 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2036   *         for f_i from 0 <= f_i < f_len:   *             # Skip if phrases won't be tight on left side   *             if not al[f_i]:             # <<<<<<<<<<<<<<   *                 continue   *             extract(f_i, f_i, f_len + 1, -1, f_i, 0, [], [], False)   */ -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_al, __pyx_v_f_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_al, __pyx_v_f_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2036; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2036; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __pyx_t_12 = ((!__pyx_t_10) != 0);      if (__pyx_t_12) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2029 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2037   *             # Skip if phrases won't be tight on left side   *             if not al[f_i]:   *                 continue             # <<<<<<<<<<<<<< @@ -64176,26 +64290,26 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        goto __pyx_L13_continue;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2030 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2038   *             if not al[f_i]:   *                 continue   *             extract(f_i, f_i, f_len + 1, -1, f_i, 0, [], [], False)             # <<<<<<<<<<<<<<   *    *         stats = self.online_stats[ctx_name]   */ -    __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v_f_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v_f_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_f_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_f_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_6 = PyNumber_Add(__pyx_cur_scope->__pyx_v_f_len, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyNumber_Add(__pyx_cur_scope->__pyx_v_f_len, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_f_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_f_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_7); -    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_13); -    __pyx_t_14 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_t_1, __pyx_t_3, __pyx_t_6, __pyx_int_neg_1, __pyx_t_4, __pyx_int_0, __pyx_t_7, __pyx_t_13, Py_False); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_14 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_12add_instance_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_t_1, __pyx_t_3, __pyx_t_6, __pyx_int_neg_1, __pyx_t_4, __pyx_int_0, __pyx_t_7, __pyx_t_13, Py_False); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_14);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -64207,33 +64321,33 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      __pyx_L13_continue:;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2032 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2040   *             extract(f_i, f_i, f_len + 1, -1, f_i, 0, [], [], False)   *    *         stats = self.online_stats[ctx_name]             # <<<<<<<<<<<<<<   *    *         # Update possible phrases (samples)   */ -  __pyx_t_14 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->online_stats, __pyx_v_ctx_name); if (unlikely(__pyx_t_14 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_14 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->online_stats, __pyx_v_ctx_name); if (unlikely(__pyx_t_14 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2040; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_14);    __pyx_v_stats = __pyx_t_14;    __pyx_t_14 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2037 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2045   *         # This could be more efficiently integrated with extraction   *         # at the cost of readability   *         for f, lex_i, lex_j in self.get_f_phrases(f_words):             # <<<<<<<<<<<<<<   *             stats.samples_f[f] += 1   *    */ -  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_get_f_phrases); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_get_f_phrases); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_14); -  __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_13);    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f_words);    PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_cur_scope->__pyx_v_f_words);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_f_words); -  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_13, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_13, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_7);    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; @@ -64241,7 +64355,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      __pyx_t_13 = __pyx_t_7; __Pyx_INCREF(__pyx_t_13); __pyx_t_2 = 0;      __pyx_t_5 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_13);      __pyx_t_5 = Py_TYPE(__pyx_t_13)->tp_iternext;    } @@ -64250,16 +64364,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_13)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_13)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_7 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_7 = PySequence_ITEM(__pyx_t_13, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PySequence_ITEM(__pyx_t_13, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_13)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_13)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_7 = PySequence_ITEM(__pyx_t_13, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PySequence_ITEM(__pyx_t_13, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_7 = __pyx_t_5(__pyx_t_13); @@ -64267,7 +64381,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -64283,7 +64397,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        if (unlikely(size != 3)) {          if (size > 3) __Pyx_RaiseTooManyValuesError(3);          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { @@ -64299,17 +64413,17 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        __Pyx_INCREF(__pyx_t_4);        __Pyx_INCREF(__pyx_t_6);        #else -      __pyx_t_14 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_14 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_14); -      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        #endif        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;      } else {        Py_ssize_t index = -1; -      __pyx_t_3 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; @@ -64319,7 +64433,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        __Pyx_GOTREF(__pyx_t_4);        index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L18_unpacking_failed;        __Pyx_GOTREF(__pyx_t_6); -      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_3), 3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_3), 3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_8 = NULL;        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        goto __pyx_L19_unpacking_done; @@ -64327,7 +64441,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __pyx_t_8 = NULL;        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2037; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_L19_unpacking_done:;      }      __Pyx_XDECREF_SET(__pyx_v_f, __pyx_t_14); @@ -64337,37 +64451,37 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      __Pyx_XDECREF_SET(__pyx_v_lex_j, __pyx_t_6);      __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2038 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2046   *         # at the cost of readability   *         for f, lex_i, lex_j in self.get_f_phrases(f_words):   *             stats.samples_f[f] += 1             # <<<<<<<<<<<<<<   *    *         # Update phrase counts   */ -    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_samples_f); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_samples_f); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_7);      __Pyx_INCREF(__pyx_v_f);      __pyx_t_6 = __pyx_v_f; -    __pyx_t_4 = PyObject_GetItem(__pyx_t_7, __pyx_t_6); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = PyObject_GetItem(__pyx_t_7, __pyx_t_6); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_14);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_6, __pyx_t_14) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_6, __pyx_t_14) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;    }    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2041 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2049   *    *         # Update phrase counts   *         for rule in rules:             # <<<<<<<<<<<<<<   *             (f_ph, e_ph, al) = rule[:3]   *             stats.phrases_f[f_ph] += 1   */ -  __pyx_t_13 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_rules); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2041; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_13 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_rules); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_13);    __pyx_t_5 = Py_TYPE(__pyx_t_13)->tp_iternext;    for (;;) { @@ -64377,7 +64491,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2041; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -64386,14 +64500,14 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      __Pyx_XDECREF_SET(__pyx_v_rule, __pyx_t_7);      __pyx_t_7 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2042 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2050   *         # Update phrase counts   *         for rule in rules:   *             (f_ph, e_ph, al) = rule[:3]             # <<<<<<<<<<<<<<   *             stats.phrases_f[f_ph] += 1   *             stats.phrases_e[e_ph] += 1   */ -    __pyx_t_7 = __Pyx_PyObject_GetSlice(__pyx_v_rule, 0, 3, NULL, NULL, &__pyx_slice__70, 0, 1, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = __Pyx_PyObject_GetSlice(__pyx_v_rule, 0, 3, NULL, NULL, &__pyx_slice__70, 0, 1, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_7);      if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {        PyObject* sequence = __pyx_t_7; @@ -64405,7 +64519,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        if (unlikely(size != 3)) {          if (size > 3) __Pyx_RaiseTooManyValuesError(3);          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { @@ -64421,17 +64535,17 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        __Pyx_INCREF(__pyx_t_14);        __Pyx_INCREF(__pyx_t_4);        #else -      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_14); -      __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        #endif        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;      } else {        Py_ssize_t index = -1; -      __pyx_t_3 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; @@ -64441,7 +64555,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        __Pyx_GOTREF(__pyx_t_14);        index = 2; __pyx_t_4 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L22_unpacking_failed;        __Pyx_GOTREF(__pyx_t_4); -      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_3), 3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_3), 3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_8 = NULL;        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        goto __pyx_L23_unpacking_done; @@ -64449,7 +64563,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __pyx_t_8 = NULL;        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_L23_unpacking_done:;      }      __Pyx_XDECREF_SET(__pyx_v_f_ph, __pyx_t_6); @@ -64461,105 +64575,105 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc      __Pyx_GIVEREF(__pyx_t_4);      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2043 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2051   *         for rule in rules:   *             (f_ph, e_ph, al) = rule[:3]   *             stats.phrases_f[f_ph] += 1             # <<<<<<<<<<<<<<   *             stats.phrases_e[e_ph] += 1   *             stats.phrases_fe[f_ph][e_ph] += 1   */ -    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_f); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_f); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2051; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_7);      __Pyx_INCREF(__pyx_v_f_ph);      __pyx_t_4 = __pyx_v_f_ph; -    __pyx_t_14 = PyObject_GetItem(__pyx_t_7, __pyx_t_4); if (unlikely(__pyx_t_14 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_14 = PyObject_GetItem(__pyx_t_7, __pyx_t_4); if (unlikely(__pyx_t_14 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2051; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_14); -    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2051; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_4, __pyx_t_6) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_4, __pyx_t_6) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2051; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2044 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2052   *             (f_ph, e_ph, al) = rule[:3]   *             stats.phrases_f[f_ph] += 1   *             stats.phrases_e[e_ph] += 1             # <<<<<<<<<<<<<<   *             stats.phrases_fe[f_ph][e_ph] += 1   *             if not stats.phrases_al[f_ph][e_ph]:   */ -    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_e); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2044; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_e); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_7);      __Pyx_INCREF(__pyx_v_e_ph);      __pyx_t_4 = __pyx_v_e_ph; -    __pyx_t_6 = PyObject_GetItem(__pyx_t_7, __pyx_t_4); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2044; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = PyObject_GetItem(__pyx_t_7, __pyx_t_4); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2052; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_int_1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2044; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_int_1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_14);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_4, __pyx_t_14) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2044; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_4, __pyx_t_14) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2045 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2053   *             stats.phrases_f[f_ph] += 1   *             stats.phrases_e[e_ph] += 1   *             stats.phrases_fe[f_ph][e_ph] += 1             # <<<<<<<<<<<<<<   *             if not stats.phrases_al[f_ph][e_ph]:   *                 stats.phrases_al[f_ph][e_ph] = al   */ -    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_fe); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_fe); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_7); -    __pyx_t_4 = PyObject_GetItem(__pyx_t_7, __pyx_v_f_ph); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = PyObject_GetItem(__pyx_t_7, __pyx_v_f_ph); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;      __Pyx_INCREF(__pyx_v_e_ph);      __pyx_t_7 = __pyx_v_e_ph; -    __pyx_t_14 = PyObject_GetItem(__pyx_t_4, __pyx_t_7); if (unlikely(__pyx_t_14 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_14 = PyObject_GetItem(__pyx_t_4, __pyx_t_7); if (unlikely(__pyx_t_14 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_14); -    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -    if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_7, __pyx_t_6) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_7, __pyx_t_6) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2046 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2054   *             stats.phrases_e[e_ph] += 1   *             stats.phrases_fe[f_ph][e_ph] += 1   *             if not stats.phrases_al[f_ph][e_ph]:             # <<<<<<<<<<<<<<   *                 stats.phrases_al[f_ph][e_ph] = al   *    */ -    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_al); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_al); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_7 = PyObject_GetItem(__pyx_t_4, __pyx_v_f_ph); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_7 = PyObject_GetItem(__pyx_t_4, __pyx_v_f_ph); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2054; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_7);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_4 = PyObject_GetItem(__pyx_t_7, __pyx_v_e_ph); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = PyObject_GetItem(__pyx_t_7, __pyx_v_e_ph); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2054; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __pyx_t_10 = ((!__pyx_t_12) != 0);      if (__pyx_t_10) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2047 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2055   *             stats.phrases_fe[f_ph][e_ph] += 1   *             if not stats.phrases_al[f_ph][e_ph]:   *                 stats.phrases_al[f_ph][e_ph] = al             # <<<<<<<<<<<<<<   *  - *         # Update bilexical dictionary (if exists) + *         # Update bilexical dictionary   */ -      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_al); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2047; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_al); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2055; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_7 = PyObject_GetItem(__pyx_t_4, __pyx_v_f_ph); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_7 = PyObject_GetItem(__pyx_t_4, __pyx_v_f_ph); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2055; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_7);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_e_ph, __pyx_cur_scope->__pyx_v_al) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2047; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_e_ph, __pyx_cur_scope->__pyx_v_al) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2055; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        goto __pyx_L24;      } @@ -64567,65 +64681,36 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc    }    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2050 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2058   *  - *         # Update bilexical dictionary (if exists) - *         if self.bilex:             # <<<<<<<<<<<<<< - *             self.bilex.update(f_words, e_words, alignment) - *         else: - */ -  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_self->bilex); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (__pyx_t_10) { - -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2051 - *         # Update bilexical dictionary (if exists) - *         if self.bilex: - *             self.bilex.update(f_words, e_words, alignment)             # <<<<<<<<<<<<<< - *         else: - *             logger.warning('No online bilexical dictionary specified, not updating lexical weights') - */ -    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->bilex, __pyx_n_s_update); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2051; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_13); -    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2051; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_7); -    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f_words); -    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_cur_scope->__pyx_v_f_words); -    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_f_words); -    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e_words); -    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_cur_scope->__pyx_v_e_words); -    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_e_words); -    __Pyx_INCREF(__pyx_v_alignment); -    PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_alignment); -    __Pyx_GIVEREF(__pyx_v_alignment); -    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2051; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); -    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    goto __pyx_L25; -  } -  /*else*/ { - -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2053 - *             self.bilex.update(f_words, e_words, alignment) - *         else: - *             logger.warning('No online bilexical dictionary specified, not updating lexical weights')             # <<<<<<<<<<<<<< + *         # Update bilexical dictionary + *         stats.bilex.update(f_words, e_words, alignment)             # <<<<<<<<<<<<<<   *    *     # Create a rule from source, target, non-terminals, and alignments   */ -    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_warning); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_7); -    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__71, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); -    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  } -  __pyx_L25:; +  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_bilex); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_13); +  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_7); +  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +  __pyx_t_13 = PyTuple_New(3); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_13); +  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f_words); +  PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_cur_scope->__pyx_v_f_words); +  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_f_words); +  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e_words); +  PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_cur_scope->__pyx_v_e_words); +  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_e_words); +  __Pyx_INCREF(__pyx_v_alignment); +  PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_v_alignment); +  __Pyx_GIVEREF(__pyx_v_alignment); +  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_4); +  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1886 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1894   *     # Aggregate stats from a training instance   *     # (Extract rules, update counts)   *     def add_instance(self, f_words, e_words, alignment, ctx_name=None):             # <<<<<<<<<<<<<< @@ -64664,7 +64749,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_25add_instanc    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2056 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2061   *    *     # Create a rule from source, target, non-terminals, and alignments   *     def form_rule(self, f_i, e_i, f_span, e_span, nt, al):             # <<<<<<<<<<<<<< @@ -64711,31 +64796,31 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_28form_rule(P          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_e_i)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2056; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2061; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_f_span)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2056; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2061; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  3:          if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_e_span)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2056; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2061; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  4:          if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nt)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, 4); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2056; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, 4); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2061; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  5:          if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_al)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, 5); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2056; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, 5); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2061; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "form_rule") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2056; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "form_rule") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2061; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {        goto __pyx_L5_argtuple_error; @@ -64756,7 +64841,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_28form_rule(P    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2056; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("form_rule", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2061; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.form_rule", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -64769,7 +64854,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_28form_rule(P    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2059 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2064   *    *         # Substitute in non-terminals   *         nt_inv = sorted(nt, cmp=lambda x, y: cmp(x[3], y[3]))             # <<<<<<<<<<<<<< @@ -64809,11 +64894,11 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_la          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("lambda6", 1, 2, 2, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("lambda6", 1, 2, 2, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda6") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda6") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {        goto __pyx_L5_argtuple_error; @@ -64826,7 +64911,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_la    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("lambda6", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("lambda6", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.form_rule.lambda6", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -64850,11 +64935,11 @@ static PyObject *__pyx_lambda_funcdef_lambda6(CYTHON_UNUSED PyObject *__pyx_self    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("lambda6", 0);    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_y, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_y, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); @@ -64862,7 +64947,7 @@ static PyObject *__pyx_lambda_funcdef_lambda6(CYTHON_UNUSED PyObject *__pyx_self    __Pyx_GIVEREF(__pyx_t_2);    __pyx_t_1 = 0;    __pyx_t_2 = 0; -  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_cmp, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_cmp, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __pyx_r = __pyx_t_2; @@ -64882,7 +64967,7 @@ static PyObject *__pyx_lambda_funcdef_lambda6(CYTHON_UNUSED PyObject *__pyx_self    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2083 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2088   *         # Adjusting alignment links takes some doing   *         links = [list(link) for sub in al for link in sub]   *         links_inv = sorted(links, cmp=lambda x, y: cmp(x[1], y[1]))             # <<<<<<<<<<<<<< @@ -64922,11 +65007,11 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_1l          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("lambda7", 1, 2, 2, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("lambda7", 1, 2, 2, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda7") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda7") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {        goto __pyx_L5_argtuple_error; @@ -64939,7 +65024,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_1l    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("lambda7", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("lambda7", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.form_rule.lambda7", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -64963,11 +65048,11 @@ static PyObject *__pyx_lambda_funcdef_lambda7(CYTHON_UNUSED PyObject *__pyx_self    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("lambda7", 0);    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_y, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_y, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); @@ -64975,7 +65060,7 @@ static PyObject *__pyx_lambda_funcdef_lambda7(CYTHON_UNUSED PyObject *__pyx_self    __Pyx_GIVEREF(__pyx_t_2);    __pyx_t_1 = 0;    __pyx_t_2 = 0; -  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_cmp, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_cmp, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __pyx_r = __pyx_t_2; @@ -64996,7 +65081,7 @@ static PyObject *__pyx_lambda_funcdef_lambda7(CYTHON_UNUSED PyObject *__pyx_self  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_4generator15(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2117 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2122   *         f = Phrase(f_sym)   *         e = Phrase(e_sym)   *         a = tuple(self.alignment.link(i, j) for i, j in links)             # <<<<<<<<<<<<<< @@ -65022,7 +65107,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_2g    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_4generator15, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_4generator15, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -65067,19 +65152,19 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_4g      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_links)) { __Pyx_RaiseClosureNameError("links"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_links)) { __Pyx_RaiseClosureNameError("links"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }    if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_links == Py_None)) {      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_links; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;    for (;;) {      if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;      #if CYTHON_COMPILING_IN_CPYTHON -    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      #else -    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      #endif      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {        PyObject* sequence = __pyx_t_3; @@ -65091,7 +65176,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_4g        if (unlikely(size != 2)) {          if (size > 2) __Pyx_RaiseTooManyValuesError(2);          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { @@ -65104,15 +65189,15 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_4g        __Pyx_INCREF(__pyx_t_4);        __Pyx_INCREF(__pyx_t_5);        #else -      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        #endif        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      } else {        Py_ssize_t index = -1; -      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; @@ -65120,7 +65205,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_4g        __Pyx_GOTREF(__pyx_t_4);        index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;        __Pyx_GOTREF(__pyx_t_5); -      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_7 = NULL;        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        goto __pyx_L7_unpacking_done; @@ -65128,7 +65213,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_4g        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __pyx_t_7 = NULL;        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_L7_unpacking_done:;      }      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_i); @@ -65139,10 +65224,10 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_4g      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_j, __pyx_t_5);      __Pyx_GIVEREF(__pyx_t_5);      __pyx_t_5 = 0; -    if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_cur_scope->__pyx_v_i); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_cur_scope->__pyx_v_j); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_3 = __Pyx_PyInt_From_int(((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alignment *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->alignment->__pyx_vtab)->link(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->alignment, __pyx_t_8, __pyx_t_9)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_cur_scope->__pyx_v_i); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_cur_scope->__pyx_v_j); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyInt_From_int(((struct __pyx_vtabstruct_4cdec_2sa_3_sa_Alignment *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->alignment->__pyx_vtab)->link(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->alignment, __pyx_t_8, __pyx_t_9)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_r = __pyx_t_3;      __pyx_t_3 = 0; @@ -65159,7 +65244,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_4g      __pyx_cur_scope->__pyx_t_0 = 0;      __Pyx_XGOTREF(__pyx_t_1);      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; -    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -65181,7 +65266,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_4g    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2056 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2061   *    *     # Create a rule from source, target, non-terminals, and alignments   *     def form_rule(self, f_i, e_i, f_span, e_span, nt, al):             # <<<<<<<<<<<<<< @@ -65238,52 +65323,52 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2059 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2064   *    *         # Substitute in non-terminals   *         nt_inv = sorted(nt, cmp=lambda x, y: cmp(x[3], y[3]))             # <<<<<<<<<<<<<<   *         f_sym = list(f_span[:])   *         off = f_i   */ -  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(__pyx_v_nt);    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_nt);    __Pyx_GIVEREF(__pyx_v_nt); -  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_lambda6, 0, __pyx_n_s_form_rule_locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_lambda6, 0, __pyx_n_s_form_rule_locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_cmp, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_cmp, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2059; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __pyx_v_nt_inv = __pyx_t_3;    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2060 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2065   *         # Substitute in non-terminals   *         nt_inv = sorted(nt, cmp=lambda x, y: cmp(x[3], y[3]))   *         f_sym = list(f_span[:])             # <<<<<<<<<<<<<<   *         off = f_i   *         for next_nt in nt:   */ -  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_f_span, 0, 0, NULL, NULL, &__pyx_slice__72, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2060; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_f_span, 0, 0, NULL, NULL, &__pyx_slice__71, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2060; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);    __Pyx_GIVEREF(__pyx_t_3);    __pyx_t_3 = 0; -  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2060; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __pyx_v_f_sym = ((PyObject*)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2061 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2066   *         nt_inv = sorted(nt, cmp=lambda x, y: cmp(x[3], y[3]))   *         f_sym = list(f_span[:])   *         off = f_i             # <<<<<<<<<<<<<< @@ -65293,7 +65378,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __Pyx_INCREF(__pyx_v_f_i);    __pyx_v_off = __pyx_v_f_i; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2062 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2067   *         f_sym = list(f_span[:])   *         off = f_i   *         for next_nt in nt:             # <<<<<<<<<<<<<< @@ -65304,7 +65389,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s      __pyx_t_3 = __pyx_v_nt; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;      __pyx_t_5 = NULL;    } else { -    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_nt); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_nt); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;    } @@ -65312,16 +65397,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s      if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_3)) {        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_3)) {        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_2 = __pyx_t_5(__pyx_t_3); @@ -65329,7 +65414,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -65338,28 +65423,28 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s      __Pyx_XDECREF_SET(__pyx_v_next_nt, __pyx_t_2);      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2063 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2068   *         off = f_i   *         for next_nt in nt:   *             nt_len = (next_nt[2] - next_nt[1]) + 1             # <<<<<<<<<<<<<<   *             i = 0   *             while i < nt_len:   */ -    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_next_nt, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2063; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_next_nt, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2063; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_6 = PyNumber_Subtract(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2063; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyNumber_Subtract(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2063; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_XDECREF_SET(__pyx_v_nt_len, __pyx_t_1);      __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2064 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2069   *         for next_nt in nt:   *             nt_len = (next_nt[2] - next_nt[1]) + 1   *             i = 0             # <<<<<<<<<<<<<< @@ -65369,7 +65454,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s      __Pyx_INCREF(__pyx_int_0);      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_int_0); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2065 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2070   *             nt_len = (next_nt[2] - next_nt[1]) + 1   *             i = 0   *             while i < nt_len:             # <<<<<<<<<<<<<< @@ -65377,75 +65462,75 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s   *                 i += 1   */      while (1) { -      __pyx_t_1 = PyObject_RichCompare(__pyx_v_i, __pyx_v_nt_len, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_v_i, __pyx_v_nt_len, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2070; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        if (!__pyx_t_7) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2066 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2071   *             i = 0   *             while i < nt_len:   *                 f_sym.pop(next_nt[1] - off)             # <<<<<<<<<<<<<<   *                 i += 1   *             f_sym.insert(next_nt[1] - off, sym_setindex(self.category, next_nt[0]))   */ -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_6 = PyNumber_Subtract(__pyx_t_1, __pyx_v_off); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyNumber_Subtract(__pyx_t_1, __pyx_v_off); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      __pyx_t_6 = __Pyx_PyList_PopIndex(__pyx_v_f_sym, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyList_PopIndex(__pyx_v_f_sym, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2067 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2072   *             while i < nt_len:   *                 f_sym.pop(next_nt[1] - off)   *                 i += 1             # <<<<<<<<<<<<<<   *             f_sym.insert(next_nt[1] - off, sym_setindex(self.category, next_nt[0]))   *             off += (nt_len - 1)   */ -      __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_6);        __pyx_t_6 = 0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2068 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2073   *                 f_sym.pop(next_nt[1] - off)   *                 i += 1   *             f_sym.insert(next_nt[1] - off, sym_setindex(self.category, next_nt[0]))             # <<<<<<<<<<<<<<   *             off += (nt_len - 1)   *         e_sym = list(e_span[:])   */ -    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_next_nt, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_next_nt, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_1 = PyNumber_Subtract(__pyx_t_6, __pyx_v_off); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Subtract(__pyx_t_6, __pyx_v_off); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, __pyx_t_9)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, __pyx_t_9)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_10 = PyList_Insert(__pyx_v_f_sym, __pyx_t_8, __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = PyList_Insert(__pyx_v_f_sym, __pyx_t_8, __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2069 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2074   *                 i += 1   *             f_sym.insert(next_nt[1] - off, sym_setindex(self.category, next_nt[0]))   *             off += (nt_len - 1)             # <<<<<<<<<<<<<<   *         e_sym = list(e_span[:])   *         off = e_i   */ -    __pyx_t_1 = PyNumber_Subtract(__pyx_v_nt_len, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2069; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Subtract(__pyx_v_nt_len, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_off, __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2069; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_off, __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF_SET(__pyx_v_off, __pyx_t_6); @@ -65453,27 +65538,27 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    }    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2070 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2075   *             f_sym.insert(next_nt[1] - off, sym_setindex(self.category, next_nt[0]))   *             off += (nt_len - 1)   *         e_sym = list(e_span[:])             # <<<<<<<<<<<<<<   *         off = e_i   *         for next_nt in nt_inv:   */ -  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_e_span, 0, 0, NULL, NULL, &__pyx_slice__73, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2070; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_e_span, 0, 0, NULL, NULL, &__pyx_slice__72, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2075; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2070; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2075; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_6);    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);    __Pyx_GIVEREF(__pyx_t_3);    __pyx_t_3 = 0; -  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2070; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2075; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;    __pyx_v_e_sym = ((PyObject*)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2071 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2076   *             off += (nt_len - 1)   *         e_sym = list(e_span[:])   *         off = e_i             # <<<<<<<<<<<<<< @@ -65483,7 +65568,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __Pyx_INCREF(__pyx_v_e_i);    __Pyx_DECREF_SET(__pyx_v_off, __pyx_v_e_i); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2072 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2077   *         e_sym = list(e_span[:])   *         off = e_i   *         for next_nt in nt_inv:             # <<<<<<<<<<<<<< @@ -65494,7 +65579,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s      __pyx_t_3 = __pyx_v_nt_inv; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;      __pyx_t_5 = NULL;    } else { -    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_nt_inv); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_nt_inv); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;    } @@ -65502,16 +65587,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s      if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_3)) {        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_3)) {        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_6 = __pyx_t_5(__pyx_t_3); @@ -65519,7 +65604,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -65528,28 +65613,28 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s      __Pyx_XDECREF_SET(__pyx_v_next_nt, __pyx_t_6);      __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2073 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2078   *         off = e_i   *         for next_nt in nt_inv:   *             nt_len = (next_nt[4] - next_nt[3]) + 1             # <<<<<<<<<<<<<<   *             i = 0   *             while i < nt_len:   */ -    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_next_nt, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_next_nt, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2078; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2078; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_2 = PyNumber_Subtract(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyNumber_Subtract(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __Pyx_XDECREF_SET(__pyx_v_nt_len, __pyx_t_1);      __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2074 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2079   *         for next_nt in nt_inv:   *             nt_len = (next_nt[4] - next_nt[3]) + 1   *             i = 0             # <<<<<<<<<<<<<< @@ -65559,7 +65644,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s      __Pyx_INCREF(__pyx_int_0);      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_int_0); -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2075 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2080   *             nt_len = (next_nt[4] - next_nt[3]) + 1   *             i = 0   *             while i < nt_len:             # <<<<<<<<<<<<<< @@ -65567,75 +65652,75 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s   *                 i += 1   */      while (1) { -      __pyx_t_1 = PyObject_RichCompare(__pyx_v_i, __pyx_v_nt_len, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2075; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2075; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_v_i, __pyx_v_nt_len, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2080; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        if (!__pyx_t_7) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2076 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2081   *             i = 0   *             while i < nt_len:   *                 e_sym.pop(next_nt[3] - off)             # <<<<<<<<<<<<<<   *                 i += 1   *             e_sym.insert(next_nt[3] - off, sym_setindex(self.category, next_nt[0]))   */ -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2081; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1); -      __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_v_off); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_v_off); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = __Pyx_PyList_PopIndex(__pyx_v_e_sym, __pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_PyList_PopIndex(__pyx_v_e_sym, __pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2077 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2082   *             while i < nt_len:   *                 e_sym.pop(next_nt[3] - off)   *                 i += 1             # <<<<<<<<<<<<<<   *             e_sym.insert(next_nt[3] - off, sym_setindex(self.category, next_nt[0]))   *             off += (nt_len - 1)   */ -      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2077; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_2);        __pyx_t_2 = 0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2078 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2083   *                 e_sym.pop(next_nt[3] - off)   *                 i += 1   *             e_sym.insert(next_nt[3] - off, sym_setindex(self.category, next_nt[0]))             # <<<<<<<<<<<<<<   *             off += (nt_len - 1)   *    */ -    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_next_nt, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_next_nt, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_v_off); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_v_off); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_next_nt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, __pyx_t_9)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, __pyx_t_9)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_10 = PyList_Insert(__pyx_v_e_sym, __pyx_t_8, __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2078; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_10 = PyList_Insert(__pyx_v_e_sym, __pyx_t_8, __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2079 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2084   *                 i += 1   *             e_sym.insert(next_nt[3] - off, sym_setindex(self.category, next_nt[0]))   *             off += (nt_len - 1)             # <<<<<<<<<<<<<<   *    *         # Adjusting alignment links takes some doing   */ -    __pyx_t_1 = PyNumber_Subtract(__pyx_v_nt_len, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2079; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Subtract(__pyx_v_nt_len, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2084; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_off, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2079; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_off, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2084; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF_SET(__pyx_v_off, __pyx_t_2); @@ -65643,20 +65728,20 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    }    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2082 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2087   *    *         # Adjusting alignment links takes some doing   *         links = [list(link) for sub in al for link in sub]             # <<<<<<<<<<<<<<   *         links_inv = sorted(links, cmp=lambda x, y: cmp(x[1], y[1]))   *         links_len = len(links)   */ -  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    if (PyList_CheckExact(__pyx_v_al) || PyTuple_CheckExact(__pyx_v_al)) {      __pyx_t_2 = __pyx_v_al; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;      __pyx_t_5 = NULL;    } else { -    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_al); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_al); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext;    } @@ -65664,16 +65749,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s      if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_2)) {        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_2)) {        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_1 = __pyx_t_5(__pyx_t_2); @@ -65681,7 +65766,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -65693,7 +65778,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s        __pyx_t_1 = __pyx_v_sub; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;        __pyx_t_11 = NULL;      } else { -      __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_sub); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_sub); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext;      } @@ -65701,16 +65786,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s        if (!__pyx_t_11 && PyList_CheckExact(__pyx_t_1)) {          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;          #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #else -        __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #endif        } else if (!__pyx_t_11 && PyTuple_CheckExact(__pyx_t_1)) {          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;          #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #else -        __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          #endif        } else {          __pyx_t_6 = __pyx_t_11(__pyx_t_1); @@ -65718,7 +65803,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s            PyObject* exc_type = PyErr_Occurred();            if (exc_type) {              if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -            else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            }            break;          } @@ -65726,15 +65811,15 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s        }        __Pyx_XDECREF_SET(__pyx_v_link, __pyx_t_6);        __pyx_t_6 = 0; -      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_INCREF(__pyx_v_link);        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_link);        __Pyx_GIVEREF(__pyx_v_link); -      __pyx_t_12 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), __pyx_t_6, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_12 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), __pyx_t_6, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_12);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_12))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_12))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;      }      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -65744,32 +65829,32 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __pyx_cur_scope->__pyx_v_links = ((PyObject*)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2083 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2088   *         # Adjusting alignment links takes some doing   *         links = [list(link) for sub in al for link in sub]   *         links_inv = sorted(links, cmp=lambda x, y: cmp(x[1], y[1]))             # <<<<<<<<<<<<<<   *         links_len = len(links)   *         nt_len = len(nt)   */ -  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_links);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_links);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_links); -  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_1lambda7, 0, __pyx_n_s_form_rule_locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_1lambda7, 0, __pyx_n_s_form_rule_locals_lambda, NULL, __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_cmp, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_cmp, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2083; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __pyx_v_links_inv = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2084 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2089   *         links = [list(link) for sub in al for link in sub]   *         links_inv = sorted(links, cmp=lambda x, y: cmp(x[1], y[1]))   *         links_len = len(links)             # <<<<<<<<<<<<<< @@ -65780,26 +65865,26 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __Pyx_INCREF(__pyx_t_1);    if (unlikely(__pyx_t_1 == Py_None)) {      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); -    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  __pyx_t_4 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_links_len = __pyx_t_4; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2085 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2090   *         links_inv = sorted(links, cmp=lambda x, y: cmp(x[1], y[1]))   *         links_len = len(links)   *         nt_len = len(nt)             # <<<<<<<<<<<<<<   *         nt_i = 0   *         off = f_i   */ -  __pyx_t_4 = PyObject_Length(__pyx_v_nt); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2085; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2085; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyObject_Length(__pyx_v_nt); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_XDECREF_SET(__pyx_v_nt_len, __pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2086 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2091   *         links_len = len(links)   *         nt_len = len(nt)   *         nt_i = 0             # <<<<<<<<<<<<<< @@ -65809,7 +65894,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __Pyx_INCREF(__pyx_int_0);    __pyx_v_nt_i = __pyx_int_0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2087 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2092   *         nt_len = len(nt)   *         nt_i = 0   *         off = f_i             # <<<<<<<<<<<<<< @@ -65819,7 +65904,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __Pyx_INCREF(__pyx_v_f_i);    __Pyx_DECREF_SET(__pyx_v_off, __pyx_v_f_i); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2088 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2093   *         nt_i = 0   *         off = f_i   *         i = 0             # <<<<<<<<<<<<<< @@ -65829,7 +65914,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __Pyx_INCREF(__pyx_int_0);    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_int_0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2089 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2094   *         off = f_i   *         i = 0   *         while i < links_len:             # <<<<<<<<<<<<<< @@ -65837,15 +65922,15 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s   *                 off += (nt[nt_i][2] - nt[nt_i][1])   */    while (1) { -    __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_links_len); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2089; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_links_len); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_2 = PyObject_RichCompare(__pyx_v_i, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2089; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyObject_RichCompare(__pyx_v_i, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2089; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      if (!__pyx_t_7) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2090 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2095   *         i = 0   *         while i < links_len:   *             while nt_i < nt_len and links[i][0] > nt[nt_i][1]:             # <<<<<<<<<<<<<< @@ -65853,24 +65938,24 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s   *                 nt_i += 1   */      while (1) { -      __pyx_t_2 = PyObject_RichCompare(__pyx_v_nt_i, __pyx_v_nt_len, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyObject_RichCompare(__pyx_v_nt_i, __pyx_v_nt_len, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        if (__pyx_t_7) { -        __pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_links, __pyx_v_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_links, __pyx_v_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_2); -        __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_1);          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -        __pyx_t_2 = PyObject_GetItem(__pyx_v_nt, __pyx_v_nt_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_2 = PyObject_GetItem(__pyx_v_nt, __pyx_v_nt_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_2); -        __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_3);          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -        __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;          __pyx_t_14 = __pyx_t_13;        } else { @@ -65878,79 +65963,79 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s        }        if (!__pyx_t_14) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2091 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2096   *         while i < links_len:   *             while nt_i < nt_len and links[i][0] > nt[nt_i][1]:   *                 off += (nt[nt_i][2] - nt[nt_i][1])             # <<<<<<<<<<<<<<   *                 nt_i += 1   *             links[i][0] -= off   */ -      __pyx_t_2 = PyObject_GetItem(__pyx_v_nt, __pyx_v_nt_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = PyObject_GetItem(__pyx_v_nt, __pyx_v_nt_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2096; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2096; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyObject_GetItem(__pyx_v_nt, __pyx_v_nt_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = PyObject_GetItem(__pyx_v_nt, __pyx_v_nt_i); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2096; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2096; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2091; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2096; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_off, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2091; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_off, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2096; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __Pyx_DECREF_SET(__pyx_v_off, __pyx_t_1);        __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2092 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2097   *             while nt_i < nt_len and links[i][0] > nt[nt_i][1]:   *                 off += (nt[nt_i][2] - nt[nt_i][1])   *                 nt_i += 1             # <<<<<<<<<<<<<<   *             links[i][0] -= off   *             i += 1   */ -      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_nt_i, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2092; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_nt_i, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2097; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF_SET(__pyx_v_nt_i, __pyx_t_1);        __pyx_t_1 = 0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2093 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2098   *                 off += (nt[nt_i][2] - nt[nt_i][1])   *                 nt_i += 1   *             links[i][0] -= off             # <<<<<<<<<<<<<<   *             i += 1   *         nt_i = 0   */ -    __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_links, __pyx_v_i); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_links, __pyx_v_i); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2098; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_4 = 0; -    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_4, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_4, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2098; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_3 = PyNumber_InPlaceSubtract(__pyx_t_2, __pyx_v_off); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2093; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyNumber_InPlaceSubtract(__pyx_t_2, __pyx_v_off); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_t_4, __pyx_t_3, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2093; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_t_4, __pyx_t_3, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2094 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2099   *                 nt_i += 1   *             links[i][0] -= off   *             i += 1             # <<<<<<<<<<<<<<   *         nt_i = 0   *         off = e_i   */ -    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2094; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_1);      __pyx_t_1 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2095 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2100   *             links[i][0] -= off   *             i += 1   *         nt_i = 0             # <<<<<<<<<<<<<< @@ -65960,7 +66045,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __Pyx_INCREF(__pyx_int_0);    __Pyx_DECREF_SET(__pyx_v_nt_i, __pyx_int_0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2096 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2101   *             i += 1   *         nt_i = 0   *         off = e_i             # <<<<<<<<<<<<<< @@ -65970,7 +66055,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __Pyx_INCREF(__pyx_v_e_i);    __Pyx_DECREF_SET(__pyx_v_off, __pyx_v_e_i); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2097 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2102   *         nt_i = 0   *         off = e_i   *         i = 0             # <<<<<<<<<<<<<< @@ -65980,7 +66065,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __Pyx_INCREF(__pyx_int_0);    __Pyx_DECREF_SET(__pyx_v_i, __pyx_int_0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2098 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2103   *         off = e_i   *         i = 0   *         while i < links_len:             # <<<<<<<<<<<<<< @@ -65988,15 +66073,15 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s   *                 off += (nt_inv[nt_i][4] - nt_inv[nt_i][3])   */    while (1) { -    __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_links_len); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_links_len); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_3 = PyObject_RichCompare(__pyx_v_i, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_RichCompare(__pyx_v_i, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      if (!__pyx_t_14) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2099 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2104   *         i = 0   *         while i < links_len:   *             while nt_i < nt_len and links_inv[i][1] > nt_inv[nt_i][3]:             # <<<<<<<<<<<<<< @@ -66004,24 +66089,24 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s   *                 nt_i += 1   */      while (1) { -      __pyx_t_3 = PyObject_RichCompare(__pyx_v_nt_i, __pyx_v_nt_len, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2099; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2099; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyObject_RichCompare(__pyx_v_nt_i, __pyx_v_nt_len, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        if (__pyx_t_14) { -        __pyx_t_3 = PyObject_GetItem(__pyx_v_links_inv, __pyx_v_i); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_3 = PyObject_GetItem(__pyx_v_links_inv, __pyx_v_i); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2104; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_3); -        __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2104; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_1);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        __pyx_t_3 = PyObject_GetItem(__pyx_v_nt_inv, __pyx_v_nt_i); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_3 = PyObject_GetItem(__pyx_v_nt_inv, __pyx_v_nt_i); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2104; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_3); -        __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2104; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_2);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2099; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2099; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;          __pyx_t_13 = __pyx_t_7;        } else { @@ -66029,79 +66114,79 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s        }        if (!__pyx_t_13) break; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2100 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2105   *         while i < links_len:   *             while nt_i < nt_len and links_inv[i][1] > nt_inv[nt_i][3]:   *                 off += (nt_inv[nt_i][4] - nt_inv[nt_i][3])             # <<<<<<<<<<<<<<   *                 nt_i += 1   *             links_inv[i][1] -= off   */ -      __pyx_t_3 = PyObject_GetItem(__pyx_v_nt_inv, __pyx_v_nt_i); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_3 = PyObject_GetItem(__pyx_v_nt_inv, __pyx_v_nt_i); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2105; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2105; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      __pyx_t_3 = PyObject_GetItem(__pyx_v_nt_inv, __pyx_v_nt_i); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_3 = PyObject_GetItem(__pyx_v_nt_inv, __pyx_v_nt_i); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2105; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2105; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      __pyx_t_3 = PyNumber_Subtract(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyNumber_Subtract(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_off, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_off, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __Pyx_DECREF_SET(__pyx_v_off, __pyx_t_1);        __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2101 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2106   *             while nt_i < nt_len and links_inv[i][1] > nt_inv[nt_i][3]:   *                 off += (nt_inv[nt_i][4] - nt_inv[nt_i][3])   *                 nt_i += 1             # <<<<<<<<<<<<<<   *             links_inv[i][1] -= off   *             i += 1   */ -      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_nt_i, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_nt_i, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF_SET(__pyx_v_nt_i, __pyx_t_1);        __pyx_t_1 = 0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2102 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2107   *                 off += (nt_inv[nt_i][4] - nt_inv[nt_i][3])   *                 nt_i += 1   *             links_inv[i][1] -= off             # <<<<<<<<<<<<<<   *             i += 1   *    */ -    __pyx_t_1 = PyObject_GetItem(__pyx_v_links_inv, __pyx_v_i); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = PyObject_GetItem(__pyx_v_links_inv, __pyx_v_i); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_4 = 1; -    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_4, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_4, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_2 = PyNumber_InPlaceSubtract(__pyx_t_3, __pyx_v_off); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyNumber_InPlaceSubtract(__pyx_t_3, __pyx_v_off); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_t_4, __pyx_t_2, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_t_4, __pyx_t_2, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2103 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2108   *                 nt_i += 1   *             links_inv[i][1] -= off   *             i += 1             # <<<<<<<<<<<<<<   *    *         # Find lexical span   */ -    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_1);      __pyx_t_1 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2106 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2111   *    *         # Find lexical span   *         lex_f_i = f_i             # <<<<<<<<<<<<<< @@ -66111,75 +66196,75 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __Pyx_INCREF(__pyx_v_f_i);    __pyx_v_lex_f_i = __pyx_v_f_i; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2107 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2112   *         # Find lexical span   *         lex_f_i = f_i   *         lex_f_j = f_i + (len(f_span) - 1)             # <<<<<<<<<<<<<<   *         if nt:   *             if nt[0][1] == lex_f_i:   */ -  __pyx_t_4 = PyObject_Length(__pyx_v_f_span); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_1 = PyInt_FromSsize_t((__pyx_t_4 - 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyObject_Length(__pyx_v_f_span); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromSsize_t((__pyx_t_4 - 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyNumber_Add(__pyx_v_f_i, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyNumber_Add(__pyx_v_f_i, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_lex_f_j = __pyx_t_2;    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2108 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2113   *         lex_f_i = f_i   *         lex_f_j = f_i + (len(f_span) - 1)   *         if nt:             # <<<<<<<<<<<<<<   *             if nt[0][1] == lex_f_i:   *                 lex_f_i += (nt[0][2] - nt[0][1]) + 1   */ -  __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_nt); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_nt); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_13) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2109 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2114   *         lex_f_j = f_i + (len(f_span) - 1)   *         if nt:   *             if nt[0][1] == lex_f_i:             # <<<<<<<<<<<<<<   *                 lex_f_i += (nt[0][2] - nt[0][1]) + 1   *             if nt[-1][2] == lex_f_j:   */ -    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2114; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2114; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_lex_f_i, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2109; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_lex_f_i, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2109; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      if (__pyx_t_13) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2110 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2115   *         if nt:   *             if nt[0][1] == lex_f_i:   *                 lex_f_i += (nt[0][2] - nt[0][1]) + 1             # <<<<<<<<<<<<<<   *             if nt[-1][2] == lex_f_j:   *                 lex_f_j -= (nt[-1][2] - nt[-1][1]) + 1   */ -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_lex_f_i, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_lex_f_i, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __Pyx_DECREF_SET(__pyx_v_lex_f_i, __pyx_t_2); @@ -66188,49 +66273,49 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s      }      __pyx_L24:; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2111 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2116   *             if nt[0][1] == lex_f_i:   *                 lex_f_i += (nt[0][2] - nt[0][1]) + 1   *             if nt[-1][2] == lex_f_j:             # <<<<<<<<<<<<<<   *                 lex_f_j -= (nt[-1][2] - nt[-1][1]) + 1   *    */ -    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_v_lex_f_j, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_v_lex_f_j, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      if (__pyx_t_13) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2112 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2117   *                 lex_f_i += (nt[0][2] - nt[0][1]) + 1   *             if nt[-1][2] == lex_f_j:   *                 lex_f_j -= (nt[-1][2] - nt[-1][1]) + 1             # <<<<<<<<<<<<<<   *    *         # Create rule (f_phrase, e_phrase, links, f_link_min, f_link_max)   */ -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_nt, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;};        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_2 = PyNumber_InPlaceSubtract(__pyx_v_lex_f_j, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_InPlaceSubtract(__pyx_v_lex_f_j, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        __Pyx_DECREF_SET(__pyx_v_lex_f_j, __pyx_t_2); @@ -66242,63 +66327,63 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    }    __pyx_L23:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2115 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2120   *    *         # Create rule (f_phrase, e_phrase, links, f_link_min, f_link_max)   *         f = Phrase(f_sym)             # <<<<<<<<<<<<<<   *         e = Phrase(e_sym)   *         a = tuple(self.alignment.link(i, j) for i, j in links)   */ -  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_INCREF(__pyx_v_f_sym);    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_f_sym);    __Pyx_GIVEREF(__pyx_v_f_sym); -  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __pyx_v_f = ((struct __pyx_obj_4cdec_2sa_3_sa_Phrase *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2116 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2121   *         # Create rule (f_phrase, e_phrase, links, f_link_min, f_link_max)   *         f = Phrase(f_sym)   *         e = Phrase(e_sym)             # <<<<<<<<<<<<<<   *         a = tuple(self.alignment.link(i, j) for i, j in links)   *         return (f, e, a, lex_f_i, lex_f_j)   */ -  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(__pyx_v_e_sym);    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_e_sym);    __Pyx_GIVEREF(__pyx_v_e_sym); -  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_e = ((struct __pyx_obj_4cdec_2sa_3_sa_Phrase *)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2117 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2122   *         f = Phrase(f_sym)   *         e = Phrase(e_sym)   *         a = tuple(self.alignment.link(i, j) for i, j in links)             # <<<<<<<<<<<<<<   *         return (f, e, a, lex_f_i, lex_f_j)   *    */ -  __pyx_t_2 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_2genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_9form_rule_2genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    __pyx_t_2 = 0; -  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_a = ((PyObject*)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2118 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2123   *         e = Phrase(e_sym)   *         a = tuple(self.alignment.link(i, j) for i, j in links)   *         return (f, e, a, lex_f_i, lex_f_j)             # <<<<<<<<<<<<<< @@ -66306,7 +66391,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s   *     # Rule string from rule   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_INCREF(((PyObject *)__pyx_v_f));    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_f)); @@ -66327,7 +66412,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2056 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2061   *    *     # Create a rule from source, target, non-terminals, and alignments   *     def form_rule(self, f_i, e_i, f_span, e_span, nt, al):             # <<<<<<<<<<<<<< @@ -66367,7 +66452,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_27form_rule(s    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2121 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2126   *    *     # Rule string from rule   *     def fmt_rule(self, f, e, a):             # <<<<<<<<<<<<<< @@ -66408,16 +66493,16 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_30fmt_rule(Py          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_e)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("fmt_rule", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("fmt_rule", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2126; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("fmt_rule", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("fmt_rule", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2126; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fmt_rule") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fmt_rule") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2126; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -66432,7 +66517,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_30fmt_rule(Py    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("fmt_rule", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2121; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("fmt_rule", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2126; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.fmt_rule", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -66446,7 +66531,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_30fmt_rule(Py  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_2generator16(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2122 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2127   *     # Rule string from rule   *     def fmt_rule(self, f, e, a):   *         a_str = ' '.join('{0}-{1}'.format(*self.alignment.unlink(packed)) for packed in a)             # <<<<<<<<<<<<<< @@ -66472,7 +66557,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_gen    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);    { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_2generator16, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_2generator16, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_cur_scope);      __Pyx_RefNannyFinishContext();      return (PyObject *) gen; @@ -66515,13 +66600,13 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_2ge      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_a)) { __Pyx_RaiseClosureNameError("a"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_a)) { __Pyx_RaiseClosureNameError("a"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }    if (PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_a) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_a)) {      __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_a; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_a); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_a); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    } @@ -66529,16 +66614,16 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_2ge      if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;        #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        #endif      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1); @@ -66546,7 +66631,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_2ge          PyObject* exc_type = PyErr_Occurred();          if (exc_type) {            if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -66556,24 +66641,24 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_2ge      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_packed, __pyx_t_4);      __Pyx_GIVEREF(__pyx_t_4);      __pyx_t_4 = 0; -    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_1, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_1, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->alignment), __pyx_n_s_unlink); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->alignment), __pyx_n_s_unlink); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_packed);      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_cur_scope->__pyx_v_packed);      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_packed); -    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_7);      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_6 = PySequence_Tuple(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PySequence_Tuple(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_7);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -66594,7 +66679,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_2ge      __Pyx_XGOTREF(__pyx_t_1);      __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;      __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; -    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -66616,7 +66701,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_2ge    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2121 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2126   *    *     # Rule string from rule   *     def fmt_rule(self, f, e, a):             # <<<<<<<<<<<<<< @@ -66649,22 +66734,22 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_29fmt_rule(st    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_a);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_a); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2122 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2127   *     # Rule string from rule   *     def fmt_rule(self, f, e, a):   *         a_str = ' '.join('{0}-{1}'.format(*self.alignment.unlink(packed)) for packed in a)             # <<<<<<<<<<<<<<   *         return '[X] ||| {0} ||| {1} ||| {2}'.format(f, e, a_str)   *    */ -  __pyx_t_1 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_8fmt_rule_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__46, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__46, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_a_str = ((PyObject*)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2123 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2128   *     def fmt_rule(self, f, e, a):   *         a_str = ' '.join('{0}-{1}'.format(*self.alignment.unlink(packed)) for packed in a)   *         return '[X] ||| {0} ||| {1} ||| {2}'.format(f, e, a_str)             # <<<<<<<<<<<<<< @@ -66672,9 +66757,9 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_29fmt_rule(st   *     # Lookup online stats for phrase pair (f, e).  Return None if no match.   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_X_0_1_2, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_X_0_1_2, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(__pyx_v_f);    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_f); @@ -66685,7 +66770,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_29fmt_rule(st    __Pyx_INCREF(__pyx_v_a_str);    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_a_str);    __Pyx_GIVEREF(__pyx_v_a_str); -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -66693,7 +66778,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_29fmt_rule(st    __pyx_t_3 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2121 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2126   *    *     # Rule string from rule   *     def fmt_rule(self, f, e, a):             # <<<<<<<<<<<<<< @@ -66716,7 +66801,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_29fmt_rule(st    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2127 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2132   *     # Lookup online stats for phrase pair (f, e).  Return None if no match.   *     # IMPORTANT: use get() to avoid adding items to defaultdict   *     def online_ctx_lookup(self, f, e, ctx_name=None):             # <<<<<<<<<<<<<< @@ -66758,7 +66843,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_32online_ctx_          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_e)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("online_ctx_lookup", 0, 2, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("online_ctx_lookup", 0, 2, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (kw_args > 0) { @@ -66767,7 +66852,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_32online_ctx_          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "online_ctx_lookup") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "online_ctx_lookup") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -66784,7 +66869,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_32online_ctx_    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("online_ctx_lookup", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("online_ctx_lookup", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.online_ctx_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -66815,7 +66900,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_31online_ctx_    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("online_ctx_lookup", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2128 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2133   *     # IMPORTANT: use get() to avoid adding items to defaultdict   *     def online_ctx_lookup(self, f, e, ctx_name=None):   *         if self.online:             # <<<<<<<<<<<<<< @@ -66825,31 +66910,31 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_31online_ctx_    __pyx_t_1 = (__pyx_v_self->online != 0);    if (__pyx_t_1) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2129 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2134   *     def online_ctx_lookup(self, f, e, ctx_name=None):   *         if self.online:   *             stats = self.online_stats[ctx_name]             # <<<<<<<<<<<<<<   *             fcount = stats.phrases_f.get(f, 0)   *             fsample_count = stats.samples_f.get(f, 0)   */ -    __pyx_t_2 = PyObject_GetItem(__pyx_v_self->online_stats, __pyx_v_ctx_name); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_2 = PyObject_GetItem(__pyx_v_self->online_stats, __pyx_v_ctx_name); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2134; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_2);      __pyx_v_stats = __pyx_t_2;      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2130 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2135   *         if self.online:   *             stats = self.online_stats[ctx_name]   *             fcount = stats.phrases_f.get(f, 0)             # <<<<<<<<<<<<<<   *             fsample_count = stats.samples_f.get(f, 0)   *             d = stats.phrases_fe.get(f, None)   */ -    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_f); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_f); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_INCREF(__pyx_v_f);      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_f); @@ -66857,26 +66942,26 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_31online_ctx_      __Pyx_INCREF(__pyx_int_0);      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_0);      __Pyx_GIVEREF(__pyx_int_0); -    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __pyx_v_fcount = __pyx_t_4;      __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2131 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2136   *             stats = self.online_stats[ctx_name]   *             fcount = stats.phrases_f.get(f, 0)   *             fsample_count = stats.samples_f.get(f, 0)             # <<<<<<<<<<<<<<   *             d = stats.phrases_fe.get(f, None)   *             paircount = d.get(e, 0) if d else 0   */ -    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_samples_f); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_samples_f); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_INCREF(__pyx_v_f);      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_f); @@ -66884,26 +66969,26 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_31online_ctx_      __Pyx_INCREF(__pyx_int_0);      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_0);      __Pyx_GIVEREF(__pyx_int_0); -    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __pyx_v_fsample_count = __pyx_t_3;      __pyx_t_3 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2132 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2137   *             fcount = stats.phrases_f.get(f, 0)   *             fsample_count = stats.samples_f.get(f, 0)   *             d = stats.phrases_fe.get(f, None)             # <<<<<<<<<<<<<<   *             paircount = d.get(e, 0) if d else 0 - *             return OnlineFeatureContext(fcount, fsample_count, paircount) + *             return OnlineFeatureContext(fcount, fsample_count, paircount, stats.bilex)   */ -    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_fe); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_phrases_fe); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_INCREF(__pyx_v_f);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_f); @@ -66911,25 +66996,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_31online_ctx_      __Pyx_INCREF(Py_None);      PyTuple_SET_ITEM(__pyx_t_3, 1, Py_None);      __Pyx_GIVEREF(Py_None); -    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_v_d = __pyx_t_2;      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2133 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2138   *             fsample_count = stats.samples_f.get(f, 0)   *             d = stats.phrases_fe.get(f, None)   *             paircount = d.get(e, 0) if d else 0             # <<<<<<<<<<<<<< - *             return OnlineFeatureContext(fcount, fsample_count, paircount) + *             return OnlineFeatureContext(fcount, fsample_count, paircount, stats.bilex)   *         return None   */ -    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_d); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_d); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      if (__pyx_t_1) { -      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_d, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_d, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_INCREF(__pyx_v_e);        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_e); @@ -66937,7 +67022,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_31online_ctx_        __Pyx_INCREF(__pyx_int_0);        PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_0);        __Pyx_GIVEREF(__pyx_int_0); -      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -66950,39 +67035,44 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_31online_ctx_      __pyx_v_paircount = __pyx_t_2;      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2134 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2139   *             d = stats.phrases_fe.get(f, None)   *             paircount = d.get(e, 0) if d else 0 - *             return OnlineFeatureContext(fcount, fsample_count, paircount)             # <<<<<<<<<<<<<< + *             return OnlineFeatureContext(fcount, fsample_count, paircount, stats.bilex)             # <<<<<<<<<<<<<<   *         return None   *    */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_OnlineFeatureContext); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_OnlineFeatureContext); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_stats, __pyx_n_s_bilex); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); +    __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_4);      __Pyx_INCREF(__pyx_v_fcount); -    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_fcount); +    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_fcount);      __Pyx_GIVEREF(__pyx_v_fcount);      __Pyx_INCREF(__pyx_v_fsample_count); -    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_fsample_count); +    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_fsample_count);      __Pyx_GIVEREF(__pyx_v_fsample_count);      __Pyx_INCREF(__pyx_v_paircount); -    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_paircount); +    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_paircount);      __Pyx_GIVEREF(__pyx_v_paircount); -    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_5); +    __Pyx_GIVEREF(__pyx_t_5); +    __pyx_t_5 = 0; +    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    __pyx_r = __pyx_t_4; -    __pyx_t_4 = 0; +    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +    __pyx_r = __pyx_t_5; +    __pyx_t_5 = 0;      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2135 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2140   *             paircount = d.get(e, 0) if d else 0 - *             return OnlineFeatureContext(fcount, fsample_count, paircount) + *             return OnlineFeatureContext(fcount, fsample_count, paircount, stats.bilex)   *         return None             # <<<<<<<<<<<<<<   *    *     # Find all phrases that we might try to extract @@ -66992,7 +67082,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_31online_ctx_    __pyx_r = Py_None;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2127 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2132   *     # Lookup online stats for phrase pair (f, e).  Return None if no match.   *     # IMPORTANT: use get() to avoid adding items to defaultdict   *     def online_ctx_lookup(self, f, e, ctx_name=None):             # <<<<<<<<<<<<<< @@ -67019,7 +67109,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_31online_ctx_    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2140 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2145   *     # (Used for EGivenFCoherent)   *     # Return set of (fphrase, lex_i, lex_j)   *     def get_f_phrases(self, f_words):             # <<<<<<<<<<<<<< @@ -67040,7 +67130,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_34get_f_phras    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2145 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2150   *         phrases = set() # (fphrase, lex_i, lex_j)   *    *         def extract(f_i, f_j, lex_i, lex_j, wc, ntc, syms):             # <<<<<<<<<<<<<< @@ -67090,36 +67180,36 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_f_j)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_lex_i)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  3:          if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_lex_j)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  4:          if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_wc)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 4); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 4); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  5:          if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ntc)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 5); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 5); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  6:          if (likely((values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_syms)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 6); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, 6); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "extract") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "extract") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {        goto __pyx_L5_argtuple_error; @@ -67142,7 +67232,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("extract", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.get_f_phrases.extract", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -67180,32 +67270,32 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras    __pyx_outer_scope = (struct __pyx_obj_4cdec_2sa_3_sa___pyx_scope_struct_26_get_f_phrases *) __Pyx_CyFunction_GetClosure(__pyx_self);    __pyx_cur_scope = __pyx_outer_scope; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2147 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2152   *         def extract(f_i, f_j, lex_i, lex_j, wc, ntc, syms):   *             # Phrase extraction limits   *             if f_j > (f_len - 1) or (f_j - f_i) + 1 > self.max_initial_size:             # <<<<<<<<<<<<<<   *                 return   *             # Extend with word   */ -  __pyx_t_1 = PyInt_FromSsize_t((__pyx_cur_scope->__pyx_v_f_len - 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromSsize_t((__pyx_cur_scope->__pyx_v_f_len - 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyObject_RichCompare(__pyx_v_f_j, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_RichCompare(__pyx_v_f_j, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    if (!__pyx_t_3) { -    __pyx_t_2 = PyNumber_Subtract(__pyx_v_f_j, __pyx_v_f_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyNumber_Subtract(__pyx_v_f_j, __pyx_v_f_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __pyx_t_6 = __pyx_t_5;    } else { @@ -67213,7 +67303,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras    }    if (__pyx_t_6) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2148 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2153   *             # Phrase extraction limits   *             if f_j > (f_len - 1) or (f_j - f_i) + 1 > self.max_initial_size:   *                 return             # <<<<<<<<<<<<<< @@ -67225,57 +67315,57 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras      goto __pyx_L0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2150 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2155   *                 return   *             # Extend with word   *             if wc + ntc < self.max_length:             # <<<<<<<<<<<<<<   *                 syms.append(f_words[f_j])   *                 f = Phrase(syms)   */ -  __pyx_t_4 = PyNumber_Add(__pyx_v_wc, __pyx_v_ntc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyNumber_Add(__pyx_v_wc, __pyx_v_ntc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4); -  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_length); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_length); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_6) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2151 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2156   *             # Extend with word   *             if wc + ntc < self.max_length:   *                 syms.append(f_words[f_j])             # <<<<<<<<<<<<<<   *                 f = Phrase(syms)   *                 new_lex_i = min(lex_i, f_j)   */ -    if (unlikely(!__pyx_cur_scope->__pyx_v_f_words)) { __Pyx_RaiseClosureNameError("f_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_f_words, __pyx_v_f_j); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    if (unlikely(!__pyx_cur_scope->__pyx_v_f_words)) { __Pyx_RaiseClosureNameError("f_words"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_1 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_f_words, __pyx_v_f_j); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2156; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_syms, __pyx_t_1); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_syms, __pyx_t_1); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2152 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2157   *             if wc + ntc < self.max_length:   *                 syms.append(f_words[f_j])   *                 f = Phrase(syms)             # <<<<<<<<<<<<<<   *                 new_lex_i = min(lex_i, f_j)   *                 new_lex_j = max(lex_j, f_j)   */ -    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_INCREF(__pyx_v_syms);      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_syms);      __Pyx_GIVEREF(__pyx_v_syms); -    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __pyx_v_f = ((struct __pyx_obj_4cdec_2sa_3_sa_Phrase *)__pyx_t_2);      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2153 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2158   *                 syms.append(f_words[f_j])   *                 f = Phrase(syms)   *                 new_lex_i = min(lex_i, f_j)             # <<<<<<<<<<<<<< @@ -67286,8 +67376,8 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras      __pyx_t_2 = __pyx_v_f_j;      __Pyx_INCREF(__pyx_v_lex_i);      __pyx_t_1 = __pyx_v_lex_i; -    __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2153; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      if (__pyx_t_6) {        __Pyx_INCREF(__pyx_t_2); @@ -67304,7 +67394,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras      __pyx_v_new_lex_i = __pyx_t_2;      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2154 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2159   *                 f = Phrase(syms)   *                 new_lex_i = min(lex_i, f_j)   *                 new_lex_j = max(lex_j, f_j)             # <<<<<<<<<<<<<< @@ -67315,8 +67405,8 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras      __pyx_t_2 = __pyx_v_f_j;      __Pyx_INCREF(__pyx_v_lex_j);      __pyx_t_4 = __pyx_v_lex_j; -    __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2159; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;      if (__pyx_t_6) {        __Pyx_INCREF(__pyx_t_2); @@ -67333,19 +67423,19 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras      __pyx_v_new_lex_j = __pyx_t_2;      __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2155 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2160   *                 new_lex_i = min(lex_i, f_j)   *                 new_lex_j = max(lex_j, f_j)   *                 phrases.add((f, new_lex_i, new_lex_j))             # <<<<<<<<<<<<<<   *                 extract(f_i, f_j + 1, new_lex_i, new_lex_j, wc + 1, ntc, syms)   *                 syms.pop()   */ -    if (unlikely(!__pyx_cur_scope->__pyx_v_phrases)) { __Pyx_RaiseClosureNameError("phrases"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    if (unlikely(!__pyx_cur_scope->__pyx_v_phrases)) { __Pyx_RaiseClosureNameError("phrases"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2160; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }      if (unlikely(__pyx_cur_scope->__pyx_v_phrases == Py_None)) {        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add"); -      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      } -    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_INCREF(((PyObject *)__pyx_v_f));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_f)); @@ -67356,53 +67446,53 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras      __Pyx_INCREF(__pyx_v_new_lex_j);      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_new_lex_j);      __Pyx_GIVEREF(__pyx_v_new_lex_j); -    __pyx_t_7 = PySet_Add(__pyx_cur_scope->__pyx_v_phrases, __pyx_t_2); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = PySet_Add(__pyx_cur_scope->__pyx_v_phrases, __pyx_t_2); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2156 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2161   *                 new_lex_j = max(lex_j, f_j)   *                 phrases.add((f, new_lex_i, new_lex_j))   *                 extract(f_i, f_j + 1, new_lex_i, new_lex_j, wc + 1, ntc, syms)             # <<<<<<<<<<<<<<   *                 syms.pop()   *             # Extend with existing non-terminal   */ -    __pyx_t_2 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_1 = PyNumber_Add(__pyx_v_wc, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Add(__pyx_v_wc, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_4 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phrases_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_2, __pyx_v_new_lex_i, __pyx_v_new_lex_j, __pyx_t_1, __pyx_v_ntc, __pyx_v_syms); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_4 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phrases_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_2, __pyx_v_new_lex_i, __pyx_v_new_lex_j, __pyx_t_1, __pyx_v_ntc, __pyx_v_syms); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2157 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2162   *                 phrases.add((f, new_lex_i, new_lex_j))   *                 extract(f_i, f_j + 1, new_lex_i, new_lex_j, wc + 1, ntc, syms)   *                 syms.pop()             # <<<<<<<<<<<<<<   *             # Extend with existing non-terminal   *             if syms and sym_isvar(syms[-1]):   */ -    __pyx_t_4 = __Pyx_PyObject_Pop(__pyx_v_syms); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_PyObject_Pop(__pyx_v_syms); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      goto __pyx_L4;    }    __pyx_L4:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2159 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2164   *                 syms.pop()   *             # Extend with existing non-terminal   *             if syms and sym_isvar(syms[-1]):             # <<<<<<<<<<<<<<   *                 # Don't re-extract the same phrase   *                 extract(f_i, f_j + 1, lex_i, lex_j, wc, ntc, syms)   */ -  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_syms); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2159; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_syms); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_6) { -    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_syms, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_syms, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2159; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __pyx_t_3 = (__pyx_f_4cdec_2sa_3_sa_sym_isvar(__pyx_t_9) != 0);    } else { @@ -67410,17 +67500,17 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras    }    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2161 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2166   *             if syms and sym_isvar(syms[-1]):   *                 # Don't re-extract the same phrase   *                 extract(f_i, f_j + 1, lex_i, lex_j, wc, ntc, syms)             # <<<<<<<<<<<<<<   *             # Extend with new non-terminal   *             if wc + ntc < self.max_length:   */ -    __pyx_t_4 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -    __pyx_t_1 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phrases_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_4, __pyx_v_lex_i, __pyx_v_lex_j, __pyx_v_wc, __pyx_v_ntc, __pyx_v_syms); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2166; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +    __pyx_t_1 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phrases_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_4, __pyx_v_lex_i, __pyx_v_lex_j, __pyx_v_wc, __pyx_v_ntc, __pyx_v_syms); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -67428,46 +67518,46 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras    }    __pyx_L5:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2163 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2168   *                 extract(f_i, f_j + 1, lex_i, lex_j, wc, ntc, syms)   *             # Extend with new non-terminal   *             if wc + ntc < self.max_length:             # <<<<<<<<<<<<<<   *                 if not syms or (ntc < self.max_nonterminals and not sym_isvar(syms[-1])):   *                     syms.append(sym_setindex(self.category, ntc + 1))   */ -  __pyx_t_1 = PyNumber_Add(__pyx_v_wc, __pyx_v_ntc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyNumber_Add(__pyx_v_wc, __pyx_v_ntc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_length); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_length); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4); -  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2163; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    if (__pyx_t_3) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2164 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2169   *             # Extend with new non-terminal   *             if wc + ntc < self.max_length:   *                 if not syms or (ntc < self.max_nonterminals and not sym_isvar(syms[-1])):             # <<<<<<<<<<<<<<   *                     syms.append(sym_setindex(self.category, ntc + 1))   *                     f = Phrase(syms)   */ -    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_syms); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_syms); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_t_6 = (!__pyx_t_3);      if (!__pyx_t_6) { -      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_nonterminals); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->max_nonterminals); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_4 = PyObject_RichCompare(__pyx_v_ntc, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyObject_RichCompare(__pyx_v_ntc, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        if (__pyx_t_3) { -        __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_syms, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +        __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_syms, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;};          __Pyx_GOTREF(__pyx_t_4); -        __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;          __pyx_t_5 = (!(__pyx_f_4cdec_2sa_3_sa_sym_isvar(__pyx_t_9) != 0));          __pyx_t_10 = __pyx_t_5; @@ -67480,66 +67570,66 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras      }      if (__pyx_t_3) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2165 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2170   *             if wc + ntc < self.max_length:   *                 if not syms or (ntc < self.max_nonterminals and not sym_isvar(syms[-1])):   *                     syms.append(sym_setindex(self.category, ntc + 1))             # <<<<<<<<<<<<<<   *                     f = Phrase(syms)   *                     if wc > 0:   */ -      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_4 = PyNumber_Add(__pyx_v_ntc, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_4 = PyNumber_Add(__pyx_v_ntc, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, __pyx_t_9)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_f_4cdec_2sa_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, __pyx_t_9)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_syms, __pyx_t_4); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_syms, __pyx_t_4); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2166 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2171   *                 if not syms or (ntc < self.max_nonterminals and not sym_isvar(syms[-1])):   *                     syms.append(sym_setindex(self.category, ntc + 1))   *                     f = Phrase(syms)             # <<<<<<<<<<<<<<   *                     if wc > 0:   *                         phrases.add((f, lex_i, lex_j))   */ -      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2166; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_INCREF(__pyx_v_syms);        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_syms);        __Pyx_GIVEREF(__pyx_v_syms); -      __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2166; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4cdec_2sa_3_sa_Phrase)), __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_XDECREF_SET(__pyx_v_f, ((struct __pyx_obj_4cdec_2sa_3_sa_Phrase *)__pyx_t_2));        __pyx_t_2 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2167 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2172   *                     syms.append(sym_setindex(self.category, ntc + 1))   *                     f = Phrase(syms)   *                     if wc > 0:             # <<<<<<<<<<<<<<   *                         phrases.add((f, lex_i, lex_j))   *                     extract(f_i, f_j + 1, lex_i, lex_j, wc, ntc + 1, syms)   */ -      __pyx_t_2 = PyObject_RichCompare(__pyx_v_wc, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyObject_RichCompare(__pyx_v_wc, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        if (__pyx_t_3) { -        /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2168 +        /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2173   *                     f = Phrase(syms)   *                     if wc > 0:   *                         phrases.add((f, lex_i, lex_j))             # <<<<<<<<<<<<<<   *                     extract(f_i, f_j + 1, lex_i, lex_j, wc, ntc + 1, syms)   *                     syms.pop()   */ -        if (unlikely(!__pyx_cur_scope->__pyx_v_phrases)) { __Pyx_RaiseClosureNameError("phrases"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +        if (unlikely(!__pyx_cur_scope->__pyx_v_phrases)) { __Pyx_RaiseClosureNameError("phrases"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }          if (unlikely(__pyx_cur_scope->__pyx_v_phrases == Py_None)) {            PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add"); -          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          } -        __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_2);          __Pyx_INCREF(((PyObject *)__pyx_v_f));          PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_f)); @@ -67550,38 +67640,38 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras          __Pyx_INCREF(__pyx_v_lex_j);          PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_lex_j);          __Pyx_GIVEREF(__pyx_v_lex_j); -        __pyx_t_7 = PySet_Add(__pyx_cur_scope->__pyx_v_phrases, __pyx_t_2); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_7 = PySet_Add(__pyx_cur_scope->__pyx_v_phrases, __pyx_t_2); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;          goto __pyx_L8;        }        __pyx_L8:; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2169 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2174   *                     if wc > 0:   *                         phrases.add((f, lex_i, lex_j))   *                     extract(f_i, f_j + 1, lex_i, lex_j, wc, ntc + 1, syms)             # <<<<<<<<<<<<<<   *                     syms.pop()   *    */ -      __pyx_t_2 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyNumber_Add(__pyx_v_f_j, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_4 = PyNumber_Add(__pyx_v_ntc, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyNumber_Add(__pyx_v_ntc, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -      __pyx_t_1 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phrases_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_2, __pyx_v_lex_i, __pyx_v_lex_j, __pyx_v_wc, __pyx_t_4, __pyx_v_syms); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(!__pyx_cur_scope->__pyx_v_extract)) { __Pyx_RaiseClosureNameError("extract"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } +      __pyx_t_1 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phrases_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_v_f_i, __pyx_t_2, __pyx_v_lex_i, __pyx_v_lex_j, __pyx_v_wc, __pyx_t_4, __pyx_v_syms); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2170 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2175   *                         phrases.add((f, lex_i, lex_j))   *                     extract(f_i, f_j + 1, lex_i, lex_j, wc, ntc + 1, syms)   *                     syms.pop()             # <<<<<<<<<<<<<<   *    *         # Try to extract phrases from every f index   */ -      __pyx_t_1 = __Pyx_PyObject_Pop(__pyx_v_syms); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = __Pyx_PyObject_Pop(__pyx_v_syms); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        goto __pyx_L7; @@ -67591,7 +67681,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras    }    __pyx_L6:; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2145 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2150   *         phrases = set() # (fphrase, lex_i, lex_j)   *    *         def extract(f_i, f_j, lex_i, lex_j, wc, ntc, syms):             # <<<<<<<<<<<<<< @@ -67618,7 +67708,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phras    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2140 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2145   *     # (Used for EGivenFCoherent)   *     # Return set of (fphrase, lex_i, lex_j)   *     def get_f_phrases(self, f_words):             # <<<<<<<<<<<<<< @@ -67654,7 +67744,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_33get_f_phras    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f_words);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_f_words); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2142 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2147   *     def get_f_phrases(self, f_words):   *    *         f_len = len(f_words)             # <<<<<<<<<<<<<< @@ -67663,37 +67753,37 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_33get_f_phras   */    __pyx_t_1 = __pyx_cur_scope->__pyx_v_f_words;    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_cur_scope->__pyx_v_f_len = __pyx_t_2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2143 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2148   *    *         f_len = len(f_words)   *         phrases = set() # (fphrase, lex_i, lex_j)             # <<<<<<<<<<<<<<   *    *         def extract(f_i, f_j, lex_i, lex_j, wc, ntc, syms):   */ -  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_cur_scope->__pyx_v_phrases = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2145 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2150   *         phrases = set() # (fphrase, lex_i, lex_j)   *    *         def extract(f_i, f_j, lex_i, lex_j, wc, ntc, syms):             # <<<<<<<<<<<<<<   *             # Phrase extraction limits   *             if f_j > (f_len - 1) or (f_j - f_i) + 1 > self.max_initial_size:   */ -  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phrases_1extract, 0, __pyx_n_s_get_f_phrases_locals_extract, ((PyObject*)__pyx_cur_scope), __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phrases_1extract, 0, __pyx_n_s_get_f_phrases_locals_extract, ((PyObject*)__pyx_cur_scope), __pyx_n_s_cdec_sa__sa, PyModule_GetDict(__pyx_m), ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_cur_scope->__pyx_v_extract = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2173 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2178   *    *         # Try to extract phrases from every f index   *         for f_i from 0 <= f_i < f_len:             # <<<<<<<<<<<<<< @@ -67703,22 +67793,22 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_33get_f_phras    __pyx_t_2 = __pyx_cur_scope->__pyx_v_f_len;    for (__pyx_v_f_i = 0; __pyx_v_f_i < __pyx_t_2; __pyx_v_f_i++) { -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2174 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2179   *         # Try to extract phrases from every f index   *         for f_i from 0 <= f_i < f_len:   *             extract(f_i, f_i, f_len, -1, 0, 0, [])             # <<<<<<<<<<<<<<   *    *         return phrases   */ -    __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v_f_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v_f_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_f_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_f_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = PyInt_FromSsize_t(__pyx_cur_scope->__pyx_v_f_len); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyInt_FromSsize_t(__pyx_cur_scope->__pyx_v_f_len); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_6 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phrases_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_t_1, __pyx_t_3, __pyx_t_4, __pyx_int_neg_1, __pyx_int_0, __pyx_int_0, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_13get_f_phrases_extract(__pyx_cur_scope->__pyx_v_extract, __pyx_t_1, __pyx_t_3, __pyx_t_4, __pyx_int_neg_1, __pyx_int_0, __pyx_int_0, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -67727,7 +67817,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_33get_f_phras      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2176 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2181   *             extract(f_i, f_i, f_len, -1, 0, 0, [])   *    *         return phrases             # <<<<<<<<<<<<<< @@ -67739,7 +67829,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_33get_f_phras    __pyx_r = __pyx_cur_scope->__pyx_v_phrases;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2140 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2145   *     # (Used for EGivenFCoherent)   *     # Return set of (fphrase, lex_i, lex_j)   *     def get_f_phrases(self, f_words):             # <<<<<<<<<<<<<< @@ -67763,7 +67853,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_33get_f_phras    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2179 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2184   *    *     # Drop online stats for a context   *     def drop_ctx(self, ctx_name=None):             # <<<<<<<<<<<<<< @@ -67802,7 +67892,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_36drop_ctx(Py          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "drop_ctx") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2179; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "drop_ctx") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -67815,7 +67905,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_23HieroCachingRuleFactory_36drop_ctx(Py    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("drop_ctx", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2179; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("drop_ctx", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.HieroCachingRuleFactory.drop_ctx", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -67839,16 +67929,16 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_35drop_ctx(st    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("drop_ctx", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2180 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2185   *     # Drop online stats for a context   *     def drop_ctx(self, ctx_name=None):   *         self.online_stats.pop(ctx_name, None)             # <<<<<<<<<<<<<<   *    * # Spans are _inclusive_ on both ends [i, j]   */ -  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->online_stats, __pyx_n_s_pop); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2180; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->online_stats, __pyx_n_s_pop); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2180; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_INCREF(__pyx_v_ctx_name);    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_ctx_name); @@ -67856,13 +67946,13 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_35drop_ctx(st    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);    __Pyx_GIVEREF(Py_None); -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2180; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2179 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2184   *    *     # Drop online stats for a context   *     def drop_ctx(self, ctx_name=None):             # <<<<<<<<<<<<<< @@ -67885,7 +67975,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_23HieroCachingRuleFactory_35drop_ctx(st    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2183 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2188   *    * # Spans are _inclusive_ on both ends [i, j]   * def span_check(vec, i, j):             # <<<<<<<<<<<<<< @@ -67927,16 +68017,16 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_17span_check(PyObject *__pyx_self, PyOb          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_i)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("span_check", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2183; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("span_check", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_j)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("span_check", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2183; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("span_check", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "span_check") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2183; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "span_check") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -67951,7 +68041,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_17span_check(PyObject *__pyx_self, PyOb    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("span_check", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2183; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("span_check", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.span_check", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -67975,7 +68065,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_16span_check(CYTHON_UNUSED PyObject *__    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("span_check", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2184 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2189   * # Spans are _inclusive_ on both ends [i, j]   * def span_check(vec, i, j):   *     k = i             # <<<<<<<<<<<<<< @@ -67985,7 +68075,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_16span_check(CYTHON_UNUSED PyObject *__    __Pyx_INCREF(__pyx_v_i);    __pyx_v_k = __pyx_v_i; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2185 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2190   * def span_check(vec, i, j):   *     k = i   *     while k <= j:             # <<<<<<<<<<<<<< @@ -67993,25 +68083,25 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_16span_check(CYTHON_UNUSED PyObject *__   *             return False   */    while (1) { -    __pyx_t_1 = PyObject_RichCompare(__pyx_v_k, __pyx_v_j, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_k, __pyx_v_j, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2190; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      if (!__pyx_t_2) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2186 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2191   *     k = i   *     while k <= j:   *         if vec[k]:             # <<<<<<<<<<<<<<   *             return False   *         k += 1   */ -    __pyx_t_1 = PyObject_GetItem(__pyx_v_vec, __pyx_v_k); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_1 = PyObject_GetItem(__pyx_v_vec, __pyx_v_k); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2186; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      if (__pyx_t_2) { -      /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2187 +      /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2192   *     while k <= j:   *         if vec[k]:   *             return False             # <<<<<<<<<<<<<< @@ -68024,20 +68114,20 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_16span_check(CYTHON_UNUSED PyObject *__        goto __pyx_L0;      } -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2188 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2193   *         if vec[k]:   *             return False   *         k += 1             # <<<<<<<<<<<<<<   *     return True   *    */ -    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_k, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_k, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF_SET(__pyx_v_k, __pyx_t_1);      __pyx_t_1 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2189 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2194   *             return False   *         k += 1   *     return True             # <<<<<<<<<<<<<< @@ -68049,7 +68139,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_16span_check(CYTHON_UNUSED PyObject *__    __pyx_r = Py_True;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2183 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2188   *    * # Spans are _inclusive_ on both ends [i, j]   * def span_check(vec, i, j):             # <<<<<<<<<<<<<< @@ -68069,7 +68159,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_16span_check(CYTHON_UNUSED PyObject *__    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2191 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2196   *     return True   *    * def span_inc(vec, i, j):             # <<<<<<<<<<<<<< @@ -68111,16 +68201,16 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_19span_inc(PyObject *__pyx_self, PyObje          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_i)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("span_inc", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("span_inc", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_j)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("span_inc", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("span_inc", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "span_inc") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "span_inc") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -68135,7 +68225,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_19span_inc(PyObject *__pyx_self, PyObje    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("span_inc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("span_inc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.span_inc", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -68161,7 +68251,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_18span_inc(CYTHON_UNUSED PyObject *__py    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("span_inc", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2192 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2197   *    * def span_inc(vec, i, j):   *     k = i             # <<<<<<<<<<<<<< @@ -68171,7 +68261,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_18span_inc(CYTHON_UNUSED PyObject *__py    __Pyx_INCREF(__pyx_v_i);    __pyx_v_k = __pyx_v_i; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2193 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2198   * def span_inc(vec, i, j):   *     k = i   *     while k <= j:             # <<<<<<<<<<<<<< @@ -68179,12 +68269,12 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_18span_inc(CYTHON_UNUSED PyObject *__py   *         k += 1   */    while (1) { -    __pyx_t_1 = PyObject_RichCompare(__pyx_v_k, __pyx_v_j, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2193; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2193; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_k, __pyx_v_j, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2198; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      if (!__pyx_t_2) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2194 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2199   *     k = i   *     while k <= j:   *         vec[k] += 1             # <<<<<<<<<<<<<< @@ -68193,29 +68283,29 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_18span_inc(CYTHON_UNUSED PyObject *__py   */      __Pyx_INCREF(__pyx_v_k);      __pyx_t_1 = __pyx_v_k; -    __pyx_t_3 = PyObject_GetItem(__pyx_v_vec, __pyx_t_1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_3 = PyObject_GetItem(__pyx_v_vec, __pyx_t_1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2199; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2194; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    if (unlikely(PyObject_SetItem(__pyx_v_vec, __pyx_t_1, __pyx_t_4) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2194; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(PyObject_SetItem(__pyx_v_vec, __pyx_t_1, __pyx_t_4) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2195 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2200   *     while k <= j:   *         vec[k] += 1   *         k += 1             # <<<<<<<<<<<<<<   *    * def span_dec(vec, i, j):   */ -    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_k, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2195; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_k, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF_SET(__pyx_v_k, __pyx_t_1);      __pyx_t_1 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2191 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2196   *     return True   *    * def span_inc(vec, i, j):             # <<<<<<<<<<<<<< @@ -68239,7 +68329,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_18span_inc(CYTHON_UNUSED PyObject *__py    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2197 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2202   *         k += 1   *    * def span_dec(vec, i, j):             # <<<<<<<<<<<<<< @@ -68281,16 +68371,16 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_21span_dec(PyObject *__pyx_self, PyObje          case  1:          if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_i)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("span_dec", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("span_dec", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2:          if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_j)) != 0)) kw_args--;          else { -          __Pyx_RaiseArgtupleInvalid("span_dec", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +          __Pyx_RaiseArgtupleInvalid("span_dec", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "span_dec") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "span_dec") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -68305,7 +68395,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_21span_dec(PyObject *__pyx_self, PyObje    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("span_dec", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __Pyx_RaiseArgtupleInvalid("span_dec", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    __pyx_L3_error:;    __Pyx_AddTraceback("cdec.sa._sa.span_dec", __pyx_clineno, __pyx_lineno, __pyx_filename);    __Pyx_RefNannyFinishContext(); @@ -68331,7 +68421,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_20span_dec(CYTHON_UNUSED PyObject *__py    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("span_dec", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2198 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2203   *    * def span_dec(vec, i, j):   *     k = i             # <<<<<<<<<<<<<< @@ -68341,7 +68431,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_20span_dec(CYTHON_UNUSED PyObject *__py    __Pyx_INCREF(__pyx_v_i);    __pyx_v_k = __pyx_v_i; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2199 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2204   * def span_dec(vec, i, j):   *     k = i   *     while k <= j:             # <<<<<<<<<<<<<< @@ -68349,12 +68439,12 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_20span_dec(CYTHON_UNUSED PyObject *__py   *         k += 1   */    while (1) { -    __pyx_t_1 = PyObject_RichCompare(__pyx_v_k, __pyx_v_j, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_k, __pyx_v_j, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2204; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      if (!__pyx_t_2) break; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2200 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2205   *     k = i   *     while k <= j:   *         vec[k] -= 1             # <<<<<<<<<<<<<< @@ -68362,27 +68452,27 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_20span_dec(CYTHON_UNUSED PyObject *__py   */      __Pyx_INCREF(__pyx_v_k);      __pyx_t_1 = __pyx_v_k; -    __pyx_t_3 = PyObject_GetItem(__pyx_v_vec, __pyx_t_1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +    __pyx_t_3 = PyObject_GetItem(__pyx_v_vec, __pyx_t_1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2205; __pyx_clineno = __LINE__; goto __pyx_L1_error;};      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_t_3, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_t_3, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    if (unlikely(PyObject_SetItem(__pyx_v_vec, __pyx_t_1, __pyx_t_4) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2200; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(PyObject_SetItem(__pyx_v_vec, __pyx_t_1, __pyx_t_4) < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2201 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2206   *     while k <= j:   *         vec[k] -= 1   *         k += 1             # <<<<<<<<<<<<<<   */ -    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_k, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2201; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_k, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF_SET(__pyx_v_k, __pyx_t_1);      __pyx_t_1 = 0;    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2197 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2202   *         k += 1   *    * def span_dec(vec, i, j):             # <<<<<<<<<<<<<< @@ -68406,7 +68496,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_20span_dec(CYTHON_UNUSED PyObject *__py    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":7 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":7   *    * cdef class FeatureVector:   *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -68441,7 +68531,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_13FeatureVector___cinit__(struct __pyx_obj_4c    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__cinit__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":8 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":8   * cdef class FeatureVector:   *     def __cinit__(self):   *         self.names = IntList(INITIAL_CAPACITY, INCREMENT)             # <<<<<<<<<<<<<< @@ -68469,7 +68559,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_13FeatureVector___cinit__(struct __pyx_obj_4c    __pyx_v_self->names = ((struct __pyx_obj_4cdec_2sa_3_sa_IntList *)__pyx_t_2);    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":9 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":9   *     def __cinit__(self):   *         self.names = IntList(INITIAL_CAPACITY, INCREMENT)   *         self.values = FloatList(INITIAL_CAPACITY, INCREMENT)             # <<<<<<<<<<<<<< @@ -68497,7 +68587,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_13FeatureVector___cinit__(struct __pyx_obj_4c    __pyx_v_self->values = ((struct __pyx_obj_4cdec_2sa_3_sa_FloatList *)__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":7 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":7   *    * cdef class FeatureVector:   *     def __cinit__(self):             # <<<<<<<<<<<<<< @@ -68519,7 +68609,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_13FeatureVector___cinit__(struct __pyx_obj_4c    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":11 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":11   *         self.values = FloatList(INITIAL_CAPACITY, INCREMENT)   *    *     def set(self, unsigned name, float value):             # <<<<<<<<<<<<<< @@ -68598,7 +68688,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_13FeatureVector_2set(struct __pyx_obj_4    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("set", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":12 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":12   *    *     def set(self, unsigned name, float value):   *         self.names.append(name)             # <<<<<<<<<<<<<< @@ -68610,7 +68700,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_13FeatureVector_2set(struct __pyx_obj_4    __pyx_t_2 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->names), __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":13 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":13   *     def set(self, unsigned name, float value):   *         self.names.append(name)   *         self.values.append(value)             # <<<<<<<<<<<<<< @@ -68622,7 +68712,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_13FeatureVector_2set(struct __pyx_obj_4    __pyx_t_2 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->values), __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":11 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":11   *         self.values = FloatList(INITIAL_CAPACITY, INCREMENT)   *    *     def set(self, unsigned name, float value):             # <<<<<<<<<<<<<< @@ -68644,7 +68734,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_13FeatureVector_2set(struct __pyx_obj_4  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_13FeatureVector_6generator5(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":15 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":15   *         self.values.append(value)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -68727,7 +68817,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_13FeatureVector_6generator5(__pyx_Gener    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":17 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":17   *     def __iter__(self):   *         cdef unsigned i   *         for i in range(self.names.len):             # <<<<<<<<<<<<<< @@ -68738,7 +68828,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_13FeatureVector_6generator5(__pyx_Gener    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":18 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":18   *         cdef unsigned i   *         for i in range(self.names.len):   *             yield (FD.word(self.names[i]), self.values[i])             # <<<<<<<<<<<<<< @@ -68776,7 +68866,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_13FeatureVector_6generator5(__pyx_Gener      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":15 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":15   *         self.values.append(value)   *    *     def __iter__(self):             # <<<<<<<<<<<<<< @@ -68800,7 +68890,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_13FeatureVector_6generator5(__pyx_Gener    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":20 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":20   *             yield (FD.word(self.names[i]), self.values[i])   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -68822,7 +68912,7 @@ static PyObject *__pyx_pw_4cdec_2sa_3_sa_13FeatureVector_8__str__(PyObject *__py  }  static PyObject *__pyx_gb_4cdec_2sa_3_sa_13FeatureVector_7__str___2generator17(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":21 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":21   *    *     def __str__(self):   *         return ' '.join('%s=%s' % feat for feat in self)             # <<<<<<<<<<<<<< @@ -68967,7 +69057,7 @@ static PyObject *__pyx_gb_4cdec_2sa_3_sa_13FeatureVector_7__str___2generator17(_    return NULL;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":20 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":20   *             yield (FD.word(self.names[i]), self.values[i])   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -68995,7 +69085,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_13FeatureVector_7__str__(struct __pyx_o    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":21 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":21   *    *     def __str__(self):   *         return ' '.join('%s=%s' % feat for feat in self)             # <<<<<<<<<<<<<< @@ -69012,7 +69102,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_13FeatureVector_7__str__(struct __pyx_o    __pyx_t_2 = 0;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":20 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":20   *             yield (FD.word(self.names[i]), self.values[i])   *    *     def __str__(self):             # <<<<<<<<<<<<<< @@ -69033,7 +69123,7 @@ static PyObject *__pyx_pf_4cdec_2sa_3_sa_13FeatureVector_7__str__(struct __pyx_o    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":25 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":25   * cdef class Scorer:   *     cdef models   *     def __init__(self, *models):             # <<<<<<<<<<<<<< @@ -69074,7 +69164,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Scorer___init__(struct __pyx_obj_4cdec_2sa_3    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("__init__", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":26 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":26   *     cdef models   *     def __init__(self, *models):   *         names = [FD.index(<char *>model.__name__) for model in models]             # <<<<<<<<<<<<<< @@ -69106,7 +69196,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Scorer___init__(struct __pyx_obj_4cdec_2sa_3    __pyx_v_names = ((PyObject*)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":27 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":27   *     def __init__(self, *models):   *         names = [FD.index(<char *>model.__name__) for model in models]   *         self.models = zip(names, models)             # <<<<<<<<<<<<<< @@ -69130,7 +69220,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Scorer___init__(struct __pyx_obj_4cdec_2sa_3    __pyx_v_self->models = __pyx_t_2;    __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":25 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":25   * cdef class Scorer:   *     cdef models   *     def __init__(self, *models):             # <<<<<<<<<<<<<< @@ -69154,7 +69244,7 @@ static int __pyx_pf_4cdec_2sa_3_sa_6Scorer___init__(struct __pyx_obj_4cdec_2sa_3    return __pyx_r;  } -/* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":29 +/* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":29   *         self.models = zip(names, models)   *    *     cdef FeatureVector score(self, ctx):             # <<<<<<<<<<<<<< @@ -69181,7 +69271,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_FeatureVector *__pyx_f_4cdec_2sa_3_sa_6Sc    int __pyx_clineno = 0;    __Pyx_RefNannySetupContext("score", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":30 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":30   *    *     cdef FeatureVector score(self, ctx):   *         cdef FeatureVector scores = FeatureVector()             # <<<<<<<<<<<<<< @@ -69193,7 +69283,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_FeatureVector *__pyx_f_4cdec_2sa_3_sa_6Sc    __pyx_v_scores = ((struct __pyx_obj_4cdec_2sa_3_sa_FeatureVector *)__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":31 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":31   *     cdef FeatureVector score(self, ctx):   *         cdef FeatureVector scores = FeatureVector()   *         for name, model in self.models:             # <<<<<<<<<<<<<< @@ -69290,7 +69380,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_FeatureVector *__pyx_f_4cdec_2sa_3_sa_6Sc      __Pyx_XDECREF_SET(__pyx_v_model, __pyx_t_6);      __pyx_t_6 = 0; -    /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":32 +    /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":32   *         cdef FeatureVector scores = FeatureVector()   *         for name, model in self.models:   *             scores.set(name, model(ctx))             # <<<<<<<<<<<<<< @@ -69322,7 +69412,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_FeatureVector *__pyx_f_4cdec_2sa_3_sa_6Sc    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":33 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":33   *         for name, model in self.models:   *             scores.set(name, model(ctx))   *         return scores             # <<<<<<<<<<<<<< @@ -69332,7 +69422,7 @@ static struct __pyx_obj_4cdec_2sa_3_sa_FeatureVector *__pyx_f_4cdec_2sa_3_sa_6Sc    __pyx_r = __pyx_v_scores;    goto __pyx_L0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":29 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":29   *         self.models = zip(names, models)   *    *     cdef FeatureVector score(self, ctx):             # <<<<<<<<<<<<<< @@ -71785,6 +71875,7 @@ static PyObject *__pyx_tp_new_4cdec_2sa_3_sa_OnlineStats(PyTypeObject *t, CYTHON    p->phrases_e = Py_None; Py_INCREF(Py_None);    p->phrases_fe = Py_None; Py_INCREF(Py_None);    p->phrases_al = Py_None; Py_INCREF(Py_None); +  p->bilex = Py_None; Py_INCREF(Py_None);    if (unlikely(__pyx_pw_4cdec_2sa_3_sa_11OnlineStats_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {      Py_DECREF(o); o = 0;    } @@ -71804,6 +71895,7 @@ static void __pyx_tp_dealloc_4cdec_2sa_3_sa_OnlineStats(PyObject *o) {    Py_CLEAR(p->phrases_e);    Py_CLEAR(p->phrases_fe);    Py_CLEAR(p->phrases_al); +  Py_CLEAR(p->bilex);    (*Py_TYPE(o)->tp_free)(o);  } @@ -71825,6 +71917,9 @@ static int __pyx_tp_traverse_4cdec_2sa_3_sa_OnlineStats(PyObject *o, visitproc v    if (p->phrases_al) {      e = (*v)(p->phrases_al, a); if (e) return e;    } +  if (p->bilex) { +    e = (*v)(p->bilex, a); if (e) return e; +  }    return 0;  } @@ -71846,6 +71941,9 @@ static int __pyx_tp_clear_4cdec_2sa_3_sa_OnlineStats(PyObject *o) {    tmp = ((PyObject*)p->phrases_al);    p->phrases_al = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp); +  tmp = ((PyObject*)p->bilex); +  p->bilex = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp);    return 0;  } @@ -71914,6 +72012,19 @@ static int __pyx_setprop_4cdec_2sa_3_sa_11OnlineStats_phrases_al(PyObject *o, Py    }  } +static PyObject *__pyx_getprop_4cdec_2sa_3_sa_11OnlineStats_bilex(PyObject *o, CYTHON_UNUSED void *x) { +  return __pyx_pw_4cdec_2sa_3_sa_11OnlineStats_5bilex_1__get__(o); +} + +static int __pyx_setprop_4cdec_2sa_3_sa_11OnlineStats_bilex(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { +  if (v) { +    return __pyx_pw_4cdec_2sa_3_sa_11OnlineStats_5bilex_3__set__(o, v); +  } +  else { +    return __pyx_pw_4cdec_2sa_3_sa_11OnlineStats_5bilex_5__del__(o); +  } +} +  static PyMethodDef __pyx_methods_4cdec_2sa_3_sa_OnlineStats[] = {    {0, 0, 0, 0}  }; @@ -71924,6 +72035,7 @@ static struct PyGetSetDef __pyx_getsets_4cdec_2sa_3_sa_OnlineStats[] = {    {(char *)"phrases_e", __pyx_getprop_4cdec_2sa_3_sa_11OnlineStats_phrases_e, __pyx_setprop_4cdec_2sa_3_sa_11OnlineStats_phrases_e, 0, 0},    {(char *)"phrases_fe", __pyx_getprop_4cdec_2sa_3_sa_11OnlineStats_phrases_fe, __pyx_setprop_4cdec_2sa_3_sa_11OnlineStats_phrases_fe, 0, 0},    {(char *)"phrases_al", __pyx_getprop_4cdec_2sa_3_sa_11OnlineStats_phrases_al, __pyx_setprop_4cdec_2sa_3_sa_11OnlineStats_phrases_al, 0, 0}, +  {(char *)"bilex", __pyx_getprop_4cdec_2sa_3_sa_11OnlineStats_bilex, __pyx_setprop_4cdec_2sa_3_sa_11OnlineStats_bilex, 0, 0},    {0, 0, 0, 0, 0}  }; @@ -77007,6 +77119,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {    {&__pyx_kp_s_0, __pyx_k_0, sizeof(__pyx_k_0), 0, 0, 1, 0},    {&__pyx_kp_s_0_1, __pyx_k_0_1, sizeof(__pyx_k_0_1), 0, 0, 1, 0},    {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0}, +  {&__pyx_n_s_Bilex, __pyx_k_Bilex, sizeof(__pyx_k_Bilex), 0, 0, 1, 1},    {&__pyx_kp_s_Bucket_sort_took_f_seconds, __pyx_k_Bucket_sort_took_f_seconds, sizeof(__pyx_k_Bucket_sort_took_f_seconds), 0, 0, 1, 0},    {&__pyx_kp_s_Computing_collocations, __pyx_k_Computing_collocations, sizeof(__pyx_k_Computing_collocations), 0, 0, 1, 0},    {&__pyx_kp_s_Computing_inverted_indexes, __pyx_k_Computing_inverted_indexes, sizeof(__pyx_k_Computing_inverted_indexes), 0, 0, 1, 0}, @@ -77038,7 +77151,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {    {&__pyx_kp_s_Must_specify_an_alignment_object, __pyx_k_Must_specify_an_alignment_object, sizeof(__pyx_k_Must_specify_an_alignment_object), 0, 0, 1, 0},    {&__pyx_n_s_NULL, __pyx_k_NULL, sizeof(__pyx_k_NULL), 0, 0, 1, 1},    {&__pyx_kp_s_No_aligned_terminals, __pyx_k_No_aligned_terminals, sizeof(__pyx_k_No_aligned_terminals), 0, 0, 1, 0}, -  {&__pyx_kp_s_No_online_bilexical_dictionary_s, __pyx_k_No_online_bilexical_dictionary_s, sizeof(__pyx_k_No_online_bilexical_dictionary_s), 0, 0, 1, 0},    {&__pyx_n_s_OnlineFeatureContext, __pyx_k_OnlineFeatureContext, sizeof(__pyx_k_OnlineFeatureContext), 0, 0, 1, 1},    {&__pyx_kp_s_Precomputation_done_with_max_ini, __pyx_k_Precomputation_done_with_max_ini, sizeof(__pyx_k_Precomputation_done_with_max_ini), 0, 0, 1, 0},    {&__pyx_kp_s_Precomputation_done_with_max_non, __pyx_k_Precomputation_done_with_max_non, sizeof(__pyx_k_Precomputation_done_with_max_non), 0, 0, 1, 0}, @@ -77344,14 +77456,13 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {    {&__pyx_n_s_use_collocations, __pyx_k_use_collocations, sizeof(__pyx_k_use_collocations), 0, 0, 1, 1},    {&__pyx_n_s_use_index, __pyx_k_use_index, sizeof(__pyx_k_use_index), 0, 0, 1, 1},    {&__pyx_n_s_use_sent_id, __pyx_k_use_sent_id, sizeof(__pyx_k_use_sent_id), 0, 0, 1, 1}, -  {&__pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt, __pyx_k_usr0_home_mdenkows_cdec_git_pyt, sizeof(__pyx_k_usr0_home_mdenkows_cdec_git_pyt), 0, 0, 1, 0}, -  {&__pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_2, __pyx_k_usr0_home_mdenkows_cdec_git_pyt_2, sizeof(__pyx_k_usr0_home_mdenkows_cdec_git_pyt_2), 0, 0, 1, 0}, -  {&__pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_3, __pyx_k_usr0_home_mdenkows_cdec_git_pyt_3, sizeof(__pyx_k_usr0_home_mdenkows_cdec_git_pyt_3), 0, 0, 1, 0}, +  {&__pyx_kp_s_usr0_home_mdenkows_cdec_python, __pyx_k_usr0_home_mdenkows_cdec_python, sizeof(__pyx_k_usr0_home_mdenkows_cdec_python), 0, 0, 1, 0}, +  {&__pyx_kp_s_usr0_home_mdenkows_cdec_python_2, __pyx_k_usr0_home_mdenkows_cdec_python_2, sizeof(__pyx_k_usr0_home_mdenkows_cdec_python_2), 0, 0, 1, 0}, +  {&__pyx_kp_s_usr0_home_mdenkows_cdec_python_3, __pyx_k_usr0_home_mdenkows_cdec_python_3, sizeof(__pyx_k_usr0_home_mdenkows_cdec_python_3), 0, 0, 1, 0},    {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},    {&__pyx_n_s_vec, __pyx_k_vec, sizeof(__pyx_k_vec), 0, 0, 1, 1},    {&__pyx_n_s_w, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1},    {&__pyx_n_s_warn, __pyx_k_warn, sizeof(__pyx_k_warn), 0, 0, 1, 1}, -  {&__pyx_n_s_warning, __pyx_k_warning, sizeof(__pyx_k_warning), 0, 0, 1, 1},    {&__pyx_n_s_wc, __pyx_k_wc, sizeof(__pyx_k_wc), 0, 0, 1, 1},    {&__pyx_n_s_word, __pyx_k_word, sizeof(__pyx_k_word), 0, 0, 1, 1},    {&__pyx_n_s_word_alignments, __pyx_k_word_alignments, sizeof(__pyx_k_word_alignments), 0, 0, 1, 1}, @@ -77377,8 +77488,8 @@ static int __Pyx_InitCachedBuiltins(void) {    __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_n_s_zip); if (!__pyx_builtin_zip) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s_StopIteration); if (!__pyx_builtin_StopIteration) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_cmp = __Pyx_GetBuiltinName(__pyx_n_s_cmp); if (!__pyx_builtin_cmp) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_builtin_sorted = __Pyx_GetBuiltinName(__pyx_n_s_sorted); if (!__pyx_builtin_sorted) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_builtin_max = __Pyx_GetBuiltinName(__pyx_n_s_max); if (!__pyx_builtin_max) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_builtin_sorted = __Pyx_GetBuiltinName(__pyx_n_s_sorted); if (!__pyx_builtin_sorted) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_builtin_max = __Pyx_GetBuiltinName(__pyx_n_s_max); if (!__pyx_builtin_max) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    return 0;    __pyx_L1_error:;    return -1; @@ -77388,7 +77499,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_RefNannyDeclarations    __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":20 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":20   *         self.word2id = {"END_OF_FILE":0, "END_OF_LINE":1}   *         self.id2word = ["END_OF_FILE", "END_OF_LINE"]   *         self.data = IntList(1000,1000)             # <<<<<<<<<<<<<< @@ -77399,7 +77510,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__3);    __Pyx_GIVEREF(__pyx_tuple__3); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":21 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":21   *         self.id2word = ["END_OF_FILE", "END_OF_LINE"]   *         self.data = IntList(1000,1000)   *         self.sent_id = IntList(1000,1000)             # <<<<<<<<<<<<<< @@ -77410,7 +77521,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__4);    __Pyx_GIVEREF(__pyx_tuple__4); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":22 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":22   *         self.data = IntList(1000,1000)   *         self.sent_id = IntList(1000,1000)   *         self.sent_index = IntList(1000,1000)             # <<<<<<<<<<<<<< @@ -77421,7 +77532,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__5);    __Pyx_GIVEREF(__pyx_tuple__5); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":66 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":66   *                     f.write("%s " % self.get_word(w_id))   *                 if w_id == 1:   *                     f.write("\n")             # <<<<<<<<<<<<<< @@ -77432,7 +77543,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__7);    __Pyx_GIVEREF(__pyx_tuple__7); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":61 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":61   *    *     def write_text(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -77443,7 +77554,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__8);    __Pyx_GIVEREF(__pyx_tuple__8); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":69 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":69   *    *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<< @@ -77454,7 +77565,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__9);    __Pyx_GIVEREF(__pyx_tuple__9); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":74 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":74   *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:   *             data = (line.split(' ||| ')[side] for line in fp)             # <<<<<<<<<<<<<< @@ -77465,7 +77576,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__11);    __Pyx_GIVEREF(__pyx_tuple__11); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":73 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":73   *    *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<< @@ -77476,7 +77587,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__12);    __Pyx_GIVEREF(__pyx_tuple__12); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":130 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":130   *         num_words = len(self.id2word) - 2   *         fwrite(&(num_words), sizeof(int), 1, f)   *         for word in self.id2word[2:]:             # <<<<<<<<<<<<<< @@ -77487,7 +77598,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_slice__13);    __Pyx_GIVEREF(__pyx_slice__13); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":144 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":144   *         for i in self.data:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<< @@ -77498,7 +77609,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__14);    __Pyx_GIVEREF(__pyx_tuple__14); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":147 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":147   *         for i in self.sent_index:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<< @@ -77509,7 +77620,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__15);    __Pyx_GIVEREF(__pyx_tuple__15); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":150 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":150   *         for i in self.sent_id:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<< @@ -77520,7 +77631,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__16);    __Pyx_GIVEREF(__pyx_tuple__16); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":153 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":153   *         for word in self.id2word:   *             f.write("%s %d " % (word, self.word2id[word]))   *         f.write("\n")             # <<<<<<<<<<<<<< @@ -77531,7 +77642,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__17);    __Pyx_GIVEREF(__pyx_tuple__17); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/data_array.pxi":156 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/data_array.pxi":156   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -77541,7 +77652,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__18);    __Pyx_GIVEREF(__pyx_tuple__18); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":48 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":48   *    *     def __cinit__(self, from_binary=None, from_text=None):   *         self.links = IntList(1000,1000)             # <<<<<<<<<<<<<< @@ -77552,7 +77663,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__19);    __Pyx_GIVEREF(__pyx_tuple__19); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":49 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":49   *     def __cinit__(self, from_binary=None, from_text=None):   *         self.links = IntList(1000,1000)   *         self.sent_index = IntList(1000,1000)             # <<<<<<<<<<<<<< @@ -77563,7 +77674,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__20);    __Pyx_GIVEREF(__pyx_tuple__20); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":61 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":61   *                 pairs = line.split()   *                 for pair in pairs:   *                     (i, j) = map(int, pair.split('-'))             # <<<<<<<<<<<<<< @@ -77574,7 +77685,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__22);    __Pyx_GIVEREF(__pyx_tuple__22); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":56 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":56   *    *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as f:             # <<<<<<<<<<<<<< @@ -77585,7 +77696,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__23);    __Pyx_GIVEREF(__pyx_tuple__23); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":77 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":77   *             for i, link in enumerate(self.links):   *                 while i >= self.sent_index[sent_num]:   *                     f.write("\n")             # <<<<<<<<<<<<<< @@ -77596,7 +77707,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__24);    __Pyx_GIVEREF(__pyx_tuple__24); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":80 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":80   *                     sent_num = sent_num + 1   *                 f.write("%d-%d " % self.unlink(link))   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -77607,7 +77718,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__25);    __Pyx_GIVEREF(__pyx_tuple__25); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":73 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":73   *    *     def write_text(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -77618,7 +77729,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__26);    __Pyx_GIVEREF(__pyx_tuple__26); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":93 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":93   *             for link in self.links:   *                 f.write("%d " % link)   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -77629,7 +77740,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__27);    __Pyx_GIVEREF(__pyx_tuple__27); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":96 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":96   *             for i in self.sent_index:   *                 f.write("%d " % i)   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -77640,7 +77751,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__28);    __Pyx_GIVEREF(__pyx_tuple__28); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":90 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":90   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -77651,7 +77762,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__29);    __Pyx_GIVEREF(__pyx_tuple__29); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":305 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":305   *    *             # Re-read file, placing words into buckets   *             f.seek(0)             # <<<<<<<<<<<<<< @@ -77662,7 +77773,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__30);    __Pyx_GIVEREF(__pyx_tuple__30); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":281 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":281   *    *         fcount = IntList()   *         with gzip_or_text(filename) as f:             # <<<<<<<<<<<<<< @@ -77673,7 +77784,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__31);    __Pyx_GIVEREF(__pyx_tuple__31); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":347 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":347   *    *         if i > j:   *             raise Exception("Sort error in CLex")             # <<<<<<<<<<<<<< @@ -77684,7 +77795,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__33);    __Pyx_GIVEREF(__pyx_tuple__33); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":370 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":370   *             for i in self.f_index:   *                 f.write("%d " % i)   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -77695,7 +77806,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__35);    __Pyx_GIVEREF(__pyx_tuple__35); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":373 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":373   *             for i, s1, s2 in zip(self.e_index, self.col1, self.col2):   *                 f.write("%d %f %f " % (i, s1, s2))   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -77706,7 +77817,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__36);    __Pyx_GIVEREF(__pyx_tuple__36); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":376 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":376   *             for i, w in enumerate(self.id2fword):   *                 f.write("%d %s " % (i, w))   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -77717,7 +77828,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__37);    __Pyx_GIVEREF(__pyx_tuple__37); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":379 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":379   *             for i, w in enumerate(self.id2eword):   *                 f.write("%d %s " % (i, w))   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -77728,7 +77839,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__38);    __Pyx_GIVEREF(__pyx_tuple__38); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":367 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":367   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -77739,7 +77850,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__39);    __Pyx_GIVEREF(__pyx_tuple__39); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/bilex.pxi":412 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/bilex.pxi":412   *         cdef i, N, e_id, f_id   *    *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -77750,7 +77861,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__40);    __Pyx_GIVEREF(__pyx_tuple__40); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":13 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":13   *         cdef IntList rank   *    *         logger.info("Constructing LCP array")             # <<<<<<<<<<<<<< @@ -77761,7 +77872,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__43);    __Pyx_GIVEREF(__pyx_tuple__43); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/lcp.pxi":34 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/lcp.pxi":34   *             if h > 0:   *                 h = h-1   *         logger.info("LCP array completed")             # <<<<<<<<<<<<<< @@ -77772,7 +77883,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__44);    __Pyx_GIVEREF(__pyx_tuple__44); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":297 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":297   *         pattern_rank = {}   *    *         logger.info("Precomputing frequent intersections")             # <<<<<<<<<<<<<< @@ -77783,7 +77894,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__47);    __Pyx_GIVEREF(__pyx_tuple__47); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":314 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":314   *         queue = IntList(increment=1000)   *    *         logger.info("    Computing inverted indexes...")             # <<<<<<<<<<<<<< @@ -77794,7 +77905,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__48);    __Pyx_GIVEREF(__pyx_tuple__48); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":329 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":329   *                     trie_node_data_append(node, i)   *    *         logger.info("    Computing collocations...")             # <<<<<<<<<<<<<< @@ -77805,7 +77916,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__49);    __Pyx_GIVEREF(__pyx_tuple__49); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":386 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":386   *                 ptr1 = ptr1 + 1   *    *         self.precomputed_collocations = collocations.toMap(False)             # <<<<<<<<<<<<<< @@ -77816,7 +77927,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__50);    __Pyx_GIVEREF(__pyx_tuple__50); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":387 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":387   *    *         self.precomputed_collocations = collocations.toMap(False)   *         self.precomputed_index = frequent_patterns.toMap(True)             # <<<<<<<<<<<<<< @@ -77827,7 +77938,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__51);    __Pyx_GIVEREF(__pyx_tuple__51); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":393 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":393   *             for pattern2 in J_set:   *                 if len(pattern1) + len(pattern2) + 1 < self.max_length:   *                     combined_pattern = pattern1 + (-1,) + pattern2             # <<<<<<<<<<<<<< @@ -77838,7 +77949,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__52);    __Pyx_GIVEREF(__pyx_tuple__52); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":400 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":400   *                 x = x+1   *                 if len(pattern1) + len(pattern2) + 1 <= self.max_length:   *                     combined_pattern = pattern1 + (-1,) + pattern2             # <<<<<<<<<<<<<< @@ -77849,7 +77960,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__53);    __Pyx_GIVEREF(__pyx_tuple__53); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":407 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":407   *                 x = x+2   *                 if len(pattern1) + len(pattern2) + 1<= self.max_length:   *                     combined_pattern = pattern1 + (-1,) + pattern2             # <<<<<<<<<<<<<< @@ -77860,7 +77971,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__54);    __Pyx_GIVEREF(__pyx_tuple__54); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/precomputation.pxi":409 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/precomputation.pxi":409   *                     combined_pattern = pattern1 + (-1,) + pattern2   *                     IJ_set.add(combined_pattern)   *                     combined_pattern = pattern2 + (-1,) + pattern1             # <<<<<<<<<<<<<< @@ -77871,7 +77982,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__55);    __Pyx_GIVEREF(__pyx_tuple__55); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":94 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":94   *    *         '''Step 3: read off suffix array from inverse suffix array'''   *         logger.info("    Finalizing sort...")             # <<<<<<<<<<<<<< @@ -77882,7 +77993,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__56);    __Pyx_GIVEREF(__pyx_tuple__56); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":193 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":193   *             for a_i in self.sa:   *                 f.write("%d " % a_i)   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -77893,7 +78004,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__57);    __Pyx_GIVEREF(__pyx_tuple__57); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":196 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":196   *             for w_i in self.ha:   *                 f.write("%d " % w_i)   *             f.write("\n")             # <<<<<<<<<<<<<< @@ -77904,7 +78015,7 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__58);    __Pyx_GIVEREF(__pyx_tuple__58); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/suffix_array.pxi":189 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/suffix_array.pxi":189   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -77915,128 +78026,117 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GOTREF(__pyx_tuple__59);    __Pyx_GIVEREF(__pyx_tuple__59); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":133 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":140   *             logger.info("Sampling strategy: uniform, max sample size = %d", sample_size)   *         else:   *             logger.info("Sampling strategy: no sampling")             # <<<<<<<<<<<<<<   *    *     def sample(self, PhraseLocation phrase_location):   */ -  __pyx_tuple__60 = PyTuple_Pack(1, __pyx_kp_s_Sampling_strategy_no_sampling); if (unlikely(!__pyx_tuple__60)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__60 = PyTuple_Pack(1, __pyx_kp_s_Sampling_strategy_no_sampling); if (unlikely(!__pyx_tuple__60)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_tuple__60);    __Pyx_GIVEREF(__pyx_tuple__60); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":346 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":353   *         respectively.    This is because Chiang's model does not require   *         them to be the same, therefore we don't either.'''   *         self.rules = TrieTable(True) # cache             # <<<<<<<<<<<<<<   *         self.rules.root = ExtendedTrieNode(phrase_location=PhraseLocation())   *         if alignment is None:   */ -  __pyx_tuple__61 = PyTuple_Pack(1, Py_True); if (unlikely(!__pyx_tuple__61)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__61 = PyTuple_Pack(1, Py_True); if (unlikely(!__pyx_tuple__61)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_tuple__61);    __Pyx_GIVEREF(__pyx_tuple__61); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":349 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":356   *         self.rules.root = ExtendedTrieNode(phrase_location=PhraseLocation())   *         if alignment is None:   *             raise Exception("Must specify an alignment object")             # <<<<<<<<<<<<<<   *         self.alignment = alignment   *    */ -  __pyx_tuple__62 = PyTuple_Pack(1, __pyx_kp_s_Must_specify_an_alignment_object); if (unlikely(!__pyx_tuple__62)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__62 = PyTuple_Pack(1, __pyx_kp_s_Must_specify_an_alignment_object); if (unlikely(!__pyx_tuple__62)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_tuple__62);    __Pyx_GIVEREF(__pyx_tuple__62); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1064 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1072   *                         else:   *                             #ERROR: We never get here   *                             raise Exception("Keyword trie error")             # <<<<<<<<<<<<<<   *                 # checking whether lookup_required   *                 if lookup_required:   */ -  __pyx_tuple__66 = PyTuple_Pack(1, __pyx_kp_s_Keyword_trie_error); if (unlikely(!__pyx_tuple__66)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__66 = PyTuple_Pack(1, __pyx_kp_s_Keyword_trie_error); if (unlikely(!__pyx_tuple__66)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_tuple__66);    __Pyx_GIVEREF(__pyx_tuple__66); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1983 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1991   *             if nt and nt[-1][2] == f_j - 1:   *                 # Add to non-terminal, checking for collisions   *                 old_last_nt = nt[-1][:]             # <<<<<<<<<<<<<<   *                 nt[-1][2] = f_j   *                 if link_i < nt[-1][3]:   */ -  __pyx_slice__67 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__67)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_slice__67 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__67)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1991; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_slice__67);    __Pyx_GIVEREF(__pyx_slice__67); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":1920 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":1928   *         # f_ i and j are current, e_ i and j are previous   *         # We care _considering_ f_j, so it is not yet in counts   *         def extract(f_i, f_j, e_i, e_j, min_bound, wc, links, nt, nt_open):             # <<<<<<<<<<<<<<   *             # Phrase extraction limits   *             if f_j > (f_len - 1) or (f_j - f_i) + 1 > self.max_initial_size:   */ -  __pyx_tuple__68 = PyTuple_Pack(19, __pyx_n_s_f_i, __pyx_n_s_f_j, __pyx_n_s_e_i, __pyx_n_s_e_j, __pyx_n_s_min_bound, __pyx_n_s_wc, __pyx_n_s_links, __pyx_n_s_nt, __pyx_n_s_nt_open, __pyx_n_s_link_i, __pyx_n_s_link_j, __pyx_n_s_new_e_i, __pyx_n_s_new_e_j, __pyx_n_s_new_min_bound, __pyx_n_s_i, __pyx_n_s_nt_collision, __pyx_n_s_link, __pyx_n_s_plus_links, __pyx_n_s_old_last_nt); if (unlikely(!__pyx_tuple__68)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__68 = PyTuple_Pack(19, __pyx_n_s_f_i, __pyx_n_s_f_j, __pyx_n_s_e_i, __pyx_n_s_e_j, __pyx_n_s_min_bound, __pyx_n_s_wc, __pyx_n_s_links, __pyx_n_s_nt, __pyx_n_s_nt_open, __pyx_n_s_link_i, __pyx_n_s_link_j, __pyx_n_s_new_e_i, __pyx_n_s_new_e_j, __pyx_n_s_new_min_bound, __pyx_n_s_i, __pyx_n_s_nt_collision, __pyx_n_s_link, __pyx_n_s_plus_links, __pyx_n_s_old_last_nt); if (unlikely(!__pyx_tuple__68)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_tuple__68);    __Pyx_GIVEREF(__pyx_tuple__68); -  __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(9, 0, 19, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt, __pyx_n_s_extract, 1920, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(9, 0, 19, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python, __pyx_n_s_extract, 1928, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2042 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2050   *         # Update phrase counts   *         for rule in rules:   *             (f_ph, e_ph, al) = rule[:3]             # <<<<<<<<<<<<<<   *             stats.phrases_f[f_ph] += 1   *             stats.phrases_e[e_ph] += 1   */ -  __pyx_slice__70 = PySlice_New(Py_None, __pyx_int_3, Py_None); if (unlikely(!__pyx_slice__70)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_slice__70 = PySlice_New(Py_None, __pyx_int_3, Py_None); if (unlikely(!__pyx_slice__70)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_slice__70);    __Pyx_GIVEREF(__pyx_slice__70); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2053 - *             self.bilex.update(f_words, e_words, alignment) - *         else: - *             logger.warning('No online bilexical dictionary specified, not updating lexical weights')             # <<<<<<<<<<<<<< - *  - *     # Create a rule from source, target, non-terminals, and alignments - */ -  __pyx_tuple__71 = PyTuple_Pack(1, __pyx_kp_s_No_online_bilexical_dictionary_s); if (unlikely(!__pyx_tuple__71)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__71); -  __Pyx_GIVEREF(__pyx_tuple__71); - -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2060 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2065   *         # Substitute in non-terminals   *         nt_inv = sorted(nt, cmp=lambda x, y: cmp(x[3], y[3]))   *         f_sym = list(f_span[:])             # <<<<<<<<<<<<<<   *         off = f_i   *         for next_nt in nt:   */ -  __pyx_slice__72 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__72)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2060; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_slice__72); -  __Pyx_GIVEREF(__pyx_slice__72); +  __pyx_slice__71 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__71)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_slice__71); +  __Pyx_GIVEREF(__pyx_slice__71); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2070 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2075   *             f_sym.insert(next_nt[1] - off, sym_setindex(self.category, next_nt[0]))   *             off += (nt_len - 1)   *         e_sym = list(e_span[:])             # <<<<<<<<<<<<<<   *         off = e_i   *         for next_nt in nt_inv:   */ -  __pyx_slice__73 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__73)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2070; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_slice__73); -  __Pyx_GIVEREF(__pyx_slice__73); +  __pyx_slice__72 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__72)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2075; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_slice__72); +  __Pyx_GIVEREF(__pyx_slice__72); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2145 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2150   *         phrases = set() # (fphrase, lex_i, lex_j)   *    *         def extract(f_i, f_j, lex_i, lex_j, wc, ntc, syms):             # <<<<<<<<<<<<<<   *             # Phrase extraction limits   *             if f_j > (f_len - 1) or (f_j - f_i) + 1 > self.max_initial_size:   */ -  __pyx_tuple__74 = PyTuple_Pack(10, __pyx_n_s_f_i, __pyx_n_s_f_j, __pyx_n_s_lex_i, __pyx_n_s_lex_j, __pyx_n_s_wc, __pyx_n_s_ntc, __pyx_n_s_syms, __pyx_n_s_f, __pyx_n_s_new_lex_i, __pyx_n_s_new_lex_j); if (unlikely(!__pyx_tuple__74)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__74); -  __Pyx_GIVEREF(__pyx_tuple__74); -  __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(7, 0, 10, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt, __pyx_n_s_extract, 2145, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__73 = PyTuple_Pack(10, __pyx_n_s_f_i, __pyx_n_s_f_j, __pyx_n_s_lex_i, __pyx_n_s_lex_j, __pyx_n_s_wc, __pyx_n_s_ntc, __pyx_n_s_syms, __pyx_n_s_f, __pyx_n_s_new_lex_i, __pyx_n_s_new_lex_j); if (unlikely(!__pyx_tuple__73)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__73); +  __Pyx_GIVEREF(__pyx_tuple__73); +  __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(7, 0, 10, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python, __pyx_n_s_extract, 2150, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    /* "cdec/sa/_sa.pyx":5   * import gzip @@ -78045,7 +78145,7 @@ static int __Pyx_InitCachedConstants(void) {   *     return (resource.getrusage(resource.RUSAGE_SELF).ru_utime+   *             resource.getrusage(resource.RUSAGE_SELF).ru_stime)   */ -  __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_2, __pyx_n_s_monitor_cpu, 5, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python_2, __pyx_n_s_monitor_cpu, 5, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    /* "cdec/sa/_sa.pyx":9   *             resource.getrusage(resource.RUSAGE_SELF).ru_stime) @@ -78054,10 +78154,10 @@ static int __Pyx_InitCachedConstants(void) {   *     if filename.endswith('.gz'):   *         return gzip.GzipFile(filename)   */ -  __pyx_tuple__77 = PyTuple_Pack(2, __pyx_n_s_filename, __pyx_n_s_filename); if (unlikely(!__pyx_tuple__77)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__77); -  __Pyx_GIVEREF(__pyx_tuple__77); -  __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_2, __pyx_n_s_gzip_or_text, 9, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__76 = PyTuple_Pack(2, __pyx_n_s_filename, __pyx_n_s_filename); if (unlikely(!__pyx_tuple__76)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__76); +  __Pyx_GIVEREF(__pyx_tuple__76); +  __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python_2, __pyx_n_s_gzip_or_text, 9, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    /* "cdec/sa/_sa.pyx":15   *         return open(filename) @@ -78066,116 +78166,116 @@ static int __Pyx_InitCachedConstants(void) {   *    * include "float_list.pxi"   */ -  __pyx_tuple__79 = PyTuple_Pack(1, __pyx_kp_s_cdec_sa); if (unlikely(!__pyx_tuple__79)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__79); -  __Pyx_GIVEREF(__pyx_tuple__79); +  __pyx_tuple__78 = PyTuple_Pack(1, __pyx_kp_s_cdec_sa); if (unlikely(!__pyx_tuple__78)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__78); +  __Pyx_GIVEREF(__pyx_tuple__78); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":107 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":107   *     return ALPHABET.fromstring(string, terminal)   *    * def isvar(sym):             # <<<<<<<<<<<<<<   *     return sym_isvar(sym)   *    */ -  __pyx_tuple__80 = PyTuple_Pack(1, __pyx_n_s_sym); if (unlikely(!__pyx_tuple__80)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__80); -  __Pyx_GIVEREF(__pyx_tuple__80); -  __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_3, __pyx_n_s_isvar, 107, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__79 = PyTuple_Pack(1, __pyx_n_s_sym); if (unlikely(!__pyx_tuple__79)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__79); +  __Pyx_GIVEREF(__pyx_tuple__79); +  __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python_3, __pyx_n_s_isvar, 107, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":110 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":110   *     return sym_isvar(sym)   *    * def make_lattice(words):             # <<<<<<<<<<<<<<   *     word_ids = (sym_fromstring(word, True) for word in words)   *     return tuple(((word, None, 1), ) for word in word_ids)   */ -  __pyx_tuple__82 = PyTuple_Pack(5, __pyx_n_s_words, __pyx_n_s_word_ids, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__82)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__82); -  __Pyx_GIVEREF(__pyx_tuple__82); -  __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__82, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_3, __pyx_n_s_make_lattice, 110, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__81 = PyTuple_Pack(5, __pyx_n_s_words, __pyx_n_s_word_ids, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__81)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__81); +  __Pyx_GIVEREF(__pyx_tuple__81); +  __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python_3, __pyx_n_s_make_lattice, 110, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":114 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":114   *     return tuple(((word, None, 1), ) for word in word_ids)   *    * def decode_lattice(lattice):             # <<<<<<<<<<<<<<   *     return tuple((sym_tostring(sym), weight, dist) for (sym, weight, dist) in arc   *             for arc in node for node in lattice)   */ -  __pyx_tuple__84 = PyTuple_Pack(3, __pyx_n_s_lattice, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__84)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__84); -  __Pyx_GIVEREF(__pyx_tuple__84); -  __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_3, __pyx_n_s_decode_lattice, 114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__83 = PyTuple_Pack(3, __pyx_n_s_lattice, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__83)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__83); +  __Pyx_GIVEREF(__pyx_tuple__83); +  __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python_3, __pyx_n_s_decode_lattice, 114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":118 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":118   *             for arc in node for node in lattice)   *    * def decode_sentence(lattice):             # <<<<<<<<<<<<<<   *     return tuple(sym_tostring(sym) for ((sym, _, _),) in lattice)   *    */ -  __pyx_tuple__86 = PyTuple_Pack(3, __pyx_n_s_lattice, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__86)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__86); -  __Pyx_GIVEREF(__pyx_tuple__86); -  __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__86, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_3, __pyx_n_s_decode_sentence, 118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__85 = PyTuple_Pack(3, __pyx_n_s_lattice, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__85)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__85); +  __Pyx_GIVEREF(__pyx_tuple__85); +  __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python_3, __pyx_n_s_decode_sentence, 118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":121 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":121   *     return tuple(sym_tostring(sym) for ((sym, _, _),) in lattice)   *    * def encode_words(words):             # <<<<<<<<<<<<<<   *     return tuple(sym_fromstring(word, True) for word in words)   *    */ -  __pyx_tuple__88 = PyTuple_Pack(3, __pyx_n_s_words, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__88)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__88); -  __Pyx_GIVEREF(__pyx_tuple__88); -  __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_3, __pyx_n_s_encode_words, 121, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__87 = PyTuple_Pack(3, __pyx_n_s_words, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__87)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__87); +  __Pyx_GIVEREF(__pyx_tuple__87); +  __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python_3, __pyx_n_s_encode_words, 121, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":124 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":124   *     return tuple(sym_fromstring(word, True) for word in words)   *    * def decode_words(syms):             # <<<<<<<<<<<<<<   *     return tuple(sym_tostring(sym) for sym in syms)   */ -  __pyx_tuple__90 = PyTuple_Pack(3, __pyx_n_s_syms, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__90)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__90); -  __Pyx_GIVEREF(__pyx_tuple__90); -  __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt_3, __pyx_n_s_decode_words, 124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__89 = PyTuple_Pack(3, __pyx_n_s_syms, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__89)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__89); +  __Pyx_GIVEREF(__pyx_tuple__89); +  __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__89, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python_3, __pyx_n_s_decode_words, 124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2183 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2188   *    * # Spans are _inclusive_ on both ends [i, j]   * def span_check(vec, i, j):             # <<<<<<<<<<<<<<   *     k = i   *     while k <= j:   */ -  __pyx_tuple__92 = PyTuple_Pack(4, __pyx_n_s_vec, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k); if (unlikely(!__pyx_tuple__92)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__92); -  __Pyx_GIVEREF(__pyx_tuple__92); -  __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__92, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt, __pyx_n_s_span_check, 2183, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__91 = PyTuple_Pack(4, __pyx_n_s_vec, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k); if (unlikely(!__pyx_tuple__91)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__91); +  __Pyx_GIVEREF(__pyx_tuple__91); +  __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__91, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python, __pyx_n_s_span_check, 2188, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2191 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2196   *     return True   *    * def span_inc(vec, i, j):             # <<<<<<<<<<<<<<   *     k = i   *     while k <= j:   */ -  __pyx_tuple__94 = PyTuple_Pack(4, __pyx_n_s_vec, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k); if (unlikely(!__pyx_tuple__94)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__94); -  __Pyx_GIVEREF(__pyx_tuple__94); -  __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__94, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt, __pyx_n_s_span_inc, 2191, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__93 = PyTuple_Pack(4, __pyx_n_s_vec, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k); if (unlikely(!__pyx_tuple__93)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__93); +  __Pyx_GIVEREF(__pyx_tuple__93); +  __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python, __pyx_n_s_span_inc, 2196, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2197 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2202   *         k += 1   *    * def span_dec(vec, i, j):             # <<<<<<<<<<<<<<   *     k = i   *     while k <= j:   */ -  __pyx_tuple__96 = PyTuple_Pack(4, __pyx_n_s_vec, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k); if (unlikely(!__pyx_tuple__96)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_tuple__96); -  __Pyx_GIVEREF(__pyx_tuple__96); -  __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__96, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_git_pyt, __pyx_n_s_span_dec, 2197, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_tuple__95 = PyTuple_Pack(4, __pyx_n_s_vec, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k); if (unlikely(!__pyx_tuple__95)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_tuple__95); +  __Pyx_GIVEREF(__pyx_tuple__95); +  __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr0_home_mdenkows_cdec_python, __pyx_n_s_span_dec, 2202, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_RefNannyFinishContext();    return 0;    __pyx_L1_error:; @@ -78430,33 +78530,33 @@ PyMODINIT_FUNC PyInit__sa(void)    if (__Pyx_SetVtable(__pyx_type_4cdec_2sa_3_sa_SuffixArray.tp_dict, __pyx_vtabptr_4cdec_2sa_3_sa_SuffixArray) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__Pyx_SetAttrString(__pyx_m, "SuffixArray", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_SuffixArray) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_2sa_3_sa_SuffixArray = &__pyx_type_4cdec_2sa_3_sa_SuffixArray; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_OnlineStats) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_OnlineStats) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa_OnlineStats.tp_print = 0; -  if (__Pyx_SetAttrString(__pyx_m, "OnlineStats", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_OnlineStats) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "OnlineStats", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_OnlineStats) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_2sa_3_sa_OnlineStats = &__pyx_type_4cdec_2sa_3_sa_OnlineStats; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_TrieNode) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_TrieNode) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa_TrieNode.tp_print = 0; -  if (__Pyx_SetAttrString(__pyx_m, "TrieNode", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_TrieNode) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "TrieNode", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_TrieNode) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_2sa_3_sa_TrieNode = &__pyx_type_4cdec_2sa_3_sa_TrieNode;    __pyx_type_4cdec_2sa_3_sa_ExtendedTrieNode.tp_base = __pyx_ptype_4cdec_2sa_3_sa_TrieNode; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_ExtendedTrieNode) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_ExtendedTrieNode) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa_ExtendedTrieNode.tp_print = 0; -  if (__Pyx_SetAttrString(__pyx_m, "ExtendedTrieNode", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_ExtendedTrieNode) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "ExtendedTrieNode", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_ExtendedTrieNode) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_2sa_3_sa_ExtendedTrieNode = &__pyx_type_4cdec_2sa_3_sa_ExtendedTrieNode; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_TrieTable) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_TrieTable) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa_TrieTable.tp_print = 0; -  if (__Pyx_SetAttrString(__pyx_m, "TrieTable", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_TrieTable) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "TrieTable", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_TrieTable) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_2sa_3_sa_TrieTable = &__pyx_type_4cdec_2sa_3_sa_TrieTable;    __pyx_vtabptr_4cdec_2sa_3_sa_PhraseLocation = &__pyx_vtable_4cdec_2sa_3_sa_PhraseLocation;    __pyx_vtable_4cdec_2sa_3_sa_PhraseLocation.contains = (int (*)(struct __pyx_obj_4cdec_2sa_3_sa_PhraseLocation *, int))__pyx_f_4cdec_2sa_3_sa_14PhraseLocation_contains; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_PhraseLocation) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_PhraseLocation) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa_PhraseLocation.tp_print = 0; -  if (__Pyx_SetVtable(__pyx_type_4cdec_2sa_3_sa_PhraseLocation.tp_dict, __pyx_vtabptr_4cdec_2sa_3_sa_PhraseLocation) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (__Pyx_SetAttrString(__pyx_m, "PhraseLocation", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_PhraseLocation) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetVtable(__pyx_type_4cdec_2sa_3_sa_PhraseLocation.tp_dict, __pyx_vtabptr_4cdec_2sa_3_sa_PhraseLocation) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "PhraseLocation", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_PhraseLocation) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_2sa_3_sa_PhraseLocation = &__pyx_type_4cdec_2sa_3_sa_PhraseLocation; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_Sampler) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_Sampler) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa_Sampler.tp_print = 0; -  if (__Pyx_SetAttrString(__pyx_m, "Sampler", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_Sampler) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "Sampler", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_Sampler) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_2sa_3_sa_Sampler = &__pyx_type_4cdec_2sa_3_sa_Sampler;    __pyx_vtabptr_4cdec_2sa_3_sa_HieroCachingRuleFactory = &__pyx_vtable_4cdec_2sa_3_sa_HieroCachingRuleFactory;    __pyx_vtable_4cdec_2sa_3_sa_HieroCachingRuleFactory.set_idmap = (PyObject *(*)(struct __pyx_obj_4cdec_2sa_3_sa_HieroCachingRuleFactory *, struct __pyx_obj_4cdec_2sa_3_sa_DataArray *))__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_set_idmap; @@ -78474,10 +78574,10 @@ PyMODINIT_FUNC PyInit__sa(void)    __pyx_vtable_4cdec_2sa_3_sa_HieroCachingRuleFactory.extract_phrases = (PyObject *(*)(struct __pyx_obj_4cdec_2sa_3_sa_HieroCachingRuleFactory *, int, int, int *, int *, int *, int, int, int, int *, int *, int *, int, int, int))__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract_phrases;    __pyx_vtable_4cdec_2sa_3_sa_HieroCachingRuleFactory.create_alignments = (struct __pyx_obj_4cdec_2sa_3_sa_IntList *(*)(struct __pyx_obj_4cdec_2sa_3_sa_HieroCachingRuleFactory *, int *, int, struct __pyx_obj_4cdec_2sa_3_sa_IntList *, struct __pyx_obj_4cdec_2sa_3_sa_IntList *))__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_create_alignments;    __pyx_vtable_4cdec_2sa_3_sa_HieroCachingRuleFactory.extract = (PyObject *(*)(struct __pyx_obj_4cdec_2sa_3_sa_HieroCachingRuleFactory *, struct __pyx_obj_4cdec_2sa_3_sa_Phrase *, struct __pyx_t_4cdec_2sa_3_sa_Matching *, int *, int))__pyx_f_4cdec_2sa_3_sa_23HieroCachingRuleFactory_extract; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_HieroCachingRuleFactory) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa_HieroCachingRuleFactory) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa_HieroCachingRuleFactory.tp_print = 0; -  if (__Pyx_SetVtable(__pyx_type_4cdec_2sa_3_sa_HieroCachingRuleFactory.tp_dict, __pyx_vtabptr_4cdec_2sa_3_sa_HieroCachingRuleFactory) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (__Pyx_SetAttrString(__pyx_m, "HieroCachingRuleFactory", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_HieroCachingRuleFactory) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetVtable(__pyx_type_4cdec_2sa_3_sa_HieroCachingRuleFactory.tp_dict, __pyx_vtabptr_4cdec_2sa_3_sa_HieroCachingRuleFactory) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (__Pyx_SetAttrString(__pyx_m, "HieroCachingRuleFactory", (PyObject *)&__pyx_type_4cdec_2sa_3_sa_HieroCachingRuleFactory) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_4cdec_2sa_3_sa_HieroCachingRuleFactory = &__pyx_type_4cdec_2sa_3_sa_HieroCachingRuleFactory;    __pyx_vtabptr_4cdec_2sa_3_sa_Scorer = &__pyx_vtable_4cdec_2sa_3_sa_Scorer;    __pyx_vtable_4cdec_2sa_3_sa_Scorer.score = (struct __pyx_obj_4cdec_2sa_3_sa_FeatureVector *(*)(struct __pyx_obj_4cdec_2sa_3_sa_Scorer *, PyObject *))__pyx_f_4cdec_2sa_3_sa_6Scorer_score; @@ -78543,28 +78643,28 @@ PyMODINIT_FUNC PyInit__sa(void)    if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_18_alignments) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_18_alignments.tp_print = 0;    __pyx_ptype_4cdec_2sa_3_sa___pyx_scope_struct_18_alignments = &__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_18_alignments; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_19_input) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_19_input) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_19_input.tp_print = 0;    __pyx_ptype_4cdec_2sa_3_sa___pyx_scope_struct_19_input = &__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_19_input; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_20_genexpr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_20_genexpr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_20_genexpr.tp_print = 0;    __pyx_ptype_4cdec_2sa_3_sa___pyx_scope_struct_20_genexpr = &__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_20_genexpr; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_21_add_instance) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_21_add_instance) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_21_add_instance.tp_print = 0;    __pyx_ptype_4cdec_2sa_3_sa___pyx_scope_struct_21_add_instance = &__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_21_add_instance; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_22_form_rule) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2056; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_22_form_rule) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2061; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_22_form_rule.tp_print = 0;    __pyx_ptype_4cdec_2sa_3_sa___pyx_scope_struct_22_form_rule = &__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_22_form_rule; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_23_genexpr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_23_genexpr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_23_genexpr.tp_print = 0;    __pyx_ptype_4cdec_2sa_3_sa___pyx_scope_struct_23_genexpr = &__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_23_genexpr; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_24_fmt_rule) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_24_fmt_rule) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_24_fmt_rule.tp_print = 0;    __pyx_ptype_4cdec_2sa_3_sa___pyx_scope_struct_24_fmt_rule = &__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_24_fmt_rule; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_25_genexpr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_25_genexpr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_25_genexpr.tp_print = 0;    __pyx_ptype_4cdec_2sa_3_sa___pyx_scope_struct_25_genexpr = &__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_25_genexpr; -  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_26_get_f_phrases) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_26_get_f_phrases) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_26_get_f_phrases.tp_print = 0;    __pyx_ptype_4cdec_2sa_3_sa___pyx_scope_struct_26_get_f_phrases = &__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_26_get_f_phrases;    if (PyType_Ready(&__pyx_type_4cdec_2sa_3_sa___pyx_scope_struct_27___iter__) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -78650,13 +78750,13 @@ PyMODINIT_FUNC PyInit__sa(void)    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__79, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__78, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    if (PyDict_SetItem(__pyx_d, __pyx_n_s_logger, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/alignment.pxi":8 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/alignment.pxi":8   * # May need to revisit if things get really tight, though.   *    * cdef int ALIGNMENT_CODE = 1 << 16             # <<<<<<<<<<<<<< @@ -78665,7 +78765,7 @@ PyMODINIT_FUNC PyInit__sa(void)   */    __pyx_v_4cdec_2sa_3_sa_ALIGNMENT_CODE = 65536; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":17 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":17   * from libc.string cimport memset   *    * cdef int MIN_BOTTOM_SIZE = 32             # <<<<<<<<<<<<<< @@ -78674,7 +78774,7 @@ PyMODINIT_FUNC PyInit__sa(void)   */    __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_SIZE = 32; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":18 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":18   *    * cdef int MIN_BOTTOM_SIZE = 32   * cdef int MIN_BOTTOM_BITS = 5             # <<<<<<<<<<<<<< @@ -78683,7 +78783,7 @@ PyMODINIT_FUNC PyInit__sa(void)   */    __pyx_v_4cdec_2sa_3_sa_MIN_BOTTOM_BITS = 5; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/veb.pxi":28 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/veb.pxi":28   *         LOWER_MASK[i] = mask   *    * _init_lower_mask()             # <<<<<<<<<<<<<< @@ -78692,7 +78792,7 @@ PyMODINIT_FUNC PyInit__sa(void)   */    __pyx_f_4cdec_2sa_3_sa__init_lower_mask(); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":4 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":4   * from libc.stdlib cimport malloc, realloc, strtol   *    * cdef int INDEX_SHIFT = 3             # <<<<<<<<<<<<<< @@ -78701,7 +78801,7 @@ PyMODINIT_FUNC PyInit__sa(void)   */    __pyx_v_4cdec_2sa_3_sa_INDEX_SHIFT = 3; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":5 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":5   *    * cdef int INDEX_SHIFT = 3   * cdef int INDEX_MASK = (1<<INDEX_SHIFT)-1             # <<<<<<<<<<<<<< @@ -78710,7 +78810,7 @@ PyMODINIT_FUNC PyInit__sa(void)   */    __pyx_v_4cdec_2sa_3_sa_INDEX_MASK = ((1 << __pyx_v_4cdec_2sa_3_sa_INDEX_SHIFT) - 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":87 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":87   *             return self.terminals.index(s)   *    * cdef Alphabet ALPHABET = Alphabet()             # <<<<<<<<<<<<<< @@ -78724,7 +78824,7 @@ PyMODINIT_FUNC PyInit__sa(void)    __Pyx_GIVEREF(__pyx_t_1);    __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":107 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":107   *     return ALPHABET.fromstring(string, terminal)   *    * def isvar(sym):             # <<<<<<<<<<<<<< @@ -78736,7 +78836,7 @@ PyMODINIT_FUNC PyInit__sa(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s_isvar, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":110 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":110   *     return sym_isvar(sym)   *    * def make_lattice(words):             # <<<<<<<<<<<<<< @@ -78748,7 +78848,7 @@ PyMODINIT_FUNC PyInit__sa(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_lattice, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":114 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":114   *     return tuple(((word, None, 1), ) for word in word_ids)   *    * def decode_lattice(lattice):             # <<<<<<<<<<<<<< @@ -78760,7 +78860,7 @@ PyMODINIT_FUNC PyInit__sa(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s_decode_lattice, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":118 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":118   *             for arc in node for node in lattice)   *    * def decode_sentence(lattice):             # <<<<<<<<<<<<<< @@ -78772,7 +78872,7 @@ PyMODINIT_FUNC PyInit__sa(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s_decode_sentence, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":121 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":121   *     return tuple(sym_tostring(sym) for ((sym, _, _),) in lattice)   *    * def encode_words(words):             # <<<<<<<<<<<<<< @@ -78784,7 +78884,7 @@ PyMODINIT_FUNC PyInit__sa(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s_encode_words, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/sym.pxi":124 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/sym.pxi":124   *     return tuple(sym_fromstring(word, True) for word in words)   *    * def decode_words(syms):             # <<<<<<<<<<<<<< @@ -78795,7 +78895,7 @@ PyMODINIT_FUNC PyInit__sa(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s_decode_words, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":5 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":5   * # Much faster than the Python numbers reported there.   * # Note to reader: this code is closer to C than Python   * import gc             # <<<<<<<<<<<<<< @@ -78807,7 +78907,7 @@ PyMODINIT_FUNC PyInit__sa(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s_gc, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":6 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":6   * # Note to reader: this code is closer to C than Python   * import gc   * import itertools             # <<<<<<<<<<<<<< @@ -78819,12 +78919,12 @@ PyMODINIT_FUNC PyInit__sa(void)    if (PyDict_SetItem(__pyx_d, __pyx_n_s_itertools, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":12 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":12   * from libc.math cimport fmod, ceil, floor, log   *    * from collections import defaultdict, Counter, namedtuple             # <<<<<<<<<<<<<<   *  - * FeatureContext = namedtuple('FeatureContext', + * from online import Bilex   */    __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); @@ -78854,105 +78954,126 @@ PyMODINIT_FUNC PyInit__sa(void)    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":14 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":14   * from collections import defaultdict, Counter, namedtuple   *  + * from online import Bilex             # <<<<<<<<<<<<<< + *  + * FeatureContext = namedtuple('FeatureContext', + */ +  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_INCREF(__pyx_n_s_Bilex); +  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Bilex); +  __Pyx_GIVEREF(__pyx_n_s_Bilex); +  __pyx_t_1 = __Pyx_Import(__pyx_n_s_online, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Bilex); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_2); +  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Bilex, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":16 + * from online import Bilex + *    * FeatureContext = namedtuple('FeatureContext',             # <<<<<<<<<<<<<<   *     ['fphrase',   *      'ephrase',   */ -  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_namedtuple); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_namedtuple); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":15 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":17   *    * FeatureContext = namedtuple('FeatureContext',   *     ['fphrase',             # <<<<<<<<<<<<<<   *      'ephrase',   *      'paircount',   */ -  __pyx_t_1 = PyList_New(13); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __pyx_t_2 = PyList_New(13); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_2);    __Pyx_INCREF(__pyx_n_s_fphrase); -  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_fphrase); +  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_fphrase);    __Pyx_GIVEREF(__pyx_n_s_fphrase);    __Pyx_INCREF(__pyx_n_s_ephrase); -  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_ephrase); +  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_ephrase);    __Pyx_GIVEREF(__pyx_n_s_ephrase);    __Pyx_INCREF(__pyx_n_s_paircount); -  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_paircount); +  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_paircount);    __Pyx_GIVEREF(__pyx_n_s_paircount);    __Pyx_INCREF(__pyx_n_s_fcount); -  PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_fcount); +  PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_fcount);    __Pyx_GIVEREF(__pyx_n_s_fcount);    __Pyx_INCREF(__pyx_n_s_fsample_count); -  PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_s_fsample_count); +  PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_fsample_count);    __Pyx_GIVEREF(__pyx_n_s_fsample_count);    __Pyx_INCREF(__pyx_n_s_input_span); -  PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_s_input_span); +  PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_input_span);    __Pyx_GIVEREF(__pyx_n_s_input_span);    __Pyx_INCREF(__pyx_n_s_matches); -  PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_s_matches); +  PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_matches);    __Pyx_GIVEREF(__pyx_n_s_matches);    __Pyx_INCREF(__pyx_n_s_input_match); -  PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_s_input_match); +  PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_s_input_match);    __Pyx_GIVEREF(__pyx_n_s_input_match);    __Pyx_INCREF(__pyx_n_s_test_sentence); -  PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_s_test_sentence); +  PyList_SET_ITEM(__pyx_t_2, 8, __pyx_n_s_test_sentence);    __Pyx_GIVEREF(__pyx_n_s_test_sentence);    __Pyx_INCREF(__pyx_n_s_f_text); -  PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_s_f_text); +  PyList_SET_ITEM(__pyx_t_2, 9, __pyx_n_s_f_text);    __Pyx_GIVEREF(__pyx_n_s_f_text);    __Pyx_INCREF(__pyx_n_s_e_text); -  PyList_SET_ITEM(__pyx_t_1, 10, __pyx_n_s_e_text); +  PyList_SET_ITEM(__pyx_t_2, 10, __pyx_n_s_e_text);    __Pyx_GIVEREF(__pyx_n_s_e_text);    __Pyx_INCREF(__pyx_n_s_meta); -  PyList_SET_ITEM(__pyx_t_1, 11, __pyx_n_s_meta); +  PyList_SET_ITEM(__pyx_t_2, 11, __pyx_n_s_meta);    __Pyx_GIVEREF(__pyx_n_s_meta);    __Pyx_INCREF(__pyx_n_s_online); -  PyList_SET_ITEM(__pyx_t_1, 12, __pyx_n_s_online); +  PyList_SET_ITEM(__pyx_t_2, 12, __pyx_n_s_online);    __Pyx_GIVEREF(__pyx_n_s_online); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":14 - * from collections import defaultdict, Counter, namedtuple +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":16 + * from online import Bilex   *    * FeatureContext = namedtuple('FeatureContext',             # <<<<<<<<<<<<<<   *     ['fphrase',   *      'ephrase',   */ -  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_INCREF(__pyx_n_s_FeatureContext);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_FeatureContext);    __Pyx_GIVEREF(__pyx_n_s_FeatureContext); -  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); -  __Pyx_GIVEREF(__pyx_t_1); -  __pyx_t_1 = 0; -  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); -  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  if (PyDict_SetItem(__pyx_d, __pyx_n_s_FeatureContext, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); +  __Pyx_GIVEREF(__pyx_t_2); +  __pyx_t_2 = 0; +  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +  if (PyDict_SetItem(__pyx_d, __pyx_n_s_FeatureContext, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":30 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":32   *     ])   *    * OnlineFeatureContext = namedtuple('OnlineFeatureContext',             # <<<<<<<<<<<<<<   *     ['fcount',   *      'fsample_count',   */ -  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_namedtuple); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_namedtuple); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_2); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":31 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":33   *    * OnlineFeatureContext = namedtuple('OnlineFeatureContext',   *     ['fcount',             # <<<<<<<<<<<<<<   *      'fsample_count',   *      'paircount',   */ -  __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_INCREF(__pyx_n_s_fcount);    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_fcount); @@ -78963,31 +79084,34 @@ PyMODINIT_FUNC PyInit__sa(void)    __Pyx_INCREF(__pyx_n_s_paircount);    PyList_SET_ITEM(__pyx_t_3, 2, __pyx_n_s_paircount);    __Pyx_GIVEREF(__pyx_n_s_paircount); +  __Pyx_INCREF(__pyx_n_s_bilex); +  PyList_SET_ITEM(__pyx_t_3, 3, __pyx_n_s_bilex); +  __Pyx_GIVEREF(__pyx_n_s_bilex); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":30 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":32   *     ])   *    * OnlineFeatureContext = namedtuple('OnlineFeatureContext',             # <<<<<<<<<<<<<<   *     ['fcount',   *      'fsample_count',   */ -  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_1);    __Pyx_INCREF(__pyx_n_s_OnlineFeatureContext); -  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_OnlineFeatureContext); +  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_OnlineFeatureContext);    __Pyx_GIVEREF(__pyx_n_s_OnlineFeatureContext); -  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); +  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);    __Pyx_GIVEREF(__pyx_t_3);    __pyx_t_3 = 0; -  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  if (PyDict_SetItem(__pyx_d, __pyx_n_s_OnlineFeatureContext, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +  if (PyDict_SetItem(__pyx_d, __pyx_n_s_OnlineFeatureContext, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":53 - *         self.phrases_al = defaultdict(lambda: defaultdict(tuple)) +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":60 + *         self.bilex = Bilex()   *    * cdef int PRECOMPUTE = 0             # <<<<<<<<<<<<<<   * cdef int MERGE = 1 @@ -78995,7 +79119,7 @@ PyMODINIT_FUNC PyInit__sa(void)   */    __pyx_v_4cdec_2sa_3_sa_PRECOMPUTE = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":54 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":61   *    * cdef int PRECOMPUTE = 0   * cdef int MERGE = 1             # <<<<<<<<<<<<<< @@ -79004,7 +79128,7 @@ PyMODINIT_FUNC PyInit__sa(void)   */    __pyx_v_4cdec_2sa_3_sa_MERGE = 1; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":55 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":62   * cdef int PRECOMPUTE = 0   * cdef int MERGE = 1   * cdef int BAEZA_YATES = 2             # <<<<<<<<<<<<<< @@ -79013,7 +79137,7 @@ PyMODINIT_FUNC PyInit__sa(void)   */    __pyx_v_4cdec_2sa_3_sa_BAEZA_YATES = 2; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":58 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":65   *    * # NOTE: was encoded as a non-terminal in the previous version   * cdef int EPSILON = sym_fromstring('*EPS*', True)             # <<<<<<<<<<<<<< @@ -79022,43 +79146,43 @@ PyMODINIT_FUNC PyInit__sa(void)   */    __pyx_v_4cdec_2sa_3_sa_EPSILON = __pyx_f_4cdec_2sa_3_sa_sym_fromstring(__pyx_k_EPS, 1); -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2183 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2188   *    * # Spans are _inclusive_ on both ends [i, j]   * def span_check(vec, i, j):             # <<<<<<<<<<<<<<   *     k = i   *     while k <= j:   */ -  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_17span_check, NULL, __pyx_n_s_cdec_sa__sa); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_17span_check, NULL, __pyx_n_s_cdec_sa__sa); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  if (PyDict_SetItem(__pyx_d, __pyx_n_s_span_check, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2183; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyDict_SetItem(__pyx_d, __pyx_n_s_span_check, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2191 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2196   *     return True   *    * def span_inc(vec, i, j):             # <<<<<<<<<<<<<<   *     k = i   *     while k <= j:   */ -  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_19span_inc, NULL, __pyx_n_s_cdec_sa__sa); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_19span_inc, NULL, __pyx_n_s_cdec_sa__sa); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  if (PyDict_SetItem(__pyx_d, __pyx_n_s_span_inc, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyDict_SetItem(__pyx_d, __pyx_n_s_span_inc, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/rulefactory.pxi":2197 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/rulefactory.pxi":2202   *         k += 1   *    * def span_dec(vec, i, j):             # <<<<<<<<<<<<<<   *     k = i   *     while k <= j:   */ -  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_21span_dec, NULL, __pyx_n_s_cdec_sa__sa); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_4cdec_2sa_3_sa_21span_dec, NULL, __pyx_n_s_cdec_sa__sa); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  if (PyDict_SetItem(__pyx_d, __pyx_n_s_span_dec, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyDict_SetItem(__pyx_d, __pyx_n_s_span_dec, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":1 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":1   * cdef StringMap FD = StringMap() # Feature name dictionary             # <<<<<<<<<<<<<<   *    * INITIAL_CAPACITY = 7 # default number of features @@ -79070,7 +79194,7 @@ PyMODINIT_FUNC PyInit__sa(void)    __Pyx_GIVEREF(__pyx_t_3);    __pyx_t_3 = 0; -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":3 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":3   * cdef StringMap FD = StringMap() # Feature name dictionary   *    * INITIAL_CAPACITY = 7 # default number of features             # <<<<<<<<<<<<<< @@ -79079,7 +79203,7 @@ PyMODINIT_FUNC PyInit__sa(void)   */    if (PyDict_SetItem(__pyx_d, __pyx_n_s_INITIAL_CAPACITY, __pyx_int_7) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  /* "/usr0/home/mdenkows/cdec-git/python/cdec/sa/features.pxi":4 +  /* "/usr0/home/mdenkows/cdec/python/cdec/sa/features.pxi":4   *    * INITIAL_CAPACITY = 7 # default number of features   * INCREMENT = INITIAL_CAPACITY # double size             # <<<<<<<<<<<<<< diff --git a/python/cdec/sa/extract.py b/python/cdec/sa/extract.py index b6502c52..b6c11f05 100644 --- a/python/cdec/sa/extract.py +++ b/python/cdec/sa/extract.py @@ -62,13 +62,48 @@ def extract(inp):      grammar_file = os.path.abspath(grammar_file)      return '<seg grammar="{}" id="{}">{}</seg>{}'.format(grammar_file, i, sentence, suffix) +def stream_extract(): +    global extractor, online, compress +    while True: +        line = sys.stdin.readline() +        if not line: +            break +        fields = re.split('\s*\|\|\|\s*', line.strip()) +        # context ||| cmd +        if len(fields) == 2: +            (context, cmd) = fields +            if cmd.lower() == 'drop': +                if online: +                    extractor.drop_ctx(context) +                    sys.stdout.write('drop {}\n'.format(context)) +                else: +                    sys.stdout.write('Error: online mode not set. Skipping line: {}\n'.format(line.strip())) +        # context ||| sentence ||| grammar_file +        elif len(fields) == 3: +            (context, sentence, grammar_file) = fields +            with (gzip.open if compress else open)(grammar_file, 'w') as output: +                for rule in extractor.grammar(sentence, context): +                    output.write(str(rule)+'\n') +            sys.stdout.write('{}\n'.format(grammar_file)) +        # context ||| sentence ||| reference ||| alignment +        elif len(fields) == 4: +            (context, sentence, reference, alignment) = fields +            if online: +                extractor.add_instance(sentence, reference, alignment, context) +                sys.stdout.write('learn {}\n'.format(context)) +            else: +                sys.stdout.write('Error: online mode not set. Skipping line: {}\n'.format(line.strip())) +        else: +            sys.stdout.write('Error: see README.md for stream mode usage.  Skipping line: {}\n'.format(line.strip())) +        sys.stdout.flush() +  def main():      global online      logging.basicConfig(level=logging.INFO)      parser = argparse.ArgumentParser(description='Extract grammars from a compiled corpus.')      parser.add_argument('-c', '--config', required=True,                          help='extractor configuration') -    parser.add_argument('-g', '--grammars', required=True, +    parser.add_argument('-g', '--grammars',                          help='grammar output path')      parser.add_argument('-j', '--jobs', type=int, default=1,                          help='number of parallel extractors') @@ -80,9 +115,15 @@ def main():                          help='online grammar extraction')      parser.add_argument('-z', '--compress', action='store_true',                          help='compress grammars with gzip') +    parser.add_argument('-t', '--stream', action='store_true', +                        help='stream mode (see README.md)')      args = parser.parse_args() -    if not os.path.exists(args.grammars): +    if not (args.grammars or args.stream): +        sys.stderr.write('Error: either -g/--grammars or -t/--stream required\n') +        sys.exit(1) + +    if args.grammars and not os.path.exists(args.grammars):          os.mkdir(args.grammars)      for featdef in args.features:          if not featdef.endswith('.py'): @@ -91,9 +132,13 @@ def main():              sys.exit(1)      online = args.online +    stream = args.stream      start_time = monitor_cpu()      if args.jobs > 1: +        if stream: +            sys.stderr.write('Error: stream mode incompatible with multiple jobs\n') +            sys.exit(1)          logging.info('Starting %d workers; chunk size: %d', args.jobs, args.chunksize)          pool = mp.Pool(args.jobs, make_extractor, (args,))          try: @@ -103,8 +148,11 @@ def main():              pool.terminate()      else:          make_extractor(args) -        for output in map(extract, enumerate(sys.stdin)): -            print(output) +        if stream: +            stream_extract() +        else: +            for output in map(extract, enumerate(sys.stdin)): +                print(output)      stop_time = monitor_cpu()      logging.info("Overall extraction step took %f seconds", stop_time - start_time) diff --git a/python/cdec/sa/features.py b/python/cdec/sa/features.py index 1779f2f9..92e23889 100644 --- a/python/cdec/sa/features.py +++ b/python/cdec/sa/features.py @@ -3,6 +3,8 @@ import math  from cdec.sa import isvar +from online import get_score_multilex +  MAXSCORE = 99  def EgivenF(ctx): # p(e|f) = c(e, f)/c(f) @@ -46,7 +48,10 @@ def MaxLexEgivenF(ttable):          fwords.append('NULL')          maxOffScore = 0.0          for e in ctx.ephrase.words: -            maxScore = max(ttable.get_score(f, e, 0) for f in fwords) +            if ctx.online: +                maxScore = max(get_score_multilex(f, e, 0, (ttable, ctx.online.bilex)) for f in fwords) +            else: +                maxScore = max(ttable.get_score(f, e, 0) for f in fwords)              maxOffScore += -math.log10(maxScore) if maxScore > 0 else MAXSCORE          return maxOffScore      return MaxLexEgivenF @@ -57,7 +62,10 @@ def MaxLexFgivenE(ttable):          ewords.append('NULL')          maxOffScore = 0.0          for f in ctx.fphrase.words: -            maxScore = max(ttable.get_score(f, e, 1) for e in ewords) +            if ctx.online: +                maxScore = max(get_score_multilex(f, e, 1, (ttable, ctx.online.bilex)) for e in ewords) +            else: +                maxScore = max(ttable.get_score(f, e, 1) for e in ewords)              maxOffScore += -math.log10(maxScore) if maxScore > 0 else MAXSCORE          return maxOffScore      return MaxLexFgivenE diff --git a/python/cdec/sa/online.py b/python/cdec/sa/online.py index d3f967e8..98c3459b 100644 --- a/python/cdec/sa/online.py +++ b/python/cdec/sa/online.py @@ -126,3 +126,17 @@ class Bilex:                      break                  (f, e, c) = line.split()                  self.fe[(f, e)] = float(c) + +# Bilex get_score for multiple instances +def get_score_multilex(f, e, dir, bilex_list): +    num = 0 +    denom = 0 +    for bilex in bilex_list: +        if dir == 0: +            denom += bilex.f.get(f, 0) +        else: +            denom += bilex.e.get(e, 0) +        num += bilex.fe.get((f, e), 0) +    if (not num) or (not denom): +        return None +    return num / denom diff --git a/python/cdec/sa/rulefactory.pxi b/python/cdec/sa/rulefactory.pxi index 635cca10..4f09218d 100644 --- a/python/cdec/sa/rulefactory.pxi +++ b/python/cdec/sa/rulefactory.pxi @@ -11,6 +11,8 @@ from libc.math cimport fmod, ceil, floor, log  from collections import defaultdict, Counter, namedtuple +from online import Bilex +  FeatureContext = namedtuple('FeatureContext',      ['fphrase',        'ephrase',  @@ -31,6 +33,7 @@ OnlineFeatureContext = namedtuple('OnlineFeatureContext',      ['fcount',       'fsample_count',       'paircount', +     'bilex',      ])  cdef class OnlineStats: @@ -39,6 +42,7 @@ cdef class OnlineStats:      cdef public phrases_e      cdef public phrases_fe      cdef public phrases_al +    cdef public bilex      def __cinit__(self):          # Keep track of everything that can be sampled: @@ -50,6 +54,9 @@ cdef class OnlineStats:          self.phrases_fe = defaultdict(lambda: defaultdict(int))          self.phrases_al = defaultdict(lambda: defaultdict(tuple)) +        # Instance-specific bilex +        self.bilex = Bilex() +  cdef int PRECOMPUTE = 0  cdef int MERGE = 1  cdef int BAEZA_YATES = 2 @@ -404,7 +411,8 @@ cdef class HieroCachingRuleFactory:          # Online stats  -        # None if not online         +        # None if not online +        # Base bilex, also need one per instance          self.bilex = bilex          # True after data is added @@ -2046,11 +2054,8 @@ cdef class HieroCachingRuleFactory:              if not stats.phrases_al[f_ph][e_ph]:                  stats.phrases_al[f_ph][e_ph] = al -        # Update bilexical dictionary (if exists) -        if self.bilex: -            self.bilex.update(f_words, e_words, alignment) -        else: -            logger.warning('No online bilexical dictionary specified, not updating lexical weights') +        # Update bilexical dictionary +        stats.bilex.update(f_words, e_words, alignment)      # Create a rule from source, target, non-terminals, and alignments      def form_rule(self, f_i, e_i, f_span, e_span, nt, al): @@ -2131,7 +2136,7 @@ cdef class HieroCachingRuleFactory:              fsample_count = stats.samples_f.get(f, 0)              d = stats.phrases_fe.get(f, None)              paircount = d.get(e, 0) if d else 0 -            return OnlineFeatureContext(fcount, fsample_count, paircount) +            return OnlineFeatureContext(fcount, fsample_count, paircount, stats.bilex)          return None      # Find all phrases that we might try to extract  | 
