diff options
Diffstat (limited to 'python/src/sa')
| -rw-r--r-- | python/src/sa/_sa.c | 19389 | ||||
| -rw-r--r-- | python/src/sa/data_array.pxi | 3 | 
2 files changed, 8162 insertions, 11230 deletions
diff --git a/python/src/sa/_sa.c b/python/src/sa/_sa.c index 8d906e3e..c85a54e7 100644 --- a/python/src/sa/_sa.c +++ b/python/src/sa/_sa.c @@ -1,16 +1,16 @@ -/* Generated by Cython 0.17 on Thu Sep  6 03:01:56 2012 */ +/* Generated by Cython 0.15.1 on Thu Sep  6 05:37:20 2012 */  #define PY_SSIZE_T_CLEAN  #include "Python.h"  #ifndef Py_PYTHON_H      #error Python headers needed to compile C extensions, please install development version of Python. -#elif PY_VERSION_HEX < 0x02040000 -    #error Cython requires Python 2.4+.  #else +  #include <stddef.h> /* For offsetof */  #ifndef offsetof  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )  #endif +  #if !defined(WIN32) && !defined(MS_WINDOWS)    #ifndef __stdcall      #define __stdcall @@ -22,44 +22,36 @@      #define __fastcall    #endif  #endif +  #ifndef DL_IMPORT    #define DL_IMPORT(t) t  #endif  #ifndef DL_EXPORT    #define DL_EXPORT(t) t  #endif +  #ifndef PY_LONG_LONG    #define PY_LONG_LONG LONG_LONG  #endif -#ifndef Py_HUGE_VAL -  #define Py_HUGE_VAL HUGE_VAL -#endif -#ifdef PYPY_VERSION -#define CYTHON_COMPILING_IN_PYPY 1 -#define CYTHON_COMPILING_IN_CPYTHON 0 -#else -#define CYTHON_COMPILING_IN_PYPY 0 -#define CYTHON_COMPILING_IN_CPYTHON 1 + +#if PY_VERSION_HEX < 0x02040000 +  #define METH_COEXIST 0 +  #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type) +  #define PyDict_Contains(d,o)   PySequence_Contains(d,o)  #endif +  #if PY_VERSION_HEX < 0x02050000    typedef int Py_ssize_t;    #define PY_SSIZE_T_MAX INT_MAX    #define PY_SSIZE_T_MIN INT_MIN    #define PY_FORMAT_SIZE_T "" -  #define CYTHON_FORMAT_SSIZE_T ""    #define PyInt_FromSsize_t(z) PyInt_FromLong(z)    #define PyInt_AsSsize_t(o)   __Pyx_PyInt_AsInt(o) -  #define PyNumber_Index(o)    ((PyNumber_Check(o) && !PyFloat_Check(o)) ? PyNumber_Int(o) : \ -                                (PyErr_Format(PyExc_TypeError, \ -                                              "expected index value, got %.200s", Py_TYPE(o)->tp_name), \ -                                 (PyObject*)0)) -  #define PyIndex_Check(o)     (PyNumber_Check(o) && !PyFloat_Check(o) && !PyComplex_Check(o)) +  #define PyNumber_Index(o)    PyNumber_Int(o) +  #define PyIndex_Check(o)     PyNumber_Check(o)    #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message) -  #define __PYX_BUILD_PY_SSIZE_T "i" -#else -  #define __PYX_BUILD_PY_SSIZE_T "n" -  #define CYTHON_FORMAT_SSIZE_T "z"  #endif +  #if PY_VERSION_HEX < 0x02060000    #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)    #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type) @@ -67,6 +59,7 @@    #define PyVarObject_HEAD_INIT(type, size) \            PyObject_HEAD_INIT(type) size,    #define PyType_Modified(t) +    typedef struct {       void *buf;       PyObject *obj; @@ -80,6 +73,7 @@       Py_ssize_t *suboffsets;       void *internal;    } Py_buffer; +    #define PyBUF_SIMPLE 0    #define PyBUF_WRITABLE 0x0001    #define PyBUF_FORMAT 0x0004 @@ -89,44 +83,24 @@    #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)    #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)    #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES) -  #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_FORMAT | PyBUF_WRITABLE) -  #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_FORMAT | PyBUF_WRITABLE) -  typedef int (*getbufferproc)(PyObject *, Py_buffer *, int); -  typedef void (*releasebufferproc)(PyObject *, Py_buffer *); +  #endif +  #if PY_MAJOR_VERSION < 3    #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" -  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ -          PyCode_New(a, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)  #else    #define __Pyx_BUILTIN_MODULE_NAME "builtins" -  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ -          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#endif -#if PY_MAJOR_VERSION < 3 && PY_MINOR_VERSION < 6 -  #define PyUnicode_FromString(s) PyUnicode_Decode(s, strlen(s), "UTF-8", "strict")  #endif +  #if PY_MAJOR_VERSION >= 3    #define Py_TPFLAGS_CHECKTYPES 0    #define Py_TPFLAGS_HAVE_INDEX 0  #endif +  #if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)    #define Py_TPFLAGS_HAVE_NEWBUFFER 0  #endif -#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) -  #define CYTHON_PEP393_ENABLED 1 -  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ? \ -                                              0 : _PyUnicode_Ready((PyObject *)(op))) -  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u) -  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) -  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i) -#else -  #define CYTHON_PEP393_ENABLED 0 -  #define __Pyx_PyUnicode_READY(op)       (0) -  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u) -  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) -  #define __Pyx_PyUnicode_READ(k, d, i)   ((k=k), (Py_UCS4)(((Py_UNICODE*)d)[i])) -#endif +  #if PY_MAJOR_VERSION >= 3    #define PyBaseString_Type            PyUnicode_Type    #define PyStringObject               PyUnicodeObject @@ -134,6 +108,7 @@    #define PyString_Check               PyUnicode_Check    #define PyString_CheckExact          PyUnicode_CheckExact  #endif +  #if PY_VERSION_HEX < 0x02060000    #define PyBytesObject                PyStringObject    #define PyBytes_Type                 PyString_Type @@ -152,6 +127,7 @@    #define PyBytes_Concat               PyString_Concat    #define PyBytes_ConcatAndDel         PyString_ConcatAndDel  #endif +  #if PY_VERSION_HEX < 0x02060000    #define PySet_Check(obj)             PyObject_TypeCheck(obj, &PySet_Type)    #define PyFrozenSet_Check(obj)       PyObject_TypeCheck(obj, &PyFrozenSet_Type) @@ -159,7 +135,9 @@  #ifndef PySet_CheckExact    #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)  #endif +  #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) +  #if PY_MAJOR_VERSION >= 3    #define PyIntObject                  PyLongObject    #define PyInt_Type                   PyLong_Type @@ -176,9 +154,11 @@    #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask    #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask  #endif +  #if PY_MAJOR_VERSION >= 3    #define PyBoolObject                 PyLongObject  #endif +  #if PY_VERSION_HEX < 0x03020000    typedef long Py_hash_t;    #define __Pyx_PyInt_FromHash_t PyInt_FromLong @@ -187,6 +167,16 @@    #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t    #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t  #endif + + +#if PY_MAJOR_VERSION >= 3 +  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y) +  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y) +#else +  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y) +  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y) +#endif +  #if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300)    #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)    #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value) @@ -205,9 +195,11 @@          (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \              (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1)))  #endif +  #if PY_MAJOR_VERSION >= 3    #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))  #endif +  #if PY_VERSION_HEX < 0x02050000    #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),((char *)(n)))    #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a)) @@ -217,6 +209,7 @@    #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))    #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),(n))  #endif +  #if PY_VERSION_HEX < 0x02050000    #define __Pyx_NAMESTR(n) ((char *)(n))    #define __Pyx_DOCSTR(n)  ((char *)(n)) @@ -225,15 +218,6 @@    #define __Pyx_DOCSTR(n)  (n)  #endif - -#if PY_MAJOR_VERSION >= 3 -  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y) -  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y) -#else -  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y) -  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y) -#endif -  #ifndef __PYX_EXTERN_C    #ifdef __cplusplus      #define __PYX_EXTERN_C extern "C" @@ -283,7 +267,7 @@  #   else  #     define CYTHON_UNUSED  #   endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +# elif defined(__ICC) || defined(__INTEL_COMPILER)  #   define CYTHON_UNUSED __attribute__ ((__unused__))  # else  #   define CYTHON_UNUSED @@ -307,12 +291,8 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);  static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);  static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*); -#if CYTHON_COMPILING_IN_CPYTHON  #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) -#else -#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) -#endif -#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) +  #ifdef __GNUC__    /* Test for GCC > 2.95 */ @@ -356,8 +336,16 @@ static const char *__pyx_f[] = {    "str_map.pxi",  }; +static PyObject *__Pyx_Generator_Next(PyObject *self); +static PyObject *__Pyx_Generator_Send(PyObject *self, PyObject *value); +static PyObject *__Pyx_Generator_Close(PyObject *self); +static PyObject *__Pyx_Generator_Throw(PyObject *gen, PyObject *args, CYTHON_UNUSED PyObject *kwds); + +typedef PyObject *(*__pyx_generator_body_t)(PyObject *, PyObject *); +  /*--- Type declarations ---*/  struct __pyx_obj_3_sa_HieroCachingRuleFactory; +struct __pyx_Generator_object;  struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__;  struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats;  struct __pyx_obj_3_sa_IntList; @@ -550,6 +538,24 @@ struct __pyx_obj_3_sa_HieroCachingRuleFactory {  }; +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":81 + *         free(self.arr) + *  + *     def __iter__(self):             # <<<<<<<<<<<<<< + *         cdef int i + *         for i in range(self.len): + */ +struct __pyx_Generator_object { +  PyObject_HEAD +  __pyx_generator_body_t body; +  int is_running; +  int resume_label; +  PyObject *exc_type; +  PyObject *exc_value; +  PyObject *exc_traceback; +}; + +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":141   *         return self.syms[i]   *  @@ -558,9 +564,9 @@ struct __pyx_obj_3_sa_HieroCachingRuleFactory {   *         for i from 0 <= i < self.n:   */  struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ { -  PyObject_HEAD +  struct __pyx_Generator_object __pyx_base;    int __pyx_v_i; -  struct __pyx_obj_3_sa_Phrase *__pyx_v_self; +  PyObject *__pyx_v_self;    int __pyx_t_0;  }; @@ -573,7 +579,7 @@ struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ {   *         particular, the frequency associated with each word is   */  struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats { -  PyObject_HEAD +  struct __pyx_Generator_object __pyx_base;    int __pyx_v_N;    int __pyx_v_freq;    int __pyx_v_h; @@ -589,7 +595,7 @@ struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats {    PyObject *__pyx_v_ngram_starts;    int __pyx_v_rs;    struct __pyx_obj_3_sa_IntList *__pyx_v_run_start; -  struct __pyx_obj_3_sa_LCP *__pyx_v_self; +  PyObject *__pyx_v_self;    int __pyx_v_valid;    struct __pyx_obj_3_sa_VEB *__pyx_v_veb;    int __pyx_t_0; @@ -738,7 +744,7 @@ struct __pyx_obj_3_sa_Precomputation {   *         it looks up all of the rules that can be used to translate   */  struct __pyx_obj_3_sa___pyx_scope_struct_8_input { -  PyObject_HEAD +  struct __pyx_Generator_object __pyx_base;    PyObject *__pyx_v_alignment;    PyObject *__pyx_v_als;    PyObject *__pyx_v_alslist; @@ -788,7 +794,7 @@ struct __pyx_obj_3_sa___pyx_scope_struct_8_input {    PyObject *__pyx_v_sa_range;    struct __pyx_obj_3_sa_IntList *__pyx_v_sample;    struct __pyx_obj_3_sa_FeatureVector *__pyx_v_scores; -  struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self; +  PyObject *__pyx_v_self;    PyObject *__pyx_v_spanlen;    float __pyx_v_start_time;    PyObject *__pyx_v_stop_time; @@ -802,15 +808,13 @@ struct __pyx_obj_3_sa___pyx_scope_struct_8_input {    PyObject *__pyx_v_xnode;    PyObject *__pyx_v_xroot;    Py_ssize_t __pyx_t_0; -  PyObject *__pyx_t_1; -  Py_ssize_t __pyx_t_2; -  int __pyx_t_3; +  Py_ssize_t __pyx_t_1; +  PyObject *__pyx_t_2; +  PyObject *__pyx_t_3;    PyObject *__pyx_t_4; -  PyObject *__pyx_t_5; -  int __pyx_t_6; -  Py_ssize_t __pyx_t_7; -  Py_ssize_t __pyx_t_8; -  Py_ssize_t __pyx_t_9; +  PyObject *(*__pyx_t_5)(PyObject *); +  Py_ssize_t __pyx_t_6; +  PyObject *(*__pyx_t_7)(PyObject *);  }; @@ -874,7 +878,7 @@ struct __pyx_obj_3_sa_Rule {   *    */  struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr { -  PyObject_HEAD +  struct __pyx_Generator_object __pyx_base;    struct __pyx_obj_3_sa___pyx_scope_struct_5___str__ *__pyx_outer_scope;    PyObject *__pyx_v_a;    PyObject *__pyx_t_0; @@ -883,7 +887,7 @@ struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr {  }; -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":73 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":76   *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:   *             data = (line.split(' ||| ')[side] for line in fp)             # <<<<<<<<<<<<<< @@ -891,7 +895,7 @@ struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr {   *    */  struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr { -  PyObject_HEAD +  struct __pyx_Generator_object __pyx_base;    struct __pyx_obj_3_sa___pyx_scope_struct_1_read_bitext *__pyx_outer_scope;    PyObject *__pyx_v_line;    PyObject *__pyx_t_0; @@ -927,7 +931,7 @@ struct __pyx_obj_3_sa_PhraseLocation {   * cdef class Scorer:   */  struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr { -  PyObject_HEAD +  struct __pyx_Generator_object __pyx_base;    struct __pyx_obj_3_sa___pyx_scope_struct_10___str__ *__pyx_outer_scope;    PyObject *__pyx_v_feat;    PyObject *__pyx_t_0; @@ -945,11 +949,11 @@ struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr {   */  struct __pyx_obj_3_sa___pyx_scope_struct_10___str__ {    PyObject_HEAD -  struct __pyx_obj_3_sa_FeatureVector *__pyx_v_self; +  PyObject *__pyx_v_self;  }; -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":71 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":74   *             self.read_text_data(fp)   *    *     def read_bitext(self, char* filename, int side):             # <<<<<<<<<<<<<< @@ -985,9 +989,9 @@ struct __pyx_obj_3_sa_FeatureVector {   *             yield point/65536, point%65536   */  struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments { -  PyObject_HEAD +  struct __pyx_Generator_object __pyx_base;    PyObject *__pyx_v_point; -  struct __pyx_obj_3_sa_Rule *__pyx_v_self; +  PyObject *__pyx_v_self;    PyObject *__pyx_t_0;    Py_ssize_t __pyx_t_1;    PyObject *(*__pyx_t_2)(PyObject *); @@ -1031,9 +1035,9 @@ struct __pyx_obj_3_sa_Alignment {   *         for i in range(self.names.len):   */  struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ { -  PyObject_HEAD +  struct __pyx_Generator_object __pyx_base;    unsigned int __pyx_v_i; -  struct __pyx_obj_3_sa_FeatureVector *__pyx_v_self; +  PyObject *__pyx_v_self;    int __pyx_t_0;    unsigned int __pyx_t_1;  }; @@ -1148,9 +1152,9 @@ struct __pyx_obj_3_sa_Phrase {   *         for i in range(self.len):   */  struct __pyx_obj_3_sa___pyx_scope_struct____iter__ { -  PyObject_HEAD +  struct __pyx_Generator_object __pyx_base;    int __pyx_v_i; -  struct __pyx_obj_3_sa_IntList *__pyx_v_self; +  PyObject *__pyx_v_self;    int __pyx_t_0;    int __pyx_t_1;  }; @@ -1180,7 +1184,7 @@ struct __pyx_obj_3_sa_TrieTable {   */  struct __pyx_obj_3_sa___pyx_scope_struct_5___str__ {    PyObject_HEAD -  struct __pyx_obj_3_sa_Rule *__pyx_v_self; +  PyObject *__pyx_v_self;  }; @@ -1452,15 +1456,17 @@ static struct __pyx_vtabstruct_3_sa_HieroCachingRuleFactory *__pyx_vtabptr_3_sa_   */  struct __pyx_vtabstruct_3_sa_SuffixArray { -  int (*__pyx___search_high)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int); -  int (*__pyx___search_low)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int); -  PyObject *(*__pyx___get_range)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int, int); -  PyObject *(*__pyx___lookup_helper)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int); +  int (*__search_high)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int); +  int (*__search_low)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int); +  PyObject *(*__get_range)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int, int); +  PyObject *(*__lookup_helper)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int);  };  static struct __pyx_vtabstruct_3_sa_SuffixArray *__pyx_vtabptr_3_sa_SuffixArray; +  #ifndef CYTHON_REFNANNY    #define CYTHON_REFNANNY 0  #endif +  #if CYTHON_REFNANNY    typedef struct {      void (*INCREF)(void*, PyObject*, int); @@ -1473,21 +1479,8 @@ static struct __pyx_vtabstruct_3_sa_SuffixArray *__pyx_vtabptr_3_sa_SuffixArray;    static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;    static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/    #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; -#ifdef WITH_THREAD -  #define __Pyx_RefNannySetupContext(name, acquire_gil) \ -          if (acquire_gil) { \ -              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \ -              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ -              PyGILState_Release(__pyx_gilstate_save); \ -          } else { \ -              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ -          } -#else -  #define __Pyx_RefNannySetupContext(name, acquire_gil) \ -          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) -#endif -  #define __Pyx_RefNannyFinishContext() \ -          __Pyx_RefNanny->FinishContext(&__pyx_refnanny) +  #define __Pyx_RefNannySetupContext(name)           __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) +  #define __Pyx_RefNannyFinishContext()           __Pyx_RefNanny->FinishContext(&__pyx_refnanny)    #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)    #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)    #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) @@ -1498,7 +1491,7 @@ static struct __pyx_vtabstruct_3_sa_SuffixArray *__pyx_vtabptr_3_sa_SuffixArray;    #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)  #else    #define __Pyx_RefNannyDeclarations -  #define __Pyx_RefNannySetupContext(name, acquire_gil) +  #define __Pyx_RefNannySetupContext(name)    #define __Pyx_RefNannyFinishContext()    #define __Pyx_INCREF(r) Py_INCREF(r)    #define __Pyx_DECREF(r) Py_DECREF(r) @@ -1509,97 +1502,16 @@ static struct __pyx_vtabstruct_3_sa_SuffixArray *__pyx_vtabptr_3_sa_SuffixArray;    #define __Pyx_XGOTREF(r)    #define __Pyx_XGIVEREF(r)  #endif /* CYTHON_REFNANNY */ -#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) -#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)  static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ -static int __Pyx_PyBytes_SingleTailmatch(PyObject* self, PyObject* arg, Py_ssize_t start, -                                         Py_ssize_t end, int direction) -{ -    const char* self_ptr = PyBytes_AS_STRING(self); -    Py_ssize_t self_len = PyBytes_GET_SIZE(self); -    const char* sub_ptr; -    Py_ssize_t sub_len; -    int retval; -#if PY_VERSION_HEX >= 0x02060000 -    Py_buffer view; -    view.obj = NULL; -#endif -    if ( PyBytes_Check(arg) ) { -        sub_ptr = PyBytes_AS_STRING(arg); -        sub_len = PyBytes_GET_SIZE(arg); -    } -#if PY_MAJOR_VERSION < 3 -    else if ( PyUnicode_Check(arg) ) { -        return PyUnicode_Tailmatch(self, arg, start, end, direction); -    } -#endif -    else { -#if PY_VERSION_HEX < 0x02060000 -        if (unlikely(PyObject_AsCharBuffer(arg, &sub_ptr, &sub_len))) -            return -1; -#else -        if (unlikely(PyObject_GetBuffer(self, &view, PyBUF_SIMPLE) == -1)) -            return -1; -        sub_ptr = (const char*) view.buf; -        sub_len = view.len; -#endif -    } -    if (end > self_len) -        end = self_len; -    else if (end < 0) -        end += self_len; -    if (end < 0) -        end = 0; -    if (start < 0) -        start += self_len; -    if (start < 0) -        start = 0; -    if (direction > 0) { -        if (end-sub_len > start) -            start = end - sub_len; -    } -    if (start + sub_len <= end) -        retval = !memcmp(self_ptr+start, sub_ptr, sub_len); -    else -        retval = 0; -#if PY_VERSION_HEX >= 0x02060000 -    if (view.obj) -        PyBuffer_Release(&view); -#endif -    return retval; -} -static int __Pyx_PyBytes_Tailmatch(PyObject* self, PyObject* substr, Py_ssize_t start, -                                   Py_ssize_t end, int direction) -{ -    if (unlikely(PyTuple_Check(substr))) { -        Py_ssize_t i, count = PyTuple_GET_SIZE(substr); -        for (i = 0; i < count; i++) { -            int result; -#if CYTHON_COMPILING_IN_CPYTHON -            result = __Pyx_PyBytes_SingleTailmatch(self, PyTuple_GET_ITEM(substr, i), -                                                   start, end, direction); -#else -            PyObject* sub = PySequence_GetItem(substr, i); -            if (unlikely(!sub)) return -1; -            result = __Pyx_PyBytes_SingleTailmatch(self, sub, start, end, direction); -            Py_DECREF(sub); -#endif -            if (result) { -                return result; -            } -        } -        return 0; -    } -    return __Pyx_PyBytes_SingleTailmatch(self, substr, start, end, direction); -} +static int __Pyx_PyBytes_Tailmatch(PyObject* self, PyObject* arg, Py_ssize_t start, +                                   Py_ssize_t end, int direction); -static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /*proto*/ +static void __Pyx_RaiseDoubleKeywordsError( +    const char* func_name, PyObject* kw_name); /*proto*/ -static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \ -    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \ -    const char* function_name); /*proto*/ +static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],     PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,     const char* function_name); /*proto*/  static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,      Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/ @@ -1611,7 +1523,9 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject  static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/ -static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /*proto*/ +static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict, +    const char* function_name, int kw_allowed); /*proto*/ +  static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {      PyObject *r; @@ -1620,96 +1534,86 @@ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j      Py_DECREF(j);      return r;  } + +  #define __Pyx_GetItemInt_List(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \                                                      __Pyx_GetItemInt_List_Fast(o, i) : \                                                      __Pyx_GetItemInt_Generic(o, to_py_func(i))) +  static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i) { -#if CYTHON_COMPILING_IN_CPYTHON -    if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) { -        PyObject *r = PyList_GET_ITEM(o, i); -        Py_INCREF(r); -        return r; -    } -    else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) { -        PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i); -        Py_INCREF(r); -        return r; +    if (likely(o != Py_None)) { +        if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) { +            PyObject *r = PyList_GET_ITEM(o, i); +            Py_INCREF(r); +            return r; +        } +        else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) { +            PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i); +            Py_INCREF(r); +            return r; +        }      }      return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); -#else -    return PySequence_GetItem(o, i); -#endif  } +  #define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \                                                      __Pyx_GetItemInt_Tuple_Fast(o, i) : \                                                      __Pyx_GetItemInt_Generic(o, to_py_func(i))) +  static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i) { -#if CYTHON_COMPILING_IN_CPYTHON -    if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { -        PyObject *r = PyTuple_GET_ITEM(o, i); -        Py_INCREF(r); -        return r; -    } -    else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) { -        PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i); -        Py_INCREF(r); -        return r; +    if (likely(o != Py_None)) { +        if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { +            PyObject *r = PyTuple_GET_ITEM(o, i); +            Py_INCREF(r); +            return r; +        } +        else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) { +            PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i); +            Py_INCREF(r); +            return r; +        }      }      return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); -#else -    return PySequence_GetItem(o, i); -#endif  } + +  #define __Pyx_GetItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \                                                      __Pyx_GetItemInt_Fast(o, i) : \                                                      __Pyx_GetItemInt_Generic(o, to_py_func(i))) +  static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) { -#if CYTHON_COMPILING_IN_CPYTHON -    if (PyList_CheckExact(o)) { -        Py_ssize_t n = (likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); -        if (likely((n >= 0) & (n < PyList_GET_SIZE(o)))) { -            PyObject *r = PyList_GET_ITEM(o, n); -            Py_INCREF(r); -            return r; -        } +    PyObject *r; +    if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) { +        r = PyList_GET_ITEM(o, i); +        Py_INCREF(r);      } -    else if (PyTuple_CheckExact(o)) { -        Py_ssize_t n = (likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); -        if (likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) { -            PyObject *r = PyTuple_GET_ITEM(o, n); -            Py_INCREF(r); -            return r; -        } -    } else {  /* inlined PySequence_GetItem() */ -        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; -        if (likely(m && m->sq_item)) { -            if (unlikely(i < 0) && likely(m->sq_length)) { -                Py_ssize_t l = m->sq_length(o); -                if (unlikely(l < 0)) return NULL; -                i += l; -            } -            return m->sq_item(o, i); -        } +    else if (PyTuple_CheckExact(o) && ((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { +        r = PyTuple_GET_ITEM(o, i); +        Py_INCREF(r);      } -#else -    if (PySequence_Check(o)) { -        return PySequence_GetItem(o, i); +    else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0))) { +        r = PySequence_GetItem(o, i);      } -#endif -    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +    else { +        r = __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +    } +    return r;  } -static CYTHON_INLINE int __Pyx_PySequence_Contains(PyObject* item, PyObject* seq, int eq) { -    int result = PySequence_Contains(seq, item); -    return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); +static CYTHON_INLINE int __Pyx_NegateNonNeg(int b) {  +    return unlikely(b < 0) ? b : !b;  +} +static CYTHON_INLINE PyObject* __Pyx_PyBoolOrNull_FromLong(long b) { +    return unlikely(b < 0) ? NULL : __Pyx_PyBool_FromLong(b);  }  static CYTHON_INLINE PyObject* __Pyx_PyObject_Append(PyObject* L, PyObject* x) {      if (likely(PyList_CheckExact(L))) { -        if (unlikely(PyList_Append(L, x) < 0)) return NULL; +        if (PyList_Append(L, x) < 0) return NULL;          Py_INCREF(Py_None);          return Py_None; /* this is just to have an accurate signature */ -    } else { +    } +    else {          PyObject *r, *m;          m = __Pyx_GetAttrString(L, "append");          if (!m) return NULL; @@ -1727,17 +1631,16 @@ static CYTHON_INLINE long __Pyx_div_long(long, long); /* proto */  static CYTHON_INLINE long __Pyx_mod_long(long, long); /* proto */ -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); -  static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); -static CYTHON_INLINE int __Pyx_IterFinish(void); /*proto*/ +static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);  static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /*proto*/  #define __Pyx_SetItemInt(o, i, v, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \                                                      __Pyx_SetItemInt_Fast(o, i, v) : \                                                      __Pyx_SetItemInt_Generic(o, to_py_func(i), v)) +  static CYTHON_INLINE int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {      int r;      if (!j) return -1; @@ -1745,126 +1648,130 @@ static CYTHON_INLINE int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyOb      Py_DECREF(j);      return r;  } +  static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v) { -#if CYTHON_COMPILING_IN_CPYTHON -    if (PyList_CheckExact(o)) { -        Py_ssize_t n = (likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); -        if (likely((n >= 0) & (n < PyList_GET_SIZE(o)))) { -            PyObject* old = PyList_GET_ITEM(o, n); -            Py_INCREF(v); -            PyList_SET_ITEM(o, n, v); -            Py_DECREF(old); -            return 1; -        } -    } else {  /* inlined PySequence_SetItem() */ -        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; -        if (likely(m && m->sq_ass_item)) { -            if (unlikely(i < 0) && likely(m->sq_length)) { -                Py_ssize_t l = m->sq_length(o); -                if (unlikely(l < 0)) return -1; -                i += l; -            } -            return m->sq_ass_item(o, i, v); -        } +    if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) { +        Py_INCREF(v); +        Py_DECREF(PyList_GET_ITEM(o, i)); +        PyList_SET_ITEM(o, i, v); +        return 1;      } -#else -#if CYTHON_COMPILING_IN_PYPY -    if (PySequence_Check(o) && !PyDict_Check(o)) { -#else -    if (PySequence_Check(o)) { -#endif +    else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_ass_item && (likely(i >= 0)))          return PySequence_SetItem(o, i, v); +    else { +        PyObject *j = PyInt_FromSsize_t(i); +        return __Pyx_SetItemInt_Generic(o, j, v);      } -#endif -    return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v);  }  static double __Pyx__PyObject_AsDouble(PyObject* obj); /* proto */ -#if CYTHON_COMPILING_IN_PYPY -#define __Pyx_PyObject_AsDouble(obj) \ -(likely(PyFloat_CheckExact(obj)) ? PyFloat_AS_DOUBLE(obj) : \ - likely(PyInt_CheckExact(obj)) ? \ - PyFloat_AsDouble(obj) : __Pyx__PyObject_AsDouble(obj)) -#else +  #define __Pyx_PyObject_AsDouble(obj) \ -((likely(PyFloat_CheckExact(obj))) ? \ - PyFloat_AS_DOUBLE(obj) : __Pyx__PyObject_AsDouble(obj)) -#endif +    ((likely(PyFloat_CheckExact(obj))) ? \ +     PyFloat_AS_DOUBLE(obj) : __Pyx__PyObject_AsDouble(obj))  static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);  static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,      const char *name, int exact); /*proto*/ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { -    PyListObject* L = (PyListObject*) list; -    Py_ssize_t len = Py_SIZE(list); -    if (likely(L->allocated > len)) { -        Py_INCREF(x); -        PyList_SET_ITEM(list, len, x); -        Py_SIZE(list) = len+1; -        return 0; -    } -    return PyList_Append(list, x); -} -#else -#define __Pyx_PyList_Append(L,x) PyList_Append(L,x) -#endif - -static CYTHON_INLINE int __Pyx_PyDict_Contains(PyObject* item, PyObject* dict, int eq) { -    int result = PyDict_Contains(dict, item); -    return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); -} - -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); - -static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /*proto*/ - -static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** value1, PyObject** value2, -                                             int is_tuple, int has_known_size, int decref_tuple); - -static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, -                                                   Py_ssize_t* p_orig_length, int* p_is_dict); -static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, -                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); -  #if PY_VERSION_HEX < 0x02050000  #ifndef PyAnySet_CheckExact +  #define PyAnySet_CheckExact(ob) \      ((ob)->ob_type == &PySet_Type || \       (ob)->ob_type == &PyFrozenSet_Type) +  #define PySet_New(iterable) \      PyObject_CallFunctionObjArgs((PyObject *)&PySet_Type, (iterable), NULL) +  #define Pyx_PyFrozenSet_New(iterable) \      PyObject_CallFunctionObjArgs((PyObject *)&PyFrozenSet_Type, (iterable), NULL) +  #define PySet_Size(anyset) \      PyObject_Size((anyset)) +  #define PySet_Contains(anyset, key) \      PySequence_Contains((anyset), (key)) +  #define PySet_Pop(set) \      PyObject_CallMethod(set, (char *)"pop", NULL) +  static CYTHON_INLINE int PySet_Clear(PyObject *set) {      PyObject *ret = PyObject_CallMethod(set, (char *)"clear", NULL);      if (!ret) return -1;      Py_DECREF(ret); return 0;  } +  static CYTHON_INLINE int PySet_Discard(PyObject *set, PyObject *key) {      PyObject *ret = PyObject_CallMethod(set, (char *)"discard", (char *)"O", key);      if (!ret) return -1;      Py_DECREF(ret); return 0;  } +  static CYTHON_INLINE int PySet_Add(PyObject *set, PyObject *key) {      PyObject *ret = PyObject_CallMethod(set, (char *)"add", (char *)"O", key);      if (!ret) return -1;      Py_DECREF(ret); return 0;  } +  #endif /* PyAnySet_CheckExact (<= Py2.4) */ + +#if PY_VERSION_HEX < 0x02040000 +#ifndef Py_SETOBJECT_H +#define Py_SETOBJECT_H + +static PyTypeObject *__Pyx_PySet_Type = NULL; +static PyTypeObject *__Pyx_PyFrozenSet_Type = NULL; + +#define PySet_Type (*__Pyx_PySet_Type) +#define PyFrozenSet_Type (*__Pyx_PyFrozenSet_Type) + +#define PyAnySet_Check(ob) \ +    (PyAnySet_CheckExact(ob) || \ +     PyType_IsSubtype((ob)->ob_type, &PySet_Type) || \ +     PyType_IsSubtype((ob)->ob_type, &PyFrozenSet_Type)) + +#define PyFrozenSet_CheckExact(ob) ((ob)->ob_type == &PyFrozenSet_Type) + +static int __Pyx_Py23SetsImport(void) { +    PyObject *sets=0, *Set=0, *ImmutableSet=0; + +    sets = PyImport_ImportModule((char *)"sets"); +    if (!sets) goto bad; +    Set = PyObject_GetAttrString(sets, (char *)"Set"); +    if (!Set) goto bad; +    ImmutableSet = PyObject_GetAttrString(sets, (char *)"ImmutableSet"); +    if (!ImmutableSet) goto bad; +    Py_DECREF(sets); + +    __Pyx_PySet_Type       = (PyTypeObject*) Set; +    __Pyx_PyFrozenSet_Type = (PyTypeObject*) ImmutableSet; + +    return 0; + + bad: +    Py_XDECREF(sets); +    Py_XDECREF(Set); +    Py_XDECREF(ImmutableSet); +    return -1; +} + +#else +static int __Pyx_Py23SetsImport(void) { return 0; } +#endif /* !Py_SETOBJECT_H */ +#endif /* < Py2.4  */  #endif /* < Py2.5  */ +static CYTHON_INLINE void __Pyx_RaiseNoneIndexingError(void); +  #if PY_MAJOR_VERSION >= 3  static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {      PyObject *value; +    if (unlikely(d == Py_None)) { +        __Pyx_RaiseNoneIndexingError(); +        return NULL; +    }      value = PyDict_GetItemWithError(d, key);      if (unlikely(!value)) {          if (!PyErr_Occurred()) @@ -1883,9 +1790,10 @@ static CYTHON_INLINE int __Pyx_div_int(int, int); /* proto */  #define UNARY_NEG_WOULD_OVERFLOW(x)            (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x)))  static CYTHON_INLINE PyObject* __Pyx_PyObject_Pop(PyObject* L) { -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x02040000 +#if PY_VERSION_HEX >= 0x02040000      if (likely(PyList_CheckExact(L)) -        && likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) { +            /* Check that both the size is positive and no reallocation shrinking needs to be done. */ +            && likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) {          Py_SIZE(L) -= 1;          return PyList_GET_ITEM(L, PyList_GET_SIZE(L));      } @@ -1903,49 +1811,31 @@ static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb);  static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level); /*proto*/ -static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name); - -#define __Pyx_CyFunction_USED 1 -#include <structmember.h> -#define __Pyx_CYFUNCTION_STATICMETHOD  0x01 -#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02 -#define __Pyx_CYFUNCTION_CCLASS        0x04 -#define __Pyx_CyFunction_GetClosure(f) \ -    (((__pyx_CyFunctionObject *) (f))->func_closure) -#define __Pyx_CyFunction_GetClassObj(f) \ -    (((__pyx_CyFunctionObject *) (f))->func_classobj) -#define __Pyx_CyFunction_Defaults(type, f) \ -    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) -#define __Pyx_CyFunction_SetDefaultsGetter(f, g) \ -    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) +#include <string.h> + +static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /*proto*/ + +static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /*proto*/ + +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals +#else +#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals +#endif + +#define __pyx_binding_PyCFunctionType_USED 1 +  typedef struct {      PyCFunctionObject func; -    int flags; -    PyObject *func_dict; -    PyObject *func_weakreflist; -    PyObject *func_name; -    PyObject *func_doc; -    PyObject *func_code; -    PyObject *func_closure; -    PyObject *func_classobj; /* No-args super() class cell */ -    void *defaults; -    int defaults_pyobjects; -    PyObject *defaults_tuple; /* Const defaults tuple */ -    PyObject *(*defaults_getter)(PyObject *); -} __pyx_CyFunctionObject; -static PyTypeObject *__pyx_CyFunctionType = 0; -#define __Pyx_CyFunction_NewEx(ml, flags, self, module, code) \ -    __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, self, module, code) -static PyObject *__Pyx_CyFunction_New(PyTypeObject *, -                                      PyMethodDef *ml, int flags, -                                      PyObject *self, PyObject *module, -                                      PyObject* code); -static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, -                                                         size_t size, -                                                         int pyobjects); -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, -                                                            PyObject *tuple); -static int __Pyx_CyFunction_init(void); +} __pyx_binding_PyCFunctionType_object; + +static PyTypeObject __pyx_binding_PyCFunctionType_type; +static PyTypeObject *__pyx_binding_PyCFunctionType = NULL; + +static PyObject *__pyx_binding_PyCFunctionType_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module); /* proto */ +#define __pyx_binding_PyCFunctionType_New(ml, self) __pyx_binding_PyCFunctionType_NewEx(ml, self, NULL) + +static int __pyx_binding_PyCFunctionType_init(void); /* proto */  static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *); @@ -1984,59 +1874,17 @@ static void __Pyx_WriteUnraisable(const char *name, int clineno,  static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ -#define __Pyx_Generator_USED -#include <structmember.h> -#include <frameobject.h> -typedef PyObject *(*__pyx_generator_body_t)(PyObject *, PyObject *); -typedef struct { -    PyObject_HEAD -    __pyx_generator_body_t body; -    PyObject *closure; -    PyObject *exc_type; -    PyObject *exc_value; -    PyObject *exc_traceback; -    PyObject *gi_weakreflist; -    PyObject *classobj; -    PyObject *yieldfrom; -    int resume_label; -    char is_running;  // using T_BOOL for property below requires char value -} __pyx_GeneratorObject; -static __pyx_GeneratorObject *__Pyx_Generator_New(__pyx_generator_body_t body, -                                                  PyObject *closure); -static int __pyx_Generator_init(void); -static int __Pyx_Generator_clear(PyObject* self); -#if 1 || PY_VERSION_HEX < 0x030300B0 -static int __Pyx_PyGen_FetchStopIterationValue(PyObject **pvalue); -#else -#define __Pyx_PyGen_FetchStopIterationValue(pvalue) PyGen_FetchStopIterationValue(pvalue) -#endif -  static int __Pyx_check_binary_version(void);  static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig); /*proto*/  static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/ -typedef struct { -    int code_line; -    PyCodeObject* code_object; -} __Pyx_CodeObjectCacheEntry; -struct __Pyx_CodeObjectCache { -    int count; -    int max_count; -    __Pyx_CodeObjectCacheEntry* entries; -}; -static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); -static PyCodeObject *__pyx_find_code_object(int code_line); -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); - -static void __Pyx_AddTraceback(const char *funcname, int c_line, -                               int py_line, const char *filename); /*proto*/ +static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno, +                               int __pyx_lineno, const char *__pyx_filename); /*proto*/  static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ -  /* Module declarations from 'libc.stdio' */  /* Module declarations from 'libc.stdlib' */ @@ -2071,6 +1919,7 @@ static PyTypeObject *__pyx_ptype_3_sa_PhraseLocation = 0;  static PyTypeObject *__pyx_ptype_3_sa_Sampler = 0;  static PyTypeObject *__pyx_ptype_3_sa_HieroCachingRuleFactory = 0;  static PyTypeObject *__pyx_ptype_3_sa_Scorer = 0; +static PyTypeObject *__pyx_ptype_3_sa___pyx_Generator = 0;  static PyTypeObject *__pyx_ptype_3_sa___pyx_scope_struct____iter__ = 0;  static PyTypeObject *__pyx_ptype_3_sa___pyx_scope_struct_1_read_bitext = 0;  static PyTypeObject *__pyx_ptype_3_sa___pyx_scope_struct_2_genexpr = 0; @@ -2095,6 +1944,7 @@ static int __pyx_v_3_sa_BAEZA_YATES;  static int __pyx_v_3_sa_EPSILON;  static struct __pyx_obj_3_sa_StringMap *__pyx_v_3_sa_FD = 0;  static char *__pyx_f_3_sa_sym_tostring(int); /*proto*/ +static char *__pyx_f_3_sa_sym_tocat(int); /*proto*/  static int __pyx_f_3_sa_sym_isvar(int); /*proto*/  static int __pyx_f_3_sa_sym_getindex(int); /*proto*/  static float __pyx_f_3_sa_monitor_cpu(void); /*proto*/ @@ -2119,6 +1969,7 @@ static PyObject *__pyx_f_3_sa_free_trie_node(struct __pyx_t_3_sa__Trie_Node *);  static PyObject *__pyx_f_3_sa_free_trie_edge(struct __pyx_t_3_sa__Trie_Edge *); /*proto*/  static struct __pyx_t_3_sa__Trie_Node *__pyx_f_3_sa_trie_find(struct __pyx_t_3_sa__Trie_Node *, int); /*proto*/  static PyObject *__pyx_f_3_sa_trie_node_data_append(struct __pyx_t_3_sa__Trie_Node *, int); /*proto*/ +static PyObject *__pyx_f_3_sa_trie_node_data_extend(struct __pyx_t_3_sa__Trie_Node *, int *, int); /*proto*/  static struct __pyx_t_3_sa__Trie_Node *__pyx_f_3_sa_trie_insert(struct __pyx_t_3_sa__Trie_Node *, int); /*proto*/  static PyObject *__pyx_f_3_sa_trie_node_to_map(struct __pyx_t_3_sa__Trie_Node *, PyObject *, PyObject *, int); /*proto*/  static PyObject *__pyx_f_3_sa_trie_edge_to_map(struct __pyx_t_3_sa__Trie_Edge *, PyObject *, PyObject *, int); /*proto*/ @@ -2143,192 +1994,6 @@ static PyObject *__pyx_builtin_StopIteration;  static PyObject *__pyx_builtin_cmp;  static PyObject *__pyx_builtin_sorted;  static PyObject *__pyx_builtin_max; -static PyObject *__pyx_pf_3_sa_gzip_or_text(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_filename); /* proto */ -static int __pyx_pf_3_sa_9FloatList___cinit__(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, int __pyx_v_size, int __pyx_v_increment, int __pyx_v_initial_len); /* proto */ -static void __pyx_pf_3_sa_9FloatList_2__dealloc__(struct __pyx_obj_3_sa_FloatList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_9FloatList_4__getitem__(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static int __pyx_pf_3_sa_9FloatList_6__setitem__(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val); /* proto */ -static Py_ssize_t __pyx_pf_3_sa_9FloatList_8__len__(struct __pyx_obj_3_sa_FloatList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_9FloatList_10append(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, float __pyx_v_val); /* proto */ -static PyObject *__pyx_pf_3_sa_9FloatList_12write(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_9FloatList_14read(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static int __pyx_pf_3_sa_7IntList___cinit__(struct __pyx_obj_3_sa_IntList *__pyx_v_self, int __pyx_v_size, int __pyx_v_increment, int __pyx_v_initial_len); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_2__str__(struct __pyx_obj_3_sa_IntList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_4index(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_end); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_8_doquicksort(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_end); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_10sort(struct __pyx_obj_3_sa_IntList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_12reset(struct __pyx_obj_3_sa_IntList *__pyx_v_self); /* proto */ -static void __pyx_pf_3_sa_7IntList_14__dealloc__(struct __pyx_obj_3_sa_IntList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_16__iter__(struct __pyx_obj_3_sa_IntList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ -static int __pyx_pf_3_sa_7IntList_21__setitem__(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val); /* proto */ -static Py_ssize_t __pyx_pf_3_sa_7IntList_23__len__(struct __pyx_obj_3_sa_IntList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_25get_size(struct __pyx_obj_3_sa_IntList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_27append(struct __pyx_obj_3_sa_IntList *__pyx_v_self, int __pyx_v_val); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_29extend(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_31write(struct __pyx_obj_3_sa_IntList *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_7IntList_33read(struct __pyx_obj_3_sa_IntList *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static int __pyx_pf_3_sa_9StringMap___cinit__(struct __pyx_obj_3_sa_StringMap *__pyx_v_self); /* proto */ -static void __pyx_pf_3_sa_9StringMap_2__dealloc__(struct __pyx_obj_3_sa_StringMap *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_from_binary, PyObject *__pyx_v_from_text, PyObject *__pyx_v_side, int __pyx_v_use_sent_id); /* proto */ -static Py_ssize_t __pyx_pf_3_sa_9DataArray_2__len__(struct __pyx_obj_3_sa_DataArray *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_4get_sentence_id(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_6get_sentence(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_8get_sentence_position(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_loc); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_10get_id(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_word); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_12get_word(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_id); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_14write_text(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_16read_text(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_11read_bitext_genexpr(PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_18read_bitext(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename, int __pyx_v_side); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_20read_text_data(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_data); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_22read_binary(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_24write_binary(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_f); /* proto */ -static PyObject *__pyx_pf_3_sa_9DataArray_28write_enhanced(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_9Alignment_unlink(CYTHON_UNUSED struct __pyx_obj_3_sa_Alignment *__pyx_v_self, PyObject *__pyx_v_link); /* proto */ -static PyObject *__pyx_pf_3_sa_9Alignment_2get_sent_links(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, int __pyx_v_sent_id); /* proto */ -static int __pyx_pf_3_sa_9Alignment_4__cinit__(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, PyObject *__pyx_v_from_binary, PyObject *__pyx_v_from_text); /* proto */ -static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_9Alignment_8read_binary(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_9Alignment_12write_binary(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_9Alignment_16alignment(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_from_text, PyObject *__pyx_v_from_data, PyObject *__pyx_v_from_binary, PyObject *__pyx_v_earray, PyObject *__pyx_v_fsarray, PyObject *__pyx_v_alignment); /* proto */ -static PyObject *__pyx_pf_3_sa_5BiLex_2write_binary(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_5BiLex_4read_binary(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_5BiLex_6get_e_id(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_eword); /* proto */ -static PyObject *__pyx_pf_3_sa_5BiLex_8get_f_id(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_fword); /* proto */ -static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_fword, PyObject *__pyx_v_eword, PyObject *__pyx_v_col); /* proto */ -static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_14BitSetIterator___next__(struct __pyx_obj_3_sa_BitSetIterator *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_6BitSet___cinit__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self); /* proto */ -static void __pyx_pf_3_sa_6BitSet_2__dealloc__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_6BitSet_4__iter__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_6BitSet_6insert(struct __pyx_obj_3_sa_BitSet *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_6BitSet_8findsucc(struct __pyx_obj_3_sa_BitSet *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_6BitSet_10__str__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_6BitSet_12min(struct __pyx_obj_3_sa_BitSet *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_6BitSet_14max(struct __pyx_obj_3_sa_BitSet *__pyx_v_self); /* proto */ -static Py_ssize_t __pyx_pf_3_sa_6BitSet_16__len__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_6BitSet_18__contains__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_11VEBIterator___next__(struct __pyx_obj_3_sa_VEBIterator *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_3VEB___cinit__(struct __pyx_obj_3_sa_VEB *__pyx_v_self, int __pyx_v_size); /* proto */ -static void __pyx_pf_3_sa_3VEB_2__dealloc__(struct __pyx_obj_3_sa_VEB *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_3VEB_4__iter__(struct __pyx_obj_3_sa_VEB *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_3VEB_6insert(struct __pyx_obj_3_sa_VEB *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_3VEB_8findsucc(struct __pyx_obj_3_sa_VEB *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static Py_ssize_t __pyx_pf_3_sa_3VEB_10__len__(struct __pyx_obj_3_sa_VEB *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_3VEB_12__contains__(struct __pyx_obj_3_sa_VEB *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static int __pyx_pf_3_sa_3LCP___cinit__(struct __pyx_obj_3_sa_LCP *__pyx_v_self, struct __pyx_obj_3_sa_SuffixArray *__pyx_v_sa); /* proto */ -static PyObject *__pyx_pf_3_sa_3LCP_2compute_stats(struct __pyx_obj_3_sa_LCP *__pyx_v_self, int __pyx_v_max_n); /* proto */ -static int __pyx_pf_3_sa_8Alphabet___cinit__(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self); /* proto */ -static void __pyx_pf_3_sa_8Alphabet_2__dealloc__(CYTHON_UNUSED struct __pyx_obj_3_sa_Alphabet *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_8Alphabet_9terminals___get__(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_8Alphabet_12nonterminals___get__(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_2sym_fromstring(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_string, int __pyx_v_terminal); /* proto */ -static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_words); /* proto */ -static void __pyx_pf_3_sa_6Phrase_2__dealloc__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_4__str__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_6handle(struct __pyx_obj_3_sa_Phrase *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_8strhandle(struct __pyx_obj_3_sa_Phrase *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_10arity(struct __pyx_obj_3_sa_Phrase *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_12getvarpos(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_14getvar(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_16clen(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_k); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_18getchunk(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_ci); /* proto */ -#if PY_MAJOR_VERSION < 3 -static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ -#endif -static Py_hash_t __pyx_pf_3_sa_6Phrase_22__hash__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self); /* proto */ -static Py_ssize_t __pyx_pf_3_sa_6Phrase_24__len__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_26__getitem__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_28__iter__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_31subst(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_children); /* proto */ -static PyObject *__pyx_pf_3_sa_6Phrase_5words___get__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_4Rule___cinit__(struct __pyx_obj_3_sa_Rule *__pyx_v_self, int __pyx_v_lhs, struct __pyx_obj_3_sa_Phrase *__pyx_v_f, struct __pyx_obj_3_sa_Phrase *__pyx_v_e, PyObject *__pyx_v_scores, PyObject *__pyx_v_word_alignments); /* proto */ -static Py_hash_t __pyx_pf_3_sa_4Rule_2__hash__(struct __pyx_obj_3_sa_Rule *__pyx_v_self); /* proto */ -#if PY_MAJOR_VERSION < 3 -static int __pyx_pf_3_sa_4Rule_4__cmp__(struct __pyx_obj_3_sa_Rule *__pyx_v_self, struct __pyx_obj_3_sa_Rule *__pyx_v_other); /* proto */ -#endif -static PyObject *__pyx_pf_3_sa_4Rule_6fmerge(struct __pyx_obj_3_sa_Rule *__pyx_v_self, struct __pyx_obj_3_sa_Phrase *__pyx_v_f); /* proto */ -static PyObject *__pyx_pf_3_sa_4Rule_8arity(struct __pyx_obj_3_sa_Rule *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_4Rule_7__str___genexpr(PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_3_sa_4Rule_10__str__(struct __pyx_obj_3_sa_Rule *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_4Rule_12alignments(struct __pyx_obj_3_sa_Rule *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_4Rule_1f___get__(struct __pyx_obj_3_sa_Rule *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_4Rule_1e___get__(struct __pyx_obj_3_sa_Rule *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_7TrieMap___cinit__(struct __pyx_obj_3_sa_TrieMap *__pyx_v_self, int __pyx_v_alphabet_size); /* proto */ -static void __pyx_pf_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_3_sa_TrieMap *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_7TrieMap_4insert(struct __pyx_obj_3_sa_TrieMap *__pyx_v_self, PyObject *__pyx_v_pattern); /* proto */ -static PyObject *__pyx_pf_3_sa_7TrieMap_6contains(struct __pyx_obj_3_sa_TrieMap *__pyx_v_self, PyObject *__pyx_v_pattern); /* proto */ -static PyObject *__pyx_pf_3_sa_7TrieMap_8toMap(struct __pyx_obj_3_sa_TrieMap *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ -static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, PyObject *__pyx_v_fsarray, PyObject *__pyx_v_from_stats, PyObject *__pyx_v_from_binary, PyObject *__pyx_v_precompute_rank, PyObject *__pyx_v_precompute_secondary_rank, PyObject *__pyx_v_max_length, PyObject *__pyx_v_max_nonterminals, PyObject *__pyx_v_train_max_initial_size, PyObject *__pyx_v_train_min_gap_size); /* proto */ -static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, PyObject *__pyx_v_stats, struct __pyx_obj_3_sa_SuffixArray *__pyx_v_sarray); /* proto */ -static int __pyx_pf_3_sa_11SuffixArray___cinit__(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_from_binary, PyObject *__pyx_v_from_text, PyObject *__pyx_v_side); /* proto */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_2__getitem__(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_4get_sentence_id(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_6get_sentence(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_8get_sentence_position(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_loc); /* proto */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_side); /* proto */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, int __pyx_v_i, int __pyx_v_j, int __pyx_v_h, struct __pyx_obj_3_sa_IntList *__pyx_v_isa, PyObject *__pyx_v_pad); /* proto */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_14write_text(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_16read_binary(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_18write_binary(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, char *__pyx_v_filename); /* proto */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_22lookup(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_word, int __pyx_v_offset, int __pyx_v_low, int __pyx_v_high); /* proto */ -static int __pyx_pf_3_sa_8TrieNode___cinit__(struct __pyx_obj_3_sa_TrieNode *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_8TrieNode_8children___get__(struct __pyx_obj_3_sa_TrieNode *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_8TrieNode_8children_2__set__(struct __pyx_obj_3_sa_TrieNode *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ -static int __pyx_pf_3_sa_8TrieNode_8children_4__del__(struct __pyx_obj_3_sa_TrieNode *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_16ExtendedTrieNode___cinit__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self, PyObject *__pyx_v_phrase, PyObject *__pyx_v_phrase_location, PyObject *__pyx_v_suffix_link); /* proto */ -static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_6phrase___get__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_2__set__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ -static int __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_4__del__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location___get__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_2__set__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ -static int __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_4__del__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link___get__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_2__set__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ -static int __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_4__del__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_9TrieTable___cinit__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self, PyObject *__pyx_v_extended); /* proto */ -static PyObject *__pyx_pf_3_sa_9TrieTable_8extended___get__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_9TrieTable_8extended_2__set__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ -static PyObject *__pyx_pf_3_sa_9TrieTable_5count___get__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_9TrieTable_5count_2__set__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ -static PyObject *__pyx_pf_3_sa_9TrieTable_4root___get__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_9TrieTable_4root_2__set__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ -static int __pyx_pf_3_sa_9TrieTable_4root_4__del__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_3_sa_PhraseLocation *__pyx_v_self, int __pyx_v_sa_low, int __pyx_v_sa_high, int __pyx_v_arr_low, int __pyx_v_arr_high, PyObject *__pyx_v_arr, int __pyx_v_num_subpatterns); /* proto */ -static int __pyx_pf_3_sa_7Sampler___cinit__(struct __pyx_obj_3_sa_Sampler *__pyx_v_self, int __pyx_v_sample_size, struct __pyx_obj_3_sa_SuffixArray *__pyx_v_fsarray); /* proto */ -static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *__pyx_v_self, struct __pyx_obj_3_sa_PhraseLocation *__pyx_v_phrase_location); /* proto */ -static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, struct __pyx_obj_3_sa_Alignment *__pyx_v_alignment, float __pyx_v_by_slack_factor, char *__pyx_v_category, PyObject *__pyx_v_max_chunks, unsigned int __pyx_v_max_initial_size, unsigned int __pyx_v_max_length, unsigned int __pyx_v_max_nonterminals, PyObject *__pyx_v_max_target_chunks, PyObject *__pyx_v_max_target_length, unsigned int __pyx_v_min_gap_size, PyObject *__pyx_v_precompute_file, unsigned int __pyx_v_precompute_secondary_rank, unsigned int __pyx_v_precompute_rank, int __pyx_v_require_aligned_terminal, int __pyx_v_require_aligned_chunks, unsigned int __pyx_v_train_max_initial_size, unsigned int __pyx_v_train_min_gap_size, int __pyx_v_tight_phrases, int __pyx_v_use_baeza_yates, int __pyx_v_use_collocations, int __pyx_v_use_index); /* proto */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, struct __pyx_obj_3_sa_SuffixArray *__pyx_v_fsarray, struct __pyx_obj_3_sa_DataArray *__pyx_v_edarray, struct __pyx_obj_3_sa_Sampler *__pyx_v_sampler, struct __pyx_obj_3_sa_Scorer *__pyx_v_scorer); /* proto */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_pattern); /* proto */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_pattern); /* proto */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_10get_precomputed_collocation(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_phrase); /* proto */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_frontier, PyObject *__pyx_v_res, PyObject *__pyx_v_fwords); /* proto */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_away(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_skip, PyObject *__pyx_v_i, PyObject *__pyx_v_spanlen, PyObject *__pyx_v_pathlen, PyObject *__pyx_v_fwords, PyObject *__pyx_v_next_states, PyObject *__pyx_v_reachable_buffer); /* proto */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_fwords, PyObject *__pyx_v_ifrom, PyObject *__pyx_v_dist); /* proto */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_fwords, PyObject *__pyx_v_ifrom, PyObject *__pyx_v_ito); /* proto */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v__columns, PyObject *__pyx_v_curr_idx, PyObject *__pyx_v_min_dist); /* proto */ -static PyObject *__pyx_lambda_funcdef_lambda2(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_lambda_funcdef_lambda1(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_lambda_funcdef_lambda3(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x); /* proto */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_22input(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_fwords); /* proto */ -static int __pyx_pf_3_sa_13FeatureVector___cinit__(struct __pyx_obj_3_sa_FeatureVector *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_13FeatureVector_2set(struct __pyx_obj_3_sa_FeatureVector *__pyx_v_self, unsigned int __pyx_v_name, float __pyx_v_value); /* proto */ -static PyObject *__pyx_pf_3_sa_13FeatureVector_4__iter__(struct __pyx_obj_3_sa_FeatureVector *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_3_sa_13FeatureVector_7__str___genexpr(PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_3_sa_13FeatureVector_7__str__(struct __pyx_obj_3_sa_FeatureVector *__pyx_v_self); /* proto */ -static int __pyx_pf_3_sa_6Scorer___init__(struct __pyx_obj_3_sa_Scorer *__pyx_v_self, PyObject *__pyx_v_models); /* proto */  static char __pyx_k_1[] = ".gz";  static char __pyx_k_2[] = "Requested index %d of %d-length FloatList";  static char __pyx_k_3[] = "IntList["; @@ -2423,10 +2088,8 @@ static char __pyx_k_132[] = "Subphrase [%d, %d] failed integrity check";  static char __pyx_k_133[] = "Didn't extract anything from [%d, %d] -> [%d, %d]";  static char __pyx_k_134[] = "Unable to extract basic phrase";  static char __pyx_k_135[] = "%s=%s"; -static char __pyx_k_138[] = "/home/hltcoe/alopez/dev/cdec/python/src/sa/_sa.pyx"; -static char __pyx_k_139[] = "cdec.sa"; -static char __pyx_k_143[] = "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi"; -static char __pyx_k_144[] = "*EPS*"; +static char __pyx_k_136[] = "cdec.sa"; +static char __pyx_k_138[] = "*EPS*";  static char __pyx_k__gc[] = "gc";  static char __pyx_k__sa[] = "sa";  static char __pyx_k___sa[] = "_sa"; @@ -2643,11 +2306,9 @@ static PyObject *__pyx_kp_s_132;  static PyObject *__pyx_kp_s_133;  static PyObject *__pyx_kp_s_134;  static PyObject *__pyx_kp_s_135; +static PyObject *__pyx_kp_s_136;  static PyObject *__pyx_kp_s_138; -static PyObject *__pyx_kp_s_139;  static PyObject *__pyx_kp_s_14; -static PyObject *__pyx_kp_s_143; -static PyObject *__pyx_kp_s_144;  static PyObject *__pyx_kp_s_18;  static PyObject *__pyx_kp_s_2;  static PyObject *__pyx_kp_s_21; @@ -2948,11 +2609,7 @@ static PyObject *__pyx_k_tuple_99;  static PyObject *__pyx_k_tuple_103;  static PyObject *__pyx_k_tuple_108;  static PyObject *__pyx_k_tuple_123; -static PyObject *__pyx_k_tuple_136; -static PyObject *__pyx_k_tuple_140; -static PyObject *__pyx_k_tuple_141; -static PyObject *__pyx_k_codeobj_137; -static PyObject *__pyx_k_codeobj_142; +static PyObject *__pyx_k_tuple_137;  /* "_sa.pyx":5   * import gzip @@ -2973,7 +2630,7 @@ static float __pyx_f_3_sa_monitor_cpu(void) {    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("monitor_cpu", 0); +  __Pyx_RefNannySetupContext("monitor_cpu");    /* "_sa.pyx":6   *  @@ -2993,7 +2650,7 @@ static float __pyx_f_3_sa_monitor_cpu(void) {    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);    __Pyx_GIVEREF(__pyx_t_3);    __pyx_t_3 = 0; @@ -3023,7 +2680,7 @@ static float __pyx_f_3_sa_monitor_cpu(void) {    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);    __Pyx_GIVEREF(__pyx_t_4);    __pyx_t_4 = 0; @@ -3038,7 +2695,7 @@ static float __pyx_f_3_sa_monitor_cpu(void) {    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_4); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;    __pyx_r = __pyx_t_5;    goto __pyx_L0; @@ -3057,28 +2714,6 @@ static float __pyx_f_3_sa_monitor_cpu(void) {    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_1gzip_or_text(PyObject *__pyx_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyMethodDef __pyx_mdef_3_sa_1gzip_or_text = {__Pyx_NAMESTR("gzip_or_text"), (PyCFunction)__pyx_pw_3_sa_1gzip_or_text, METH_O, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pw_3_sa_1gzip_or_text(PyObject *__pyx_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("gzip_or_text (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.gzip_or_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_gzip_or_text(__pyx_self, ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "_sa.pyx":9   *             resource.getrusage(resource.RUSAGE_SELF).ru_stime)   *  @@ -3087,7 +2722,10 @@ static PyObject *__pyx_pw_3_sa_1gzip_or_text(PyObject *__pyx_self, PyObject *__p   *         return gzip.GzipFile(filename)   */ -static PyObject *__pyx_pf_3_sa_gzip_or_text(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_gzip_or_text(PyObject *__pyx_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyMethodDef __pyx_mdef_3_sa_gzip_or_text = {__Pyx_NAMESTR("gzip_or_text"), (PyCFunction)__pyx_pf_3_sa_gzip_or_text, METH_O, __Pyx_DOCSTR(0)}; +static PyObject *__pyx_pf_3_sa_gzip_or_text(PyObject *__pyx_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -3097,7 +2735,17 @@ static PyObject *__pyx_pf_3_sa_gzip_or_text(CYTHON_UNUSED PyObject *__pyx_self,    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("gzip_or_text", 0); +  __Pyx_RefNannySetupContext("gzip_or_text"); +  __pyx_self = __pyx_self; +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.gzip_or_text", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "_sa.pyx":10   *  @@ -3128,7 +2776,7 @@ static PyObject *__pyx_pf_3_sa_gzip_or_text(CYTHON_UNUSED PyObject *__pyx_self,      __pyx_t_1 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_1));      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));      __pyx_t_1 = 0; @@ -3139,7 +2787,7 @@ static PyObject *__pyx_pf_3_sa_gzip_or_text(CYTHON_UNUSED PyObject *__pyx_self,      __pyx_r = __pyx_t_1;      __pyx_t_1 = 0;      goto __pyx_L0; -    goto __pyx_L3; +    goto __pyx_L5;    }    /*else*/ { @@ -3154,7 +2802,7 @@ static PyObject *__pyx_pf_3_sa_gzip_or_text(CYTHON_UNUSED PyObject *__pyx_self,      __pyx_t_1 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_1));      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));      __pyx_t_1 = 0; @@ -3165,7 +2813,7 @@ static PyObject *__pyx_pf_3_sa_gzip_or_text(CYTHON_UNUSED PyObject *__pyx_self,      __pyx_t_1 = 0;      goto __pyx_L0;    } -  __pyx_L3:; +  __pyx_L5:;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -3181,22 +2829,32 @@ static PyObject *__pyx_pf_3_sa_gzip_or_text(CYTHON_UNUSED PyObject *__pyx_self,    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_9FloatList_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_9FloatList_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":11 + * cdef class FloatList: + *  + *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):             # <<<<<<<<<<<<<< + *         if initial_len > size: + *             size = initial_len + */ + +static int __pyx_pf_3_sa_9FloatList___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_9FloatList___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_v_size;    int __pyx_v_increment;    int __pyx_v_initial_len;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  int __pyx_t_1; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__size,&__pyx_n_s__increment,&__pyx_n_s__initial_len,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__size,&__pyx_n_s__increment,&__pyx_n_s__initial_len,0};      PyObject* values[3] = {0,0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); @@ -3204,7 +2862,7 @@ static int __pyx_pw_3_sa_9FloatList_1__cinit__(PyObject *__pyx_v_self, PyObject          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0:          if (kw_args > 0) {            PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size); @@ -3222,7 +2880,7 @@ static int __pyx_pw_3_sa_9FloatList_1__cinit__(PyObject *__pyx_v_self, PyObject          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -3257,24 +2915,6 @@ static int __pyx_pw_3_sa_9FloatList_1__cinit__(PyObject *__pyx_v_self, PyObject    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9FloatList___cinit__(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self), __pyx_v_size, __pyx_v_increment, __pyx_v_initial_len); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":11 - * cdef class FloatList: - *  - *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):             # <<<<<<<<<<<<<< - *         if initial_len > size: - *             size = initial_len - */ - -static int __pyx_pf_3_sa_9FloatList___cinit__(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, int __pyx_v_size, int __pyx_v_increment, int __pyx_v_initial_len) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  int __pyx_t_1; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":12   *  @@ -3294,9 +2934,9 @@ static int __pyx_pf_3_sa_9FloatList___cinit__(struct __pyx_obj_3_sa_FloatList *_   *         self.increment = increment   */      __pyx_v_size = __pyx_v_initial_len; -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":14   *         if initial_len > size: @@ -3305,7 +2945,7 @@ static int __pyx_pf_3_sa_9FloatList___cinit__(struct __pyx_obj_3_sa_FloatList *_   *         self.increment = increment   *         self.len = initial_len   */ -  __pyx_v_self->size = __pyx_v_size; +  ((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->size = __pyx_v_size;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":15   *             size = initial_len @@ -3314,7 +2954,7 @@ static int __pyx_pf_3_sa_9FloatList___cinit__(struct __pyx_obj_3_sa_FloatList *_   *         self.len = initial_len   *         self.arr = <float*> malloc(size*sizeof(float))   */ -  __pyx_v_self->increment = __pyx_v_increment; +  ((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->increment = __pyx_v_increment;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":16   *         self.size = size @@ -3323,7 +2963,7 @@ static int __pyx_pf_3_sa_9FloatList___cinit__(struct __pyx_obj_3_sa_FloatList *_   *         self.arr = <float*> malloc(size*sizeof(float))   *         memset(self.arr, 0, initial_len*sizeof(float))   */ -  __pyx_v_self->len = __pyx_v_initial_len; +  ((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->len = __pyx_v_initial_len;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":17   *         self.increment = increment @@ -3332,7 +2972,7 @@ static int __pyx_pf_3_sa_9FloatList___cinit__(struct __pyx_obj_3_sa_FloatList *_   *         memset(self.arr, 0, initial_len*sizeof(float))   *    */ -  __pyx_v_self->arr = ((float *)malloc((__pyx_v_size * (sizeof(float))))); +  ((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->arr = ((float *)malloc((__pyx_v_size * (sizeof(float)))));    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":18   *         self.len = initial_len @@ -3341,22 +2981,13 @@ static int __pyx_pf_3_sa_9FloatList___cinit__(struct __pyx_obj_3_sa_FloatList *_   *    *     def __dealloc__(self):   */ -  memset(__pyx_v_self->arr, 0, (__pyx_v_initial_len * (sizeof(float)))); +  memset(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->arr, 0, (__pyx_v_initial_len * (sizeof(float))));    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static void __pyx_pw_3_sa_9FloatList_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_3_sa_9FloatList_3__dealloc__(PyObject *__pyx_v_self) { -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); -  __pyx_pf_3_sa_9FloatList_2__dealloc__(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":20   *         memset(self.arr, 0, initial_len*sizeof(float))   *  @@ -3365,9 +2996,10 @@ static void __pyx_pw_3_sa_9FloatList_3__dealloc__(PyObject *__pyx_v_self) {   *    */ -static void __pyx_pf_3_sa_9FloatList_2__dealloc__(struct __pyx_obj_3_sa_FloatList *__pyx_v_self) { +static void __pyx_pf_3_sa_9FloatList_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pf_3_sa_9FloatList_1__dealloc__(PyObject *__pyx_v_self) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__", 0); +  __Pyx_RefNannySetupContext("__dealloc__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":21   *  @@ -3376,20 +3008,9 @@ static void __pyx_pf_3_sa_9FloatList_2__dealloc__(struct __pyx_obj_3_sa_FloatLis   *    *     def __getitem__(self, i):   */ -  free(__pyx_v_self->arr); - -  __Pyx_RefNannyFinishContext(); -} +  free(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->arr); -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9FloatList_5__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_9FloatList_5__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9FloatList_4__getitem__(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self), ((PyObject *)__pyx_v_i));    __Pyx_RefNannyFinishContext(); -  return __pyx_r;  }  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":23 @@ -3400,7 +3021,8 @@ static PyObject *__pyx_pw_3_sa_9FloatList_5__getitem__(PyObject *__pyx_v_self, P   *         if i<0:   */ -static PyObject *__pyx_pf_3_sa_9FloatList_4__getitem__(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_9FloatList_2__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_9FloatList_2__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_v_j = NULL;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -3413,7 +3035,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_4__getitem__(struct __pyx_obj_3_sa_Flo    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__getitem__", 0); +  __Pyx_RefNannySetupContext("__getitem__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":24   *  @@ -3432,7 +3054,8 @@ static PyObject *__pyx_pf_3_sa_9FloatList_4__getitem__(struct __pyx_obj_3_sa_Flo   *             j = self.len + i   *         if j<0 or j>=self.len:   */ -  __pyx_t_1 = PyObject_RichCompare(__pyx_v_i, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_RichCompare(__pyx_v_i, __pyx_int_0, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 25; __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[1]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_2) { @@ -3444,7 +3067,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_4__getitem__(struct __pyx_obj_3_sa_Flo   *         if j<0 or j>=self.len:   *             raise IndexError("Requested index %d of %d-length FloatList" % (i, self.len))   */ -    __pyx_t_1 = PyInt_FromLong(__pyx_v_self->len); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->len); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); @@ -3452,9 +3075,9 @@ static PyObject *__pyx_pf_3_sa_9FloatList_4__getitem__(struct __pyx_obj_3_sa_Flo      __Pyx_DECREF(__pyx_v_j);      __pyx_v_j = __pyx_t_3;      __pyx_t_3 = 0; -    goto __pyx_L3; +    goto __pyx_L5;    } -  __pyx_L3:; +  __pyx_L5:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":27   *         if i<0: @@ -3463,13 +3086,15 @@ static PyObject *__pyx_pf_3_sa_9FloatList_4__getitem__(struct __pyx_obj_3_sa_Flo   *             raise IndexError("Requested index %d of %d-length FloatList" % (i, self.len))   *         return self.arr[j]   */ -  __pyx_t_3 = PyObject_RichCompare(__pyx_v_j, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyObject_RichCompare(__pyx_v_j, __pyx_int_0, Py_LT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_3);    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    if (!__pyx_t_2) { -    __pyx_t_3 = PyInt_FromLong(__pyx_v_self->len); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->len); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_1 = PyObject_RichCompare(__pyx_v_j, __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_j, __pyx_t_3, Py_GE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -3486,10 +3111,10 @@ static PyObject *__pyx_pf_3_sa_9FloatList_4__getitem__(struct __pyx_obj_3_sa_Flo   *         return self.arr[j]   *    */ -    __pyx_t_1 = PyInt_FromLong(__pyx_v_self->len); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->len); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __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[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      __Pyx_INCREF(__pyx_v_i);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_i);      __Pyx_GIVEREF(__pyx_v_i); @@ -3500,7 +3125,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_4__getitem__(struct __pyx_obj_3_sa_Flo      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __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[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_1));      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));      __pyx_t_1 = 0; @@ -3510,9 +3135,9 @@ static PyObject *__pyx_pf_3_sa_9FloatList_4__getitem__(struct __pyx_obj_3_sa_Flo      __Pyx_Raise(__pyx_t_1, 0, 0, 0);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    goto __pyx_L4; +    goto __pyx_L6;    } -  __pyx_L4:; +  __pyx_L6:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":29   *         if j<0 or j>=self.len: @@ -3523,7 +3148,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_4__getitem__(struct __pyx_obj_3_sa_Flo   */    __Pyx_XDECREF(__pyx_r);    __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_j); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->arr[__pyx_t_6])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyFloat_FromDouble((((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->arr[__pyx_t_6])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -3563,7 +3188,7 @@ static void __pyx_f_3_sa_9FloatList_set(struct __pyx_obj_3_sa_FloatList *__pyx_v    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("set", 0); +  __Pyx_RefNannySetupContext("set");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":32   *  @@ -3624,7 +3249,7 @@ static void __pyx_f_3_sa_9FloatList_set(struct __pyx_obj_3_sa_FloatList *__pyx_v      __pyx_t_5 = PyInt_FromLong(__pyx_v_self->len); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 36; __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[1]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_6); +    __Pyx_GOTREF(((PyObject *)__pyx_t_6));      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);      __Pyx_GIVEREF(__pyx_t_4);      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); @@ -3635,7 +3260,7 @@ static void __pyx_f_3_sa_9FloatList_set(struct __pyx_obj_3_sa_FloatList *__pyx_v      __Pyx_GOTREF(((PyObject *)__pyx_t_5));      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_6); +    __Pyx_GOTREF(((PyObject *)__pyx_t_6));      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_5));      __Pyx_GIVEREF(((PyObject *)__pyx_t_5));      __pyx_t_5 = 0; @@ -3668,17 +3293,6 @@ static void __pyx_f_3_sa_9FloatList_set(struct __pyx_obj_3_sa_FloatList *__pyx_v    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static int __pyx_pw_3_sa_9FloatList_7__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val); /*proto*/ -static int __pyx_pw_3_sa_9FloatList_7__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9FloatList_6__setitem__(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self), ((PyObject *)__pyx_v_i), ((PyObject *)__pyx_v_val)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":39   *         self.arr[j] = v   *  @@ -3687,7 +3301,8 @@ static int __pyx_pw_3_sa_9FloatList_7__setitem__(PyObject *__pyx_v_self, PyObjec   *    */ -static int __pyx_pf_3_sa_9FloatList_6__setitem__(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val) { +static int __pyx_pf_3_sa_9FloatList_3__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val); /*proto*/ +static int __pyx_pf_3_sa_9FloatList_3__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val) {    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -3695,7 +3310,7 @@ static int __pyx_pf_3_sa_9FloatList_6__setitem__(struct __pyx_obj_3_sa_FloatList    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__setitem__", 0); +  __Pyx_RefNannySetupContext("__setitem__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":40   *  @@ -3705,8 +3320,8 @@ static int __pyx_pf_3_sa_9FloatList_6__setitem__(struct __pyx_obj_3_sa_FloatList   *     def __len__(self):   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __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_3_sa_FloatList *)__pyx_v_self->__pyx_vtab)->set(__pyx_v_self, __pyx_t_1, __pyx_t_2); +  __pyx_t_2 = __pyx_PyFloat_AsDouble(__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_3_sa_FloatList *)((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->__pyx_vtab)->set(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self), __pyx_t_1, __pyx_t_2);    __pyx_r = 0;    goto __pyx_L0; @@ -3718,17 +3333,6 @@ static int __pyx_pf_3_sa_9FloatList_6__setitem__(struct __pyx_obj_3_sa_FloatList    return __pyx_r;  } -/* Python wrapper */ -static Py_ssize_t __pyx_pw_3_sa_9FloatList_9__len__(PyObject *__pyx_v_self); /*proto*/ -static Py_ssize_t __pyx_pw_3_sa_9FloatList_9__len__(PyObject *__pyx_v_self) { -  Py_ssize_t __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9FloatList_8__len__(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":42   *         self.set(i, val)   *  @@ -3737,10 +3341,11 @@ static Py_ssize_t __pyx_pw_3_sa_9FloatList_9__len__(PyObject *__pyx_v_self) {   *    */ -static Py_ssize_t __pyx_pf_3_sa_9FloatList_8__len__(struct __pyx_obj_3_sa_FloatList *__pyx_v_self) { +static Py_ssize_t __pyx_pf_3_sa_9FloatList_4__len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_pf_3_sa_9FloatList_4__len__(PyObject *__pyx_v_self) {    Py_ssize_t __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__len__", 0); +  __Pyx_RefNannySetupContext("__len__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":43   *  @@ -3749,7 +3354,7 @@ static Py_ssize_t __pyx_pf_3_sa_9FloatList_8__len__(struct __pyx_obj_3_sa_FloatL   *    *     def append(self, float val):   */ -  __pyx_r = __pyx_v_self->len; +  __pyx_r = ((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->len;    goto __pyx_L0;    __pyx_r = 0; @@ -3758,27 +3363,6 @@ static Py_ssize_t __pyx_pf_3_sa_9FloatList_8__len__(struct __pyx_obj_3_sa_FloatL    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9FloatList_11append(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/ -static PyObject *__pyx_pw_3_sa_9FloatList_11append(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) { -  float __pyx_v_val; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("append (wrapper)", 0); -  assert(__pyx_arg_val); { -    __pyx_v_val = __pyx_PyFloat_AsFloat(__pyx_arg_val); if (unlikely((__pyx_v_val == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.FloatList.append", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9FloatList_10append(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self), ((float)__pyx_v_val)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":45   *         return self.len   *  @@ -3787,11 +3371,25 @@ static PyObject *__pyx_pw_3_sa_9FloatList_11append(PyObject *__pyx_v_self, PyObj   *             self.size = self.size + self.increment   */ -static PyObject *__pyx_pf_3_sa_9FloatList_10append(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, float __pyx_v_val) { +static PyObject *__pyx_pf_3_sa_9FloatList_5append(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/ +static PyObject *__pyx_pf_3_sa_9FloatList_5append(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) { +  float __pyx_v_val;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("append", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("append"); +  assert(__pyx_arg_val); { +    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.FloatList.append", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":46   *  @@ -3800,7 +3398,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_10append(struct __pyx_obj_3_sa_FloatLi   *             self.size = self.size + self.increment   *             self.arr = <float*> realloc(self.arr, self.size*sizeof(float))   */ -  __pyx_t_1 = (__pyx_v_self->len == __pyx_v_self->size); +  __pyx_t_1 = (((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->len == ((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->size);    if (__pyx_t_1) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":47 @@ -3810,7 +3408,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_10append(struct __pyx_obj_3_sa_FloatLi   *             self.arr = <float*> realloc(self.arr, self.size*sizeof(float))   *         self.arr[self.len] = val   */ -    __pyx_v_self->size = (__pyx_v_self->size + __pyx_v_self->increment); +    ((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->size = (((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->size + ((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->increment);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":48   *         if self.len == self.size: @@ -3819,10 +3417,10 @@ static PyObject *__pyx_pf_3_sa_9FloatList_10append(struct __pyx_obj_3_sa_FloatLi   *         self.arr[self.len] = val   *         self.len = self.len + 1   */ -    __pyx_v_self->arr = ((float *)realloc(__pyx_v_self->arr, (__pyx_v_self->size * (sizeof(float))))); -    goto __pyx_L3; +    ((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->arr = ((float *)realloc(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->arr, (((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->size * (sizeof(float))))); +    goto __pyx_L5;    } -  __pyx_L3:; +  __pyx_L5:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":49   *             self.size = self.size + self.increment @@ -3831,7 +3429,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_10append(struct __pyx_obj_3_sa_FloatLi   *         self.len = self.len + 1   *    */ -  (__pyx_v_self->arr[__pyx_v_self->len]) = __pyx_v_val; +  (((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->arr[((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->len]) = __pyx_v_val;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":50   *             self.arr = <float*> realloc(self.arr, self.size*sizeof(float)) @@ -3840,7 +3438,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_10append(struct __pyx_obj_3_sa_FloatLi   *    *     cdef void write_handle(self, FILE* f):   */ -  __pyx_v_self->len = (__pyx_v_self->len + 1); +  ((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->len = (((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->len + 1);    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    __Pyx_XGIVEREF(__pyx_r); @@ -3858,7 +3456,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_10append(struct __pyx_obj_3_sa_FloatLi  static void __pyx_f_3_sa_9FloatList_write_handle(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, FILE *__pyx_v_f) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_handle", 0); +  __Pyx_RefNannySetupContext("write_handle");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":53   *  @@ -3881,27 +3479,6 @@ static void __pyx_f_3_sa_9FloatList_write_handle(struct __pyx_obj_3_sa_FloatList    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9FloatList_13write(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9FloatList_13write(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.FloatList.write", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9FloatList_12write(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":56   *         fwrite(self.arr, sizeof(float), self.len, f)   *  @@ -3910,11 +3487,25 @@ static PyObject *__pyx_pw_3_sa_9FloatList_13write(PyObject *__pyx_v_self, PyObje   *         f = fopen(filename, "w")   */ -static PyObject *__pyx_pf_3_sa_9FloatList_12write(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9FloatList_6write(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9FloatList_6write(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("write"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.FloatList.write", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":58   *     def write(self, char* filename): @@ -3932,7 +3523,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_12write(struct __pyx_obj_3_sa_FloatLis   *         fclose(f)   *    */ -  ((struct __pyx_vtabstruct_3_sa_FloatList *)__pyx_v_self->__pyx_vtab)->write_handle(__pyx_v_self, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_FloatList *)((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self), __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":60   *         f = fopen(filename, "w") @@ -3959,7 +3550,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_12write(struct __pyx_obj_3_sa_FloatLis  static void __pyx_f_3_sa_9FloatList_read_handle(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, FILE *__pyx_v_f) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_handle", 0); +  __Pyx_RefNannySetupContext("read_handle");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":63   *  @@ -4009,27 +3600,6 @@ static void __pyx_f_3_sa_9FloatList_read_handle(struct __pyx_obj_3_sa_FloatList    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9FloatList_15read(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9FloatList_15read(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.FloatList.read", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9FloatList_14read(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":69   *         fread(self.arr, sizeof(float), self.len, f)   *  @@ -4038,11 +3608,25 @@ static PyObject *__pyx_pw_3_sa_9FloatList_15read(PyObject *__pyx_v_self, PyObjec   *         f = fopen(filename, "r")   */ -static PyObject *__pyx_pf_3_sa_9FloatList_14read(struct __pyx_obj_3_sa_FloatList *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9FloatList_7read(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9FloatList_7read(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("read"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.FloatList.read", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":71   *     def read(self, char* filename): @@ -4059,7 +3643,7 @@ static PyObject *__pyx_pf_3_sa_9FloatList_14read(struct __pyx_obj_3_sa_FloatList   *         self.read_handle(f)             # <<<<<<<<<<<<<<   *         fclose(f)   */ -  ((struct __pyx_vtabstruct_3_sa_FloatList *)__pyx_v_self->__pyx_vtab)->read_handle(__pyx_v_self, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_FloatList *)((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self)->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_FloatList *)__pyx_v_self), __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/float_list.pxi":73   *         f = fopen(filename, "r") @@ -4074,22 +3658,32 @@ static PyObject *__pyx_pf_3_sa_9FloatList_14read(struct __pyx_obj_3_sa_FloatList    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_7IntList_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_7IntList_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":11 + * cdef class IntList: + *  + *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):             # <<<<<<<<<<<<<< + *         if initial_len > size: + *             size = initial_len + */ + +static int __pyx_pf_3_sa_7IntList___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_7IntList___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_v_size;    int __pyx_v_increment;    int __pyx_v_initial_len;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  int __pyx_t_1; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__size,&__pyx_n_s__increment,&__pyx_n_s__initial_len,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__size,&__pyx_n_s__increment,&__pyx_n_s__initial_len,0};      PyObject* values[3] = {0,0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); @@ -4097,7 +3691,7 @@ static int __pyx_pw_3_sa_7IntList_1__cinit__(PyObject *__pyx_v_self, PyObject *_          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0:          if (kw_args > 0) {            PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size); @@ -4115,7 +3709,7 @@ static int __pyx_pw_3_sa_7IntList_1__cinit__(PyObject *__pyx_v_self, PyObject *_          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -4150,24 +3744,6 @@ static int __pyx_pw_3_sa_7IntList_1__cinit__(PyObject *__pyx_v_self, PyObject *_    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_7IntList___cinit__(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), __pyx_v_size, __pyx_v_increment, __pyx_v_initial_len); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":11 - * cdef class IntList: - *  - *     def __cinit__(self, int size=0, int increment=1, int initial_len=0):             # <<<<<<<<<<<<<< - *         if initial_len > size: - *             size = initial_len - */ - -static int __pyx_pf_3_sa_7IntList___cinit__(struct __pyx_obj_3_sa_IntList *__pyx_v_self, int __pyx_v_size, int __pyx_v_increment, int __pyx_v_initial_len) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  int __pyx_t_1; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":12   *  @@ -4187,9 +3763,9 @@ static int __pyx_pf_3_sa_7IntList___cinit__(struct __pyx_obj_3_sa_IntList *__pyx   *         self.increment = increment   */      __pyx_v_size = __pyx_v_initial_len; -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":14   *         if initial_len > size: @@ -4198,7 +3774,7 @@ static int __pyx_pf_3_sa_7IntList___cinit__(struct __pyx_obj_3_sa_IntList *__pyx   *         self.increment = increment   *         self.len = initial_len   */ -  __pyx_v_self->size = __pyx_v_size; +  ((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->size = __pyx_v_size;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":15   *             size = initial_len @@ -4207,7 +3783,7 @@ static int __pyx_pf_3_sa_7IntList___cinit__(struct __pyx_obj_3_sa_IntList *__pyx   *         self.len = initial_len   *         self.arr = <int*> malloc(size*sizeof(int))   */ -  __pyx_v_self->increment = __pyx_v_increment; +  ((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->increment = __pyx_v_increment;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":16   *         self.size = size @@ -4216,7 +3792,7 @@ static int __pyx_pf_3_sa_7IntList___cinit__(struct __pyx_obj_3_sa_IntList *__pyx   *         self.arr = <int*> malloc(size*sizeof(int))   *         memset(self.arr, 0, initial_len*sizeof(int))   */ -  __pyx_v_self->len = __pyx_v_initial_len; +  ((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len = __pyx_v_initial_len;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":17   *         self.increment = increment @@ -4225,7 +3801,7 @@ static int __pyx_pf_3_sa_7IntList___cinit__(struct __pyx_obj_3_sa_IntList *__pyx   *         memset(self.arr, 0, initial_len*sizeof(int))   *    */ -  __pyx_v_self->arr = ((int *)malloc((__pyx_v_size * (sizeof(int))))); +  ((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr = ((int *)malloc((__pyx_v_size * (sizeof(int)))));    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":18   *         self.len = initial_len @@ -4234,24 +3810,13 @@ static int __pyx_pf_3_sa_7IntList___cinit__(struct __pyx_obj_3_sa_IntList *__pyx   *    *     def __str__(self):   */ -  memset(__pyx_v_self->arr, 0, (__pyx_v_initial_len * (sizeof(int)))); +  memset(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr, 0, (__pyx_v_initial_len * (sizeof(int))));    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_3__str__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_3__str__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7IntList_2__str__(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":20   *         memset(self.arr, 0, initial_len*sizeof(int))   *  @@ -4260,7 +3825,8 @@ static PyObject *__pyx_pw_3_sa_7IntList_3__str__(PyObject *__pyx_v_self) {   *         ret = "IntList["   */ -static PyObject *__pyx_pf_3_sa_7IntList_2__str__(struct __pyx_obj_3_sa_IntList *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_7IntList_1__str__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_1__str__(PyObject *__pyx_v_self) {    PyObject *__pyx_v_ret = NULL;    int __pyx_v_idx;    PyObject *__pyx_r = NULL; @@ -4273,7 +3839,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_2__str__(struct __pyx_obj_3_sa_IntList *    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__str__", 0); +  __Pyx_RefNannySetupContext("__str__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":22   *     def __str__(self): @@ -4292,7 +3858,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_2__str__(struct __pyx_obj_3_sa_IntList *   *             if idx>0:   *                 ret += ","   */ -  __pyx_t_1 = __pyx_v_self->size; +  __pyx_t_1 = ((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->size;    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_v_idx = __pyx_t_2; @@ -4318,9 +3884,9 @@ static PyObject *__pyx_pf_3_sa_7IntList_2__str__(struct __pyx_obj_3_sa_IntList *        __Pyx_DECREF(__pyx_v_ret);        __pyx_v_ret = __pyx_t_4;        __pyx_t_4 = 0; -      goto __pyx_L5; +      goto __pyx_L7;      } -    __pyx_L5:; +    __pyx_L7:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":26   *             if idx>0: @@ -4329,10 +3895,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_2__str__(struct __pyx_obj_3_sa_IntList *   *         ret += "]"   *         ret += "len="   */ -    __pyx_t_4 = PyInt_FromLong((__pyx_v_self->arr[__pyx_v_idx])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyInt_FromLong((((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_v_idx])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_5); +    __Pyx_GOTREF(((PyObject *)__pyx_t_5));      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);      __Pyx_GIVEREF(__pyx_t_4);      __pyx_t_4 = 0; @@ -4380,7 +3946,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_2__str__(struct __pyx_obj_3_sa_IntList *   *         return ret   *    */ -  __pyx_t_5 = PyInt_FromLong(__pyx_v_self->len); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = PyInt_FromLong(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_5);    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_ret, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4); @@ -4415,17 +3981,6 @@ static PyObject *__pyx_pf_3_sa_7IntList_2__str__(struct __pyx_obj_3_sa_IntList *    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_5index(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_5index(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("index (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7IntList_4index(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), ((PyObject *)__pyx_v_val)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":32   *         return ret   *  @@ -4434,7 +3989,8 @@ static PyObject *__pyx_pw_3_sa_7IntList_5index(PyObject *__pyx_v_self, PyObject   *         for i in range(self.len):   */ -static PyObject *__pyx_pf_3_sa_7IntList_4index(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_val) { +static PyObject *__pyx_pf_3_sa_7IntList_2index(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_2index(PyObject *__pyx_v_self, PyObject *__pyx_v_val) {    unsigned int __pyx_v_i;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -4446,7 +4002,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_4index(struct __pyx_obj_3_sa_IntList *__    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("index", 0); +  __Pyx_RefNannySetupContext("index");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":34   *     def index(self, val): @@ -4455,7 +4011,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_4index(struct __pyx_obj_3_sa_IntList *__   *             if self.arr[i] == val:   *                 return i   */ -  __pyx_t_1 = __pyx_v_self->len; +  __pyx_t_1 = ((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len;    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_v_i = __pyx_t_2; @@ -4466,9 +4022,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_4index(struct __pyx_obj_3_sa_IntList *__   *                 return i   *         return IndexError   */ -    __pyx_t_3 = PyInt_FromLong((__pyx_v_self->arr[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyInt_FromLong((((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_val, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_val, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -4487,9 +4044,9 @@ static PyObject *__pyx_pf_3_sa_7IntList_4index(struct __pyx_obj_3_sa_IntList *__        __pyx_r = __pyx_t_4;        __pyx_t_4 = 0;        goto __pyx_L0; -      goto __pyx_L5; +      goto __pyx_L7;      } -    __pyx_L5:; +    __pyx_L7:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":37 @@ -4517,39 +4074,60 @@ static PyObject *__pyx_pf_3_sa_7IntList_4index(struct __pyx_obj_3_sa_IntList *__    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_7partition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_7partition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":39 + *         return IndexError + *  + *     def partition(self,start,end):             # <<<<<<<<<<<<<< + *         pivot = self.arr[end] + *         bottom = start-1 + */ + +static PyObject *__pyx_pf_3_sa_7IntList_3partition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_3partition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_start = 0;    PyObject *__pyx_v_end = 0; -  PyObject *__pyx_r = 0; +  PyObject *__pyx_v_pivot = NULL; +  PyObject *__pyx_v_bottom = NULL; +  PyObject *__pyx_v_top = NULL; +  long __pyx_v_done; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("partition (wrapper)", 0); +  Py_ssize_t __pyx_t_1; +  PyObject *__pyx_t_2 = NULL; +  int __pyx_t_3; +  PyObject *__pyx_t_4 = NULL; +  Py_ssize_t __pyx_t_5; +  int __pyx_t_6; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__start,&__pyx_n_s__end,0}; +  __Pyx_RefNannySetupContext("partition");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__start,&__pyx_n_s__end,0};      PyObject* values[2] = {0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__start)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__start); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__end)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__end); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("partition", 1, 2, 2, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "partition") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "partition") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {        goto __pyx_L5_argtuple_error; @@ -4568,36 +4146,6 @@ static PyObject *__pyx_pw_3_sa_7IntList_7partition(PyObject *__pyx_v_self, PyObj    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_7IntList_6partition(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), __pyx_v_start, __pyx_v_end); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":39 - *         return IndexError - *  - *     def partition(self,start,end):             # <<<<<<<<<<<<<< - *         pivot = self.arr[end] - *         bottom = start-1 - */ - -static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_end) { -  PyObject *__pyx_v_pivot = NULL; -  PyObject *__pyx_v_bottom = NULL; -  PyObject *__pyx_v_top = NULL; -  long __pyx_v_done; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  Py_ssize_t __pyx_t_1; -  PyObject *__pyx_t_2 = NULL; -  int __pyx_t_3; -  PyObject *__pyx_t_4 = NULL; -  Py_ssize_t __pyx_t_5; -  int __pyx_t_6; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("partition", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":40   *  @@ -4607,7 +4155,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   *         top = end   */    __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(__pyx_v_end); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong((__pyx_v_self->arr[__pyx_t_1])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_t_1])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_v_pivot = __pyx_t_2;    __pyx_t_2 = 0; @@ -4685,7 +4233,8 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   *                     done = 1   *                     break   */ -      __pyx_t_2 = PyObject_RichCompare(__pyx_v_bottom, __pyx_v_top, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyObject_RichCompare(__pyx_v_bottom, __pyx_v_top, Py_EQ); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_2);        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        if (__pyx_t_3) { @@ -4706,10 +4255,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   *                 if self.arr[bottom] > pivot:   *                     self.arr[top] = self.arr[bottom]   */ -        goto __pyx_L6_break; -        goto __pyx_L7; +        goto __pyx_L9_break; +        goto __pyx_L10;        } -      __pyx_L7:; +      __pyx_L10:;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":50   *                     done = 1 @@ -4719,9 +4268,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   *                     break   */        __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(__pyx_v_bottom); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_2 = PyInt_FromLong((__pyx_v_self->arr[__pyx_t_1])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_t_1])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_v_pivot, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_v_pivot, Py_GT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_4);        __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[2]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -4736,7 +4286,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   */          __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(__pyx_v_bottom); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __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]); +        (((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_t_5]) = (((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_t_1]);          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":52   *                 if self.arr[bottom] > pivot: @@ -4745,12 +4295,12 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   *             while not done:   *                 top -= 1   */ -        goto __pyx_L6_break; -        goto __pyx_L8; +        goto __pyx_L9_break; +        goto __pyx_L11;        } -      __pyx_L8:; +      __pyx_L11:;      } -    __pyx_L6_break:; +    __pyx_L9_break:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":53   *                     self.arr[top] = self.arr[bottom] @@ -4783,7 +4333,8 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   *                     done = 1   *                     break   */ -      __pyx_t_4 = PyObject_RichCompare(__pyx_v_top, __pyx_v_bottom, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyObject_RichCompare(__pyx_v_top, __pyx_v_bottom, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_4);        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        if (__pyx_t_3) { @@ -4804,10 +4355,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   *                 if self.arr[top] < pivot:   *                     self.arr[bottom] = self.arr[top]   */ -        goto __pyx_L10_break; -        goto __pyx_L11; +        goto __pyx_L13_break; +        goto __pyx_L14;        } -      __pyx_L11:; +      __pyx_L14:;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":58   *                     done = 1 @@ -4817,9 +4368,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   *                     break   */        __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 = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_4 = PyInt_FromLong((__pyx_v_self->arr[__pyx_t_1])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyInt_FromLong((((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_t_1])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_v_pivot, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_v_pivot, Py_LT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_2);        __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[2]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -4834,7 +4386,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   */          __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 = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __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]); +        (((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_t_5]) = (((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_t_1]);          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":60   *                 if self.arr[top] < pivot: @@ -4843,12 +4395,12 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   *         self.arr[top] = pivot   *         return top   */ -        goto __pyx_L10_break; -        goto __pyx_L12; +        goto __pyx_L13_break; +        goto __pyx_L15;        } -      __pyx_L12:; +      __pyx_L15:;      } -    __pyx_L10_break:; +    __pyx_L13_break:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":61 @@ -4860,7 +4412,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList   */    __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_pivot); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __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; +  (((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_t_1]) = __pyx_t_6;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":62   *                     break @@ -4890,39 +4442,55 @@ static PyObject *__pyx_pf_3_sa_7IntList_6partition(struct __pyx_obj_3_sa_IntList    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_9_doquicksort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_9_doquicksort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":64 + *         return top + *  + *     def _doquicksort(self,start,end):             # <<<<<<<<<<<<<< + *         if start < end: + *             split = self.partition(start,end) + */ + +static PyObject *__pyx_pf_3_sa_7IntList_4_doquicksort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_4_doquicksort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_start = 0;    PyObject *__pyx_v_end = 0; -  PyObject *__pyx_r = 0; +  PyObject *__pyx_v_split = NULL; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("_doquicksort (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  int __pyx_t_2; +  PyObject *__pyx_t_3 = NULL; +  PyObject *__pyx_t_4 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__start,&__pyx_n_s__end,0}; +  __Pyx_RefNannySetupContext("_doquicksort");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__start,&__pyx_n_s__end,0};      PyObject* values[2] = {0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__start)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__start); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__end)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__end); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("_doquicksort", 1, 2, 2, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_doquicksort") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_doquicksort") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {        goto __pyx_L5_argtuple_error; @@ -4941,31 +4509,6 @@ static PyObject *__pyx_pw_3_sa_7IntList_9_doquicksort(PyObject *__pyx_v_self, Py    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_7IntList_8_doquicksort(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), __pyx_v_start, __pyx_v_end); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":64 - *         return top - *  - *     def _doquicksort(self,start,end):             # <<<<<<<<<<<<<< - *         if start < end: - *             split = self.partition(start,end) - */ - -static PyObject *__pyx_pf_3_sa_7IntList_8_doquicksort(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_end) { -  PyObject *__pyx_v_split = NULL; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  int __pyx_t_2; -  PyObject *__pyx_t_3 = NULL; -  PyObject *__pyx_t_4 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("_doquicksort", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":65   *  @@ -4974,7 +4517,8 @@ static PyObject *__pyx_pf_3_sa_7IntList_8_doquicksort(struct __pyx_obj_3_sa_IntL   *             split = self.partition(start,end)   *             self._doquicksort(start,split-1)   */ -  __pyx_t_1 = PyObject_RichCompare(__pyx_v_start, __pyx_v_end, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_RichCompare(__pyx_v_start, __pyx_v_end, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 65; __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[2]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_2) { @@ -4986,10 +4530,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_8_doquicksort(struct __pyx_obj_3_sa_IntL   *             self._doquicksort(start,split-1)   *             self._doquicksort(split+1,end)   */ -    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__partition); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__partition); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __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[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      __Pyx_INCREF(__pyx_v_start);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_start);      __Pyx_GIVEREF(__pyx_v_start); @@ -5010,12 +4554,12 @@ static PyObject *__pyx_pf_3_sa_7IntList_8_doquicksort(struct __pyx_obj_3_sa_IntL   *             self._doquicksort(split+1,end)   *         else:   */ -    __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___doquicksort); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___doquicksort); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __pyx_t_3 = PyNumber_Subtract(__pyx_v_split, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_1); +    __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __Pyx_INCREF(__pyx_v_start);      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_start);      __Pyx_GIVEREF(__pyx_v_start); @@ -5035,12 +4579,12 @@ static PyObject *__pyx_pf_3_sa_7IntList_8_doquicksort(struct __pyx_obj_3_sa_IntL   *         else:   *             return   */ -    __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___doquicksort); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___doquicksort); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_1 = PyNumber_Add(__pyx_v_split, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 68; __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[2]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);      __Pyx_GIVEREF(__pyx_t_1);      __Pyx_INCREF(__pyx_v_end); @@ -5052,7 +4596,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_8_doquicksort(struct __pyx_obj_3_sa_IntL      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    }    /*else*/ { @@ -5067,7 +4611,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_8_doquicksort(struct __pyx_obj_3_sa_IntL      __pyx_r = Py_None; __Pyx_INCREF(Py_None);      goto __pyx_L0;    } -  __pyx_L3:; +  __pyx_L6:;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -5084,17 +4628,6 @@ static PyObject *__pyx_pf_3_sa_7IntList_8_doquicksort(struct __pyx_obj_3_sa_IntL    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_11sort(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_11sort(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("sort (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7IntList_10sort(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":72   *             return   *  @@ -5103,7 +4636,8 @@ static PyObject *__pyx_pw_3_sa_7IntList_11sort(PyObject *__pyx_v_self, CYTHON_UN   *    */ -static PyObject *__pyx_pf_3_sa_7IntList_10sort(struct __pyx_obj_3_sa_IntList *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_7IntList_5sort(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_5sort(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -5112,7 +4646,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_10sort(struct __pyx_obj_3_sa_IntList *__    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("sort", 0); +  __Pyx_RefNannySetupContext("sort");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":73   *  @@ -5121,12 +4655,12 @@ static PyObject *__pyx_pf_3_sa_7IntList_10sort(struct __pyx_obj_3_sa_IntList *__   *    *     def reset(self):   */ -  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s___doquicksort); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___doquicksort); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = PyInt_FromLong((__pyx_v_self->len - 1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len - 1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 73; __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[2]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    __Pyx_INCREF(__pyx_int_0);    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0);    __Pyx_GIVEREF(__pyx_int_0); @@ -5153,17 +4687,6 @@ static PyObject *__pyx_pf_3_sa_7IntList_10sort(struct __pyx_obj_3_sa_IntList *__    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_13reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_13reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("reset (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7IntList_12reset(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":75   *         self._doquicksort(0,self.len-1)   *  @@ -5172,10 +4695,11 @@ static PyObject *__pyx_pw_3_sa_7IntList_13reset(PyObject *__pyx_v_self, CYTHON_U   *    */ -static PyObject *__pyx_pf_3_sa_7IntList_12reset(struct __pyx_obj_3_sa_IntList *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_7IntList_6reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_6reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("reset", 0); +  __Pyx_RefNannySetupContext("reset");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":76   *  @@ -5184,7 +4708,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_12reset(struct __pyx_obj_3_sa_IntList *_   *    *     def __dealloc__(self):   */ -  __pyx_v_self->len = 0; +  ((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len = 0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    __Pyx_XGIVEREF(__pyx_r); @@ -5192,15 +4716,6 @@ static PyObject *__pyx_pf_3_sa_7IntList_12reset(struct __pyx_obj_3_sa_IntList *_    return __pyx_r;  } -/* Python wrapper */ -static void __pyx_pw_3_sa_7IntList_15__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_3_sa_7IntList_15__dealloc__(PyObject *__pyx_v_self) { -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); -  __pyx_pf_3_sa_7IntList_14__dealloc__(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":78   *         self.len = 0   *  @@ -5209,9 +4724,10 @@ static void __pyx_pw_3_sa_7IntList_15__dealloc__(PyObject *__pyx_v_self) {   *    */ -static void __pyx_pf_3_sa_7IntList_14__dealloc__(struct __pyx_obj_3_sa_IntList *__pyx_v_self) { +static void __pyx_pf_3_sa_7IntList_7__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pf_3_sa_7IntList_7__dealloc__(PyObject *__pyx_v_self) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__", 0); +  __Pyx_RefNannySetupContext("__dealloc__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":79   *  @@ -5220,22 +4736,11 @@ static void __pyx_pf_3_sa_7IntList_14__dealloc__(struct __pyx_obj_3_sa_IntList *   *    *     def __iter__(self):   */ -  free(__pyx_v_self->arr); - -  __Pyx_RefNannyFinishContext(); -} -static PyObject *__pyx_gb_3_sa_7IntList_18generator(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +  free(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr); -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_17__iter__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_17__iter__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7IntList_16__iter__(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self));    __Pyx_RefNannyFinishContext(); -  return __pyx_r;  } +static PyObject *__pyx_gb_3_sa_7IntList_9generator(struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *__pyx_cur_scope, PyObject *__pyx_sent_value); /* proto */  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":81   *         free(self.arr) @@ -5245,52 +4750,43 @@ static PyObject *__pyx_pw_3_sa_7IntList_17__iter__(PyObject *__pyx_v_self) {   *         for i in range(self.len):   */ -static PyObject *__pyx_pf_3_sa_7IntList_16__iter__(struct __pyx_obj_3_sa_IntList *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_7IntList_8__iter__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_8__iter__(PyObject *__pyx_v_self) {    struct __pyx_obj_3_sa___pyx_scope_struct____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_RefNannySetupContext("__iter__");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *)__pyx_ptype_3_sa___pyx_scope_struct____iter__->tp_new(__pyx_ptype_3_sa___pyx_scope_struct____iter__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL;    }    __Pyx_GOTREF(__pyx_cur_scope); +  __Pyx_INCREF(__pyx_v_self);    __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_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_3_sa_7IntList_18generator, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_DECREF(__pyx_cur_scope); -    __Pyx_RefNannyFinishContext(); -    return (PyObject *) gen; -  } +  __pyx_cur_scope->__pyx_base.resume_label = 0; +  __pyx_cur_scope->__pyx_base.body = (__pyx_generator_body_t) __pyx_gb_3_sa_7IntList_9generator; +  __Pyx_GIVEREF(__pyx_cur_scope); +  __Pyx_RefNannyFinishContext(); +  return (PyObject *) __pyx_cur_scope;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); -  goto __pyx_L0; -  __pyx_L1_error:; -  __Pyx_AddTraceback("_sa.IntList.__iter__", __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_3_sa_7IntList_18generator(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_3_sa_7IntList_9generator(struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *__pyx_cur_scope, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *__pyx_cur_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    int __pyx_t_1;    int __pyx_t_2;    PyObject *__pyx_t_3 = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("None", 0); -  switch (__pyx_generator->resume_label) { +  __Pyx_RefNannySetupContext("None"); +  switch (__pyx_cur_scope->__pyx_base.resume_label) {      case 0: goto __pyx_L3_first_run;      case 1: goto __pyx_L6_resume_from_yield;      default: /* CPython raises the right error here */ @@ -5307,7 +4803,7 @@ static PyObject *__pyx_gb_3_sa_7IntList_18generator(__pyx_GeneratorObject *__pyx   *             yield self.arr[i]   *    */ -  __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->len; +  __pyx_t_1 = ((struct __pyx_obj_3_sa_IntList *)__pyx_cur_scope->__pyx_v_self)->len;    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; @@ -5318,7 +4814,7 @@ static PyObject *__pyx_gb_3_sa_7IntList_18generator(__pyx_GeneratorObject *__pyx   *    *     def __getitem__(self, index):   */ -    __pyx_t_3 = PyInt_FromLong((__pyx_cur_scope->__pyx_v_self->arr[__pyx_cur_scope->__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyInt_FromLong((((struct __pyx_obj_3_sa_IntList *)__pyx_cur_scope->__pyx_v_self)->arr[__pyx_cur_scope->__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_r = __pyx_t_3;      __pyx_t_3 = 0; @@ -5327,37 +4823,25 @@ static PyObject *__pyx_gb_3_sa_7IntList_18generator(__pyx_GeneratorObject *__pyx      __Pyx_XGIVEREF(__pyx_r);      __Pyx_RefNannyFinishContext();      /* return from generator, yielding value */ -    __pyx_generator->resume_label = 1; +    __pyx_cur_scope->__pyx_base.resume_label = 1;      return __pyx_r;      __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 = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  PyErr_SetNone(PyExc_StopIteration); +  PyErr_SetNone(PyExc_StopIteration); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    goto __pyx_L0;    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_3);    __Pyx_AddTraceback("__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_L0:;    __Pyx_XDECREF(__pyx_r); -  __pyx_generator->resume_label = -1; -  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __pyx_cur_scope->__pyx_base.resume_label = -1;    __Pyx_RefNannyFinishContext();    return NULL;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_20__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_20__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7IntList_19__getitem__(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), ((PyObject *)__pyx_v_index)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":86   *             yield self.arr[i]   *  @@ -5366,7 +4850,8 @@ static PyObject *__pyx_pw_3_sa_7IntList_20__getitem__(PyObject *__pyx_v_self, Py   *         if isinstance(index, int):   */ -static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_index) { +static PyObject *__pyx_pf_3_sa_7IntList_10__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_10__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) {    int __pyx_v_i;    int __pyx_v_j;    int __pyx_v_k; @@ -5386,7 +4871,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__getitem__", 0); +  __Pyx_RefNannySetupContext("__getitem__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":88   *     def __getitem__(self, index): @@ -5428,10 +4913,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL   *             if j<0 or j>=self.len:   *                 raise IndexError("Requested index %d of %d-length IntList" % (index, self.len))   */ -      __pyx_v_j = (__pyx_v_self->len + __pyx_v_j); -      goto __pyx_L4; +      __pyx_v_j = (((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len + __pyx_v_j); +      goto __pyx_L6;      } -    __pyx_L4:; +    __pyx_L6:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":92   *             if j < 0: @@ -5442,7 +4927,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL   */      __pyx_t_2 = (__pyx_v_j < 0);      if (!__pyx_t_2) { -      __pyx_t_4 = (__pyx_v_j >= __pyx_v_self->len); +      __pyx_t_4 = (__pyx_v_j >= ((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len);        __pyx_t_5 = __pyx_t_4;      } else {        __pyx_t_5 = __pyx_t_2; @@ -5456,10 +4941,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL   *             return self.arr[j]   *         elif isinstance(index, slice):   */ -      __pyx_t_1 = PyInt_FromLong(__pyx_v_self->len); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_6); +      __Pyx_GOTREF(((PyObject *)__pyx_t_6));        __Pyx_INCREF(__pyx_v_index);        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_index);        __Pyx_GIVEREF(__pyx_v_index); @@ -5470,7 +4955,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL        __Pyx_GOTREF(((PyObject *)__pyx_t_1));        __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_6); +      __Pyx_GOTREF(((PyObject *)__pyx_t_6));        PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_1));        __Pyx_GIVEREF(((PyObject *)__pyx_t_1));        __pyx_t_1 = 0; @@ -5480,9 +4965,9 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL        __Pyx_Raise(__pyx_t_1, 0, 0, 0);        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      goto __pyx_L5; +      goto __pyx_L7;      } -    __pyx_L5:; +    __pyx_L7:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":94   *             if j<0 or j>=self.len: @@ -5492,12 +4977,12 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL   *             i = index.start   */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_1 = PyInt_FromLong((__pyx_v_self->arr[__pyx_v_j])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyInt_FromLong((((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_v_j])); 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_r = __pyx_t_1;      __pyx_t_1 = 0;      goto __pyx_L0; -    goto __pyx_L3; +    goto __pyx_L5;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":95 @@ -5556,10 +5041,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL   *             if j < 0:   *                 j = self.len + j   */ -      __pyx_v_i = (__pyx_v_self->len + __pyx_v_i); -      goto __pyx_L6; +      __pyx_v_i = (((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len + __pyx_v_i); +      goto __pyx_L8;      } -    __pyx_L6:; +    __pyx_L8:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":100   *             if i < 0: @@ -5578,10 +5063,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL   *             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))   */ -      __pyx_v_j = (__pyx_v_self->len + __pyx_v_j); -      goto __pyx_L7; +      __pyx_v_j = (((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len + __pyx_v_j); +      goto __pyx_L9;      } -    __pyx_L7:; +    __pyx_L9:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":102   *             if j < 0: @@ -5592,11 +5077,11 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL   */      __pyx_t_5 = (__pyx_v_i < 0);      if (!__pyx_t_5) { -      __pyx_t_2 = (__pyx_v_i >= __pyx_v_self->len); +      __pyx_t_2 = (__pyx_v_i >= ((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len);        if (!__pyx_t_2) {          __pyx_t_4 = (__pyx_v_j < 0);          if (!__pyx_t_4) { -          __pyx_t_7 = (__pyx_v_j > __pyx_v_self->len); +          __pyx_t_7 = (__pyx_v_j > ((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len);            __pyx_t_8 = __pyx_t_7;          } else {            __pyx_t_8 = __pyx_t_4; @@ -5622,10 +5107,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL        __Pyx_GOTREF(__pyx_t_1);        __pyx_t_6 = PyObject_GetAttr(__pyx_v_index, __pyx_n_s__stop); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_9 = PyInt_FromLong(__pyx_v_self->len); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_9 = PyInt_FromLong(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_9);        __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_10); +      __Pyx_GOTREF(((PyObject *)__pyx_t_10));        PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1);        __Pyx_GIVEREF(__pyx_t_1);        PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_6); @@ -5639,7 +5124,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL        __Pyx_GOTREF(((PyObject *)__pyx_t_9));        __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;        __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_10); +      __Pyx_GOTREF(((PyObject *)__pyx_t_10));        PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_t_9));        __Pyx_GIVEREF(((PyObject *)__pyx_t_9));        __pyx_t_9 = 0; @@ -5649,9 +5134,9 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL        __Pyx_Raise(__pyx_t_9, 0, 0, 0);        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      goto __pyx_L8; +      goto __pyx_L10;      } -    __pyx_L8:; +    __pyx_L10:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":104   *             if i < 0 or i >= self.len or j < 0 or j > self.len: @@ -5680,10 +5165,10 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL   *             return result   *         else:   */ -      __pyx_t_9 = PyInt_FromLong((__pyx_v_self->arr[__pyx_v_k])); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_9 = PyInt_FromLong((((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->arr[__pyx_v_k])); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_9);        __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_10); +      __Pyx_GOTREF(((PyObject *)__pyx_t_10));        PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9);        __Pyx_GIVEREF(__pyx_t_9);        __pyx_t_9 = 0; @@ -5706,7 +5191,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL      __Pyx_INCREF(((PyObject *)__pyx_v_result));      __pyx_r = ((PyObject *)__pyx_v_result);      goto __pyx_L0; -    goto __pyx_L3; +    goto __pyx_L5;    }    /*else*/ { @@ -5720,7 +5205,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL      __pyx_t_9 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_9), ((PyObject *)Py_TYPE(__pyx_v_index))); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_9));      __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_10); +    __Pyx_GOTREF(((PyObject *)__pyx_t_10));      PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_t_9));      __Pyx_GIVEREF(((PyObject *)__pyx_t_9));      __pyx_t_9 = 0; @@ -5731,7 +5216,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_19__getitem__(struct __pyx_obj_3_sa_IntL      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  __pyx_L3:; +  __pyx_L5:;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -5769,7 +5254,7 @@ static void __pyx_f_3_sa_7IntList_set(struct __pyx_obj_3_sa_IntList *__pyx_v_sel    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("set", 0); +  __Pyx_RefNannySetupContext("set");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":112   *  @@ -5830,7 +5315,7 @@ static void __pyx_f_3_sa_7IntList_set(struct __pyx_obj_3_sa_IntList *__pyx_v_sel      __pyx_t_5 = PyInt_FromLong(__pyx_v_self->len); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 116; __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 = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_6); +    __Pyx_GOTREF(((PyObject *)__pyx_t_6));      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);      __Pyx_GIVEREF(__pyx_t_4);      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); @@ -5841,7 +5326,7 @@ static void __pyx_f_3_sa_7IntList_set(struct __pyx_obj_3_sa_IntList *__pyx_v_sel      __Pyx_GOTREF(((PyObject *)__pyx_t_5));      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_6); +    __Pyx_GOTREF(((PyObject *)__pyx_t_6));      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_5));      __Pyx_GIVEREF(((PyObject *)__pyx_t_5));      __pyx_t_5 = 0; @@ -5874,17 +5359,6 @@ static void __pyx_f_3_sa_7IntList_set(struct __pyx_obj_3_sa_IntList *__pyx_v_sel    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static int __pyx_pw_3_sa_7IntList_22__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val); /*proto*/ -static int __pyx_pw_3_sa_7IntList_22__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7IntList_21__setitem__(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), ((PyObject *)__pyx_v_i), ((PyObject *)__pyx_v_val)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":119   *         self.arr[j] = val   *  @@ -5893,7 +5367,8 @@ static int __pyx_pw_3_sa_7IntList_22__setitem__(PyObject *__pyx_v_self, PyObject   *    */ -static int __pyx_pf_3_sa_7IntList_21__setitem__(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val) { +static int __pyx_pf_3_sa_7IntList_11__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val); /*proto*/ +static int __pyx_pf_3_sa_7IntList_11__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_val) {    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -5901,7 +5376,7 @@ static int __pyx_pf_3_sa_7IntList_21__setitem__(struct __pyx_obj_3_sa_IntList *_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__setitem__", 0); +  __Pyx_RefNannySetupContext("__setitem__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":120   *  @@ -5912,7 +5387,7 @@ static int __pyx_pf_3_sa_7IntList_21__setitem__(struct __pyx_obj_3_sa_IntList *_   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_t_2 = __Pyx_PyInt_AsInt(__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_3_sa_IntList *)__pyx_v_self->__pyx_vtab)->set(__pyx_v_self, __pyx_t_1, __pyx_t_2); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->__pyx_vtab)->set(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), __pyx_t_1, __pyx_t_2);    __pyx_r = 0;    goto __pyx_L0; @@ -5924,17 +5399,6 @@ static int __pyx_pf_3_sa_7IntList_21__setitem__(struct __pyx_obj_3_sa_IntList *_    return __pyx_r;  } -/* Python wrapper */ -static Py_ssize_t __pyx_pw_3_sa_7IntList_24__len__(PyObject *__pyx_v_self); /*proto*/ -static Py_ssize_t __pyx_pw_3_sa_7IntList_24__len__(PyObject *__pyx_v_self) { -  Py_ssize_t __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7IntList_23__len__(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":122   *         self.set(i, val)   *  @@ -5943,10 +5407,11 @@ static Py_ssize_t __pyx_pw_3_sa_7IntList_24__len__(PyObject *__pyx_v_self) {   *    */ -static Py_ssize_t __pyx_pf_3_sa_7IntList_23__len__(struct __pyx_obj_3_sa_IntList *__pyx_v_self) { +static Py_ssize_t __pyx_pf_3_sa_7IntList_12__len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_pf_3_sa_7IntList_12__len__(PyObject *__pyx_v_self) {    Py_ssize_t __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__len__", 0); +  __Pyx_RefNannySetupContext("__len__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":123   *  @@ -5955,7 +5420,7 @@ static Py_ssize_t __pyx_pf_3_sa_7IntList_23__len__(struct __pyx_obj_3_sa_IntList   *    *     def get_size(self):   */ -  __pyx_r = __pyx_v_self->len; +  __pyx_r = ((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->len;    goto __pyx_L0;    __pyx_r = 0; @@ -5964,17 +5429,6 @@ static Py_ssize_t __pyx_pf_3_sa_7IntList_23__len__(struct __pyx_obj_3_sa_IntList    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_26get_size(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_26get_size(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_size (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7IntList_25get_size(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":125   *         return self.len   *  @@ -5983,14 +5437,15 @@ static PyObject *__pyx_pw_3_sa_7IntList_26get_size(PyObject *__pyx_v_self, CYTHO   *    */ -static PyObject *__pyx_pf_3_sa_7IntList_25get_size(struct __pyx_obj_3_sa_IntList *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_7IntList_13get_size(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_13get_size(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_size", 0); +  __Pyx_RefNannySetupContext("get_size");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":126   *  @@ -6000,7 +5455,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_25get_size(struct __pyx_obj_3_sa_IntList   *     def append(self, int val):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -6018,13 +5473,23 @@ static PyObject *__pyx_pf_3_sa_7IntList_25get_size(struct __pyx_obj_3_sa_IntList    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_28append(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_28append(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":128 + *         return self.size + *  + *     def append(self, int val):             # <<<<<<<<<<<<<< + *         self._append(val) + *  + */ + +static PyObject *__pyx_pf_3_sa_7IntList_14append(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_14append(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {    int __pyx_v_val; -  PyObject *__pyx_r = 0; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("append (wrapper)", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("append");    assert(__pyx_arg_val); {      __pyx_v_val = __Pyx_PyInt_AsInt(__pyx_arg_val); if (unlikely((__pyx_v_val == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    } @@ -6034,23 +5499,6 @@ static PyObject *__pyx_pw_3_sa_7IntList_28append(PyObject *__pyx_v_self, PyObjec    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_7IntList_27append(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), ((int)__pyx_v_val)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":128 - *         return self.size - *  - *     def append(self, int val):             # <<<<<<<<<<<<<< - *         self._append(val) - *  - */ - -static PyObject *__pyx_pf_3_sa_7IntList_27append(struct __pyx_obj_3_sa_IntList *__pyx_v_self, int __pyx_v_val) { -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("append", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":129   *  @@ -6059,7 +5507,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_27append(struct __pyx_obj_3_sa_IntList *   *    *     cdef void _append(self, int val):   */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->__pyx_vtab)->_append(__pyx_v_self, __pyx_v_val); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->__pyx_vtab)->_append(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), __pyx_v_val);    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    __Pyx_XGIVEREF(__pyx_r); @@ -6078,7 +5526,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_27append(struct __pyx_obj_3_sa_IntList *  static void __pyx_f_3_sa_7IntList__append(struct __pyx_obj_3_sa_IntList *__pyx_v_self, int __pyx_v_val) {    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("_append", 0); +  __Pyx_RefNannySetupContext("_append");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":132   *  @@ -6132,17 +5580,6 @@ static void __pyx_f_3_sa_7IntList__append(struct __pyx_obj_3_sa_IntList *__pyx_v    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_30extend(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_30extend(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("extend (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7IntList_29extend(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), ((PyObject *)__pyx_v_other)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":138   *         self.len = self.len + 1   *  @@ -6151,14 +5588,15 @@ static PyObject *__pyx_pw_3_sa_7IntList_30extend(PyObject *__pyx_v_self, PyObjec   *    */ -static PyObject *__pyx_pf_3_sa_7IntList_29extend(struct __pyx_obj_3_sa_IntList *__pyx_v_self, PyObject *__pyx_v_other) { +static PyObject *__pyx_pf_3_sa_7IntList_15extend(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_15extend(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("extend", 0); +  __Pyx_RefNannySetupContext("extend");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":139   *  @@ -6170,7 +5608,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_29extend(struct __pyx_obj_3_sa_IntList *    if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_3_sa_IntList))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_t_1 = __pyx_v_other;    __Pyx_INCREF(__pyx_t_1); -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->__pyx_vtab)->_extend(__pyx_v_self, ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1)); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->__pyx_vtab)->_extend(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1));    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -6195,7 +5633,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_29extend(struct __pyx_obj_3_sa_IntList *  static void __pyx_f_3_sa_7IntList__extend(struct __pyx_obj_3_sa_IntList *__pyx_v_self, struct __pyx_obj_3_sa_IntList *__pyx_v_other) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("_extend", 0); +  __Pyx_RefNannySetupContext("_extend");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":142   *  @@ -6220,7 +5658,7 @@ static void __pyx_f_3_sa_7IntList__extend(struct __pyx_obj_3_sa_IntList *__pyx_v  static void __pyx_f_3_sa_7IntList__extend_arr(struct __pyx_obj_3_sa_IntList *__pyx_v_self, int *__pyx_v_other, int __pyx_v_other_len) {    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("_extend_arr", 0); +  __Pyx_RefNannySetupContext("_extend_arr");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":145   *  @@ -6284,7 +5722,7 @@ static void __pyx_f_3_sa_7IntList__extend_arr(struct __pyx_obj_3_sa_IntList *__p  static void __pyx_f_3_sa_7IntList__clear(struct __pyx_obj_3_sa_IntList *__pyx_v_self) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("_clear", 0); +  __Pyx_RefNannySetupContext("_clear");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":152   *  @@ -6335,7 +5773,7 @@ static void __pyx_f_3_sa_7IntList__clear(struct __pyx_obj_3_sa_IntList *__pyx_v_  static void __pyx_f_3_sa_7IntList_write_handle(struct __pyx_obj_3_sa_IntList *__pyx_v_self, FILE *__pyx_v_f) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_handle", 0); +  __Pyx_RefNannySetupContext("write_handle");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":158   *  @@ -6358,27 +5796,6 @@ static void __pyx_f_3_sa_7IntList_write_handle(struct __pyx_obj_3_sa_IntList *__    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_32write(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_32write(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.IntList.write", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_7IntList_31write(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":161   *         fwrite(self.arr, sizeof(int), self.len, f)   *  @@ -6387,11 +5804,25 @@ static PyObject *__pyx_pw_3_sa_7IntList_32write(PyObject *__pyx_v_self, PyObject   *         f = fopen(filename, "w")   */ -static PyObject *__pyx_pf_3_sa_7IntList_31write(struct __pyx_obj_3_sa_IntList *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_7IntList_16write(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_16write(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("write"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.IntList.write", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":163   *     def write(self, char* filename): @@ -6409,7 +5840,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_31write(struct __pyx_obj_3_sa_IntList *_   *         fclose(f)   *    */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->__pyx_vtab)->write_handle(__pyx_v_self, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":165   *         f = fopen(filename, "w") @@ -6436,7 +5867,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_31write(struct __pyx_obj_3_sa_IntList *_  static void __pyx_f_3_sa_7IntList_read_handle(struct __pyx_obj_3_sa_IntList *__pyx_v_self, FILE *__pyx_v_f) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_handle", 0); +  __Pyx_RefNannySetupContext("read_handle");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":168   *  @@ -6486,27 +5917,6 @@ static void __pyx_f_3_sa_7IntList_read_handle(struct __pyx_obj_3_sa_IntList *__p    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7IntList_34read(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_7IntList_34read(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.IntList.read", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_7IntList_33read(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":174   *         fread(self.arr, sizeof(int), self.len, f)   *  @@ -6515,11 +5925,25 @@ static PyObject *__pyx_pw_3_sa_7IntList_34read(PyObject *__pyx_v_self, PyObject   *         f = fopen(filename, "r")   */ -static PyObject *__pyx_pf_3_sa_7IntList_33read(struct __pyx_obj_3_sa_IntList *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_7IntList_17read(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_7IntList_17read(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("read"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.IntList.read", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":176   *     def read(self, char* filename): @@ -6536,7 +5960,7 @@ static PyObject *__pyx_pf_3_sa_7IntList_33read(struct __pyx_obj_3_sa_IntList *__   *         self.read_handle(f)             # <<<<<<<<<<<<<<   *         fclose(f)   */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->__pyx_vtab)->read_handle(__pyx_v_self, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_IntList *)__pyx_v_self)->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_IntList *)__pyx_v_self), __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/int_list.pxi":178   *         f = fopen(filename, "r") @@ -6551,20 +5975,6 @@ static PyObject *__pyx_pf_3_sa_7IntList_33read(struct __pyx_obj_3_sa_IntList *__    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_9StringMap_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_9StringMap_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); -  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { -    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} -  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; -  __pyx_r = __pyx_pf_3_sa_9StringMap___cinit__(((struct __pyx_obj_3_sa_StringMap *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/str_map.pxi":13   *     cdef int index(self, char *s)   *  @@ -6573,10 +5983,14 @@ static int __pyx_pw_3_sa_9StringMap_1__cinit__(PyObject *__pyx_v_self, PyObject   *    */ -static int __pyx_pf_3_sa_9StringMap___cinit__(struct __pyx_obj_3_sa_StringMap *__pyx_v_self) { +static int __pyx_pf_3_sa_9StringMap___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_9StringMap___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__", 0); +  __Pyx_RefNannySetupContext("__cinit__"); +  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { +    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} +  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/str_map.pxi":14   *  @@ -6585,22 +5999,13 @@ static int __pyx_pf_3_sa_9StringMap___cinit__(struct __pyx_obj_3_sa_StringMap *_   *    *     def __dealloc__(self):   */ -  __pyx_v_self->vocab = stringmap_new(); +  ((struct __pyx_obj_3_sa_StringMap *)__pyx_v_self)->vocab = stringmap_new();    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static void __pyx_pw_3_sa_9StringMap_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_3_sa_9StringMap_3__dealloc__(PyObject *__pyx_v_self) { -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); -  __pyx_pf_3_sa_9StringMap_2__dealloc__(((struct __pyx_obj_3_sa_StringMap *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/str_map.pxi":16   *         self.vocab = stringmap_new()   *  @@ -6609,9 +6014,10 @@ static void __pyx_pw_3_sa_9StringMap_3__dealloc__(PyObject *__pyx_v_self) {   *    */ -static void __pyx_pf_3_sa_9StringMap_2__dealloc__(struct __pyx_obj_3_sa_StringMap *__pyx_v_self) { +static void __pyx_pf_3_sa_9StringMap_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pf_3_sa_9StringMap_1__dealloc__(PyObject *__pyx_v_self) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__", 0); +  __Pyx_RefNannySetupContext("__dealloc__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/str_map.pxi":17   *  @@ -6620,7 +6026,7 @@ static void __pyx_pf_3_sa_9StringMap_2__dealloc__(struct __pyx_obj_3_sa_StringMa   *    *     cdef char *word(self, int i):   */ -  stringmap_delete(__pyx_v_self->vocab); +  stringmap_delete(((struct __pyx_obj_3_sa_StringMap *)__pyx_v_self)->vocab);    __Pyx_RefNannyFinishContext();  } @@ -6636,7 +6042,7 @@ static void __pyx_pf_3_sa_9StringMap_2__dealloc__(struct __pyx_obj_3_sa_StringMa  static char *__pyx_f_3_sa_9StringMap_word(struct __pyx_obj_3_sa_StringMap *__pyx_v_self, int __pyx_v_i) {    char *__pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("word", 0); +  __Pyx_RefNannySetupContext("word");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/str_map.pxi":20   *  @@ -6664,7 +6070,7 @@ static char *__pyx_f_3_sa_9StringMap_word(struct __pyx_obj_3_sa_StringMap *__pyx  static int __pyx_f_3_sa_9StringMap_index(struct __pyx_obj_3_sa_StringMap *__pyx_v_self, char *__pyx_v_s) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("index", 0); +  __Pyx_RefNannySetupContext("index");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/str_map.pxi":23   *  @@ -6680,34 +6086,40 @@ static int __pyx_f_3_sa_9StringMap_index(struct __pyx_obj_3_sa_StringMap *__pyx_    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_9DataArray_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_9DataArray_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/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):             # <<<<<<<<<<<<<< + *         self.word2id = {"END_OF_FILE":0, "END_OF_LINE":1} + *         self.id2word = ["END_OF_FILE", "END_OF_LINE"] + */ + +static int __pyx_pf_3_sa_9DataArray___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_9DataArray___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_from_binary = 0;    PyObject *__pyx_v_from_text = 0;    PyObject *__pyx_v_side = 0;    int __pyx_v_use_sent_id;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  int __pyx_t_2; +  PyObject *__pyx_t_3 = NULL; +  PyObject *__pyx_t_4 = NULL; +  long __pyx_t_5; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__from_binary,&__pyx_n_s__from_text,&__pyx_n_s__side,&__pyx_n_s__use_sent_id,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__from_binary,&__pyx_n_s__from_text,&__pyx_n_s__side,&__pyx_n_s__use_sent_id,0};      PyObject* values[4] = {0,0,0,0}; - -    /* "/home/hltcoe/alopez/dev/cdec/python/src/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):             # <<<<<<<<<<<<<< - *         self.word2id = {"END_OF_FILE":0, "END_OF_LINE":1} - *         self.id2word = ["END_OF_FILE", "END_OF_LINE"] - */      values[0] = ((PyObject *)Py_None);      values[1] = ((PyObject *)Py_None);      values[2] = ((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) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); @@ -6716,7 +6128,7 @@ static int __pyx_pw_3_sa_9DataArray_1__cinit__(PyObject *__pyx_v_self, PyObject          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0:          if (kw_args > 0) {            PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__from_binary); @@ -6739,7 +6151,7 @@ static int __pyx_pw_3_sa_9DataArray_1__cinit__(PyObject *__pyx_v_self, PyObject          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -6768,23 +6180,6 @@ static int __pyx_pw_3_sa_9DataArray_1__cinit__(PyObject *__pyx_v_self, PyObject    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9DataArray___cinit__(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), __pyx_v_from_binary, __pyx_v_from_text, __pyx_v_side, __pyx_v_use_sent_id); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_from_binary, PyObject *__pyx_v_from_text, PyObject *__pyx_v_side, int __pyx_v_use_sent_id) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  int __pyx_t_2; -  PyObject *__pyx_t_3 = NULL; -  PyObject *__pyx_t_4 = NULL; -  long __pyx_t_5; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":18   *  @@ -6798,9 +6193,9 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__END_OF_FILE), __pyx_int_0) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__END_OF_LINE), __pyx_int_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); -  __Pyx_GOTREF(__pyx_v_self->word2id); -  __Pyx_DECREF(__pyx_v_self->word2id); -  __pyx_v_self->word2id = ((PyObject *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->word2id); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->word2id); +  ((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->word2id = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":19 @@ -6811,7 +6206,7 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_   *         self.sent_id = IntList(1000,1000)   */    __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_INCREF(((PyObject *)__pyx_n_s__END_OF_FILE));    PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__END_OF_FILE));    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__END_OF_FILE)); @@ -6819,9 +6214,9 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_    PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_n_s__END_OF_LINE));    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__END_OF_LINE));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); -  __Pyx_GOTREF(__pyx_v_self->id2word); -  __Pyx_DECREF(__pyx_v_self->id2word); -  __pyx_v_self->id2word = ((PyObject *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->id2word); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->id2word); +  ((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->id2word = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":20 @@ -6834,9 +6229,9 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_k_tuple_10), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->data); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->data)); -  __pyx_v_self->data = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data)); +  ((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":21 @@ -6849,9 +6244,9 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_k_tuple_11), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->sent_id); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->sent_id)); -  __pyx_v_self->sent_id = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_id); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_id)); +  ((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_id = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":22 @@ -6864,9 +6259,9 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_k_tuple_12), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->sent_index); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->sent_index)); -  __pyx_v_self->sent_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index)); +  ((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":23 @@ -6876,7 +6271,7 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_   *         if from_binary:   *             self.read_binary(from_binary)   */ -  __pyx_v_self->use_sent_id = __pyx_v_use_sent_id; +  ((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->use_sent_id = __pyx_v_use_sent_id;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":24   *         self.sent_index = IntList(1000,1000) @@ -6895,10 +6290,10 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_   *         elif from_text:   *             if side:   */ -    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_binary); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_binary); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 25; __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[3]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      __Pyx_INCREF(__pyx_v_from_binary);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_from_binary);      __Pyx_GIVEREF(__pyx_v_from_binary); @@ -6907,7 +6302,7 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":26 @@ -6937,11 +6332,9 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_   *             else:   *                 self.read_text(from_text)   */ -      __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_bitext); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_bitext); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_3 = PyObject_RichCompare(__pyx_v_side, ((PyObject *)__pyx_n_s__source), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +      __pyx_t_2 = __Pyx_PyString_Equals(__pyx_v_side, ((PyObject *)__pyx_n_s__source), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        if (__pyx_t_2) {          __pyx_t_5 = 0;        } else { @@ -6950,7 +6343,7 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_        __pyx_t_3 = PyInt_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_1); +      __Pyx_GOTREF(((PyObject *)__pyx_t_1));        __Pyx_INCREF(__pyx_v_from_text);        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_from_text);        __Pyx_GIVEREF(__pyx_v_from_text); @@ -6962,7 +6355,7 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      goto __pyx_L4; +      goto __pyx_L7;      }      /*else*/ { @@ -6973,10 +6366,10 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_   *    *     def __len__(self):   */ -      __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_text); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_text); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 30; __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[3]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_1); +      __Pyx_GOTREF(((PyObject *)__pyx_t_1));        __Pyx_INCREF(__pyx_v_from_text);        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_from_text);        __Pyx_GIVEREF(__pyx_v_from_text); @@ -6986,10 +6379,10 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_        __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      } -    __pyx_L4:; -    goto __pyx_L3; +    __pyx_L7:; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    __pyx_r = 0;    goto __pyx_L0; @@ -7004,17 +6397,6 @@ static int __pyx_pf_3_sa_9DataArray___cinit__(struct __pyx_obj_3_sa_DataArray *_    return __pyx_r;  } -/* Python wrapper */ -static Py_ssize_t __pyx_pw_3_sa_9DataArray_3__len__(PyObject *__pyx_v_self); /*proto*/ -static Py_ssize_t __pyx_pw_3_sa_9DataArray_3__len__(PyObject *__pyx_v_self) { -  Py_ssize_t __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9DataArray_2__len__(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":32   *                 self.read_text(from_text)   *  @@ -7023,7 +6405,8 @@ static Py_ssize_t __pyx_pw_3_sa_9DataArray_3__len__(PyObject *__pyx_v_self) {   *    */ -static Py_ssize_t __pyx_pf_3_sa_9DataArray_2__len__(struct __pyx_obj_3_sa_DataArray *__pyx_v_self) { +static Py_ssize_t __pyx_pf_3_sa_9DataArray_1__len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_pf_3_sa_9DataArray_1__len__(PyObject *__pyx_v_self) {    Py_ssize_t __pyx_r;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -7031,16 +6414,16 @@ static Py_ssize_t __pyx_pf_3_sa_9DataArray_2__len__(struct __pyx_obj_3_sa_DataAr    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__len__", 0); +  __Pyx_RefNannySetupContext("__len__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":33   *    *     def __len__(self):   *         return len(self.data)             # <<<<<<<<<<<<<<   *  - *     def get_sentence_id(self, i): + *     def get_data(self):   */ -  __pyx_t_1 = ((PyObject *)__pyx_v_self->data); +  __pyx_t_1 = ((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data);    __Pyx_INCREF(__pyx_t_1);    __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -7058,26 +6441,49 @@ static Py_ssize_t __pyx_pf_3_sa_9DataArray_2__len__(struct __pyx_obj_3_sa_DataAr    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_5get_sentence_id(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_5get_sentence_id(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":35 + *         return len(self.data) + *  + *     def get_data(self):             # <<<<<<<<<<<<<< + *         return self.data + *  + */ + +static PyObject *__pyx_pf_3_sa_9DataArray_2get_data(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_2get_data(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_sentence_id (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9DataArray_4get_sentence_id(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((PyObject *)__pyx_v_i)); +  __Pyx_RefNannySetupContext("get_data"); + +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":36 + *  + *     def get_data(self): + *         return self.data             # <<<<<<<<<<<<<< + *  + *     def get_sentence_id(self, i): + */ +  __Pyx_XDECREF(__pyx_r); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data)); +  __pyx_r = ((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data); +  goto __pyx_L0; + +  __pyx_r = Py_None; __Pyx_INCREF(Py_None); +  __pyx_L0:; +  __Pyx_XGIVEREF(__pyx_r);    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":35 - *         return len(self.data) +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":38 + *         return self.data   *    *     def get_sentence_id(self, i):             # <<<<<<<<<<<<<<   *         return self.sent_id.arr[i]   *    */ -static PyObject *__pyx_pf_3_sa_9DataArray_4get_sentence_id(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_9DataArray_3get_sentence_id(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_3get_sentence_id(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    Py_ssize_t __pyx_t_1; @@ -7085,9 +6491,9 @@ static PyObject *__pyx_pf_3_sa_9DataArray_4get_sentence_id(struct __pyx_obj_3_sa    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_sentence_id", 0); +  __Pyx_RefNannySetupContext("get_sentence_id"); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":36 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":39   *    *     def get_sentence_id(self, i):   *         return self.sent_id.arr[i]             # <<<<<<<<<<<<<< @@ -7095,8 +6501,8 @@ static PyObject *__pyx_pf_3_sa_9DataArray_4get_sentence_id(struct __pyx_obj_3_sa   *     def get_sentence(self, i):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong((__pyx_v_self->sent_id->arr[__pyx_t_1])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_id->arr[__pyx_t_1])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_r = __pyx_t_2;    __pyx_t_2 = 0; @@ -7114,18 +6520,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_4get_sentence_id(struct __pyx_obj_3_sa    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_7get_sentence(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_7get_sentence(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_sentence (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9DataArray_6get_sentence(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":38 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":41   *         return self.sent_id.arr[i]   *    *     def get_sentence(self, i):             # <<<<<<<<<<<<<< @@ -7133,7 +6528,8 @@ static PyObject *__pyx_pw_3_sa_9DataArray_7get_sentence(PyObject *__pyx_v_self,   *         sent = []   */ -static PyObject *__pyx_pf_3_sa_9DataArray_6get_sentence(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_9DataArray_4get_sentence(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_4get_sentence(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    int __pyx_v_start;    int __pyx_v_stop;    PyObject *__pyx_v_sent = NULL; @@ -7147,45 +6543,45 @@ static PyObject *__pyx_pf_3_sa_9DataArray_6get_sentence(struct __pyx_obj_3_sa_Da    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_sentence", 0); +  __Pyx_RefNannySetupContext("get_sentence");    __Pyx_INCREF(__pyx_v_i); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":40 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":43   *     def get_sentence(self, i):   *         cdef int j, start, stop   *         sent = []             # <<<<<<<<<<<<<<   *         start = self.sent_index.arr[i]   *         stop = self.sent_index.arr[i+1]   */ -  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_sent = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":41 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":44   *         cdef int j, start, stop   *         sent = []   *         start = self.sent_index.arr[i]             # <<<<<<<<<<<<<<   *         stop = self.sent_index.arr[i+1]   *         for i from start <= i < stop:   */ -  __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]); +  __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 = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_v_start = (((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index->arr[__pyx_t_2]); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":42 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":45   *         sent = []   *         start = self.sent_index.arr[i]   *         stop = self.sent_index.arr[i+1]             # <<<<<<<<<<<<<<   *         for i from start <= i < stop:   *             sent.append(self.id2word[self.data.arr[i]])   */ -  __pyx_t_1 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_v_stop = (__pyx_v_self->sent_index->arr[__pyx_t_2]); +  __pyx_v_stop = (((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index->arr[__pyx_t_2]); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":43 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":46   *         start = self.sent_index.arr[i]   *         stop = self.sent_index.arr[i+1]   *         for i from start <= i < stop:             # <<<<<<<<<<<<<< @@ -7194,41 +6590,44 @@ static PyObject *__pyx_pf_3_sa_9DataArray_6get_sentence(struct __pyx_obj_3_sa_Da   */    __pyx_t_3 = __pyx_v_stop;    for (__pyx_t_4 = __pyx_v_start; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { -    __pyx_t_1 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_v_i);      __pyx_v_i = __pyx_t_1;      __pyx_t_1 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":44 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":47   *         stop = self.sent_index.arr[i+1]   *         for i from start <= i < stop:   *             sent.append(self.id2word[self.data.arr[i]])             # <<<<<<<<<<<<<<   *         return sent   *    */ -    __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 = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_self->id2word, (__pyx_v_self->data->arr[__pyx_t_2]), sizeof(int), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(((PyObject *)__pyx_v_sent) == Py_None)) { +      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    } +    __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 = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_GetItemInt(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->id2word, (((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data->arr[__pyx_t_2]), sizeof(int), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_5 = PyList_Append(__pyx_v_sent, __pyx_t_1); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyList_Append(__pyx_v_sent, __pyx_t_1); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    __pyx_t_4 = __Pyx_PyInt_AsInt(__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;} +    __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":43 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":46   *         start = self.sent_index.arr[i]   *         stop = self.sent_index.arr[i+1]   *         for i from start <= i < stop:             # <<<<<<<<<<<<<<   *             sent.append(self.id2word[self.data.arr[i]])   *         return sent   */ -  __pyx_t_1 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_v_i);    __pyx_v_i = __pyx_t_1;    __pyx_t_1 = 0; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":45 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":48   *         for i from start <= i < stop:   *             sent.append(self.id2word[self.data.arr[i]])   *         return sent             # <<<<<<<<<<<<<< @@ -7254,18 +6653,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_6get_sentence(struct __pyx_obj_3_sa_Da    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_9get_sentence_position(PyObject *__pyx_v_self, PyObject *__pyx_v_loc); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_9get_sentence_position(PyObject *__pyx_v_self, PyObject *__pyx_v_loc) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_sentence_position (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9DataArray_8get_sentence_position(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((PyObject *)__pyx_v_loc)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":47 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":50   *         return sent   *    *     def get_sentence_position(self, loc):             # <<<<<<<<<<<<<< @@ -7273,7 +6661,8 @@ static PyObject *__pyx_pw_3_sa_9DataArray_9get_sentence_position(PyObject *__pyx   *    */ -static PyObject *__pyx_pf_3_sa_9DataArray_8get_sentence_position(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_loc) { +static PyObject *__pyx_pf_3_sa_9DataArray_5get_sentence_position(PyObject *__pyx_v_self, PyObject *__pyx_v_loc); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_5get_sentence_position(PyObject *__pyx_v_self, PyObject *__pyx_v_loc) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    Py_ssize_t __pyx_t_1; @@ -7282,9 +6671,9 @@ static PyObject *__pyx_pf_3_sa_9DataArray_8get_sentence_position(struct __pyx_ob    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_sentence_position", 0); +  __Pyx_RefNannySetupContext("get_sentence_position"); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":48 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":51   *    *     def get_sentence_position(self, loc):   *         return loc - self.sent_index.arr[self.sent_id.arr[loc]]             # <<<<<<<<<<<<<< @@ -7292,10 +6681,10 @@ static PyObject *__pyx_pf_3_sa_9DataArray_8get_sentence_position(struct __pyx_ob   *     def get_id(self, word):   */    __Pyx_XDECREF(__pyx_r); -  __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 = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong((__pyx_v_self->sent_index->arr[(__pyx_v_self->sent_id->arr[__pyx_t_1])])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __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 = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index->arr[(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_id->arr[__pyx_t_1])])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_3 = PyNumber_Subtract(__pyx_v_loc, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyNumber_Subtract(__pyx_v_loc, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __pyx_r = __pyx_t_3; @@ -7315,18 +6704,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_8get_sentence_position(struct __pyx_ob    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_11get_id(PyObject *__pyx_v_self, PyObject *__pyx_v_word); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_11get_id(PyObject *__pyx_v_self, PyObject *__pyx_v_word) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_id (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9DataArray_10get_id(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((PyObject *)__pyx_v_word)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":50 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":53   *         return loc - self.sent_index.arr[self.sent_id.arr[loc]]   *    *     def get_id(self, word):             # <<<<<<<<<<<<<< @@ -7334,7 +6712,8 @@ static PyObject *__pyx_pw_3_sa_9DataArray_11get_id(PyObject *__pyx_v_self, PyObj   *             self.word2id[word] = len(self.id2word)   */ -static PyObject *__pyx_pf_3_sa_9DataArray_10get_id(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_word) { +static PyObject *__pyx_pf_3_sa_9DataArray_6get_id(PyObject *__pyx_v_self, PyObject *__pyx_v_word); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_6get_id(PyObject *__pyx_v_self, PyObject *__pyx_v_word) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -7344,50 +6723,50 @@ static PyObject *__pyx_pf_3_sa_9DataArray_10get_id(struct __pyx_obj_3_sa_DataArr    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_id", 0); +  __Pyx_RefNannySetupContext("get_id"); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":51 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":54   *    *     def get_id(self, word):   *         if not word in self.word2id:             # <<<<<<<<<<<<<<   *             self.word2id[word] = len(self.id2word)   *             self.id2word.append(word)   */ -  __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_v_word, __pyx_v_self->word2id, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((PySequence_Contains(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->word2id, __pyx_v_word))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_t_2 = (!__pyx_t_1);    if (__pyx_t_2) { -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":52 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":55   *     def get_id(self, word):   *         if not word in self.word2id:   *             self.word2id[word] = len(self.id2word)             # <<<<<<<<<<<<<<   *             self.id2word.append(word)   *         return self.word2id[word]   */ -    __pyx_t_3 = __pyx_v_self->id2word; +    __pyx_t_3 = ((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->id2word;      __Pyx_INCREF(__pyx_t_3); -    __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    if (PyObject_SetItem(__pyx_v_self->word2id, __pyx_v_word, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyObject_SetItem(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->word2id, __pyx_v_word, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":53 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":56   *         if not word in self.word2id:   *             self.word2id[word] = len(self.id2word)   *             self.id2word.append(word)             # <<<<<<<<<<<<<<   *         return self.word2id[word]   *    */ -    __pyx_t_3 = __Pyx_PyObject_Append(__pyx_v_self->id2word, __pyx_v_word); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_PyObject_Append(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->id2word, __pyx_v_word); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    goto __pyx_L3; +    goto __pyx_L5;    } -  __pyx_L3:; +  __pyx_L5:; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":54 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":57   *             self.word2id[word] = len(self.id2word)   *             self.id2word.append(word)   *         return self.word2id[word]             # <<<<<<<<<<<<<< @@ -7395,7 +6774,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_10get_id(struct __pyx_obj_3_sa_DataArr   *     def get_word(self, id):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_3 = PyObject_GetItem(__pyx_v_self->word2id, __pyx_v_word); if (!__pyx_t_3) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyObject_GetItem(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->word2id, __pyx_v_word); if (!__pyx_t_3) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __pyx_r = __pyx_t_3;    __pyx_t_3 = 0; @@ -7413,18 +6792,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_10get_id(struct __pyx_obj_3_sa_DataArr    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_13get_word(PyObject *__pyx_v_self, PyObject *__pyx_v_id); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_13get_word(PyObject *__pyx_v_self, PyObject *__pyx_v_id) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_word (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9DataArray_12get_word(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((PyObject *)__pyx_v_id)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":56 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":59   *         return self.word2id[word]   *    *     def get_word(self, id):             # <<<<<<<<<<<<<< @@ -7432,16 +6800,17 @@ static PyObject *__pyx_pw_3_sa_9DataArray_13get_word(PyObject *__pyx_v_self, PyO   *    */ -static PyObject *__pyx_pf_3_sa_9DataArray_12get_word(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_id) { +static PyObject *__pyx_pf_3_sa_9DataArray_7get_word(PyObject *__pyx_v_self, PyObject *__pyx_v_id); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_7get_word(PyObject *__pyx_v_self, PyObject *__pyx_v_id) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_word", 0); +  __Pyx_RefNannySetupContext("get_word"); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":57 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":60   *    *     def get_word(self, id):   *         return self.id2word[id]             # <<<<<<<<<<<<<< @@ -7449,7 +6818,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_12get_word(struct __pyx_obj_3_sa_DataA   *     def write_text(self, char* filename):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyObject_GetItem(__pyx_v_self->id2word, __pyx_v_id); if (!__pyx_t_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_GetItem(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->id2word, __pyx_v_id); if (!__pyx_t_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -7467,28 +6836,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_12get_word(struct __pyx_obj_3_sa_DataA    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_15write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_15write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_text (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.DataArray.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9DataArray_14write_text(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":59 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":62   *         return self.id2word[id]   *    *     def write_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -7496,7 +6844,9 @@ static PyObject *__pyx_pw_3_sa_9DataArray_15write_text(PyObject *__pyx_v_self, P   *             for w_id in self.data:   */ -static PyObject *__pyx_pf_3_sa_9DataArray_14write_text(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9DataArray_8write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_8write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_v_f = NULL;    PyObject *__pyx_v_w_id = NULL;    PyObject *__pyx_r = NULL; @@ -7507,10 +6857,10 @@ static PyObject *__pyx_pf_3_sa_9DataArray_14write_text(struct __pyx_obj_3_sa_Dat    PyObject *__pyx_t_4 = NULL;    PyObject *__pyx_t_5 = NULL;    PyObject *__pyx_t_6 = NULL; -  PyObject *__pyx_t_7 = NULL; -  Py_ssize_t __pyx_t_8; -  PyObject *(*__pyx_t_9)(PyObject *); -  int __pyx_t_10; +  Py_ssize_t __pyx_t_7; +  PyObject *(*__pyx_t_8)(PyObject *); +  int __pyx_t_9; +  PyObject *__pyx_t_10 = NULL;    PyObject *__pyx_t_11 = NULL;    PyObject *__pyx_t_12 = NULL;    PyObject *__pyx_t_13 = NULL; @@ -7518,9 +6868,18 @@ static PyObject *__pyx_pf_3_sa_9DataArray_14write_text(struct __pyx_obj_3_sa_Dat    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_text", 0); +  __Pyx_RefNannySetupContext("write_text"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.DataArray.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":60 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":63   *    *     def write_text(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -7528,175 +6887,168 @@ static PyObject *__pyx_pf_3_sa_9DataArray_14write_text(struct __pyx_obj_3_sa_Dat   *                 if w_id > 1:   */    /*with:*/ { -    __pyx_t_1 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1)); -    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));      __Pyx_INCREF(((PyObject *)__pyx_n_s__w));      PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_n_s__w));      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__w));      __pyx_t_1 = 0; -    __pyx_t_1 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; -    __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L5_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_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_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L5_error;} +    __Pyx_GOTREF(__pyx_t_1); +    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      /*try:*/ {        { -        __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); +        __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); +        __Pyx_XGOTREF(__pyx_t_4);          __Pyx_XGOTREF(__pyx_t_5);          __Pyx_XGOTREF(__pyx_t_6); -        __Pyx_XGOTREF(__pyx_t_7);          /*try:*/ { -          __Pyx_INCREF(__pyx_t_4); -          __pyx_v_f = __pyx_t_4; -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __pyx_v_f = __pyx_t_1; +          __pyx_t_1 = 0; -          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":61 +          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":64   *     def write_text(self, char* filename):   *         with open(filename, "w") as f:   *             for w_id in self.data:             # <<<<<<<<<<<<<<   *                 if w_id > 1:   *                     f.write("%s " % self.get_word(w_id))   */ -          if (PyList_CheckExact(((PyObject *)__pyx_v_self->data)) || PyTuple_CheckExact(((PyObject *)__pyx_v_self->data))) { -            __pyx_t_4 = ((PyObject *)__pyx_v_self->data); __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0; -            __pyx_t_9 = NULL; +          if (PyList_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data)) || PyTuple_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data))) { +            __pyx_t_1 = ((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data); __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; +            __pyx_t_8 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(((PyObject *)__pyx_v_self->data)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); -            __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; +            __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext;            }            for (;;) { -            if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_4)) { -              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif -            } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_4)) { -              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_1)) { +              if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; +              __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; +            } else if (PyTuple_CheckExact(__pyx_t_1)) { +              if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +              __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++;              } else { -              __pyx_t_1 = __pyx_t_9(__pyx_t_4); -              if (unlikely(!__pyx_t_1)) { +              __pyx_t_2 = __pyx_t_8(__pyx_t_1); +              if (unlikely(!__pyx_t_2)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } -              __Pyx_GOTREF(__pyx_t_1); +              __Pyx_GOTREF(__pyx_t_2);              }              __Pyx_XDECREF(__pyx_v_w_id); -            __pyx_v_w_id = __pyx_t_1; -            __pyx_t_1 = 0; +            __pyx_v_w_id = __pyx_t_2; +            __pyx_t_2 = 0; -            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":62 +            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":65   *         with open(filename, "w") as f:   *             for w_id in self.data:   *                 if w_id > 1:             # <<<<<<<<<<<<<<   *                     f.write("%s " % self.get_word(w_id))   *                 if w_id == 1:   */ -            __pyx_t_1 = PyObject_RichCompare(__pyx_v_w_id, __pyx_int_1, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -            if (__pyx_t_10) { +            __pyx_t_2 = PyObject_RichCompare(__pyx_v_w_id, __pyx_int_1, Py_GT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2); +            __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +            if (__pyx_t_9) { -              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":63 +              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":66   *             for w_id in self.data:   *                 if w_id > 1:   *                     f.write("%s " % self.get_word(w_id))             # <<<<<<<<<<<<<<   *                 if w_id == 1:   *                     f.write("\n")   */ -              __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_1); -              __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__get_word); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_2); -              __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_11); +              __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__get_word); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_10); +              __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(((PyObject *)__pyx_t_11));                __Pyx_INCREF(__pyx_v_w_id);                PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_w_id);                __Pyx_GIVEREF(__pyx_v_w_id); -              __pyx_t_12 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_12 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_12); -              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;                __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; -              __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_13), __pyx_t_12); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_13), __pyx_t_12); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(((PyObject *)__pyx_t_11));                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -              __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_12); +              __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(((PyObject *)__pyx_t_12));                PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_t_11));                __Pyx_GIVEREF(((PyObject *)__pyx_t_11));                __pyx_t_11 = 0; -              __pyx_t_11 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_11 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_11); -              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;                __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -              goto __pyx_L18; +              goto __pyx_L19;              } -            __pyx_L18:; +            __pyx_L19:; -            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":64 +            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":67   *                 if w_id > 1:   *                     f.write("%s " % self.get_word(w_id))   *                 if w_id == 1:             # <<<<<<<<<<<<<<   *                     f.write("\n")   *    */ -            __pyx_t_11 = PyObject_RichCompare(__pyx_v_w_id, __pyx_int_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_11 = PyObject_RichCompare(__pyx_v_w_id, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_11); +            __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -            if (__pyx_t_10) { +            if (__pyx_t_9) { -              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":65 +              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":68   *                     f.write("%s " % self.get_word(w_id))   *                 if w_id == 1:   *                     f.write("\n")             # <<<<<<<<<<<<<<   *    *     def read_text(self, char* filename):   */ -              __pyx_t_11 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_11 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_11); -              __pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_15), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_15), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_12);                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -              goto __pyx_L19; +              goto __pyx_L20;              } -            __pyx_L19:; +            __pyx_L20:;            } -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          } +        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; -        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        goto __pyx_L14_try_end; -        __pyx_L7_error:; +        goto __pyx_L16_try_end; +        __pyx_L9_error:; +        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; -        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; -        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; -        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":60 +        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":63   *    *     def write_text(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -7705,75 +7057,75 @@ static PyObject *__pyx_pf_3_sa_9DataArray_14write_text(struct __pyx_obj_3_sa_Dat   */          /*except:*/ {            __Pyx_AddTraceback("_sa.DataArray.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -          if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_12, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_4); +          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_12, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(__pyx_t_1);            __Pyx_GOTREF(__pyx_t_12);            __Pyx_GOTREF(__pyx_t_11); -          __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_1); -          __Pyx_INCREF(__pyx_t_4); -          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); -          __Pyx_GIVEREF(__pyx_t_4); +          __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_2)); +          __Pyx_INCREF(__pyx_t_1); +          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); +          __Pyx_GIVEREF(__pyx_t_1);            __Pyx_INCREF(__pyx_t_12); -          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_12); +          PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_12);            __Pyx_GIVEREF(__pyx_t_12);            __Pyx_INCREF(__pyx_t_11); -          PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_11); +          PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_11);            __Pyx_GIVEREF(__pyx_t_11); -          __pyx_t_13 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); +          __pyx_t_13 = PyObject_Call(__pyx_t_3, __pyx_t_2, NULL);            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -          if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_13); -          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); +          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_13);            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -          if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __pyx_t_14 = (!__pyx_t_10); +          if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __pyx_t_14 = (!__pyx_t_9);            if (__pyx_t_14) { -            __Pyx_GIVEREF(__pyx_t_4); +            __Pyx_GIVEREF(__pyx_t_1);              __Pyx_GIVEREF(__pyx_t_12);              __Pyx_GIVEREF(__pyx_t_11); -            __Pyx_ErrRestore(__pyx_t_4, __pyx_t_12, __pyx_t_11); -            __pyx_t_4 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0;  -            {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -            goto __pyx_L22; +            __Pyx_ErrRestore(__pyx_t_1, __pyx_t_12, __pyx_t_11); +            __pyx_t_1 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0;  +            {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +            goto __pyx_L23;            } -          __pyx_L22:; -          __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __pyx_L23:; +          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -          goto __pyx_L8_exception_handled; +          goto __pyx_L10_exception_handled;          } -        __pyx_L9_except_error:; +        __pyx_L11_except_error:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);          goto __pyx_L1_error; -        __pyx_L8_exception_handled:; +        __pyx_L10_exception_handled:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); -        __pyx_L14_try_end:; +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); +        __pyx_L16_try_end:;        }      }      /*finally:*/ {        if (__pyx_t_3) { -        __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_16, NULL); +        __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_16, NULL);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_7); -        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); -        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -        if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_6); +        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_6); +        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +        if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }      } -    goto __pyx_L23; -    __pyx_L3_error:; +    goto __pyx_L24; +    __pyx_L5_error:;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      goto __pyx_L1_error; -    __pyx_L23:; +    __pyx_L24:;    }    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -7781,7 +7133,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_14write_text(struct __pyx_obj_3_sa_Dat    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1);    __Pyx_XDECREF(__pyx_t_2); -  __Pyx_XDECREF(__pyx_t_4); +  __Pyx_XDECREF(__pyx_t_10);    __Pyx_XDECREF(__pyx_t_11);    __Pyx_XDECREF(__pyx_t_12);    __Pyx_AddTraceback("_sa.DataArray.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); @@ -7794,28 +7146,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_14write_text(struct __pyx_obj_3_sa_Dat    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_17read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_17read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_text (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.DataArray.read_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9DataArray_16read_text(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":67 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":70   *                     f.write("\n")   *    *     def read_text(self, char* filename):             # <<<<<<<<<<<<<< @@ -7823,7 +7154,9 @@ static PyObject *__pyx_pw_3_sa_9DataArray_17read_text(PyObject *__pyx_v_self, Py   *             self.read_text_data(fp)   */ -static PyObject *__pyx_pf_3_sa_9DataArray_16read_text(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9DataArray_9read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_9read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_v_fp = NULL;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -7841,9 +7174,18 @@ static PyObject *__pyx_pf_3_sa_9DataArray_16read_text(struct __pyx_obj_3_sa_Data    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("read_text", 0); +  __Pyx_RefNannySetupContext("read_text"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.DataArray.read_text", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":68 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":71   *    *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<< @@ -7851,27 +7193,27 @@ static PyObject *__pyx_pf_3_sa_9DataArray_16read_text(struct __pyx_obj_3_sa_Data   *    */    /*with:*/ { -    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__gzip_or_text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__gzip_or_text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_2 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __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 = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(((PyObject *)__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(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __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[3]; __pyx_lineno = 71; __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_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____exit__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____exit__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____enter__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____enter__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L5_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L3_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_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L5_error;} +    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      /*try:*/ {        {          __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); @@ -7879,40 +7221,39 @@ static PyObject *__pyx_pf_3_sa_9DataArray_16read_text(struct __pyx_obj_3_sa_Data          __Pyx_XGOTREF(__pyx_t_6);          __Pyx_XGOTREF(__pyx_t_7);          /*try:*/ { -          __Pyx_INCREF(__pyx_t_1); -          __pyx_v_fp = __pyx_t_1; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __pyx_v_fp = __pyx_t_2; +          __pyx_t_2 = 0; -          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":69 +          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":72   *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as fp:   *             self.read_text_data(fp)             # <<<<<<<<<<<<<<   *    *     def read_bitext(self, char* filename, int side):   */ -          __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_text_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_1); -          __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_text_data); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_2); +          __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_3));            __Pyx_INCREF(__pyx_v_fp); -          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_fp); +          PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_fp);            __Pyx_GIVEREF(__pyx_v_fp); -          __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_3); +          __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_1); +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; -          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;          }          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        goto __pyx_L14_try_end; -        __pyx_L7_error:; -        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +        goto __pyx_L16_try_end; +        __pyx_L9_error:;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; -        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":68 +        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":71   *    *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<< @@ -7921,75 +7262,75 @@ static PyObject *__pyx_pf_3_sa_9DataArray_16read_text(struct __pyx_obj_3_sa_Data   */          /*except:*/ {            __Pyx_AddTraceback("_sa.DataArray.read_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(__pyx_t_1);            __Pyx_GOTREF(__pyx_t_3);            __Pyx_GOTREF(__pyx_t_2); -          __Pyx_GOTREF(__pyx_t_1); -          __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_8); +          __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_8)); +          __Pyx_INCREF(__pyx_t_1); +          PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); +          __Pyx_GIVEREF(__pyx_t_1);            __Pyx_INCREF(__pyx_t_3); -          PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); +          PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_3);            __Pyx_GIVEREF(__pyx_t_3);            __Pyx_INCREF(__pyx_t_2); -          PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2); +          PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_2);            __Pyx_GIVEREF(__pyx_t_2); -          __Pyx_INCREF(__pyx_t_1); -          PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_1); -          __Pyx_GIVEREF(__pyx_t_1);            __pyx_t_10 = PyObject_Call(__pyx_t_4, __pyx_t_8, NULL);            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_10);            __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_10);            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __pyx_t_11 = (!__pyx_t_9);            if (__pyx_t_11) { +            __Pyx_GIVEREF(__pyx_t_1);              __Pyx_GIVEREF(__pyx_t_3);              __Pyx_GIVEREF(__pyx_t_2); -            __Pyx_GIVEREF(__pyx_t_1); -            __Pyx_ErrRestore(__pyx_t_3, __pyx_t_2, __pyx_t_1); -            __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_1 = 0;  -            {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -            goto __pyx_L18; +            __Pyx_ErrRestore(__pyx_t_1, __pyx_t_3, __pyx_t_2); +            __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_2 = 0;  +            {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +            goto __pyx_L19;            } -          __pyx_L18:; +          __pyx_L19:;            __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          goto __pyx_L8_exception_handled; +          goto __pyx_L10_exception_handled;          } -        __pyx_L9_except_error:; +        __pyx_L11_except_error:;          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6);          __Pyx_XGIVEREF(__pyx_t_7);          __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);          goto __pyx_L1_error; -        __pyx_L8_exception_handled:; +        __pyx_L10_exception_handled:;          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6);          __Pyx_XGIVEREF(__pyx_t_7);          __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); -        __pyx_L14_try_end:; +        __pyx_L16_try_end:;        }      }      /*finally:*/ {        if (__pyx_t_4) {          __pyx_t_7 = PyObject_Call(__pyx_t_4, __pyx_k_tuple_17, NULL);          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -        if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_7);          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_7);          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -        if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }      } -    goto __pyx_L19; -    __pyx_L3_error:; +    goto __pyx_L20; +    __pyx_L5_error:;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      goto __pyx_L1_error; -    __pyx_L19:; +    __pyx_L20:;    }    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -8007,65 +7348,9 @@ static PyObject *__pyx_pf_3_sa_9DataArray_16read_text(struct __pyx_obj_3_sa_Data    __Pyx_RefNannyFinishContext();    return __pyx_r;  } +static PyObject *__pyx_gb_3_sa_11read_bitext_1generator6(struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *__pyx_cur_scope, PyObject *__pyx_sent_value); /* proto */ -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_19read_bitext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_19read_bitext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { -  char *__pyx_v_filename; -  int __pyx_v_side; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_bitext (wrapper)", 0); -  { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__filename,&__pyx_n_s__side,0}; -    PyObject* values[2] = {0,0}; -    if (unlikely(__pyx_kwds)) { -      Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { -        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); -        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); -        case  0: break; -        default: goto __pyx_L5_argtuple_error; -      } -      kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { -        case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__filename)) != 0)) kw_args--; -        else goto __pyx_L5_argtuple_error; -        case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__side)) != 0)) kw_args--; -        else { -          __Pyx_RaiseArgtupleInvalid("read_bitext", 1, 2, 2, 1); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -        } -      } -      if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "read_bitext") < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -      } -    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { -      goto __pyx_L5_argtuple_error; -    } else { -      values[0] = PyTuple_GET_ITEM(__pyx_args, 0); -      values[1] = PyTuple_GET_ITEM(__pyx_args, 1); -    } -    __pyx_v_filename = PyBytes_AsString(values[0]); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -    __pyx_v_side = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_side == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("read_bitext", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.DataArray.read_bitext", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9DataArray_18read_bitext(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), __pyx_v_filename, __pyx_v_side); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -static PyObject *__pyx_gb_3_sa_9DataArray_11read_bitext_2generator6(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":73 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":76   *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:   *             data = (line.split(' ||| ')[side] for line in fp)             # <<<<<<<<<<<<<< @@ -8073,45 +7358,37 @@ static PyObject *__pyx_gb_3_sa_9DataArray_11read_bitext_2generator6(__pyx_Genera   *    */ -static PyObject *__pyx_pf_3_sa_9DataArray_11read_bitext_genexpr(PyObject *__pyx_self) { +static PyObject *__pyx_pf_3_sa_11read_bitext_genexpr(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_11read_bitext_genexpr(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {    struct __pyx_obj_3_sa___pyx_scope_struct_2_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_RefNannySetupContext("genexpr");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *)__pyx_ptype_3_sa___pyx_scope_struct_2_genexpr->tp_new(__pyx_ptype_3_sa___pyx_scope_struct_2_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_3_sa___pyx_scope_struct_1_read_bitext *) __pyx_self; +  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_1_read_bitext *)__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_3_sa_9DataArray_11read_bitext_2generator6, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_DECREF(__pyx_cur_scope); -    __Pyx_RefNannyFinishContext(); -    return (PyObject *) gen; -  } +  __pyx_self = __pyx_self; +  __pyx_cur_scope->__pyx_base.resume_label = 0; +  __pyx_cur_scope->__pyx_base.body = (__pyx_generator_body_t) __pyx_gb_3_sa_11read_bitext_1generator6; +  __Pyx_GIVEREF(__pyx_cur_scope); +  __Pyx_RefNannyFinishContext(); +  return (PyObject *) __pyx_cur_scope;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); -  goto __pyx_L0; -  __pyx_L1_error:; -  __Pyx_AddTraceback("_sa.DataArray.read_bitext.genexpr", __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_3_sa_9DataArray_11read_bitext_2generator6(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_3_sa_11read_bitext_1generator6(struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *__pyx_cur_scope, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *__pyx_cur_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    PyObject *__pyx_t_1 = NULL;    Py_ssize_t __pyx_t_2; @@ -8119,8 +7396,8 @@ static PyObject *__pyx_gb_3_sa_9DataArray_11read_bitext_2generator6(__pyx_Genera    PyObject *__pyx_t_4 = NULL;    PyObject *__pyx_t_5 = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("None", 0); -  switch (__pyx_generator->resume_label) { +  __Pyx_RefNannySetupContext("None"); +  switch (__pyx_cur_scope->__pyx_base.resume_label) {      case 0: goto __pyx_L3_first_run;      case 1: goto __pyx_L6_resume_from_yield;      default: /* CPython raises the right error here */ @@ -8128,37 +7405,28 @@ static PyObject *__pyx_gb_3_sa_9DataArray_11read_bitext_2generator6(__pyx_Genera      return NULL;    }    __pyx_L3_first_run:; -  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fp)) { __Pyx_RaiseClosureNameError("fp"); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -  if (PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fp) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fp)) { +  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fp)) { __Pyx_RaiseClosureNameError("fp"); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }if (PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fp) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fp)) {      __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_fp; __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_fp); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_fp); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) { +    if (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[3]; __pyx_lineno = 73; __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[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; +    } else if (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[3]; __pyx_lineno = 73; __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[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;      } 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[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -8169,12 +7437,12 @@ static PyObject *__pyx_gb_3_sa_9DataArray_11read_bitext_2generator6(__pyx_Genera      __Pyx_GIVEREF(__pyx_t_4);      __pyx_cur_scope->__pyx_v_line = __pyx_t_4;      __pyx_t_4 = 0; -    __pyx_t_4 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_line, __pyx_n_s__split); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_line, __pyx_n_s__split); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_19), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_19), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __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_GetItemInt(__pyx_t_5, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_side, sizeof(int), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_5, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_side, sizeof(int), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __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; @@ -8186,7 +7454,7 @@ static PyObject *__pyx_gb_3_sa_9DataArray_11read_bitext_2generator6(__pyx_Genera      __Pyx_XGIVEREF(__pyx_r);      __Pyx_RefNannyFinishContext();      /* return from generator, yielding value */ -    __pyx_generator->resume_label = 1; +    __pyx_cur_scope->__pyx_base.resume_label = 1;      return __pyx_r;      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; @@ -8194,10 +7462,10 @@ static PyObject *__pyx_gb_3_sa_9DataArray_11read_bitext_2generator6(__pyx_Genera      __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[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  PyErr_SetNone(PyExc_StopIteration); +  PyErr_SetNone(PyExc_StopIteration); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    goto __pyx_L0;    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1); @@ -8206,13 +7474,12 @@ static PyObject *__pyx_gb_3_sa_9DataArray_11read_bitext_2generator6(__pyx_Genera    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_L0:;    __Pyx_XDECREF(__pyx_r); -  __pyx_generator->resume_label = -1; -  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __pyx_cur_scope->__pyx_base.resume_label = -1;    __Pyx_RefNannyFinishContext();    return NULL;  } -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":71 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":74   *             self.read_text_data(fp)   *    *     def read_bitext(self, char* filename, int side):             # <<<<<<<<<<<<<< @@ -8220,8 +7487,10 @@ static PyObject *__pyx_gb_3_sa_9DataArray_11read_bitext_2generator6(__pyx_Genera   *             data = (line.split(' ||| ')[side] for line in fp)   */ -static PyObject *__pyx_pf_3_sa_9DataArray_18read_bitext(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename, int __pyx_v_side) { +static PyObject *__pyx_pf_3_sa_9DataArray_10read_bitext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_10read_bitext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    struct __pyx_obj_3_sa___pyx_scope_struct_1_read_bitext *__pyx_cur_scope; +  char *__pyx_v_filename;    PyObject *__pyx_v_data = NULL;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -8239,16 +7508,60 @@ static PyObject *__pyx_pf_3_sa_9DataArray_18read_bitext(struct __pyx_obj_3_sa_Da    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("read_bitext", 0); +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__filename,&__pyx_n_s__side,0}; +  __Pyx_RefNannySetupContext("read_bitext");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_1_read_bitext *)__pyx_ptype_3_sa___pyx_scope_struct_1_read_bitext->tp_new(__pyx_ptype_3_sa___pyx_scope_struct_1_read_bitext, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL;    }    __Pyx_GOTREF(__pyx_cur_scope); -  __pyx_cur_scope->__pyx_v_side = __pyx_v_side; +  { +    PyObject* values[2] = {0,0}; +    if (unlikely(__pyx_kwds)) { +      Py_ssize_t kw_args; +      switch (PyTuple_GET_SIZE(__pyx_args)) { +        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); +        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); +        case  0: break; +        default: goto __pyx_L5_argtuple_error; +      } +      kw_args = PyDict_Size(__pyx_kwds); +      switch (PyTuple_GET_SIZE(__pyx_args)) { +        case  0: +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__filename); +        if (likely(values[0])) kw_args--; +        else goto __pyx_L5_argtuple_error; +        case  1: +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__side); +        if (likely(values[1])) kw_args--; +        else { +          __Pyx_RaiseArgtupleInvalid("read_bitext", 1, 2, 2, 1); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        } +      } +      if (unlikely(kw_args > 0)) { +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "read_bitext") < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      } +    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { +      goto __pyx_L5_argtuple_error; +    } else { +      values[0] = PyTuple_GET_ITEM(__pyx_args, 0); +      values[1] = PyTuple_GET_ITEM(__pyx_args, 1); +    } +    __pyx_v_filename = PyBytes_AsString(values[0]); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_cur_scope->__pyx_v_side = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_cur_scope->__pyx_v_side == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L5_argtuple_error:; +  __Pyx_RaiseArgtupleInvalid("read_bitext", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[3]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.DataArray.read_bitext", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":72 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":75   *    *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<< @@ -8256,27 +7569,27 @@ static PyObject *__pyx_pf_3_sa_9DataArray_18read_bitext(struct __pyx_obj_3_sa_Da   *             self.read_text_data(data)   */    /*with:*/ { -    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__gzip_or_text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__gzip_or_text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_2 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __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 = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(((PyObject *)__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(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __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[3]; __pyx_lineno = 75; __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_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____exit__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____exit__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____enter__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____enter__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L6_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_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_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L6_error;} +    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      /*try:*/ {        {          __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); @@ -8284,53 +7597,52 @@ static PyObject *__pyx_pf_3_sa_9DataArray_18read_bitext(struct __pyx_obj_3_sa_Da          __Pyx_XGOTREF(__pyx_t_6);          __Pyx_XGOTREF(__pyx_t_7);          /*try:*/ { -          __Pyx_INCREF(__pyx_t_1); -          __Pyx_GIVEREF(__pyx_t_1); -          __pyx_cur_scope->__pyx_v_fp = __pyx_t_1; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __Pyx_GIVEREF(__pyx_t_2); +          __pyx_cur_scope->__pyx_v_fp = __pyx_t_2; +          __pyx_t_2 = 0; -          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":73 +          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":76   *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:   *             data = (line.split(' ||| ')[side] for line in fp)             # <<<<<<<<<<<<<<   *             self.read_text_data(data)   *    */ -          __pyx_t_1 = __pyx_pf_3_sa_9DataArray_11read_bitext_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_1); -          __pyx_v_data = __pyx_t_1; -          __pyx_t_1 = 0; +          __pyx_t_2 = __pyx_pf_3_sa_11read_bitext_genexpr(((PyObject*)__pyx_cur_scope), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L10_error;} +          __Pyx_GOTREF(__pyx_t_2); +          __pyx_v_data = __pyx_t_2; +          __pyx_t_2 = 0; -          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":74 +          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":77   *         with gzip_or_text(filename) as fp:   *             data = (line.split(' ||| ')[side] for line in fp)   *             self.read_text_data(data)             # <<<<<<<<<<<<<<   *    *     def read_text_data(self, data):   */ -          __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_text_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_1); -          __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_text_data); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L10_error;}            __Pyx_GOTREF(__pyx_t_2); +          __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L10_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_3));            __Pyx_INCREF(__pyx_v_data); -          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_data); +          PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_data);            __Pyx_GIVEREF(__pyx_v_data); -          __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_3); +          __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L10_error;} +          __Pyx_GOTREF(__pyx_t_1); +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; -          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;          }          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        goto __pyx_L14_try_end; -        __pyx_L7_error:; -        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +        goto __pyx_L17_try_end; +        __pyx_L10_error:;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; -        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":72 +        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":75   *    *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<< @@ -8338,76 +7650,76 @@ static PyObject *__pyx_pf_3_sa_9DataArray_18read_bitext(struct __pyx_obj_3_sa_Da   *             self.read_text_data(data)   */          /*except:*/ { -          __Pyx_AddTraceback("_sa.DataArray.read_bitext", __pyx_clineno, __pyx_lineno, __pyx_filename); -          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          __Pyx_AddTraceback("_sa.read_bitext", __pyx_clineno, __pyx_lineno, __pyx_filename); +          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;} +          __Pyx_GOTREF(__pyx_t_1);            __Pyx_GOTREF(__pyx_t_3);            __Pyx_GOTREF(__pyx_t_2); -          __Pyx_GOTREF(__pyx_t_1); -          __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_8); +          __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_8)); +          __Pyx_INCREF(__pyx_t_1); +          PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); +          __Pyx_GIVEREF(__pyx_t_1);            __Pyx_INCREF(__pyx_t_3); -          PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); +          PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_3);            __Pyx_GIVEREF(__pyx_t_3);            __Pyx_INCREF(__pyx_t_2); -          PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2); +          PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_2);            __Pyx_GIVEREF(__pyx_t_2); -          __Pyx_INCREF(__pyx_t_1); -          PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_1); -          __Pyx_GIVEREF(__pyx_t_1);            __pyx_t_10 = PyObject_Call(__pyx_t_4, __pyx_t_8, NULL);            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;}            __Pyx_GOTREF(__pyx_t_10);            __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_10);            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;}            __pyx_t_11 = (!__pyx_t_9);            if (__pyx_t_11) { +            __Pyx_GIVEREF(__pyx_t_1);              __Pyx_GIVEREF(__pyx_t_3);              __Pyx_GIVEREF(__pyx_t_2); -            __Pyx_GIVEREF(__pyx_t_1); -            __Pyx_ErrRestore(__pyx_t_3, __pyx_t_2, __pyx_t_1); -            __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_1 = 0;  -            {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -            goto __pyx_L18; +            __Pyx_ErrRestore(__pyx_t_1, __pyx_t_3, __pyx_t_2); +            __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_2 = 0;  +            {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;} +            goto __pyx_L20;            } -          __pyx_L18:; +          __pyx_L20:;            __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          goto __pyx_L8_exception_handled; +          goto __pyx_L11_exception_handled;          } -        __pyx_L9_except_error:; +        __pyx_L12_except_error:;          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6);          __Pyx_XGIVEREF(__pyx_t_7);          __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);          goto __pyx_L1_error; -        __pyx_L8_exception_handled:; +        __pyx_L11_exception_handled:;          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6);          __Pyx_XGIVEREF(__pyx_t_7);          __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); -        __pyx_L14_try_end:; +        __pyx_L17_try_end:;        }      }      /*finally:*/ {        if (__pyx_t_4) {          __pyx_t_7 = PyObject_Call(__pyx_t_4, __pyx_k_tuple_20, NULL);          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -        if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_7);          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_7);          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -        if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }      } -    goto __pyx_L19; -    __pyx_L3_error:; +    goto __pyx_L21; +    __pyx_L6_error:;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      goto __pyx_L1_error; -    __pyx_L19:; +    __pyx_L21:;    }    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -8427,18 +7739,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_18read_bitext(struct __pyx_obj_3_sa_Da    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_21read_text_data(PyObject *__pyx_v_self, PyObject *__pyx_v_data); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_21read_text_data(PyObject *__pyx_v_self, PyObject *__pyx_v_data) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_text_data (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9DataArray_20read_text_data(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((PyObject *)__pyx_v_data)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":76 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":79   *             self.read_text_data(data)   *    *     def read_text_data(self, data):             # <<<<<<<<<<<<<< @@ -8446,7 +7747,8 @@ static PyObject *__pyx_pw_3_sa_9DataArray_21read_text_data(PyObject *__pyx_v_sel   *         for line_num, line in enumerate(data):   */ -static PyObject *__pyx_pf_3_sa_9DataArray_20read_text_data(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_data) { +static PyObject *__pyx_pf_3_sa_9DataArray_11read_text_data(PyObject *__pyx_v_self, PyObject *__pyx_v_data); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_11read_text_data(PyObject *__pyx_v_self, PyObject *__pyx_v_data) {    int __pyx_v_word_count;    PyObject *__pyx_v_line_num = NULL;    PyObject *__pyx_v_line = NULL; @@ -8466,9 +7768,9 @@ static PyObject *__pyx_pf_3_sa_9DataArray_20read_text_data(struct __pyx_obj_3_sa    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("read_text_data", 0); +  __Pyx_RefNannySetupContext("read_text_data"); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":77 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":80   *    *     def read_text_data(self, data):   *         cdef int word_count = 0             # <<<<<<<<<<<<<< @@ -8477,7 +7779,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_20read_text_data(struct __pyx_obj_3_sa   */    __pyx_v_word_count = 0; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":78 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":81   *     def read_text_data(self, data):   *         cdef int word_count = 0   *         for line_num, line in enumerate(data):             # <<<<<<<<<<<<<< @@ -8490,31 +7792,23 @@ static PyObject *__pyx_pf_3_sa_9DataArray_20read_text_data(struct __pyx_obj_3_sa      __pyx_t_2 = __pyx_v_data; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;      __pyx_t_4 = NULL;    } else { -    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_2)) { +    if (PyList_CheckExact(__pyx_t_2)) {        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_2)) { +      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; +    } else if (PyTuple_CheckExact(__pyx_t_2)) {        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++;      } else {        __pyx_t_5 = __pyx_t_4(__pyx_t_2);        if (unlikely(!__pyx_t_5)) {          if (PyErr_Occurred()) {            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -8526,68 +7820,60 @@ static PyObject *__pyx_pf_3_sa_9DataArray_20read_text_data(struct __pyx_obj_3_sa      __Pyx_INCREF(__pyx_t_1);      __Pyx_XDECREF(__pyx_v_line_num);      __pyx_v_line_num = __pyx_t_1; -    __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_1);      __pyx_t_1 = __pyx_t_5;      __pyx_t_5 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":79 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":82   *         cdef int word_count = 0   *         for line_num, line in enumerate(data):   *             self.sent_index.append(word_count)             # <<<<<<<<<<<<<<   *             for word in line.split():   *                 self.data.append(self.get_id(word))   */ -    __pyx_t_5 = PyInt_FromLong(__pyx_v_word_count); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyInt_FromLong(__pyx_v_word_count); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_6 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->sent_index), __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index), __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 82; __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; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":80 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":83   *         for line_num, line in enumerate(data):   *             self.sent_index.append(word_count)   *             for word in line.split():             # <<<<<<<<<<<<<<   *                 self.data.append(self.get_id(word))   *                 if self.use_sent_id:   */ -    __pyx_t_6 = PyObject_GetAttr(__pyx_v_line, __pyx_n_s__split); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyObject_GetAttr(__pyx_v_line, __pyx_n_s__split); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {        __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;        __pyx_t_8 = NULL;      } else { -      __pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext;      }      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      for (;;) { -      if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_6)) { +      if (PyList_CheckExact(__pyx_t_6)) {          if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break; -        #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #else -        __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #endif -      } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_6)) { +        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; +      } else if (PyTuple_CheckExact(__pyx_t_6)) {          if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_6)) break; -        #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #else -        __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #endif +        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++;        } else {          __pyx_t_5 = __pyx_t_8(__pyx_t_6);          if (unlikely(!__pyx_t_5)) {            if (PyErr_Occurred()) {              if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -            else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            }            break;          } @@ -8597,53 +7883,53 @@ static PyObject *__pyx_pf_3_sa_9DataArray_20read_text_data(struct __pyx_obj_3_sa        __pyx_v_word = __pyx_t_5;        __pyx_t_5 = 0; -      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":81 +      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":84   *             self.sent_index.append(word_count)   *             for word in line.split():   *                 self.data.append(self.get_id(word))             # <<<<<<<<<<<<<<   *                 if self.use_sent_id:   *                     self.sent_id.append(line_num)   */ -      __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__get_id); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__get_id); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5); -      __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_9); +      __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(((PyObject *)__pyx_t_9));        __Pyx_INCREF(__pyx_v_word);        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_word);        __Pyx_GIVEREF(__pyx_v_word); -      __pyx_t_10 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_10 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_10);        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; -      __pyx_t_9 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->data), __pyx_t_10); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_9 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data), __pyx_t_10); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_9);        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; -      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":82 +      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":85   *             for word in line.split():   *                 self.data.append(self.get_id(word))   *                 if self.use_sent_id:             # <<<<<<<<<<<<<<   *                     self.sent_id.append(line_num)   *                 word_count = word_count + 1   */ -      if (__pyx_v_self->use_sent_id) { +      if (((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->use_sent_id) { -        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":83 +        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":86   *                 self.data.append(self.get_id(word))   *                 if self.use_sent_id:   *                     self.sent_id.append(line_num)             # <<<<<<<<<<<<<<   *                 word_count = word_count + 1   *             self.data.append(1)   */ -        __pyx_t_9 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->sent_id), __pyx_v_line_num); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_9 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_id), __pyx_v_line_num); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_9);          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; -        goto __pyx_L7; +        goto __pyx_L9;        } -      __pyx_L7:; +      __pyx_L9:; -      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":84 +      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":87   *                 if self.use_sent_id:   *                     self.sent_id.append(line_num)   *                 word_count = word_count + 1             # <<<<<<<<<<<<<< @@ -8654,41 +7940,41 @@ static PyObject *__pyx_pf_3_sa_9DataArray_20read_text_data(struct __pyx_obj_3_sa      }      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":85 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":88   *                     self.sent_id.append(line_num)   *                 word_count = word_count + 1   *             self.data.append(1)             # <<<<<<<<<<<<<<   *             if self.use_sent_id:   *                 self.sent_id.append(line_num)   */ -    __pyx_t_6 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->data), __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data), __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":86 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":89   *                 word_count = word_count + 1   *             self.data.append(1)   *             if self.use_sent_id:             # <<<<<<<<<<<<<<   *                 self.sent_id.append(line_num)   *             word_count = word_count + 1   */ -    if (__pyx_v_self->use_sent_id) { +    if (((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->use_sent_id) { -      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":87 +      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":90   *             self.data.append(1)   *             if self.use_sent_id:   *                 self.sent_id.append(line_num)             # <<<<<<<<<<<<<<   *             word_count = word_count + 1   *         self.data.append(0)   */ -      __pyx_t_6 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->sent_id), __pyx_v_line_num); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_id), __pyx_v_line_num); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      goto __pyx_L8; +      goto __pyx_L10;      } -    __pyx_L8:; +    __pyx_L10:; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":88 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":91   *             if self.use_sent_id:   *                 self.sent_id.append(line_num)   *             word_count = word_count + 1             # <<<<<<<<<<<<<< @@ -8700,27 +7986,27 @@ static PyObject *__pyx_pf_3_sa_9DataArray_20read_text_data(struct __pyx_obj_3_sa    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":89 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":92   *                 self.sent_id.append(line_num)   *             word_count = word_count + 1   *         self.data.append(0)             # <<<<<<<<<<<<<<   *         self.sent_index.append(word_count)   *    */ -  __pyx_t_1 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->data), __pyx_int_0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data), __pyx_int_0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":90 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":93   *             word_count = word_count + 1   *         self.data.append(0)   *         self.sent_index.append(word_count)             # <<<<<<<<<<<<<<   *    *    */ -  __pyx_t_1 = PyInt_FromLong(__pyx_v_word_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(__pyx_v_word_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->sent_index), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 93; __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; @@ -8745,28 +8031,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_20read_text_data(struct __pyx_obj_3_sa    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_23read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_23read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_binary (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.DataArray.read_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9DataArray_22read_binary(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":93 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":96   *    *    *     def read_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -8774,13 +8039,27 @@ static PyObject *__pyx_pw_3_sa_9DataArray_23read_binary(PyObject *__pyx_v_self,   *         f = fopen(filename, "r")   */ -static PyObject *__pyx_pf_3_sa_9DataArray_22read_binary(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9DataArray_12read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_12read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_binary", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("read_binary"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.DataArray.read_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":95 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":98   *     def read_binary(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "r")             # <<<<<<<<<<<<<< @@ -8789,16 +8068,16 @@ static PyObject *__pyx_pf_3_sa_9DataArray_22read_binary(struct __pyx_obj_3_sa_Da   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k__r); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":96 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":99   *         cdef FILE* f   *         f = fopen(filename, "r")   *         self.read_handle(f)             # <<<<<<<<<<<<<<   *         fclose(f)   *    */ -  ((struct __pyx_vtabstruct_3_sa_DataArray *)__pyx_v_self->__pyx_vtab)->read_handle(__pyx_v_self, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_DataArray *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), __pyx_v_f); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":97 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":100   *         f = fopen(filename, "r")   *         self.read_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -8813,7 +8092,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_22read_binary(struct __pyx_obj_3_sa_Da    return __pyx_r;  } -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":99 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":102   *         fclose(f)   *    *     cdef void read_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -8824,7 +8103,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_22read_binary(struct __pyx_obj_3_sa_Da  static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, FILE *__pyx_v_f) {    int __pyx_v_num_words;    int __pyx_v_word_len; -  CYTHON_UNUSED unsigned int __pyx_v_i; +  unsigned int __pyx_v_i;    char *__pyx_v_word;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -8836,9 +8115,9 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("read_handle", 0); +  __Pyx_RefNannySetupContext("read_handle"); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":104 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":107   *         cdef char* word   *    *         self.data.read_handle(f)             # <<<<<<<<<<<<<< @@ -8847,7 +8126,7 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray   */    ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->data->__pyx_vtab)->read_handle(__pyx_v_self->data, __pyx_v_f); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":105 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":108   *    *         self.data.read_handle(f)   *         self.sent_index.read_handle(f)             # <<<<<<<<<<<<<< @@ -8856,7 +8135,7 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray   */    ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->sent_index->__pyx_vtab)->read_handle(__pyx_v_self->sent_index, __pyx_v_f); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":106 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":109   *         self.data.read_handle(f)   *         self.sent_index.read_handle(f)   *         self.sent_id.read_handle(f)             # <<<<<<<<<<<<<< @@ -8865,7 +8144,7 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray   */    ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->sent_id->__pyx_vtab)->read_handle(__pyx_v_self->sent_id, __pyx_v_f); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":107 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":110   *         self.sent_index.read_handle(f)   *         self.sent_id.read_handle(f)   *         fread(&(num_words), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -8874,7 +8153,7 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray   */    fread((&__pyx_v_num_words), (sizeof(int)), 1, __pyx_v_f); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":108 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":111   *         self.sent_id.read_handle(f)   *         fread(&(num_words), sizeof(int), 1, f)   *         for i in range(num_words):             # <<<<<<<<<<<<<< @@ -8885,7 +8164,7 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_v_i = __pyx_t_2; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":109 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":112   *         fread(&(num_words), sizeof(int), 1, f)   *         for i in range(num_words):   *             fread(&(word_len), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -8894,7 +8173,7 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray   */      fread((&__pyx_v_word_len), (sizeof(int)), 1, __pyx_v_f); -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":110 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":113   *         for i in range(num_words):   *             fread(&(word_len), sizeof(int), 1, f)   *             word = <char*> malloc (word_len * sizeof(char))             # <<<<<<<<<<<<<< @@ -8903,7 +8182,7 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray   */      __pyx_v_word = ((char *)malloc((__pyx_v_word_len * (sizeof(char))))); -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":111 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":114   *             fread(&(word_len), sizeof(int), 1, f)   *             word = <char*> malloc (word_len * sizeof(char))   *             fread(word, sizeof(char), word_len, f)             # <<<<<<<<<<<<<< @@ -8912,7 +8191,7 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray   */      fread(__pyx_v_word, (sizeof(char)), __pyx_v_word_len, __pyx_v_f); -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":112 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":115   *             word = <char*> malloc (word_len * sizeof(char))   *             fread(word, sizeof(char), word_len, f)   *             self.word2id[word] = len(self.id2word)             # <<<<<<<<<<<<<< @@ -8921,31 +8200,31 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray   */      __pyx_t_3 = __pyx_v_self->id2word;      __Pyx_INCREF(__pyx_t_3); -    __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_5 = PyBytes_FromString(__pyx_v_word); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyBytes_FromString(__pyx_v_word); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_5)); -    if (PyObject_SetItem(__pyx_v_self->word2id, ((PyObject *)__pyx_t_5), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyObject_SetItem(__pyx_v_self->word2id, ((PyObject *)__pyx_t_5), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":113 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":116   *             fread(word, sizeof(char), word_len, f)   *             self.word2id[word] = len(self.id2word)   *             self.id2word.append(word)             # <<<<<<<<<<<<<<   *             free(word)   *         if len(self.sent_id) == 0:   */ -    __pyx_t_3 = PyBytes_FromString(__pyx_v_word); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyBytes_FromString(__pyx_v_word); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_3)); -    __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_self->id2word, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_self->id2word, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":114 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":117   *             self.word2id[word] = len(self.id2word)   *             self.id2word.append(word)   *             free(word)             # <<<<<<<<<<<<<< @@ -8955,7 +8234,7 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray      free(__pyx_v_word);    } -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":115 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":118   *             self.id2word.append(word)   *             free(word)   *         if len(self.sent_id) == 0:             # <<<<<<<<<<<<<< @@ -8964,12 +8243,12 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray   */    __pyx_t_5 = ((PyObject *)__pyx_v_self->sent_id);    __Pyx_INCREF(__pyx_t_5); -  __pyx_t_4 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;    __pyx_t_6 = (__pyx_t_4 == 0);    if (__pyx_t_6) { -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":116 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":119   *             free(word)   *         if len(self.sent_id) == 0:   *             self.use_sent_id = False             # <<<<<<<<<<<<<< @@ -8981,7 +8260,7 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray    }    /*else*/ { -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":118 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":121   *             self.use_sent_id = False   *         else:   *             self.use_sent_id = True             # <<<<<<<<<<<<<< @@ -9001,7 +8280,7 @@ static void __pyx_f_3_sa_9DataArray_read_handle(struct __pyx_obj_3_sa_DataArray    __Pyx_RefNannyFinishContext();  } -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":120 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":123   *             self.use_sent_id = True   *    *     cdef void write_handle(self, FILE* f):             # <<<<<<<<<<<<<< @@ -9023,9 +8302,9 @@ static void __pyx_f_3_sa_9DataArray_write_handle(struct __pyx_obj_3_sa_DataArray    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_handle", 0); +  __Pyx_RefNannySetupContext("write_handle"); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":124 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":127   *         cdef int num_words   *    *         self.data.write_handle(f)             # <<<<<<<<<<<<<< @@ -9034,7 +8313,7 @@ static void __pyx_f_3_sa_9DataArray_write_handle(struct __pyx_obj_3_sa_DataArray   */    ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->data->__pyx_vtab)->write_handle(__pyx_v_self->data, __pyx_v_f); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":125 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":128   *    *         self.data.write_handle(f)   *         self.sent_index.write_handle(f)             # <<<<<<<<<<<<<< @@ -9043,7 +8322,7 @@ static void __pyx_f_3_sa_9DataArray_write_handle(struct __pyx_obj_3_sa_DataArray   */    ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->sent_index->__pyx_vtab)->write_handle(__pyx_v_self->sent_index, __pyx_v_f); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":126 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":129   *         self.data.write_handle(f)   *         self.sent_index.write_handle(f)   *         self.sent_id.write_handle(f)             # <<<<<<<<<<<<<< @@ -9052,7 +8331,7 @@ static void __pyx_f_3_sa_9DataArray_write_handle(struct __pyx_obj_3_sa_DataArray   */    ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->sent_id->__pyx_vtab)->write_handle(__pyx_v_self->sent_id, __pyx_v_f); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":127 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":130   *         self.sent_index.write_handle(f)   *         self.sent_id.write_handle(f)   *         num_words = len(self.id2word) - 2             # <<<<<<<<<<<<<< @@ -9061,11 +8340,11 @@ static void __pyx_f_3_sa_9DataArray_write_handle(struct __pyx_obj_3_sa_DataArray   */    __pyx_t_1 = __pyx_v_self->id2word;    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 127; __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[3]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    __pyx_v_num_words = (__pyx_t_2 - 2); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":128 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":131   *         self.sent_id.write_handle(f)   *         num_words = len(self.id2word) - 2   *         fwrite(&(num_words), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -9074,45 +8353,37 @@ static void __pyx_f_3_sa_9DataArray_write_handle(struct __pyx_obj_3_sa_DataArray   */    fwrite((&__pyx_v_num_words), (sizeof(int)), 1, __pyx_v_f); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":129 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":132   *         num_words = len(self.id2word) - 2   *         fwrite(&(num_words), sizeof(int), 1, f)   *         for word in self.id2word[2:]:             # <<<<<<<<<<<<<<   *             word_len = len(word) + 1   *             fwrite(&(word_len), sizeof(int), 1, f)   */ -  __pyx_t_1 = __Pyx_PySequence_GetSlice(__pyx_v_self->id2word, 2, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PySequence_GetSlice(__pyx_v_self->id2word, 2, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 132; __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_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = 0;      __pyx_t_4 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext;    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    for (;;) { -    if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_3)) { +    if (PyList_CheckExact(__pyx_t_3)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_3)) { +      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; +    } else if (PyTuple_CheckExact(__pyx_t_3)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++;      } else {        __pyx_t_1 = __pyx_t_4(__pyx_t_3);        if (unlikely(!__pyx_t_1)) {          if (PyErr_Occurred()) {            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -9122,17 +8393,17 @@ static void __pyx_f_3_sa_9DataArray_write_handle(struct __pyx_obj_3_sa_DataArray      __pyx_v_word = __pyx_t_1;      __pyx_t_1 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":130 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":133   *         fwrite(&(num_words), sizeof(int), 1, f)   *         for word in self.id2word[2:]:   *             word_len = len(word) + 1             # <<<<<<<<<<<<<<   *             fwrite(&(word_len), sizeof(int), 1, f)   *             fwrite(<char *>word, sizeof(char), word_len, f)   */ -    __pyx_t_5 = PyObject_Length(__pyx_v_word); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyObject_Length(__pyx_v_word); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_v_word_len = (__pyx_t_5 + 1); -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":131 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":134   *         for word in self.id2word[2:]:   *             word_len = len(word) + 1   *             fwrite(&(word_len), sizeof(int), 1, f)             # <<<<<<<<<<<<<< @@ -9141,14 +8412,14 @@ static void __pyx_f_3_sa_9DataArray_write_handle(struct __pyx_obj_3_sa_DataArray   */      fwrite((&__pyx_v_word_len), (sizeof(int)), 1, __pyx_v_f); -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":132 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":135   *             word_len = len(word) + 1   *             fwrite(&(word_len), sizeof(int), 1, f)   *             fwrite(<char *>word, sizeof(char), word_len, f)             # <<<<<<<<<<<<<<   *    *     def write_binary(self, char* filename):   */ -    __pyx_t_6 = PyBytes_AsString(__pyx_v_word); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyBytes_AsString(__pyx_v_word); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      fwrite(((char *)__pyx_t_6), (sizeof(char)), __pyx_v_word_len, __pyx_v_f);    }    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -9163,28 +8434,7 @@ static void __pyx_f_3_sa_9DataArray_write_handle(struct __pyx_obj_3_sa_DataArray    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_25write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_25write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_binary (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.DataArray.write_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9DataArray_24write_binary(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":134 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":137   *             fwrite(<char *>word, sizeof(char), word_len, f)   *    *     def write_binary(self, char* filename):             # <<<<<<<<<<<<<< @@ -9192,13 +8442,27 @@ static PyObject *__pyx_pw_3_sa_9DataArray_25write_binary(PyObject *__pyx_v_self,   *         f = fopen(filename, "w")   */ -static PyObject *__pyx_pf_3_sa_9DataArray_24write_binary(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9DataArray_13write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_13write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_binary", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("write_binary"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.DataArray.write_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":136 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":139   *     def write_binary(self, char* filename):   *         cdef FILE* f   *         f = fopen(filename, "w")             # <<<<<<<<<<<<<< @@ -9207,16 +8471,16 @@ static PyObject *__pyx_pf_3_sa_9DataArray_24write_binary(struct __pyx_obj_3_sa_D   */    __pyx_v_f = fopen(__pyx_v_filename, __pyx_k__w); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":137 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":140   *         cdef FILE* f   *         f = fopen(filename, "w")   *         self.write_handle(f)             # <<<<<<<<<<<<<<   *         fclose(f)   *    */ -  ((struct __pyx_vtabstruct_3_sa_DataArray *)__pyx_v_self->__pyx_vtab)->write_handle(__pyx_v_self, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_DataArray *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), __pyx_v_f); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":138 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":141   *         f = fopen(filename, "w")   *         self.write_handle(f)   *         fclose(f)             # <<<<<<<<<<<<<< @@ -9231,18 +8495,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_24write_binary(struct __pyx_obj_3_sa_D    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_27write_enhanced_handle(PyObject *__pyx_v_self, PyObject *__pyx_v_f); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_27write_enhanced_handle(PyObject *__pyx_v_self, PyObject *__pyx_v_f) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_enhanced_handle (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9DataArray_26write_enhanced_handle(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((PyObject *)__pyx_v_f)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":140 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":143   *         fclose(f)   *    *     def write_enhanced_handle(self, f):             # <<<<<<<<<<<<<< @@ -9250,7 +8503,8 @@ static PyObject *__pyx_pw_3_sa_9DataArray_27write_enhanced_handle(PyObject *__py   *             f.write("%d " %i)   */ -static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, PyObject *__pyx_v_f) { +static PyObject *__pyx_pf_3_sa_9DataArray_14write_enhanced_handle(PyObject *__pyx_v_self, PyObject *__pyx_v_f); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_14write_enhanced_handle(PyObject *__pyx_v_self, PyObject *__pyx_v_f) {    PyObject *__pyx_v_i = NULL;    PyObject *__pyx_v_word = NULL;    PyObject *__pyx_r = NULL; @@ -9264,44 +8518,36 @@ static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_o    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_enhanced_handle", 0); +  __Pyx_RefNannySetupContext("write_enhanced_handle"); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":141 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":144   *    *     def write_enhanced_handle(self, f):   *         for i in self.data:             # <<<<<<<<<<<<<<   *             f.write("%d " %i)   *         f.write("\n")   */ -  if (PyList_CheckExact(((PyObject *)__pyx_v_self->data)) || PyTuple_CheckExact(((PyObject *)__pyx_v_self->data))) { -    __pyx_t_1 = ((PyObject *)__pyx_v_self->data); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; +  if (PyList_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data)) || PyTuple_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data))) { +    __pyx_t_1 = ((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(((PyObject *)__pyx_v_self->data)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->data)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) { +    if (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[3]; __pyx_lineno = 141; __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[3]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; +    } else if (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[3]; __pyx_lineno = 141; __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[3]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;      } 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[3]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -9311,23 +8557,23 @@ static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_o      __pyx_v_i = __pyx_t_4;      __pyx_t_4 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":142 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":145   *     def write_enhanced_handle(self, f):   *         for i in self.data:   *             f.write("%d " %i)             # <<<<<<<<<<<<<<   *         f.write("\n")   *         for i in self.sent_index:   */ -    __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_i); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_i); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_5)); -    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_6); +    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(((PyObject *)__pyx_t_6));      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_5));      __Pyx_GIVEREF(((PyObject *)__pyx_t_5));      __pyx_t_5 = 0; -    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; @@ -9335,56 +8581,48 @@ static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_o    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":143 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":146   *         for i in self.data:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<<   *         for i in self.sent_index:   *             f.write("%d " %i)   */ -  __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_22), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_22), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 146; __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; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":144 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":147   *             f.write("%d " %i)   *         f.write("\n")   *         for i in self.sent_index:             # <<<<<<<<<<<<<<   *             f.write("%d " %i)   *         f.write("\n")   */ -  if (PyList_CheckExact(((PyObject *)__pyx_v_self->sent_index)) || PyTuple_CheckExact(((PyObject *)__pyx_v_self->sent_index))) { -    __pyx_t_5 = ((PyObject *)__pyx_v_self->sent_index); __Pyx_INCREF(__pyx_t_5); __pyx_t_2 = 0; +  if (PyList_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index)) || PyTuple_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index))) { +    __pyx_t_5 = ((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index); __Pyx_INCREF(__pyx_t_5); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_5 = PyObject_GetIter(((PyObject *)__pyx_v_self->sent_index)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_5 = PyObject_GetIter(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_index)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __pyx_t_3 = Py_TYPE(__pyx_t_5)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_5)) { +    if (PyList_CheckExact(__pyx_t_5)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_5)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_5)) { +      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; +    } else if (PyTuple_CheckExact(__pyx_t_5)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_5)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++;      } else {        __pyx_t_1 = __pyx_t_3(__pyx_t_5);        if (unlikely(!__pyx_t_1)) {          if (PyErr_Occurred()) {            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -9394,23 +8632,23 @@ static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_o      __pyx_v_i = __pyx_t_1;      __pyx_t_1 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":145 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":148   *         f.write("\n")   *         for i in self.sent_index:   *             f.write("%d " %i)             # <<<<<<<<<<<<<<   *         f.write("\n")   *         for i in self.sent_id:   */ -    __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_i); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_i); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_6)); -    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_6));      __Pyx_GIVEREF(((PyObject *)__pyx_t_6));      __pyx_t_6 = 0; -    __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; @@ -9418,56 +8656,48 @@ static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_o    }    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":146 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":149   *         for i in self.sent_index:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<<   *         for i in self.sent_id:   *             f.write("%d " %i)   */ -  __pyx_t_5 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_5); -  __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_23), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_23), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 149; __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; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":147 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":150   *             f.write("%d " %i)   *         f.write("\n")   *         for i in self.sent_id:             # <<<<<<<<<<<<<<   *             f.write("%d " %i)   *         f.write("\n")   */ -  if (PyList_CheckExact(((PyObject *)__pyx_v_self->sent_id)) || PyTuple_CheckExact(((PyObject *)__pyx_v_self->sent_id))) { -    __pyx_t_6 = ((PyObject *)__pyx_v_self->sent_id); __Pyx_INCREF(__pyx_t_6); __pyx_t_2 = 0; +  if (PyList_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_id)) || PyTuple_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_id))) { +    __pyx_t_6 = ((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_id); __Pyx_INCREF(__pyx_t_6); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_6 = PyObject_GetIter(((PyObject *)__pyx_v_self->sent_id)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_6 = PyObject_GetIter(((PyObject *)((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->sent_id)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __pyx_t_3 = Py_TYPE(__pyx_t_6)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_6)) { +    if (PyList_CheckExact(__pyx_t_6)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_6)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_6)) { +      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; +    } else if (PyTuple_CheckExact(__pyx_t_6)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_6)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++;      } else {        __pyx_t_5 = __pyx_t_3(__pyx_t_6);        if (unlikely(!__pyx_t_5)) {          if (PyErr_Occurred()) {            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -9477,23 +8707,23 @@ static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_o      __pyx_v_i = __pyx_t_5;      __pyx_t_5 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":148 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":151   *         f.write("\n")   *         for i in self.sent_id:   *             f.write("%d " %i)             # <<<<<<<<<<<<<<   *         f.write("\n")   *         for word in self.id2word:   */ -    __pyx_t_5 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_4)); -    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_1); +    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(((PyObject *)__pyx_t_1));      PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_4));      __Pyx_GIVEREF(((PyObject *)__pyx_t_4));      __pyx_t_4 = 0; -    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -9501,56 +8731,48 @@ static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_o    }    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":149 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":152   *         for i in self.sent_id:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<<   *         for word in self.id2word:   *             f.write("%s %d " % (word, self.word2id[word]))   */ -  __pyx_t_6 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_6); -  __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_24), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_24), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":150 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":153   *             f.write("%d " %i)   *         f.write("\n")   *         for word in self.id2word:             # <<<<<<<<<<<<<<   *             f.write("%s %d " % (word, self.word2id[word]))   *         f.write("\n")   */ -  if (PyList_CheckExact(__pyx_v_self->id2word) || PyTuple_CheckExact(__pyx_v_self->id2word)) { -    __pyx_t_4 = __pyx_v_self->id2word; __Pyx_INCREF(__pyx_t_4); __pyx_t_2 = 0; +  if (PyList_CheckExact(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->id2word) || PyTuple_CheckExact(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->id2word)) { +    __pyx_t_4 = ((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->id2word; __Pyx_INCREF(__pyx_t_4); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_self->id2word); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_4 = PyObject_GetIter(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->id2word); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __pyx_t_3 = Py_TYPE(__pyx_t_4)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_4)) { +    if (PyList_CheckExact(__pyx_t_4)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_4)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_4)) { +      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_t_2++; +    } else if (PyTuple_CheckExact(__pyx_t_4)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_4)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_t_2++;      } else {        __pyx_t_6 = __pyx_t_3(__pyx_t_4);        if (unlikely(!__pyx_t_6)) {          if (PyErr_Occurred()) {            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          else {__pyx_filename = __pyx_f[3]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } @@ -9560,34 +8782,34 @@ static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_o      __pyx_v_word = __pyx_t_6;      __pyx_t_6 = 0; -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":151 +    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":154   *         f.write("\n")   *         for word in self.id2word:   *             f.write("%s %d " % (word, self.word2id[word]))             # <<<<<<<<<<<<<<   *         f.write("\n")   *    */ -    __pyx_t_6 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_1 = PyObject_GetItem(__pyx_v_self->word2id, __pyx_v_word); if (!__pyx_t_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_GetItem(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self)->word2id, __pyx_v_word); if (!__pyx_t_1) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_5); +    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(((PyObject *)__pyx_t_5));      __Pyx_INCREF(__pyx_v_word);      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_word);      __Pyx_GIVEREF(__pyx_v_word);      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);      __Pyx_GIVEREF(__pyx_t_1);      __pyx_t_1 = 0; -    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_25), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_25), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; -    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_5); +    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(((PyObject *)__pyx_t_5));      PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_1));      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));      __pyx_t_1 = 0; -    __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; @@ -9595,16 +8817,16 @@ static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_o    }    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":152 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":155   *         for word in self.id2word:   *             f.write("%s %d " % (word, self.word2id[word]))   *         f.write("\n")             # <<<<<<<<<<<<<<   *    *     def write_enhanced(self, char* filename):   */ -  __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4); -  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_26), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_26), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __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; @@ -9626,28 +8848,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_26write_enhanced_handle(struct __pyx_o    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9DataArray_29write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9DataArray_29write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_enhanced (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.DataArray.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9DataArray_28write_enhanced(((struct __pyx_obj_3_sa_DataArray *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":154 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":157   *         f.write("\n")   *    *     def write_enhanced(self, char* filename):             # <<<<<<<<<<<<<< @@ -9655,7 +8856,9 @@ static PyObject *__pyx_pw_3_sa_9DataArray_29write_enhanced(PyObject *__pyx_v_sel   *             self.write_enhanced_handle(self, f)   */ -static PyObject *__pyx_pf_3_sa_9DataArray_28write_enhanced(struct __pyx_obj_3_sa_DataArray *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9DataArray_15write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9DataArray_15write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_v_f = NULL;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -9673,78 +8876,86 @@ static PyObject *__pyx_pf_3_sa_9DataArray_28write_enhanced(struct __pyx_obj_3_sa    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_enhanced", 0); +  __Pyx_RefNannySetupContext("write_enhanced"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.DataArray.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:; -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":155 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":158   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<<   *             self.write_enhanced_handle(self, f)   */    /*with:*/ { -    __pyx_t_1 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1)); -    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));      __Pyx_INCREF(((PyObject *)__pyx_n_s__w));      PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_n_s__w));      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__w));      __pyx_t_1 = 0; -    __pyx_t_1 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; -    __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L5_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L3_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_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L5_error;} +    __Pyx_GOTREF(__pyx_t_1); +    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      /*try:*/ {        { -        __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); +        __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); +        __Pyx_XGOTREF(__pyx_t_4);          __Pyx_XGOTREF(__pyx_t_5);          __Pyx_XGOTREF(__pyx_t_6); -        __Pyx_XGOTREF(__pyx_t_7);          /*try:*/ { -          __Pyx_INCREF(__pyx_t_4); -          __pyx_v_f = __pyx_t_4; -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __pyx_v_f = __pyx_t_1; +          __pyx_t_1 = 0; -          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":156 +          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":159   *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:   *             self.write_enhanced_handle(self, f)             # <<<<<<<<<<<<<<   */ -          __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s_27); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_4); -          __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_27); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_1); -          __Pyx_INCREF(((PyObject *)__pyx_v_self)); -          PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); -          __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); +          __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_2)); +          __Pyx_INCREF(__pyx_v_self); +          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self); +          __Pyx_GIVEREF(__pyx_v_self);            __Pyx_INCREF(__pyx_v_f); -          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_f); +          PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_f);            __Pyx_GIVEREF(__pyx_v_f); -          __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_2); -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; -          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_7); +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; +          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;          } +        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; -        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        goto __pyx_L14_try_end; -        __pyx_L7_error:; -        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +        goto __pyx_L16_try_end; +        __pyx_L9_error:;          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":155 +        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":158   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<< @@ -9752,75 +8963,75 @@ static PyObject *__pyx_pf_3_sa_9DataArray_28write_enhanced(struct __pyx_obj_3_sa   */          /*except:*/ {            __Pyx_AddTraceback("_sa.DataArray.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); -          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_2, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(__pyx_t_7);            __Pyx_GOTREF(__pyx_t_2);            __Pyx_GOTREF(__pyx_t_1); -          __Pyx_GOTREF(__pyx_t_4); -          __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_8); +          __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_8)); +          __Pyx_INCREF(__pyx_t_7); +          PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); +          __Pyx_GIVEREF(__pyx_t_7);            __Pyx_INCREF(__pyx_t_2); -          PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); +          PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2);            __Pyx_GIVEREF(__pyx_t_2);            __Pyx_INCREF(__pyx_t_1); -          PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1); +          PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_1);            __Pyx_GIVEREF(__pyx_t_1); -          __Pyx_INCREF(__pyx_t_4); -          PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_4); -          __Pyx_GIVEREF(__pyx_t_4);            __pyx_t_10 = PyObject_Call(__pyx_t_3, __pyx_t_8, NULL);            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -          if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_10);            __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_10);            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __pyx_t_11 = (!__pyx_t_9);            if (__pyx_t_11) { +            __Pyx_GIVEREF(__pyx_t_7);              __Pyx_GIVEREF(__pyx_t_2);              __Pyx_GIVEREF(__pyx_t_1); -            __Pyx_GIVEREF(__pyx_t_4); -            __Pyx_ErrRestore(__pyx_t_2, __pyx_t_1, __pyx_t_4); -            __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_4 = 0;  -            {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -            goto __pyx_L18; +            __Pyx_ErrRestore(__pyx_t_7, __pyx_t_2, __pyx_t_1); +            __pyx_t_7 = 0; __pyx_t_2 = 0; __pyx_t_1 = 0;  +            {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +            goto __pyx_L19;            } -          __pyx_L18:; +          __pyx_L19:;            __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; +          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;            __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; -          goto __pyx_L8_exception_handled; +          goto __pyx_L10_exception_handled;          } -        __pyx_L9_except_error:; +        __pyx_L11_except_error:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);          goto __pyx_L1_error; -        __pyx_L8_exception_handled:; +        __pyx_L10_exception_handled:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); -        __pyx_L14_try_end:; +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); +        __pyx_L16_try_end:;        }      }      /*finally:*/ {        if (__pyx_t_3) { -        __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_28, NULL); +        __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_28, NULL);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_7); -        __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_7); -        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -        if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_6); +        __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); +        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +        if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }      } -    goto __pyx_L19; -    __pyx_L3_error:; +    goto __pyx_L20; +    __pyx_L5_error:;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      goto __pyx_L1_error; -    __pyx_L19:; +    __pyx_L20:;    }    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -9828,7 +9039,7 @@ static PyObject *__pyx_pf_3_sa_9DataArray_28write_enhanced(struct __pyx_obj_3_sa    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1);    __Pyx_XDECREF(__pyx_t_2); -  __Pyx_XDECREF(__pyx_t_4); +  __Pyx_XDECREF(__pyx_t_7);    __Pyx_XDECREF(__pyx_t_8);    __Pyx_AddTraceback("_sa.DataArray.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL; @@ -9847,10 +9058,10 @@ static PyObject *__pyx_pf_3_sa_9DataArray_28write_enhanced(struct __pyx_obj_3_sa   *         return i*65536 + j   */ -static int __pyx_f_3_sa_9Alignment_link(CYTHON_UNUSED struct __pyx_obj_3_sa_Alignment *__pyx_v_self, int __pyx_v_i, int __pyx_v_j) { +static int __pyx_f_3_sa_9Alignment_link(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, int __pyx_v_i, int __pyx_v_j) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("link", 0); +  __Pyx_RefNannySetupContext("link");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":14   *     cdef int link(self, int i, int j): @@ -9868,18 +9079,6 @@ static int __pyx_f_3_sa_9Alignment_link(CYTHON_UNUSED struct __pyx_obj_3_sa_Alig    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9Alignment_1unlink(PyObject *__pyx_v_self, PyObject *__pyx_v_link); /*proto*/ -static char __pyx_doc_3_sa_9Alignment_unlink[] = "De-integerizes an alignment link pair"; -static PyObject *__pyx_pw_3_sa_9Alignment_1unlink(PyObject *__pyx_v_self, PyObject *__pyx_v_link) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("unlink (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9Alignment_unlink(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self), ((PyObject *)__pyx_v_link)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":16   *         return i*65536 + j   *  @@ -9888,7 +9087,9 @@ static PyObject *__pyx_pw_3_sa_9Alignment_1unlink(PyObject *__pyx_v_self, PyObje   *         return (link/65536, link%65536)   */ -static PyObject *__pyx_pf_3_sa_9Alignment_unlink(CYTHON_UNUSED struct __pyx_obj_3_sa_Alignment *__pyx_v_self, PyObject *__pyx_v_link) { +static PyObject *__pyx_pf_3_sa_9Alignment_unlink(PyObject *__pyx_v_self, PyObject *__pyx_v_link); /*proto*/ +static char __pyx_doc_3_sa_9Alignment_unlink[] = "De-integerizes an alignment link pair"; +static PyObject *__pyx_pf_3_sa_9Alignment_unlink(PyObject *__pyx_v_self, PyObject *__pyx_v_link) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -9897,7 +9098,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_unlink(CYTHON_UNUSED struct __pyx_obj_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("unlink", 0); +  __Pyx_RefNannySetupContext("unlink");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":18   *     def unlink(self, link): @@ -9912,7 +9113,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_unlink(CYTHON_UNUSED struct __pyx_obj_    __pyx_t_2 = PyNumber_Remainder(__pyx_v_link, __pyx_int_65536); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 18; __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[4]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); @@ -9945,10 +9146,10 @@ static PyObject *__pyx_pf_3_sa_9Alignment_unlink(CYTHON_UNUSED struct __pyx_obj_   *         e[0] = link%65536   */ -static PyObject *__pyx_f_3_sa_9Alignment__unlink(CYTHON_UNUSED struct __pyx_obj_3_sa_Alignment *__pyx_v_self, int __pyx_v_link, int *__pyx_v_f, int *__pyx_v_e) { +static PyObject *__pyx_f_3_sa_9Alignment__unlink(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, int __pyx_v_link, int *__pyx_v_f, int *__pyx_v_e) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("_unlink", 0); +  __Pyx_RefNannySetupContext("_unlink");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":21   *  @@ -9974,27 +9175,6 @@ static PyObject *__pyx_f_3_sa_9Alignment__unlink(CYTHON_UNUSED struct __pyx_obj_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9Alignment_3get_sent_links(PyObject *__pyx_v_self, PyObject *__pyx_arg_sent_id); /*proto*/ -static PyObject *__pyx_pw_3_sa_9Alignment_3get_sent_links(PyObject *__pyx_v_self, PyObject *__pyx_arg_sent_id) { -  int __pyx_v_sent_id; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_sent_links (wrapper)", 0); -  assert(__pyx_arg_sent_id); { -    __pyx_v_sent_id = __Pyx_PyInt_AsInt(__pyx_arg_sent_id); if (unlikely((__pyx_v_sent_id == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.Alignment.get_sent_links", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9Alignment_2get_sent_links(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self), ((int)__pyx_v_sent_id)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":24   *         e[0] = link%65536   *  @@ -10003,7 +9183,9 @@ static PyObject *__pyx_pw_3_sa_9Alignment_3get_sent_links(PyObject *__pyx_v_self   *         cdef int* arr   */ -static PyObject *__pyx_pf_3_sa_9Alignment_2get_sent_links(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, int __pyx_v_sent_id) { +static PyObject *__pyx_pf_3_sa_9Alignment_1get_sent_links(PyObject *__pyx_v_self, PyObject *__pyx_arg_sent_id); /*proto*/ +static PyObject *__pyx_pf_3_sa_9Alignment_1get_sent_links(PyObject *__pyx_v_self, PyObject *__pyx_arg_sent_id) { +  int __pyx_v_sent_id;    struct __pyx_obj_3_sa_IntList *__pyx_v_sent_links = 0;    int *__pyx_v_arr;    int __pyx_v_arr_len; @@ -10013,7 +9195,16 @@ static PyObject *__pyx_pf_3_sa_9Alignment_2get_sent_links(struct __pyx_obj_3_sa_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_sent_links", 0); +  __Pyx_RefNannySetupContext("get_sent_links"); +  assert(__pyx_arg_sent_id); { +    __pyx_v_sent_id = __Pyx_PyInt_AsInt(__pyx_arg_sent_id); if (unlikely((__pyx_v_sent_id == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.Alignment.get_sent_links", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":28   *         cdef int* arr @@ -10034,7 +9225,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_2get_sent_links(struct __pyx_obj_3_sa_   *         sent_links._extend_arr(arr, arr_len*2)   *         free(arr)   */ -  __pyx_v_arr = ((struct __pyx_vtabstruct_3_sa_Alignment *)__pyx_v_self->__pyx_vtab)->_get_sent_links(__pyx_v_self, __pyx_v_sent_id, (&__pyx_v_arr_len)); +  __pyx_v_arr = ((struct __pyx_vtabstruct_3_sa_Alignment *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->__pyx_vtab)->_get_sent_links(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self), __pyx_v_sent_id, (&__pyx_v_arr_len));    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":30   *         sent_links = IntList() @@ -10099,7 +9290,7 @@ static int *__pyx_f_3_sa_9Alignment__get_sent_links(struct __pyx_obj_3_sa_Alignm    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("_get_sent_links", 0); +  __Pyx_RefNannySetupContext("_get_sent_links");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":37   *         cdef int* sent_links @@ -10180,38 +9371,43 @@ static int *__pyx_f_3_sa_9Alignment__get_sent_links(struct __pyx_obj_3_sa_Alignm    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_9Alignment_5__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_9Alignment_5__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { -  PyObject *__pyx_v_from_binary = 0; -  PyObject *__pyx_v_from_text = 0; -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); -  { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__from_binary,&__pyx_n_s__from_text,0}; -    PyObject* values[2] = {0,0}; - -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":45 +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":45   *         return sent_links   *    *     def __cinit__(self, from_binary=None, from_text=None):             # <<<<<<<<<<<<<<   *         self.links = IntList(1000,1000)   *         self.sent_index = IntList(1000,1000)   */ + +static int __pyx_pf_3_sa_9Alignment_2__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_9Alignment_2__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +  PyObject *__pyx_v_from_binary = 0; +  PyObject *__pyx_v_from_text = 0; +  int __pyx_r; +  __Pyx_RefNannyDeclarations +  PyObject *__pyx_t_1 = NULL; +  int __pyx_t_2; +  PyObject *__pyx_t_3 = NULL; +  PyObject *__pyx_t_4 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__from_binary,&__pyx_n_s__from_text,0}; +  __Pyx_RefNannySetupContext("__cinit__"); +  { +    PyObject* values[2] = {0,0};      values[0] = ((PyObject *)Py_None);      values[1] = ((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) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0:          if (kw_args > 0) {            PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__from_binary); @@ -10224,7 +9420,7 @@ static int __pyx_pw_3_sa_9Alignment_5__cinit__(PyObject *__pyx_v_self, PyObject          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -10245,22 +9441,6 @@ static int __pyx_pw_3_sa_9Alignment_5__cinit__(PyObject *__pyx_v_self, PyObject    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9Alignment_4__cinit__(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self), __pyx_v_from_binary, __pyx_v_from_text); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_9Alignment_4__cinit__(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, PyObject *__pyx_v_from_binary, PyObject *__pyx_v_from_text) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  int __pyx_t_2; -  PyObject *__pyx_t_3 = NULL; -  PyObject *__pyx_t_4 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":46   *  @@ -10272,9 +9452,9 @@ static int __pyx_pf_3_sa_9Alignment_4__cinit__(struct __pyx_obj_3_sa_Alignment *    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_k_tuple_29), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->links); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->links)); -  __pyx_v_self->links = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links)); +  ((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":47 @@ -10287,9 +9467,9 @@ static int __pyx_pf_3_sa_9Alignment_4__cinit__(struct __pyx_obj_3_sa_Alignment *    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_k_tuple_30), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->sent_index); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->sent_index)); -  __pyx_v_self->sent_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index)); +  ((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":48 @@ -10309,10 +9489,10 @@ static int __pyx_pf_3_sa_9Alignment_4__cinit__(struct __pyx_obj_3_sa_Alignment *   *         elif from_text:   *             self.read_text(from_text)   */ -    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_binary); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_binary); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 49; __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[4]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      __Pyx_INCREF(__pyx_v_from_binary);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_from_binary);      __Pyx_GIVEREF(__pyx_v_from_binary); @@ -10321,7 +9501,7 @@ static int __pyx_pf_3_sa_9Alignment_4__cinit__(struct __pyx_obj_3_sa_Alignment *      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":50 @@ -10341,10 +9521,10 @@ static int __pyx_pf_3_sa_9Alignment_4__cinit__(struct __pyx_obj_3_sa_Alignment *   *    *     def read_text(self, char* filename):   */ -    __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_text); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_text); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 51; __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[4]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      __Pyx_INCREF(__pyx_v_from_text);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_from_text);      __Pyx_GIVEREF(__pyx_v_from_text); @@ -10353,9 +9533,9 @@ static int __pyx_pf_3_sa_9Alignment_4__cinit__(struct __pyx_obj_3_sa_Alignment *      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    __pyx_r = 0;    goto __pyx_L0; @@ -10370,27 +9550,6 @@ static int __pyx_pf_3_sa_9Alignment_4__cinit__(struct __pyx_obj_3_sa_Alignment *    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9Alignment_7read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9Alignment_7read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_text (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.Alignment.read_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9Alignment_6read_text(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":53   *             self.read_text(from_text)   *  @@ -10399,7 +9558,9 @@ static PyObject *__pyx_pw_3_sa_9Alignment_7read_text(PyObject *__pyx_v_self, PyO   *             for line in f:   */ -static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9Alignment_3read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9Alignment_3read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_v_f = NULL;    PyObject *__pyx_v_line = NULL;    PyObject *__pyx_v_pairs = NULL; @@ -10431,7 +9592,16 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("read_text", 0); +  __Pyx_RefNannySetupContext("read_text"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.Alignment.read_text", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":54   *  @@ -10446,7 +9616,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align      __pyx_t_2 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __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[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_2));      __Pyx_GIVEREF(((PyObject *)__pyx_t_2));      __pyx_t_2 = 0; @@ -10456,12 +9626,12 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____exit__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____enter__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____enter__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L5_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L3_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_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L5_error;} +    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      /*try:*/ {        {          __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); @@ -10469,9 +9639,8 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align          __Pyx_XGOTREF(__pyx_t_6);          __Pyx_XGOTREF(__pyx_t_7);          /*try:*/ { -          __Pyx_INCREF(__pyx_t_1); -          __pyx_v_f = __pyx_t_1; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __pyx_v_f = __pyx_t_2; +          __pyx_t_2 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":55   *     def read_text(self, char* filename): @@ -10481,42 +9650,34 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align   *                 pairs = line.split()   */            if (PyList_CheckExact(__pyx_v_f) || PyTuple_CheckExact(__pyx_v_f)) { -            __pyx_t_1 = __pyx_v_f; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0; +            __pyx_t_2 = __pyx_v_f; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0;              __pyx_t_9 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; +            __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_f); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2); +            __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext;            }            for (;;) { -            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_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L7_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_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_2)) { +              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; +            } else if (PyTuple_CheckExact(__pyx_t_2)) { +              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++;              } else { -              __pyx_t_2 = __pyx_t_9(__pyx_t_1); -              if (unlikely(!__pyx_t_2)) { +              __pyx_t_3 = __pyx_t_9(__pyx_t_2); +              if (unlikely(!__pyx_t_3)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } -              __Pyx_GOTREF(__pyx_t_2); +              __Pyx_GOTREF(__pyx_t_3);              }              __Pyx_XDECREF(__pyx_v_line); -            __pyx_v_line = __pyx_t_2; -            __pyx_t_2 = 0; +            __pyx_v_line = __pyx_t_3; +            __pyx_t_3 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":56   *         with gzip_or_text(filename) as f: @@ -10525,16 +9686,16 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align   *                 pairs = line.split()   *                 for pair in pairs:   */ -            __pyx_t_2 = ((PyObject *)__pyx_v_self->links); -            __Pyx_INCREF(__pyx_t_2); -            __pyx_t_10 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -            __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            __pyx_t_3 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->sent_index), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_3 = ((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links); +            __Pyx_INCREF(__pyx_t_3); +            __pyx_t_10 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +            __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_3); -            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +            __pyx_t_1 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index), __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1);              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":57   *             for line in f: @@ -10543,14 +9704,14 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align   *                 for pair in pairs:   *                     (i, j) = map(int, pair.split('-'))   */ -            __pyx_t_3 = PyObject_GetAttr(__pyx_v_line, __pyx_n_s__split); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_1 = PyObject_GetAttr(__pyx_v_line, __pyx_n_s__split); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_3); -            __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L7_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_XDECREF(__pyx_v_pairs); -            __pyx_v_pairs = __pyx_t_2; -            __pyx_t_2 = 0; +            __pyx_v_pairs = __pyx_t_3; +            __pyx_t_3 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":58   *                 self.sent_index.append(len(self.links)) @@ -10560,42 +9721,34 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align   *                     self.links.append(self.link(i, j))   */              if (PyList_CheckExact(__pyx_v_pairs) || PyTuple_CheckExact(__pyx_v_pairs)) { -              __pyx_t_2 = __pyx_v_pairs; __Pyx_INCREF(__pyx_t_2); __pyx_t_10 = 0; +              __pyx_t_3 = __pyx_v_pairs; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;                __pyx_t_11 = NULL;              } else { -              __pyx_t_10 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_pairs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_2); -              __pyx_t_11 = Py_TYPE(__pyx_t_2)->tp_iternext; +              __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_pairs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_3); +              __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext;              }              for (;;) { -              if (!__pyx_t_11 && PyList_CheckExact(__pyx_t_2)) { -                if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_2)) break; -                #if CYTHON_COMPILING_IN_CPYTHON -                __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -                #else -                __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -                #endif -              } else if (!__pyx_t_11 && PyTuple_CheckExact(__pyx_t_2)) { -                if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_2)) break; -                #if CYTHON_COMPILING_IN_CPYTHON -                __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -                #else -                __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -                #endif +              if (PyList_CheckExact(__pyx_t_3)) { +                if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break; +                __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; +              } else if (PyTuple_CheckExact(__pyx_t_3)) { +                if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +                __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++;                } else { -                __pyx_t_3 = __pyx_t_11(__pyx_t_2); -                if (unlikely(!__pyx_t_3)) { +                __pyx_t_1 = __pyx_t_11(__pyx_t_3); +                if (unlikely(!__pyx_t_1)) {                    if (PyErr_Occurred()) {                      if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                    else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                    else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                    }                    break;                  } -                __Pyx_GOTREF(__pyx_t_3); +                __Pyx_GOTREF(__pyx_t_1);                }                __Pyx_XDECREF(__pyx_v_pair); -              __pyx_v_pair = __pyx_t_3; -              __pyx_t_3 = 0; +              __pyx_v_pair = __pyx_t_1; +              __pyx_t_1 = 0;                /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":59   *                 pairs = line.split() @@ -10604,74 +9757,67 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align   *                     self.links.append(self.link(i, j))   *             self.sent_index.append(len(self.links))   */ -              __pyx_t_3 = PyObject_GetAttr(__pyx_v_pair, __pyx_n_s__split); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_3); -              __pyx_t_12 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_32), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_1 = PyObject_GetAttr(__pyx_v_pair, __pyx_n_s__split); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_1); +              __pyx_t_12 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_32), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_12); -              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -              __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_3); +              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +              __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(((PyObject *)__pyx_t_1));                __Pyx_INCREF(((PyObject *)((PyObject*)(&PyInt_Type)))); -              PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)((PyObject*)(&PyInt_Type)))); +              PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)(&PyInt_Type))));                __Pyx_GIVEREF(((PyObject *)((PyObject*)(&PyInt_Type)))); -              PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_12); +              PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_12);                __Pyx_GIVEREF(__pyx_t_12);                __pyx_t_12 = 0; -              __pyx_t_12 = PyObject_Call(__pyx_builtin_map, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_12 = PyObject_Call(__pyx_builtin_map, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_12); -              __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; +              __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;                if ((likely(PyTuple_CheckExact(__pyx_t_12))) || (PyList_CheckExact(__pyx_t_12))) {                  PyObject* sequence = __pyx_t_12; -                #if CYTHON_COMPILING_IN_CPYTHON -                Py_ssize_t size = Py_SIZE(sequence); -                #else -                Py_ssize_t size = PySequence_Size(sequence); -                #endif -                if (unlikely(size != 2)) { -                  if (size > 2) __Pyx_RaiseTooManyValuesError(2); -                  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                  {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -                } -                #if CYTHON_COMPILING_IN_CPYTHON                  if (likely(PyTuple_CheckExact(sequence))) { -                  __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);  +                  if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +                    if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                    else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +                  } +                  __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);                     __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1);                   } else { -                  __pyx_t_3 = PyList_GET_ITEM(sequence, 0);  +                  if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +                    if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                    else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +                  } +                  __pyx_t_1 = PyList_GET_ITEM(sequence, 0);                     __pyx_t_13 = PyList_GET_ITEM(sequence, 1);                   } -                __Pyx_INCREF(__pyx_t_3); +                __Pyx_INCREF(__pyx_t_1);                  __Pyx_INCREF(__pyx_t_13); -                #else -                __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -                __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -                #endif                  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -              } else -              { +              } else {                  Py_ssize_t index = -1; -                __pyx_t_14 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                __pyx_t_14 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  __Pyx_GOTREF(__pyx_t_14);                  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;                  __pyx_t_15 = Py_TYPE(__pyx_t_14)->tp_iternext; -                index = 0; __pyx_t_3 = __pyx_t_15(__pyx_t_14); if (unlikely(!__pyx_t_3)) goto __pyx_L20_unpacking_failed; -                __Pyx_GOTREF(__pyx_t_3); -                index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_14); if (unlikely(!__pyx_t_13)) goto __pyx_L20_unpacking_failed; +                index = 0; __pyx_t_1 = __pyx_t_15(__pyx_t_14); if (unlikely(!__pyx_t_1)) goto __pyx_L21_unpacking_failed; +                __Pyx_GOTREF(__pyx_t_1); +                index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_14); if (unlikely(!__pyx_t_13)) goto __pyx_L21_unpacking_failed;                  __Pyx_GOTREF(__pyx_t_13); -                if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_14), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -                __pyx_t_15 = NULL; +                if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_14), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -                goto __pyx_L21_unpacking_done; -                __pyx_L20_unpacking_failed:; +                goto __pyx_L22_unpacking_done; +                __pyx_L21_unpacking_failed:;                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -                __pyx_t_15 = NULL; -                if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -                {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -                __pyx_L21_unpacking_done:; +                if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +                if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); +                {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +                __pyx_L22_unpacking_done:;                }                __Pyx_XDECREF(__pyx_v_i); -              __pyx_v_i = __pyx_t_3; -              __pyx_t_3 = 0; +              __pyx_v_i = __pyx_t_1; +              __pyx_t_1 = 0;                __Pyx_XDECREF(__pyx_v_j);                __pyx_v_j = __pyx_t_13;                __pyx_t_13 = 0; @@ -10683,18 +9829,18 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align   *             self.sent_index.append(len(self.links))   *    */ -              __pyx_t_16 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __pyx_t_17 = __Pyx_PyInt_AsInt(__pyx_v_j); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __pyx_t_12 = PyInt_FromLong(((struct __pyx_vtabstruct_3_sa_Alignment *)__pyx_v_self->__pyx_vtab)->link(__pyx_v_self, __pyx_t_16, __pyx_t_17)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_16 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __pyx_t_17 = __Pyx_PyInt_AsInt(__pyx_v_j); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __pyx_t_12 = PyInt_FromLong(((struct __pyx_vtabstruct_3_sa_Alignment *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->__pyx_vtab)->link(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self), __pyx_t_16, __pyx_t_17)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_12); -              __pyx_t_13 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->links), __pyx_t_12); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_13 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links), __pyx_t_12); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_13);                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;              } -            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;            } -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":61   *                     (i, j) = map(int, pair.split('-')) @@ -10703,28 +9849,28 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align   *    *     def read_binary(self, char* filename):   */ -          __pyx_t_1 = ((PyObject *)__pyx_v_self->links); -          __Pyx_INCREF(__pyx_t_1); -          __pyx_t_8 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_1); -          __pyx_t_2 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->sent_index), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_2 = ((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links); +          __Pyx_INCREF(__pyx_t_2); +          __pyx_t_8 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_2); -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __pyx_t_3 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_3);            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;          }          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        goto __pyx_L14_try_end; -        __pyx_L7_error:; +        goto __pyx_L16_try_end; +        __pyx_L9_error:;          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; -        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; -        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":54   *  @@ -10735,57 +9881,57 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align   */          /*except:*/ {            __Pyx_AddTraceback("_sa.Alignment.read_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_13) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_13) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(__pyx_t_3);            __Pyx_GOTREF(__pyx_t_2); -          __Pyx_GOTREF(__pyx_t_1);            __Pyx_GOTREF(__pyx_t_13); -          __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_12); +          __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_12)); +          __Pyx_INCREF(__pyx_t_3); +          PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_3); +          __Pyx_GIVEREF(__pyx_t_3);            __Pyx_INCREF(__pyx_t_2); -          PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_2); +          PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_2);            __Pyx_GIVEREF(__pyx_t_2); -          __Pyx_INCREF(__pyx_t_1); -          PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_1); -          __Pyx_GIVEREF(__pyx_t_1);            __Pyx_INCREF(__pyx_t_13);            PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_13);            __Pyx_GIVEREF(__pyx_t_13);            __pyx_t_19 = PyObject_Call(__pyx_t_4, __pyx_t_12, NULL);            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_19);            __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_t_19);            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; -          if (unlikely(__pyx_t_18 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(__pyx_t_18 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __pyx_t_20 = (!__pyx_t_18);            if (__pyx_t_20) { +            __Pyx_GIVEREF(__pyx_t_3);              __Pyx_GIVEREF(__pyx_t_2); -            __Pyx_GIVEREF(__pyx_t_1);              __Pyx_GIVEREF(__pyx_t_13); -            __Pyx_ErrRestore(__pyx_t_2, __pyx_t_1, __pyx_t_13); -            __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_13 = 0;  -            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -            goto __pyx_L24; +            __Pyx_ErrRestore(__pyx_t_3, __pyx_t_2, __pyx_t_13); +            __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_13 = 0;  +            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +            goto __pyx_L25;            } -          __pyx_L24:; +          __pyx_L25:;            __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; +          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -          goto __pyx_L8_exception_handled; +          goto __pyx_L10_exception_handled;          } -        __pyx_L9_except_error:; +        __pyx_L11_except_error:;          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6);          __Pyx_XGIVEREF(__pyx_t_7);          __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);          goto __pyx_L1_error; -        __pyx_L8_exception_handled:; +        __pyx_L10_exception_handled:;          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6);          __Pyx_XGIVEREF(__pyx_t_7);          __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); -        __pyx_L14_try_end:; +        __pyx_L16_try_end:;        }      }      /*finally:*/ { @@ -10799,11 +9945,11 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align          if (unlikely(__pyx_t_20 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }      } -    goto __pyx_L25; -    __pyx_L3_error:; +    goto __pyx_L26; +    __pyx_L5_error:;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      goto __pyx_L1_error; -    __pyx_L25:; +    __pyx_L26:;    }    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -10829,27 +9975,6 @@ static PyObject *__pyx_pf_3_sa_9Alignment_6read_text(struct __pyx_obj_3_sa_Align    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9Alignment_9read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9Alignment_9read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_binary (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.Alignment.read_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9Alignment_8read_binary(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":63   *             self.sent_index.append(len(self.links))   *  @@ -10858,11 +9983,25 @@ static PyObject *__pyx_pw_3_sa_9Alignment_9read_binary(PyObject *__pyx_v_self, P   *         f = fopen(filename, "r")   */ -static PyObject *__pyx_pf_3_sa_9Alignment_8read_binary(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9Alignment_4read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9Alignment_4read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_binary", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("read_binary"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.Alignment.read_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":65   *     def read_binary(self, char* filename): @@ -10880,7 +10019,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_8read_binary(struct __pyx_obj_3_sa_Ali   *         self.sent_index.read_handle(f)   *         fclose(f)   */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->links->__pyx_vtab)->read_handle(__pyx_v_self->links, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":67   *         f = fopen(filename, "r") @@ -10889,7 +10028,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_8read_binary(struct __pyx_obj_3_sa_Ali   *         fclose(f)   *    */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->sent_index->__pyx_vtab)->read_handle(__pyx_v_self->sent_index, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":68   *         self.links.read_handle(f) @@ -10906,27 +10045,6 @@ static PyObject *__pyx_pf_3_sa_9Alignment_8read_binary(struct __pyx_obj_3_sa_Ali    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9Alignment_11write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9Alignment_11write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_text (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.Alignment.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9Alignment_10write_text(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":70   *         fclose(f)   *  @@ -10935,7 +10053,9 @@ static PyObject *__pyx_pw_3_sa_9Alignment_11write_text(PyObject *__pyx_v_self, P   *             sent_num = 0   */ -static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9Alignment_5write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9Alignment_5write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_v_f = NULL;    PyObject *__pyx_v_sent_num = NULL;    PyObject *__pyx_v_i = NULL; @@ -10948,9 +10068,9 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali    PyObject *__pyx_t_4 = NULL;    PyObject *__pyx_t_5 = NULL;    PyObject *__pyx_t_6 = NULL; -  PyObject *__pyx_t_7 = NULL; -  Py_ssize_t __pyx_t_8; -  PyObject *(*__pyx_t_9)(PyObject *); +  Py_ssize_t __pyx_t_7; +  PyObject *(*__pyx_t_8)(PyObject *); +  PyObject *__pyx_t_9 = NULL;    PyObject *__pyx_t_10 = NULL;    int __pyx_t_11;    PyObject *__pyx_t_12 = NULL; @@ -10960,7 +10080,16 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_text", 0); +  __Pyx_RefNannySetupContext("write_text"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.Alignment.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":71   *  @@ -10973,7 +10102,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali      __pyx_t_1 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));      __Pyx_INCREF(((PyObject *)__pyx_n_s__w)); @@ -10985,22 +10114,21 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;      __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L5_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_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_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L5_error;} +    __Pyx_GOTREF(__pyx_t_1); +    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      /*try:*/ {        { -        __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); +        __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); +        __Pyx_XGOTREF(__pyx_t_4);          __Pyx_XGOTREF(__pyx_t_5);          __Pyx_XGOTREF(__pyx_t_6); -        __Pyx_XGOTREF(__pyx_t_7);          /*try:*/ { -          __Pyx_INCREF(__pyx_t_4); -          __pyx_v_f = __pyx_t_4; -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __pyx_v_f = __pyx_t_1; +          __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":72   *     def write_text(self, char* filename): @@ -11020,52 +10148,44 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali   *                     f.write("\n")   */            __Pyx_INCREF(__pyx_int_0); -          __pyx_t_4 = __pyx_int_0; -          if (PyList_CheckExact(((PyObject *)__pyx_v_self->links)) || PyTuple_CheckExact(((PyObject *)__pyx_v_self->links))) { -            __pyx_t_1 = ((PyObject *)__pyx_v_self->links); __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0; -            __pyx_t_9 = NULL; +          __pyx_t_1 = __pyx_int_0; +          if (PyList_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links)) || PyTuple_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links))) { +            __pyx_t_2 = ((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links); __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0; +            __pyx_t_8 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(((PyObject *)__pyx_v_self->links)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; +            __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2); +            __pyx_t_8 = Py_TYPE(__pyx_t_2)->tp_iternext;            }            for (;;) { -            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_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L7_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_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_2)) { +              if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_9 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; +            } else if (PyTuple_CheckExact(__pyx_t_2)) { +              if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++;              } else { -              __pyx_t_2 = __pyx_t_9(__pyx_t_1); -              if (unlikely(!__pyx_t_2)) { +              __pyx_t_9 = __pyx_t_8(__pyx_t_2); +              if (unlikely(!__pyx_t_9)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } -              __Pyx_GOTREF(__pyx_t_2); +              __Pyx_GOTREF(__pyx_t_9);              }              __Pyx_XDECREF(__pyx_v_link); -            __pyx_v_link = __pyx_t_2; -            __pyx_t_2 = 0; -            __Pyx_INCREF(__pyx_t_4); +            __pyx_v_link = __pyx_t_9; +            __pyx_t_9 = 0; +            __Pyx_INCREF(__pyx_t_1);              __Pyx_XDECREF(__pyx_v_i); -            __pyx_v_i = __pyx_t_4; -            __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            __Pyx_DECREF(__pyx_t_4); -            __pyx_t_4 = __pyx_t_2; -            __pyx_t_2 = 0; +            __pyx_v_i = __pyx_t_1; +            __pyx_t_9 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_9); +            __Pyx_DECREF(__pyx_t_1); +            __pyx_t_1 = __pyx_t_9; +            __pyx_t_9 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":74   *             sent_num = 0 @@ -11075,11 +10195,12 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali   *                     sent_num = sent_num + 1   */              while (1) { -              __pyx_t_2 = PyObject_GetItem(((PyObject *)__pyx_v_self->sent_index), __pyx_v_sent_num); if (!__pyx_t_2) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_2); -              __pyx_t_10 = PyObject_RichCompare(__pyx_v_i, __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -              __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_9 = PyObject_GetItem(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index), __pyx_v_sent_num); if (!__pyx_t_9) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_9); +              __pyx_t_10 = PyObject_RichCompare(__pyx_v_i, __pyx_t_9, Py_GE); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_10); +              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +              __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;                if (!__pyx_t_11) break; @@ -11090,12 +10211,12 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali   *                     sent_num = sent_num + 1   *                 f.write("%d-%d " % self.unlink(link))   */ -              __pyx_t_10 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_10 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_10); -              __pyx_t_2 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_k_tuple_34), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_2); +              __pyx_t_9 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_k_tuple_34), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_9);                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;                /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":76   *                 while i >= self.sent_index[sent_num]: @@ -11104,11 +10225,11 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali   *                 f.write("%d-%d " % self.unlink(link))   *             f.write("\n")   */ -              __pyx_t_2 = PyNumber_Add(__pyx_v_sent_num, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_2); +              __pyx_t_9 = PyNumber_Add(__pyx_v_sent_num, __pyx_int_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_9);                __Pyx_DECREF(__pyx_v_sent_num); -              __pyx_v_sent_num = __pyx_t_2; -              __pyx_t_2 = 0; +              __pyx_v_sent_num = __pyx_t_9; +              __pyx_t_9 = 0;              }              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":77 @@ -11118,35 +10239,35 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali   *             f.write("\n")   *    */ -            __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            __pyx_t_10 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__unlink); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_9 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_9); +            __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__unlink); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_10); -            __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_12); +            __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_12));              __Pyx_INCREF(__pyx_v_link);              PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_link);              __Pyx_GIVEREF(__pyx_v_link); -            __pyx_t_13 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_13 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_13);              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;              __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; -            __pyx_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_35), __pyx_t_13); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_35), __pyx_t_13); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(((PyObject *)__pyx_t_12));              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -            __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_13); +            __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_13));              PyTuple_SET_ITEM(__pyx_t_13, 0, ((PyObject *)__pyx_t_12));              __Pyx_GIVEREF(((PyObject *)__pyx_t_12));              __pyx_t_12 = 0; -            __pyx_t_12 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_12 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_12); -            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;              __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;            } +          __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;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":78   *                     sent_num = sent_num + 1 @@ -11155,24 +10276,24 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali   *    *     def write_binary(self, char* filename):   */ -          __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_4); -          __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_36), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_1); -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_36), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_2);            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;          } +        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; -        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        goto __pyx_L14_try_end; -        __pyx_L7_error:; +        goto __pyx_L16_try_end; +        __pyx_L9_error:;          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; -        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; -        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":71   *  @@ -11183,75 +10304,75 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali   */          /*except:*/ {            __Pyx_AddTraceback("_sa.Alignment.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_4, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(__pyx_t_2);            __Pyx_GOTREF(__pyx_t_1); -          __Pyx_GOTREF(__pyx_t_4);            __Pyx_GOTREF(__pyx_t_12); -          __pyx_t_13 = PyTuple_New(3); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_13); +          __pyx_t_13 = PyTuple_New(3); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_13)); +          __Pyx_INCREF(__pyx_t_2); +          PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_2); +          __Pyx_GIVEREF(__pyx_t_2);            __Pyx_INCREF(__pyx_t_1); -          PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1); +          PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_1);            __Pyx_GIVEREF(__pyx_t_1); -          __Pyx_INCREF(__pyx_t_4); -          PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_4); -          __Pyx_GIVEREF(__pyx_t_4);            __Pyx_INCREF(__pyx_t_12);            PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_12);            __Pyx_GIVEREF(__pyx_t_12);            __pyx_t_14 = PyObject_Call(__pyx_t_3, __pyx_t_13, NULL);            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -          if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_14);            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_14);            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -          if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __pyx_t_15 = (!__pyx_t_11);            if (__pyx_t_15) { +            __Pyx_GIVEREF(__pyx_t_2);              __Pyx_GIVEREF(__pyx_t_1); -            __Pyx_GIVEREF(__pyx_t_4);              __Pyx_GIVEREF(__pyx_t_12); -            __Pyx_ErrRestore(__pyx_t_1, __pyx_t_4, __pyx_t_12); -            __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_12 = 0;  -            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -            goto __pyx_L22; +            __Pyx_ErrRestore(__pyx_t_2, __pyx_t_1, __pyx_t_12); +            __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_12 = 0;  +            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +            goto __pyx_L23;            } -          __pyx_L22:; +          __pyx_L23:;            __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; +          __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;            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -          goto __pyx_L8_exception_handled; +          goto __pyx_L10_exception_handled;          } -        __pyx_L9_except_error:; +        __pyx_L11_except_error:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);          goto __pyx_L1_error; -        __pyx_L8_exception_handled:; +        __pyx_L10_exception_handled:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); -        __pyx_L14_try_end:; +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); +        __pyx_L16_try_end:;        }      }      /*finally:*/ {        if (__pyx_t_3) { -        __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_37, NULL); +        __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_37, NULL);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_7); -        __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_7); -        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +        if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_6); +        __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_6); +        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;          if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }      } -    goto __pyx_L23; -    __pyx_L3_error:; +    goto __pyx_L24; +    __pyx_L5_error:;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      goto __pyx_L1_error; -    __pyx_L23:; +    __pyx_L24:;    }    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -11259,7 +10380,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1);    __Pyx_XDECREF(__pyx_t_2); -  __Pyx_XDECREF(__pyx_t_4); +  __Pyx_XDECREF(__pyx_t_9);    __Pyx_XDECREF(__pyx_t_10);    __Pyx_XDECREF(__pyx_t_12);    __Pyx_XDECREF(__pyx_t_13); @@ -11275,27 +10396,6 @@ static PyObject *__pyx_pf_3_sa_9Alignment_10write_text(struct __pyx_obj_3_sa_Ali    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9Alignment_13write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9Alignment_13write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_binary (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.Alignment.write_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9Alignment_12write_binary(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":80   *             f.write("\n")   *  @@ -11304,11 +10404,25 @@ static PyObject *__pyx_pw_3_sa_9Alignment_13write_binary(PyObject *__pyx_v_self,   *         f = fopen(filename, "w")   */ -static PyObject *__pyx_pf_3_sa_9Alignment_12write_binary(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9Alignment_6write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9Alignment_6write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_binary", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("write_binary"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.Alignment.write_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":82   *     def write_binary(self, char* filename): @@ -11326,7 +10440,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_12write_binary(struct __pyx_obj_3_sa_A   *         self.sent_index.write_handle(f)   *         fclose(f)   */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->links->__pyx_vtab)->write_handle(__pyx_v_self->links, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":84   *         f = fopen(filename, "w") @@ -11335,7 +10449,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_12write_binary(struct __pyx_obj_3_sa_A   *         fclose(f)   *    */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->sent_index->__pyx_vtab)->write_handle(__pyx_v_self->sent_index, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":85   *         self.links.write_handle(f) @@ -11352,27 +10466,6 @@ static PyObject *__pyx_pf_3_sa_9Alignment_12write_binary(struct __pyx_obj_3_sa_A    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9Alignment_15write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_9Alignment_15write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_enhanced (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.Alignment.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9Alignment_14write_enhanced(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":87   *         fclose(f)   *  @@ -11381,9 +10474,11 @@ static PyObject *__pyx_pw_3_sa_9Alignment_15write_enhanced(PyObject *__pyx_v_sel   *             sent_num = 1   */ -static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_9Alignment_7write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_9Alignment_7write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_v_f = NULL; -  CYTHON_UNUSED long __pyx_v_sent_num; +  long __pyx_v_sent_num;    PyObject *__pyx_v_link = NULL;    PyObject *__pyx_v_i = NULL;    PyObject *__pyx_r = NULL; @@ -11394,9 +10489,9 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa    PyObject *__pyx_t_4 = NULL;    PyObject *__pyx_t_5 = NULL;    PyObject *__pyx_t_6 = NULL; -  PyObject *__pyx_t_7 = NULL; -  Py_ssize_t __pyx_t_8; -  PyObject *(*__pyx_t_9)(PyObject *); +  Py_ssize_t __pyx_t_7; +  PyObject *(*__pyx_t_8)(PyObject *); +  PyObject *__pyx_t_9 = NULL;    PyObject *__pyx_t_10 = NULL;    int __pyx_t_11;    PyObject *__pyx_t_12 = NULL; @@ -11404,7 +10499,16 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_enhanced", 0); +  __Pyx_RefNannySetupContext("write_enhanced"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.Alignment.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":88   *  @@ -11417,7 +10521,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa      __pyx_t_1 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));      __Pyx_INCREF(((PyObject *)__pyx_n_s__w)); @@ -11429,22 +10533,21 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;      __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L5_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_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_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L5_error;} +    __Pyx_GOTREF(__pyx_t_1); +    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      /*try:*/ {        { -        __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); +        __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); +        __Pyx_XGOTREF(__pyx_t_4);          __Pyx_XGOTREF(__pyx_t_5);          __Pyx_XGOTREF(__pyx_t_6); -        __Pyx_XGOTREF(__pyx_t_7);          /*try:*/ { -          __Pyx_INCREF(__pyx_t_4); -          __pyx_v_f = __pyx_t_4; -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __pyx_v_f = __pyx_t_1; +          __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":89   *     def write_enhanced(self, char* filename): @@ -11462,43 +10565,35 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa   *                 f.write("%d " % link)   *             f.write("\n")   */ -          if (PyList_CheckExact(((PyObject *)__pyx_v_self->links)) || PyTuple_CheckExact(((PyObject *)__pyx_v_self->links))) { -            __pyx_t_4 = ((PyObject *)__pyx_v_self->links); __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0; -            __pyx_t_9 = NULL; +          if (PyList_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links)) || PyTuple_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links))) { +            __pyx_t_1 = ((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links); __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; +            __pyx_t_8 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(((PyObject *)__pyx_v_self->links)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); -            __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; +            __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext;            }            for (;;) { -            if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_4)) { -              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif -            } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_4)) { -              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_1)) { +              if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; +              __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; +            } else if (PyTuple_CheckExact(__pyx_t_1)) { +              if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +              __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++;              } else { -              __pyx_t_1 = __pyx_t_9(__pyx_t_4); -              if (unlikely(!__pyx_t_1)) { +              __pyx_t_2 = __pyx_t_8(__pyx_t_1); +              if (unlikely(!__pyx_t_2)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } -              __Pyx_GOTREF(__pyx_t_1); +              __Pyx_GOTREF(__pyx_t_2);              }              __Pyx_XDECREF(__pyx_v_link); -            __pyx_v_link = __pyx_t_1; -            __pyx_t_1 = 0; +            __pyx_v_link = __pyx_t_2; +            __pyx_t_2 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":91   *             sent_num = 1 @@ -11507,22 +10602,22 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa   *             f.write("\n")   *             for i in self.sent_index:   */ -            __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_link); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(((PyObject *)__pyx_t_2)); -            __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_10); -            PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_t_2)); -            __Pyx_GIVEREF(((PyObject *)__pyx_t_2)); -            __pyx_t_2 = 0; -            __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_2); -            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -            __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; +            __pyx_t_9 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_link); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_9)); +            __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_10)); +            PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_t_9)); +            __Pyx_GIVEREF(((PyObject *)__pyx_t_9)); +            __pyx_t_9 = 0; +            __pyx_t_9 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_9);              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +            __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; +            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            } -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":92   *             for link in self.links: @@ -11531,12 +10626,12 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa   *             for i in self.sent_index:   *                 f.write("%d " % i)   */ -          __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_4); -          __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_38), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_2); -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_1); +          __pyx_t_9 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_38), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_9); +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":93   *                 f.write("%d " % link) @@ -11545,43 +10640,35 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa   *                 f.write("%d " % i)   *             f.write("\n")   */ -          if (PyList_CheckExact(((PyObject *)__pyx_v_self->sent_index)) || PyTuple_CheckExact(((PyObject *)__pyx_v_self->sent_index))) { -            __pyx_t_2 = ((PyObject *)__pyx_v_self->sent_index); __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0; -            __pyx_t_9 = NULL; +          if (PyList_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index)) || PyTuple_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index))) { +            __pyx_t_9 = ((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index); __Pyx_INCREF(__pyx_t_9); __pyx_t_7 = 0; +            __pyx_t_8 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(((PyObject *)__pyx_v_self->sent_index)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; +            __pyx_t_7 = -1; __pyx_t_9 = PyObject_GetIter(((PyObject *)((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_9); +            __pyx_t_8 = Py_TYPE(__pyx_t_9)->tp_iternext;            }            for (;;) { -            if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_2)) { -              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif -            } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_2)) { -              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_9)) { +              if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_9)) break; +              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; +            } else if (PyTuple_CheckExact(__pyx_t_9)) { +              if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_9)) break; +              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++;              } else { -              __pyx_t_4 = __pyx_t_9(__pyx_t_2); -              if (unlikely(!__pyx_t_4)) { +              __pyx_t_1 = __pyx_t_8(__pyx_t_9); +              if (unlikely(!__pyx_t_1)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[4]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } -              __Pyx_GOTREF(__pyx_t_4); +              __Pyx_GOTREF(__pyx_t_1);              }              __Pyx_XDECREF(__pyx_v_i); -            __pyx_v_i = __pyx_t_4; -            __pyx_t_4 = 0; +            __pyx_v_i = __pyx_t_1; +            __pyx_t_1 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":94   *             f.write("\n") @@ -11590,22 +10677,22 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa   *             f.write("\n")   *    */ -            __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); -            __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_i); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(((PyObject *)__pyx_t_10)); -            __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_1); -            PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_10)); +            __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_i); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_10)); +            __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_2)); +            PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_10));              __Pyx_GIVEREF(((PyObject *)__pyx_t_10));              __pyx_t_10 = 0; -            __pyx_t_10 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_10 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_10); -            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -            __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; +            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +            __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;            } -          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":95   *             for i in self.sent_index: @@ -11614,21 +10701,21 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa   *    *     def alignment(self, i):   */ -          __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_2); -          __pyx_t_10 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_39), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_9 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_9); +          __pyx_t_10 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_k_tuple_39), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_10); -          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;          } +        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; -        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        goto __pyx_L14_try_end; -        __pyx_L7_error:; -        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +        goto __pyx_L16_try_end; +        __pyx_L9_error:;          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":88 @@ -11640,75 +10727,75 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa   */          /*except:*/ {            __Pyx_AddTraceback("_sa.Alignment.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); -          if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_2, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_9, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_10); +          __Pyx_GOTREF(__pyx_t_9);            __Pyx_GOTREF(__pyx_t_2); -          __Pyx_GOTREF(__pyx_t_1); -          __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_4); +          __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_1));            __Pyx_INCREF(__pyx_t_10); -          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_10); +          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10);            __Pyx_GIVEREF(__pyx_t_10); +          __Pyx_INCREF(__pyx_t_9); +          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_9); +          __Pyx_GIVEREF(__pyx_t_9);            __Pyx_INCREF(__pyx_t_2); -          PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); +          PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2);            __Pyx_GIVEREF(__pyx_t_2); -          __Pyx_INCREF(__pyx_t_1); -          PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_1); -          __Pyx_GIVEREF(__pyx_t_1); -          __pyx_t_12 = PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); +          __pyx_t_12 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL);            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -          if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_12);            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_12);            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -          if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __pyx_t_13 = (!__pyx_t_11);            if (__pyx_t_13) {              __Pyx_GIVEREF(__pyx_t_10); +            __Pyx_GIVEREF(__pyx_t_9);              __Pyx_GIVEREF(__pyx_t_2); -            __Pyx_GIVEREF(__pyx_t_1); -            __Pyx_ErrRestore(__pyx_t_10, __pyx_t_2, __pyx_t_1); -            __pyx_t_10 = 0; __pyx_t_2 = 0; __pyx_t_1 = 0;  -            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -            goto __pyx_L22; +            __Pyx_ErrRestore(__pyx_t_10, __pyx_t_9, __pyx_t_2); +            __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_2 = 0;  +            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +            goto __pyx_L23;            } -          __pyx_L22:; -          __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; +          __pyx_L23:; +          __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          goto __pyx_L8_exception_handled; +          goto __pyx_L10_exception_handled;          } -        __pyx_L9_except_error:; +        __pyx_L11_except_error:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);          goto __pyx_L1_error; -        __pyx_L8_exception_handled:; +        __pyx_L10_exception_handled:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); -        __pyx_L14_try_end:; +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); +        __pyx_L16_try_end:;        }      }      /*finally:*/ {        if (__pyx_t_3) { -        __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_40, NULL); +        __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_40, NULL);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_7); -        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_7); -        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +        if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_6); +        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); +        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;          if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }      } -    goto __pyx_L23; -    __pyx_L3_error:; +    goto __pyx_L24; +    __pyx_L5_error:;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      goto __pyx_L1_error; -    __pyx_L23:; +    __pyx_L24:;    }    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -11716,7 +10803,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1);    __Pyx_XDECREF(__pyx_t_2); -  __Pyx_XDECREF(__pyx_t_4); +  __Pyx_XDECREF(__pyx_t_9);    __Pyx_XDECREF(__pyx_t_10);    __Pyx_AddTraceback("_sa.Alignment.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL; @@ -11729,18 +10816,6 @@ static PyObject *__pyx_pf_3_sa_9Alignment_14write_enhanced(struct __pyx_obj_3_sa    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9Alignment_17alignment(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static char __pyx_doc_3_sa_9Alignment_16alignment[] = "Return all (e,f) pairs for sentence i"; -static PyObject *__pyx_pw_3_sa_9Alignment_17alignment(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("alignment (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9Alignment_16alignment(((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":97   *             f.write("\n")   *  @@ -11749,7 +10824,9 @@ static PyObject *__pyx_pw_3_sa_9Alignment_17alignment(PyObject *__pyx_v_self, Py   *         cdef int j, start, end   */ -static PyObject *__pyx_pf_3_sa_9Alignment_16alignment(struct __pyx_obj_3_sa_Alignment *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_9Alignment_8alignment(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static char __pyx_doc_3_sa_9Alignment_8alignment[] = "Return all (e,f) pairs for sentence i"; +static PyObject *__pyx_pf_3_sa_9Alignment_8alignment(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    int __pyx_v_j;    int __pyx_v_start;    int __pyx_v_end; @@ -11765,7 +10842,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_16alignment(struct __pyx_obj_3_sa_Alig    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("alignment", 0); +  __Pyx_RefNannySetupContext("alignment");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":100   *         """Return all (e,f) pairs for sentence i""" @@ -11775,7 +10852,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_16alignment(struct __pyx_obj_3_sa_Alig   *         end = self.sent_index.arr[i+1]   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_result = __pyx_t_1;    __pyx_t_1 = 0; @@ -11787,7 +10864,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_16alignment(struct __pyx_obj_3_sa_Alig   *         for j from start <= j < end:   */    __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 = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_v_start = (__pyx_v_self->sent_index->arr[__pyx_t_2]); +  __pyx_v_start = (((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index->arr[__pyx_t_2]);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":102   *         result = [] @@ -11800,7 +10877,7 @@ static PyObject *__pyx_pf_3_sa_9Alignment_16alignment(struct __pyx_obj_3_sa_Alig    __Pyx_GOTREF(__pyx_t_1);    __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); 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_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_v_end = (__pyx_v_self->sent_index->arr[__pyx_t_2]); +  __pyx_v_end = (((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->sent_index->arr[__pyx_t_2]);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/alignment.pxi":103   *         start = self.sent_index.arr[i] @@ -11818,12 +10895,15 @@ static PyObject *__pyx_pf_3_sa_9Alignment_16alignment(struct __pyx_obj_3_sa_Alig   *             result.append(self.unlink(self.links.arr[j]))             # <<<<<<<<<<<<<<   *         return result   */ -    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__unlink); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) { +      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    } +    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__unlink); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_4 = PyInt_FromLong((__pyx_v_self->links->arr[__pyx_v_j])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyInt_FromLong((((struct __pyx_obj_3_sa_Alignment *)__pyx_v_self)->links->arr[__pyx_v_j])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_5); +    __Pyx_GOTREF(((PyObject *)__pyx_t_5));      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);      __Pyx_GIVEREF(__pyx_t_4);      __pyx_t_4 = 0; @@ -11872,7 +10952,7 @@ static struct __pyx_t_3_sa__node *__pyx_f_3_sa_new_node(int __pyx_v_key) {    struct __pyx_t_3_sa__node *__pyx_v_n;    struct __pyx_t_3_sa__node *__pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("new_node", 0); +  __Pyx_RefNannySetupContext("new_node");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":17   * cdef _node* new_node(int key): @@ -11951,7 +11031,7 @@ static PyObject *__pyx_f_3_sa_del_node(struct __pyx_t_3_sa__node *__pyx_v_n) {    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("del_node", 0); +  __Pyx_RefNannySetupContext("del_node");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":26   *  @@ -12034,7 +11114,7 @@ static int *__pyx_f_3_sa_get_val(struct __pyx_t_3_sa__node *__pyx_v_n, int __pyx    int *__pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("get_val", 0); +  __Pyx_RefNannySetupContext("get_val");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":33   *  @@ -12163,9 +11243,16 @@ static int *__pyx_f_3_sa_get_val(struct __pyx_t_3_sa__node *__pyx_v_n, int __pyx    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_5BiLex_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_5BiLex_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":54 + *     cdef id2eword, id2fword, eword2id, fword2id + *  + *     def __cinit__(self, from_text=None, from_data=False, from_binary=None,             # <<<<<<<<<<<<<< + *             earray=None, fsarray=None, alignment=None): + *         self.id2eword = [] + */ + +static int __pyx_pf_3_sa_5BiLex___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_5BiLex___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_from_text = 0;    PyObject *__pyx_v_from_data = 0;    PyObject *__pyx_v_from_binary = 0; @@ -12174,18 +11261,18 @@ static int __pyx_pw_3_sa_5BiLex_1__cinit__(PyObject *__pyx_v_self, PyObject *__p    PyObject *__pyx_v_alignment = 0;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  int __pyx_t_2; +  PyObject *__pyx_t_3 = NULL; +  PyObject *__pyx_t_4 = NULL; +  PyObject *__pyx_t_5 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__from_text,&__pyx_n_s__from_data,&__pyx_n_s__from_binary,&__pyx_n_s__earray,&__pyx_n_s__fsarray,&__pyx_n_s__alignment,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__from_text,&__pyx_n_s__from_data,&__pyx_n_s__from_binary,&__pyx_n_s__earray,&__pyx_n_s__fsarray,&__pyx_n_s__alignment,0};      PyObject* values[6] = {0,0,0,0,0,0}; - -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":54 - *     cdef id2eword, id2fword, eword2id, fword2id - *  - *     def __cinit__(self, from_text=None, from_data=False, from_binary=None,             # <<<<<<<<<<<<<< - *             earray=None, fsarray=None, alignment=None): - *         self.id2eword = [] - */      values[0] = ((PyObject *)Py_None);      values[1] = __pyx_k_41;      values[2] = ((PyObject *)Py_None); @@ -12202,8 +11289,7 @@ static int __pyx_pw_3_sa_5BiLex_1__cinit__(PyObject *__pyx_v_self, PyObject *__p      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) { +      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); @@ -12214,7 +11300,7 @@ static int __pyx_pw_3_sa_5BiLex_1__cinit__(PyObject *__pyx_v_self, PyObject *__p          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0:          if (kw_args > 0) {            PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__from_text); @@ -12247,7 +11333,7 @@ static int __pyx_pw_3_sa_5BiLex_1__cinit__(PyObject *__pyx_v_self, PyObject *__p          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -12276,31 +11362,6 @@ static int __pyx_pw_3_sa_5BiLex_1__cinit__(PyObject *__pyx_v_self, PyObject *__p    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_5BiLex___cinit__(((struct __pyx_obj_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); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":54 - *     cdef id2eword, id2fword, eword2id, fword2id - *  - *     def __cinit__(self, from_text=None, from_data=False, from_binary=None,             # <<<<<<<<<<<<<< - *             earray=None, fsarray=None, alignment=None): - *         self.id2eword = [] - */ - -static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_from_text, PyObject *__pyx_v_from_data, PyObject *__pyx_v_from_binary, PyObject *__pyx_v_earray, PyObject *__pyx_v_fsarray, PyObject *__pyx_v_alignment) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  int __pyx_t_2; -  PyObject *__pyx_t_3 = NULL; -  PyObject *__pyx_t_4 = NULL; -  PyObject *__pyx_t_5 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":56   *     def __cinit__(self, from_text=None, from_data=False, from_binary=None, @@ -12310,11 +11371,11 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s   *         self.eword2id = {}   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); -  __Pyx_GOTREF(__pyx_v_self->id2eword); -  __Pyx_DECREF(__pyx_v_self->id2eword); -  __pyx_v_self->id2eword = ((PyObject *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword); +  ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":57 @@ -12325,11 +11386,11 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s   *         self.fword2id = {}   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); -  __Pyx_GOTREF(__pyx_v_self->id2fword); -  __Pyx_DECREF(__pyx_v_self->id2fword); -  __pyx_v_self->id2fword = ((PyObject *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword); +  ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":58 @@ -12342,9 +11403,9 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); -  __Pyx_GOTREF(__pyx_v_self->eword2id); -  __Pyx_DECREF(__pyx_v_self->eword2id); -  __pyx_v_self->eword2id = ((PyObject *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->eword2id); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->eword2id); +  ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->eword2id = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":59 @@ -12357,9 +11418,9 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); -  __Pyx_GOTREF(__pyx_v_self->fword2id); -  __Pyx_DECREF(__pyx_v_self->fword2id); -  __pyx_v_self->fword2id = ((PyObject *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->fword2id); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->fword2id); +  ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->fword2id = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":60 @@ -12372,9 +11433,9 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->e_index); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->e_index)); -  __pyx_v_self->e_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index)); +  ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":61 @@ -12387,9 +11448,9 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->f_index); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->f_index)); -  __pyx_v_self->f_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index)); +  ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":62 @@ -12402,9 +11463,9 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_FloatList)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->col1); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->col1)); -  __pyx_v_self->col1 = ((struct __pyx_obj_3_sa_FloatList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1)); +  ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1 = ((struct __pyx_obj_3_sa_FloatList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":63 @@ -12417,9 +11478,9 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_FloatList)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->col2); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->col2)); -  __pyx_v_self->col2 = ((struct __pyx_obj_3_sa_FloatList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2)); +  ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2 = ((struct __pyx_obj_3_sa_FloatList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":64 @@ -12439,10 +11500,10 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s   *         elif from_data:   *             self.compute_from_data(fsarray, earray, alignment)   */ -    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_binary); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_binary); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 65; __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[5]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      __Pyx_INCREF(__pyx_v_from_binary);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_from_binary);      __Pyx_GIVEREF(__pyx_v_from_binary); @@ -12451,7 +11512,7 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":66 @@ -12480,13 +11541,13 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s      if (!(likely(((__pyx_v_alignment) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_alignment, __pyx_ptype_3_sa_Alignment))))) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_t_1 = __pyx_v_alignment;      __Pyx_INCREF(__pyx_t_1); -    __pyx_t_5 = ((struct __pyx_vtabstruct_3_sa_BiLex *)__pyx_v_self->__pyx_vtab)->compute_from_data(__pyx_v_self, ((struct __pyx_obj_3_sa_SuffixArray *)__pyx_t_4), ((struct __pyx_obj_3_sa_DataArray *)__pyx_t_3), ((struct __pyx_obj_3_sa_Alignment *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = ((struct __pyx_vtabstruct_3_sa_BiLex *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->__pyx_vtab)->compute_from_data(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), ((struct __pyx_obj_3_sa_SuffixArray *)__pyx_t_4), ((struct __pyx_obj_3_sa_DataArray *)__pyx_t_3), ((struct __pyx_obj_3_sa_Alignment *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    }    /*else*/ { @@ -12497,10 +11558,10 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s   *    *    */ -    __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_text); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_text); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_1); +    __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __Pyx_INCREF(__pyx_v_from_text);      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_from_text);      __Pyx_GIVEREF(__pyx_v_from_text); @@ -12510,7 +11571,7 @@ static int __pyx_pf_3_sa_5BiLex___cinit__(struct __pyx_obj_3_sa_BiLex *__pyx_v_s      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    } -  __pyx_L3:; +  __pyx_L6:;    __pyx_r = 0;    goto __pyx_L0; @@ -12578,7 +11639,7 @@ static PyObject *__pyx_f_3_sa_5BiLex_compute_from_data(struct __pyx_obj_3_sa_BiL    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("compute_from_data", 0); +  __Pyx_RefNannySetupContext("compute_from_data");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":79   *         cdef int null_word @@ -12605,20 +11666,12 @@ static PyObject *__pyx_f_3_sa_5BiLex_compute_from_data(struct __pyx_obj_3_sa_BiL      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) { +    if (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[5]; __pyx_lineno = 80; __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[5]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; +    } else if (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[5]; __pyx_lineno = 80; __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[5]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1);        if (unlikely(!__pyx_t_4)) { @@ -12674,20 +11727,12 @@ static PyObject *__pyx_f_3_sa_5BiLex_compute_from_data(struct __pyx_obj_3_sa_BiL      __pyx_t_3 = Py_TYPE(__pyx_t_4)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_4)) { +    if (PyList_CheckExact(__pyx_t_4)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_4)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_4)) { +      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; +    } else if (PyTuple_CheckExact(__pyx_t_4)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_4)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++;      } else {        __pyx_t_5 = __pyx_t_3(__pyx_t_4);        if (unlikely(!__pyx_t_5)) { @@ -12739,20 +11784,12 @@ static PyObject *__pyx_f_3_sa_5BiLex_compute_from_data(struct __pyx_obj_3_sa_BiL      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) { +    if (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[5]; __pyx_lineno = 86; __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[5]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; +    } else if (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[5]; __pyx_lineno = 86; __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[5]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1);        if (unlikely(!__pyx_t_4)) { @@ -12808,20 +11845,12 @@ static PyObject *__pyx_f_3_sa_5BiLex_compute_from_data(struct __pyx_obj_3_sa_BiL      __pyx_t_3 = Py_TYPE(__pyx_t_4)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_4)) { +    if (PyList_CheckExact(__pyx_t_4)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_4)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_4)) { +      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; +    } else if (PyTuple_CheckExact(__pyx_t_4)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_4)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++;      } else {        __pyx_t_5 = __pyx_t_3(__pyx_t_4);        if (unlikely(!__pyx_t_5)) { @@ -13118,7 +12147,7 @@ static PyObject *__pyx_f_3_sa_5BiLex_compute_from_data(struct __pyx_obj_3_sa_BiL          __pyx_t_12 = PyInt_FromLong((__pyx_v_sent_id + 1)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_12);          __pyx_t_13 = PyTuple_New(5); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_13); +        __Pyx_GOTREF(((PyObject *)__pyx_t_13));          PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1);          __Pyx_GIVEREF(__pyx_t_1);          PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_4); @@ -13138,7 +12167,7 @@ static PyObject *__pyx_f_3_sa_5BiLex_compute_from_data(struct __pyx_obj_3_sa_BiL          __Pyx_GOTREF(((PyObject *)__pyx_t_12));          __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;          __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_13); +        __Pyx_GOTREF(((PyObject *)__pyx_t_13));          PyTuple_SET_ITEM(__pyx_t_13, 0, ((PyObject *)__pyx_t_12));          __Pyx_GIVEREF(((PyObject *)__pyx_t_12));          __pyx_t_12 = 0; @@ -13596,7 +12625,7 @@ static PyObject *__pyx_f_3_sa_5BiLex_compute_from_data(struct __pyx_obj_3_sa_BiL    __Pyx_GOTREF(__pyx_t_13);    if (PyDict_SetItem(__pyx_t_12, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_13) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -  __pyx_t_13 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_13 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_13);    __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;    __Pyx_GIVEREF(__pyx_t_13); @@ -13618,7 +12647,7 @@ static PyObject *__pyx_f_3_sa_5BiLex_compute_from_data(struct __pyx_obj_3_sa_BiL    __Pyx_GOTREF(__pyx_t_12);    if (PyDict_SetItem(__pyx_t_13, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_12) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -  __pyx_t_12 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_12 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_12);    __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;    __Pyx_GIVEREF(__pyx_t_12); @@ -13640,7 +12669,7 @@ static PyObject *__pyx_f_3_sa_5BiLex_compute_from_data(struct __pyx_obj_3_sa_BiL    __Pyx_GOTREF(__pyx_t_13);    if (PyDict_SetItem(__pyx_t_12, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_13) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -  __pyx_t_13 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_FloatList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_13 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_FloatList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_13);    __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;    __Pyx_GIVEREF(__pyx_t_13); @@ -13662,7 +12691,7 @@ static PyObject *__pyx_f_3_sa_5BiLex_compute_from_data(struct __pyx_obj_3_sa_BiL    __Pyx_GOTREF(__pyx_t_12);    if (PyDict_SetItem(__pyx_t_13, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_12) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -  __pyx_t_12 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_FloatList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_12 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_FloatList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_12);    __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;    __Pyx_GIVEREF(__pyx_t_12); @@ -13810,7 +12839,7 @@ static PyObject *__pyx_f_3_sa_5BiLex__add_node(struct __pyx_obj_3_sa_BiLex *__py    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("_add_node", 0); +  __Pyx_RefNannySetupContext("_add_node");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":191   *     cdef _add_node(self, _node* n, int* num_pairs, float fmargin, int* emargin): @@ -13925,27 +12954,6 @@ static PyObject *__pyx_f_3_sa_5BiLex__add_node(struct __pyx_obj_3_sa_BiLex *__py    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_5BiLex_3write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_5BiLex_3write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_binary (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.BiLex.write_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_5BiLex_2write_binary(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":202   *    *  @@ -13954,7 +12962,9 @@ static PyObject *__pyx_pw_3_sa_5BiLex_3write_binary(PyObject *__pyx_v_self, PyOb   *         f = fopen(filename, "w")   */ -static PyObject *__pyx_pf_3_sa_5BiLex_2write_binary(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_5BiLex_1write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_5BiLex_1write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -13963,7 +12973,16 @@ static PyObject *__pyx_pf_3_sa_5BiLex_2write_binary(struct __pyx_obj_3_sa_BiLex    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_binary", 0); +  __Pyx_RefNannySetupContext("write_binary"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.BiLex.write_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":204   *     def write_binary(self, char* filename): @@ -13981,7 +13000,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_2write_binary(struct __pyx_obj_3_sa_BiLex   *         self.e_index.write_handle(f)   *         self.col1.write_handle(f)   */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->f_index->__pyx_vtab)->write_handle(__pyx_v_self->f_index, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":206   *         f = fopen(filename, "w") @@ -13990,7 +13009,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_2write_binary(struct __pyx_obj_3_sa_BiLex   *         self.col1.write_handle(f)   *         self.col2.write_handle(f)   */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->e_index->__pyx_vtab)->write_handle(__pyx_v_self->e_index, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":207   *         self.f_index.write_handle(f) @@ -13999,7 +13018,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_2write_binary(struct __pyx_obj_3_sa_BiLex   *         self.col2.write_handle(f)   *         self.write_wordlist(self.id2fword, f)   */ -  ((struct __pyx_vtabstruct_3_sa_FloatList *)__pyx_v_self->col1->__pyx_vtab)->write_handle(__pyx_v_self->col1, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_FloatList *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":208   *         self.e_index.write_handle(f) @@ -14008,7 +13027,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_2write_binary(struct __pyx_obj_3_sa_BiLex   *         self.write_wordlist(self.id2fword, f)   *         self.write_wordlist(self.id2eword, f)   */ -  ((struct __pyx_vtabstruct_3_sa_FloatList *)__pyx_v_self->col2->__pyx_vtab)->write_handle(__pyx_v_self->col2, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_FloatList *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":209   *         self.col1.write_handle(f) @@ -14017,9 +13036,9 @@ static PyObject *__pyx_pf_3_sa_5BiLex_2write_binary(struct __pyx_obj_3_sa_BiLex   *         self.write_wordlist(self.id2eword, f)   *         fclose(f)   */ -  __pyx_t_1 = __pyx_v_self->id2fword; +  __pyx_t_1 = ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword;    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = ((struct __pyx_vtabstruct_3_sa_BiLex *)__pyx_v_self->__pyx_vtab)->write_wordlist(__pyx_v_self, __pyx_t_1, __pyx_v_f); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = ((struct __pyx_vtabstruct_3_sa_BiLex *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->__pyx_vtab)->write_wordlist(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), __pyx_t_1, __pyx_v_f); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 209; __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; @@ -14031,9 +13050,9 @@ static PyObject *__pyx_pf_3_sa_5BiLex_2write_binary(struct __pyx_obj_3_sa_BiLex   *         fclose(f)   *    */ -  __pyx_t_2 = __pyx_v_self->id2eword; +  __pyx_t_2 = ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword;    __Pyx_INCREF(__pyx_t_2); -  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_BiLex *)__pyx_v_self->__pyx_vtab)->write_wordlist(__pyx_v_self, __pyx_t_2, __pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_BiLex *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->__pyx_vtab)->write_wordlist(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), __pyx_t_2, __pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 210; __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_1); __pyx_t_1 = 0; @@ -14068,7 +13087,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_2write_binary(struct __pyx_obj_3_sa_BiLex   *         cdef int num_words   */ -static PyObject *__pyx_f_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_wordlist, FILE *__pyx_v_f) { +static PyObject *__pyx_f_3_sa_5BiLex_write_wordlist(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_wordlist, FILE *__pyx_v_f) {    int __pyx_v_word_len;    int __pyx_v_num_words;    PyObject *__pyx_v_word = NULL; @@ -14083,7 +13102,7 @@ static PyObject *__pyx_f_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED struct __pyx_o    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_wordlist", 0); +  __Pyx_RefNannySetupContext("write_wordlist");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":218   *         cdef int num_words @@ -14120,20 +13139,12 @@ static PyObject *__pyx_f_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED struct __pyx_o      __pyx_t_3 = Py_TYPE(__pyx_t_2)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_2)) { +    if (PyList_CheckExact(__pyx_t_2)) {        if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_2)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_4); __pyx_t_1++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_2)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_4); __pyx_t_1++; +    } else if (PyTuple_CheckExact(__pyx_t_2)) {        if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_2)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_4); __pyx_t_1++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_4); __pyx_t_1++;      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_2);        if (unlikely(!__pyx_t_4)) { @@ -14202,11 +13213,11 @@ static PyObject *__pyx_f_3_sa_5BiLex_write_wordlist(CYTHON_UNUSED struct __pyx_o   *         cdef int word_len   */ -static PyObject *__pyx_f_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_word2id, PyObject *__pyx_v_id2word, FILE *__pyx_v_f) { +static PyObject *__pyx_f_3_sa_5BiLex_read_wordlist(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_word2id, PyObject *__pyx_v_id2word, FILE *__pyx_v_f) {    int __pyx_v_num_words;    int __pyx_v_word_len;    char *__pyx_v_word; -  CYTHON_UNUSED long __pyx_v_i; +  long __pyx_v_i;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -14216,7 +13227,7 @@ static PyObject *__pyx_f_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struct __pyx_ob    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("read_wordlist", 0); +  __Pyx_RefNannySetupContext("read_wordlist");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":231   *         cdef char* word @@ -14317,27 +13328,6 @@ static PyObject *__pyx_f_3_sa_5BiLex_read_wordlist(CYTHON_UNUSED struct __pyx_ob    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_5BiLex_5read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_5BiLex_5read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_binary (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.BiLex.read_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_5BiLex_4read_binary(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":240   *             free(word)   *  @@ -14346,7 +13336,9 @@ static PyObject *__pyx_pw_3_sa_5BiLex_5read_binary(PyObject *__pyx_v_self, PyObj   *         f = fopen(filename, "r")   */ -static PyObject *__pyx_pf_3_sa_5BiLex_4read_binary(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_5BiLex_2read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_5BiLex_2read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -14356,7 +13348,16 @@ static PyObject *__pyx_pf_3_sa_5BiLex_4read_binary(struct __pyx_obj_3_sa_BiLex *    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("read_binary", 0); +  __Pyx_RefNannySetupContext("read_binary"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.BiLex.read_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":242   *     def read_binary(self, char* filename): @@ -14374,7 +13375,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_4read_binary(struct __pyx_obj_3_sa_BiLex *   *         self.e_index.read_handle(f)   *         self.col1.read_handle(f)   */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->f_index->__pyx_vtab)->read_handle(__pyx_v_self->f_index, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":244   *         f = fopen(filename, "r") @@ -14383,7 +13384,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_4read_binary(struct __pyx_obj_3_sa_BiLex *   *         self.col1.read_handle(f)   *         self.col2.read_handle(f)   */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->e_index->__pyx_vtab)->read_handle(__pyx_v_self->e_index, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":245   *         self.f_index.read_handle(f) @@ -14392,7 +13393,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_4read_binary(struct __pyx_obj_3_sa_BiLex *   *         self.col2.read_handle(f)   *         self.read_wordlist(self.fword2id, self.id2fword, f)   */ -  ((struct __pyx_vtabstruct_3_sa_FloatList *)__pyx_v_self->col1->__pyx_vtab)->read_handle(__pyx_v_self->col1, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_FloatList *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":246   *         self.e_index.read_handle(f) @@ -14401,7 +13402,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_4read_binary(struct __pyx_obj_3_sa_BiLex *   *         self.read_wordlist(self.fword2id, self.id2fword, f)   *         self.read_wordlist(self.eword2id, self.id2eword, f)   */ -  ((struct __pyx_vtabstruct_3_sa_FloatList *)__pyx_v_self->col2->__pyx_vtab)->read_handle(__pyx_v_self->col2, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_FloatList *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":247   *         self.col1.read_handle(f) @@ -14410,11 +13411,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_4read_binary(struct __pyx_obj_3_sa_BiLex *   *         self.read_wordlist(self.eword2id, self.id2eword, f)   *         fclose(f)   */ -  __pyx_t_1 = __pyx_v_self->fword2id; +  __pyx_t_1 = ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->fword2id;    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = __pyx_v_self->id2fword; +  __pyx_t_2 = ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword;    __Pyx_INCREF(__pyx_t_2); -  __pyx_t_3 = ((struct __pyx_vtabstruct_3_sa_BiLex *)__pyx_v_self->__pyx_vtab)->read_wordlist(__pyx_v_self, __pyx_t_1, __pyx_t_2, __pyx_v_f); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = ((struct __pyx_vtabstruct_3_sa_BiLex *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->__pyx_vtab)->read_wordlist(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), __pyx_t_1, __pyx_t_2, __pyx_v_f); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 247; __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; @@ -14427,11 +13428,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_4read_binary(struct __pyx_obj_3_sa_BiLex *   *         fclose(f)   *    */ -  __pyx_t_3 = __pyx_v_self->eword2id; +  __pyx_t_3 = ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->eword2id;    __Pyx_INCREF(__pyx_t_3); -  __pyx_t_2 = __pyx_v_self->id2eword; +  __pyx_t_2 = ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword;    __Pyx_INCREF(__pyx_t_2); -  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_BiLex *)__pyx_v_self->__pyx_vtab)->read_wordlist(__pyx_v_self, __pyx_t_3, __pyx_t_2, __pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_BiLex *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->__pyx_vtab)->read_wordlist(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), __pyx_t_3, __pyx_t_2, __pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 248; __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; @@ -14460,17 +13461,6 @@ static PyObject *__pyx_pf_3_sa_5BiLex_4read_binary(struct __pyx_obj_3_sa_BiLex *    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_5BiLex_7get_e_id(PyObject *__pyx_v_self, PyObject *__pyx_v_eword); /*proto*/ -static PyObject *__pyx_pw_3_sa_5BiLex_7get_e_id(PyObject *__pyx_v_self, PyObject *__pyx_v_eword) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_e_id (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_5BiLex_6get_e_id(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), ((PyObject *)__pyx_v_eword)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":252   *    *  @@ -14479,8 +13469,9 @@ static PyObject *__pyx_pw_3_sa_5BiLex_7get_e_id(PyObject *__pyx_v_self, PyObject   *             e_id = len(self.id2eword)   */ -static PyObject *__pyx_pf_3_sa_5BiLex_6get_e_id(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_eword) { -  PyObject *__pyx_v_e_id = NULL; +static PyObject *__pyx_pf_3_sa_5BiLex_3get_e_id(PyObject *__pyx_v_self, PyObject *__pyx_v_eword); /*proto*/ +static PyObject *__pyx_pf_3_sa_5BiLex_3get_e_id(PyObject *__pyx_v_self, PyObject *__pyx_v_eword) { +  Py_ssize_t __pyx_v_e_id;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -14489,7 +13480,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_6get_e_id(struct __pyx_obj_3_sa_BiLex *__p    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_e_id", 0); +  __Pyx_RefNannySetupContext("get_e_id");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":253   *  @@ -14498,7 +13489,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_6get_e_id(struct __pyx_obj_3_sa_BiLex *__p   *             e_id = len(self.id2eword)   *             self.id2eword.append(eword)   */ -  __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_v_eword, __pyx_v_self->eword2id, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = (__Pyx_NegateNonNeg(PySequence_Contains(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->eword2id, __pyx_v_eword))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_1) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":254 @@ -14508,14 +13499,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_6get_e_id(struct __pyx_obj_3_sa_BiLex *__p   *             self.id2eword.append(eword)   *             self.eword2id[eword] = e_id   */ -    __pyx_t_2 = __pyx_v_self->id2eword; +    __pyx_t_2 = ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword;      __Pyx_INCREF(__pyx_t_2);      __pyx_t_3 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); -    __pyx_v_e_id = __pyx_t_2; -    __pyx_t_2 = 0; +    __pyx_v_e_id = __pyx_t_3;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":255   *         if eword not in self.eword2id: @@ -14524,7 +13512,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_6get_e_id(struct __pyx_obj_3_sa_BiLex *__p   *             self.eword2id[eword] = e_id   *         return self.eword2id[eword]   */ -    __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_self->id2eword, __pyx_v_eword); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_Append(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword, __pyx_v_eword); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -14535,10 +13523,13 @@ static PyObject *__pyx_pf_3_sa_5BiLex_6get_e_id(struct __pyx_obj_3_sa_BiLex *__p   *         return self.eword2id[eword]   *    */ -    if (PyObject_SetItem(__pyx_v_self->eword2id, __pyx_v_eword, __pyx_v_e_id) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    goto __pyx_L3; +    __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_e_id); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_2); +    if (PyObject_SetItem(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->eword2id, __pyx_v_eword, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +    goto __pyx_L5;    } -  __pyx_L3:; +  __pyx_L5:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":257   *             self.id2eword.append(eword) @@ -14548,7 +13539,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_6get_e_id(struct __pyx_obj_3_sa_BiLex *__p   *    */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_2 = PyObject_GetItem(__pyx_v_self->eword2id, __pyx_v_eword); if (!__pyx_t_2) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_GetItem(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->eword2id, __pyx_v_eword); if (!__pyx_t_2) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_r = __pyx_t_2;    __pyx_t_2 = 0; @@ -14561,23 +13552,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_6get_e_id(struct __pyx_obj_3_sa_BiLex *__p    __Pyx_AddTraceback("_sa.BiLex.get_e_id", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL;    __pyx_L0:; -  __Pyx_XDECREF(__pyx_v_e_id);    __Pyx_XGIVEREF(__pyx_r);    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_5BiLex_9get_f_id(PyObject *__pyx_v_self, PyObject *__pyx_v_fword); /*proto*/ -static PyObject *__pyx_pw_3_sa_5BiLex_9get_f_id(PyObject *__pyx_v_self, PyObject *__pyx_v_fword) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_f_id (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_5BiLex_8get_f_id(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), ((PyObject *)__pyx_v_fword)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":260   *    *  @@ -14586,8 +13565,9 @@ static PyObject *__pyx_pw_3_sa_5BiLex_9get_f_id(PyObject *__pyx_v_self, PyObject   *             f_id = len(self.id2fword)   */ -static PyObject *__pyx_pf_3_sa_5BiLex_8get_f_id(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_fword) { -  PyObject *__pyx_v_f_id = NULL; +static PyObject *__pyx_pf_3_sa_5BiLex_4get_f_id(PyObject *__pyx_v_self, PyObject *__pyx_v_fword); /*proto*/ +static PyObject *__pyx_pf_3_sa_5BiLex_4get_f_id(PyObject *__pyx_v_self, PyObject *__pyx_v_fword) { +  Py_ssize_t __pyx_v_f_id;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -14596,7 +13576,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_8get_f_id(struct __pyx_obj_3_sa_BiLex *__p    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_f_id", 0); +  __Pyx_RefNannySetupContext("get_f_id");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":261   *  @@ -14605,7 +13585,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_8get_f_id(struct __pyx_obj_3_sa_BiLex *__p   *             f_id = len(self.id2fword)   *             self.id2fword.append(fword)   */ -  __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_v_fword, __pyx_v_self->fword2id, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = (__Pyx_NegateNonNeg(PySequence_Contains(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->fword2id, __pyx_v_fword))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_1) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":262 @@ -14615,14 +13595,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_8get_f_id(struct __pyx_obj_3_sa_BiLex *__p   *             self.id2fword.append(fword)   *             self.fword2id[fword] = f_id   */ -    __pyx_t_2 = __pyx_v_self->id2fword; +    __pyx_t_2 = ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword;      __Pyx_INCREF(__pyx_t_2);      __pyx_t_3 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); -    __pyx_v_f_id = __pyx_t_2; -    __pyx_t_2 = 0; +    __pyx_v_f_id = __pyx_t_3;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":263   *         if fword not in self.fword2id: @@ -14631,7 +13608,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_8get_f_id(struct __pyx_obj_3_sa_BiLex *__p   *             self.fword2id[fword] = f_id   *         return self.fword2id[fword]   */ -    __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_self->id2fword, __pyx_v_fword); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = __Pyx_PyObject_Append(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword, __pyx_v_fword); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -14642,10 +13619,13 @@ static PyObject *__pyx_pf_3_sa_5BiLex_8get_f_id(struct __pyx_obj_3_sa_BiLex *__p   *         return self.fword2id[fword]   *    */ -    if (PyObject_SetItem(__pyx_v_self->fword2id, __pyx_v_fword, __pyx_v_f_id) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    goto __pyx_L3; +    __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_f_id); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_2); +    if (PyObject_SetItem(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->fword2id, __pyx_v_fword, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +    goto __pyx_L5;    } -  __pyx_L3:; +  __pyx_L5:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":265   *             self.id2fword.append(fword) @@ -14655,7 +13635,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_8get_f_id(struct __pyx_obj_3_sa_BiLex *__p   *    */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_2 = PyObject_GetItem(__pyx_v_self->fword2id, __pyx_v_fword); if (!__pyx_t_2) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_GetItem(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->fword2id, __pyx_v_fword); if (!__pyx_t_2) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_r = __pyx_t_2;    __pyx_t_2 = 0; @@ -14668,33 +13648,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_8get_f_id(struct __pyx_obj_3_sa_BiLex *__p    __Pyx_AddTraceback("_sa.BiLex.get_f_id", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL;    __pyx_L0:; -  __Pyx_XDECREF(__pyx_v_f_id);    __Pyx_XGIVEREF(__pyx_r);    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_5BiLex_11read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_5BiLex_11read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_text (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.BiLex.read_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_5BiLex_10read_text(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":268   *    *  @@ -14703,7 +13661,9 @@ static PyObject *__pyx_pw_3_sa_5BiLex_11read_text(PyObject *__pyx_v_self, PyObje   *         cdef IntList fcount   */ -static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_5BiLex_5read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_5BiLex_5read_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_v_i = 0;    PyObject *__pyx_v_j = 0;    PyObject *__pyx_v_e_id = 0; @@ -14748,7 +13708,16 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("read_text", 0); +  __Pyx_RefNannySetupContext("read_text"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.BiLex.read_text", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":272   *         cdef IntList fcount @@ -14775,7 +13744,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_      __pyx_t_2 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __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[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_2));      __Pyx_GIVEREF(((PyObject *)__pyx_t_2));      __pyx_t_2 = 0; @@ -14785,12 +13754,12 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____exit__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____enter__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____enter__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L5_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L3_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_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L5_error;} +    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      /*try:*/ {        {          __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); @@ -14798,9 +13767,8 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_          __Pyx_XGOTREF(__pyx_t_6);          __Pyx_XGOTREF(__pyx_t_7);          /*try:*/ { -          __Pyx_INCREF(__pyx_t_1); -          __pyx_v_f = __pyx_t_1; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __pyx_v_f = __pyx_t_2; +          __pyx_t_2 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":275   *         with gzip_or_text(filename) as f: @@ -14810,42 +13778,34 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 f_id = self.get_f_id(fword)   */            if (PyList_CheckExact(__pyx_v_f) || PyTuple_CheckExact(__pyx_v_f)) { -            __pyx_t_1 = __pyx_v_f; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0; +            __pyx_t_2 = __pyx_v_f; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0;              __pyx_t_9 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; +            __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_f); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2); +            __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext;            }            for (;;) { -            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_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L7_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_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_2)) { +              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; +            } else if (PyTuple_CheckExact(__pyx_t_2)) { +              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++;              } else { -              __pyx_t_2 = __pyx_t_9(__pyx_t_1); -              if (unlikely(!__pyx_t_2)) { +              __pyx_t_3 = __pyx_t_9(__pyx_t_2); +              if (unlikely(!__pyx_t_3)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } -              __Pyx_GOTREF(__pyx_t_2); +              __Pyx_GOTREF(__pyx_t_3);              }              __Pyx_XDECREF(__pyx_v_line); -            __pyx_v_line = __pyx_t_2; -            __pyx_t_2 = 0; +            __pyx_v_line = __pyx_t_3; +            __pyx_t_3 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":276   *             # first loop merely establishes size of array objects @@ -14854,75 +13814,66 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 f_id = self.get_f_id(fword)   *                 e_id = self.get_e_id(eword)   */ -            __pyx_t_2 = PyObject_GetAttr(__pyx_v_line, __pyx_n_s__split); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_3 = PyObject_GetAttr(__pyx_v_line, __pyx_n_s__split); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_3); -            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -            if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { -              PyObject* sequence = __pyx_t_3; -              #if CYTHON_COMPILING_IN_CPYTHON -              Py_ssize_t size = Py_SIZE(sequence); -              #else -              Py_ssize_t size = PySequence_Size(sequence); -              #endif -              if (unlikely(size != 4)) { -                if (size > 4) __Pyx_RaiseTooManyValuesError(4); -                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              } -              #if CYTHON_COMPILING_IN_CPYTHON +            __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1); +            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +            if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { +              PyObject* sequence = __pyx_t_1;                if (likely(PyTuple_CheckExact(sequence))) { -                __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);  +                if (unlikely(PyTuple_GET_SIZE(sequence) != 4)) { +                  if (PyTuple_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4); +                  else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                  {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +                } +                __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);                   __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1);                   __pyx_t_11 = PyTuple_GET_ITEM(sequence, 2);                   __pyx_t_12 = PyTuple_GET_ITEM(sequence, 3);                 } else { -                __pyx_t_2 = PyList_GET_ITEM(sequence, 0);  +                if (unlikely(PyList_GET_SIZE(sequence) != 4)) { +                  if (PyList_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4); +                  else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                  {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +                } +                __pyx_t_3 = PyList_GET_ITEM(sequence, 0);                   __pyx_t_10 = PyList_GET_ITEM(sequence, 1);                   __pyx_t_11 = PyList_GET_ITEM(sequence, 2);                   __pyx_t_12 = PyList_GET_ITEM(sequence, 3);                 } -              __Pyx_INCREF(__pyx_t_2); +              __Pyx_INCREF(__pyx_t_3);                __Pyx_INCREF(__pyx_t_10);                __Pyx_INCREF(__pyx_t_11);                __Pyx_INCREF(__pyx_t_12); -              #else -              Py_ssize_t i; -              PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12}; -              for (i=0; i < 4; i++) { -                PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -                *(temps[i]) = item; -              } -              #endif -              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -            } else -            { +              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +            } else {                Py_ssize_t index = -1; -              PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12}; -              __pyx_t_13 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_13); -              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext; -              for (index=0; index < 4; index++) { -                PyObject* item = __pyx_t_14(__pyx_t_13); if (unlikely(!item)) goto __pyx_L18_unpacking_failed; -                __Pyx_GOTREF(item); -                *(temps[index]) = item; -              } -              if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_13), 4) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __pyx_t_14 = NULL; +              index = 0; __pyx_t_3 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_3)) goto __pyx_L19_unpacking_failed; +              __Pyx_GOTREF(__pyx_t_3); +              index = 1; __pyx_t_10 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_10)) goto __pyx_L19_unpacking_failed; +              __Pyx_GOTREF(__pyx_t_10); +              index = 2; __pyx_t_11 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_11)) goto __pyx_L19_unpacking_failed; +              __Pyx_GOTREF(__pyx_t_11); +              index = 3; __pyx_t_12 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_12)) goto __pyx_L19_unpacking_failed; +              __Pyx_GOTREF(__pyx_t_12); +              if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_13), 4) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -              goto __pyx_L19_unpacking_done; -              __pyx_L18_unpacking_failed:; +              goto __pyx_L20_unpacking_done; +              __pyx_L19_unpacking_failed:;                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -              __pyx_t_14 = NULL; -              if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -              {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __pyx_L19_unpacking_done:; +              if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +              if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); +              {__pyx_filename = __pyx_f[5]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __pyx_L20_unpacking_done:;              }              __Pyx_XDECREF(__pyx_v_fword); -            __pyx_v_fword = __pyx_t_2; -            __pyx_t_2 = 0; +            __pyx_v_fword = __pyx_t_3; +            __pyx_t_3 = 0;              __Pyx_XDECREF(__pyx_v_eword);              __pyx_v_eword = __pyx_t_10;              __pyx_t_10 = 0; @@ -14940,16 +13891,16 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 e_id = self.get_e_id(eword)   *                 while f_id >= len(fcount):   */ -            __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__get_f_id); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_3); -            __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_12); +            __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__get_f_id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_12));              __Pyx_INCREF(__pyx_v_fword);              PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_fword);              __Pyx_GIVEREF(__pyx_v_fword); -            __pyx_t_11 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_11 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L9_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(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;              __Pyx_XDECREF(__pyx_v_f_id);              __pyx_v_f_id = __pyx_t_11; @@ -14962,20 +13913,20 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 while f_id >= len(fcount):   *                     fcount.append(0)   */ -            __pyx_t_11 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__get_e_id); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_11 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__get_e_id); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_11); -            __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_12); +            __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_12));              __Pyx_INCREF(__pyx_v_eword);              PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_eword);              __Pyx_GIVEREF(__pyx_v_eword); -            __pyx_t_3 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_3); +            __pyx_t_1 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1);              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;              __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;              __Pyx_XDECREF(__pyx_v_e_id); -            __pyx_v_e_id = __pyx_t_3; -            __pyx_t_3 = 0; +            __pyx_v_e_id = __pyx_t_1; +            __pyx_t_1 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":279   *                 f_id = self.get_f_id(fword) @@ -14985,12 +13936,13 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 fcount.arr[f_id] = fcount.arr[f_id] + 1   */              while (1) { -              __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_fcount)); if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_15); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_3); -              __pyx_t_12 = PyObject_RichCompare(__pyx_v_f_id, __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -              __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_fcount)); if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_15); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_1); +              __pyx_t_12 = PyObject_RichCompare(__pyx_v_f_id, __pyx_t_1, Py_GE); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_12); +              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +              __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;                if (!__pyx_t_16) break; @@ -15001,7 +13953,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 fcount.arr[f_id] = fcount.arr[f_id] + 1   *    */ -              __pyx_t_12 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_fcount), __pyx_int_0); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_12 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_fcount), __pyx_int_0); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_12);                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;              } @@ -15013,11 +13965,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *    *             # Allocate space for dictionary in arrays   */ -            __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 = 281; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_v_f_id); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __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 = 281; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_v_f_id); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              (__pyx_v_fcount->arr[__pyx_t_17]) = ((__pyx_v_fcount->arr[__pyx_t_15]) + 1);            } -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":284   *  @@ -15036,11 +13988,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *             self.f_index = IntList(initial_len=n_f+1)   *             for i from 0 <= i < n_f:   */ -          __pyx_t_8 = PyObject_Length(((PyObject *)__pyx_v_fcount)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_1); -          __pyx_v_n_f = __pyx_t_1; -          __pyx_t_1 = 0; +          __pyx_t_8 = PyObject_Length(((PyObject *)__pyx_v_fcount)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_2); +          __pyx_v_n_f = __pyx_t_2; +          __pyx_t_2 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":286   *             N = 0 @@ -15049,19 +14001,19 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *             for i from 0 <= i < n_f:   *                 self.f_index.arr[i] = N   */ -          __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(((PyObject *)__pyx_t_1)); -          __pyx_t_12 = PyNumber_Add(__pyx_v_n_f, __pyx_int_1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_2)); +          __pyx_t_12 = PyNumber_Add(__pyx_v_n_f, __pyx_int_1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_12); -          if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_12) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_12) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -          __pyx_t_12 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_12 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_12); -          __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; +          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;            __Pyx_GIVEREF(__pyx_t_12); -          __Pyx_GOTREF(__pyx_v_self->f_index); -          __Pyx_DECREF(((PyObject *)__pyx_v_self->f_index)); -          __pyx_v_self->f_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_12); +          __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index); +          __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index)); +          ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_12);            __pyx_t_12 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":287 @@ -15071,9 +14023,9 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 self.f_index.arr[i] = N   *                 N = N + fcount.arr[i]   */ -          __pyx_t_18 = __Pyx_PyInt_AsLong(__pyx_v_n_f); if (unlikely((__pyx_t_18 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_18 = __Pyx_PyInt_AsLong(__pyx_v_n_f); if (unlikely((__pyx_t_18 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19++) { -            __pyx_t_12 = PyInt_FromLong(__pyx_t_19); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_12 = PyInt_FromLong(__pyx_t_19); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_12);              __Pyx_XDECREF(__pyx_v_i);              __pyx_v_i = __pyx_t_12; @@ -15086,9 +14038,9 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 N = N + fcount.arr[i]   *                 fcount.arr[i] = 0   */ -            __pyx_t_20 = __Pyx_PyInt_AsInt(__pyx_v_N); if (unlikely((__pyx_t_20 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __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 = 288; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            (__pyx_v_self->f_index->arr[__pyx_t_8]) = __pyx_t_20; +            __pyx_t_20 = __Pyx_PyInt_AsInt(__pyx_v_N); if (unlikely((__pyx_t_20 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __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 = 288; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            (((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index->arr[__pyx_t_8]) = __pyx_t_20;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":289   *             for i from 0 <= i < n_f: @@ -15097,15 +14049,15 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 fcount.arr[i] = 0   *             self.f_index.arr[n_f] = N   */ -            __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 = 289; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __pyx_t_12 = PyInt_FromLong((__pyx_v_fcount->arr[__pyx_t_8])); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __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 = 289; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __pyx_t_12 = PyInt_FromLong((__pyx_v_fcount->arr[__pyx_t_8])); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_12); -            __pyx_t_1 = PyNumber_Add(__pyx_v_N, __pyx_t_12); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_2 = PyNumber_Add(__pyx_v_N, __pyx_t_12); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2);              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;              __Pyx_DECREF(__pyx_v_N); -            __pyx_v_N = __pyx_t_1; -            __pyx_t_1 = 0; +            __pyx_v_N = __pyx_t_2; +            __pyx_t_2 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":290   *                 self.f_index.arr[i] = N @@ -15114,9 +14066,9 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *             self.f_index.arr[n_f] = N   *             self.e_index = IntList(initial_len=N)   */ -            __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 = 290; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __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 = 290; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              (__pyx_v_fcount->arr[__pyx_t_8]) = 0; -            __pyx_t_19 = __Pyx_PyInt_AsLong(__pyx_v_i); if (unlikely((__pyx_t_19 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_19 = __Pyx_PyInt_AsLong(__pyx_v_i); if (unlikely((__pyx_t_19 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            }            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":287 @@ -15126,11 +14078,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 self.f_index.arr[i] = N   *                 N = N + fcount.arr[i]   */ -          __pyx_t_1 = PyInt_FromLong(__pyx_t_19); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_1); +          __pyx_t_2 = PyInt_FromLong(__pyx_t_19); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_2);            __Pyx_XDECREF(__pyx_v_i); -          __pyx_v_i = __pyx_t_1; -          __pyx_t_1 = 0; +          __pyx_v_i = __pyx_t_2; +          __pyx_t_2 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":291   *                 N = N + fcount.arr[i] @@ -15139,9 +14091,9 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *             self.e_index = IntList(initial_len=N)   *             self.col1 = FloatList(initial_len=N)   */ -          __pyx_t_20 = __Pyx_PyInt_AsInt(__pyx_v_N); if (unlikely((__pyx_t_20 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __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 = 291; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          (__pyx_v_self->f_index->arr[__pyx_t_8]) = __pyx_t_20; +          __pyx_t_20 = __Pyx_PyInt_AsInt(__pyx_v_N); if (unlikely((__pyx_t_20 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __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 = 291; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          (((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index->arr[__pyx_t_8]) = __pyx_t_20;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":292   *                 fcount.arr[i] = 0 @@ -15150,16 +14102,16 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *             self.col1 = FloatList(initial_len=N)   *             self.col2 = FloatList(initial_len=N)   */ -          __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(((PyObject *)__pyx_t_1)); -          if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__initial_len), __pyx_v_N) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __pyx_t_12 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_2)); +          if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__initial_len), __pyx_v_N) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __pyx_t_12 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_12); -          __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; +          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;            __Pyx_GIVEREF(__pyx_t_12); -          __Pyx_GOTREF(__pyx_v_self->e_index); -          __Pyx_DECREF(((PyObject *)__pyx_v_self->e_index)); -          __pyx_v_self->e_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_12); +          __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index); +          __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index)); +          ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_12);            __pyx_t_12 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":293 @@ -15169,17 +14121,17 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *             self.col2 = FloatList(initial_len=N)   *    */ -          __pyx_t_12 = PyDict_New(); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_12 = PyDict_New(); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(((PyObject *)__pyx_t_12)); -          if (PyDict_SetItem(__pyx_t_12, ((PyObject *)__pyx_n_s__initial_len), __pyx_v_N) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_FloatList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_1); +          if (PyDict_SetItem(__pyx_t_12, ((PyObject *)__pyx_n_s__initial_len), __pyx_v_N) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __pyx_t_2 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_FloatList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_2);            __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; -          __Pyx_GIVEREF(__pyx_t_1); -          __Pyx_GOTREF(__pyx_v_self->col1); -          __Pyx_DECREF(((PyObject *)__pyx_v_self->col1)); -          __pyx_v_self->col1 = ((struct __pyx_obj_3_sa_FloatList *)__pyx_t_1); -          __pyx_t_1 = 0; +          __Pyx_GIVEREF(__pyx_t_2); +          __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1); +          __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1)); +          ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1 = ((struct __pyx_obj_3_sa_FloatList *)__pyx_t_2); +          __pyx_t_2 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":294   *             self.e_index = IntList(initial_len=N) @@ -15188,16 +14140,16 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *    *             # Re-read file, placing words into buckets   */ -          __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(((PyObject *)__pyx_t_1)); -          if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__initial_len), __pyx_v_N) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __pyx_t_12 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_FloatList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_2)); +          if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__initial_len), __pyx_v_N) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __pyx_t_12 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_FloatList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_12); -          __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; +          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;            __Pyx_GIVEREF(__pyx_t_12); -          __Pyx_GOTREF(__pyx_v_self->col2); -          __Pyx_DECREF(((PyObject *)__pyx_v_self->col2)); -          __pyx_v_self->col2 = ((struct __pyx_obj_3_sa_FloatList *)__pyx_t_12); +          __Pyx_GOTREF(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2); +          __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2)); +          ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2 = ((struct __pyx_obj_3_sa_FloatList *)__pyx_t_12);            __pyx_t_12 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":297 @@ -15207,12 +14159,12 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *             for line in f:   *                 (fword, eword, score1, score2) = line.split()   */ -          __pyx_t_12 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__seek); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_12 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__seek); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_12); -          __pyx_t_1 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_k_tuple_43), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_1); +          __pyx_t_2 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_k_tuple_43), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_2);            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":298   *             # Re-read file, placing words into buckets @@ -15222,34 +14174,26 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 f_id = self.get_f_id(fword)   */            if (PyList_CheckExact(__pyx_v_f) || PyTuple_CheckExact(__pyx_v_f)) { -            __pyx_t_1 = __pyx_v_f; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0; +            __pyx_t_2 = __pyx_v_f; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0;              __pyx_t_9 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; +            __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_f); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2); +            __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext;            }            for (;;) { -            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_12 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_12); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_12 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L7_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_12 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_12); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_12 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_2)) { +              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_12 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_12); __pyx_t_8++; +            } else if (PyTuple_CheckExact(__pyx_t_2)) { +              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_12); __pyx_t_8++;              } else { -              __pyx_t_12 = __pyx_t_9(__pyx_t_1); +              __pyx_t_12 = __pyx_t_9(__pyx_t_2);                if (unlikely(!__pyx_t_12)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } @@ -15266,71 +14210,62 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 f_id = self.get_f_id(fword)   *                 e_id = self.get_e_id(eword)   */ -            __pyx_t_12 = PyObject_GetAttr(__pyx_v_line, __pyx_n_s__split); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_12 = PyObject_GetAttr(__pyx_v_line, __pyx_n_s__split); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_12); -            __pyx_t_3 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_3); +            __pyx_t_1 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1);              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -            if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { -              PyObject* sequence = __pyx_t_3; -              #if CYTHON_COMPILING_IN_CPYTHON -              Py_ssize_t size = Py_SIZE(sequence); -              #else -              Py_ssize_t size = PySequence_Size(sequence); -              #endif -              if (unlikely(size != 4)) { -                if (size > 4) __Pyx_RaiseTooManyValuesError(4); -                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              } -              #if CYTHON_COMPILING_IN_CPYTHON +            if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { +              PyObject* sequence = __pyx_t_1;                if (likely(PyTuple_CheckExact(sequence))) { +                if (unlikely(PyTuple_GET_SIZE(sequence) != 4)) { +                  if (PyTuple_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4); +                  else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                  {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +                }                  __pyx_t_12 = PyTuple_GET_ITEM(sequence, 0);                   __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1);                   __pyx_t_10 = PyTuple_GET_ITEM(sequence, 2);  -                __pyx_t_2 = PyTuple_GET_ITEM(sequence, 3);  +                __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3);                 } else { +                if (unlikely(PyList_GET_SIZE(sequence) != 4)) { +                  if (PyList_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4); +                  else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                  {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +                }                  __pyx_t_12 = PyList_GET_ITEM(sequence, 0);                   __pyx_t_11 = PyList_GET_ITEM(sequence, 1);                   __pyx_t_10 = PyList_GET_ITEM(sequence, 2);  -                __pyx_t_2 = PyList_GET_ITEM(sequence, 3);  +                __pyx_t_3 = PyList_GET_ITEM(sequence, 3);                 }                __Pyx_INCREF(__pyx_t_12);                __Pyx_INCREF(__pyx_t_11);                __Pyx_INCREF(__pyx_t_10); -              __Pyx_INCREF(__pyx_t_2); -              #else -              Py_ssize_t i; -              PyObject** temps[4] = {&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_2}; -              for (i=0; i < 4; i++) { -                PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -                *(temps[i]) = item; -              } -              #endif -              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -            } else -            { +              __Pyx_INCREF(__pyx_t_3); +              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +            } else {                Py_ssize_t index = -1; -              PyObject** temps[4] = {&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_2}; -              __pyx_t_13 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_13); -              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext; -              for (index=0; index < 4; index++) { -                PyObject* item = __pyx_t_14(__pyx_t_13); if (unlikely(!item)) goto __pyx_L26_unpacking_failed; -                __Pyx_GOTREF(item); -                *(temps[index]) = item; -              } -              if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_13), 4) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __pyx_t_14 = NULL; +              index = 0; __pyx_t_12 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_12)) goto __pyx_L27_unpacking_failed; +              __Pyx_GOTREF(__pyx_t_12); +              index = 1; __pyx_t_11 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_11)) goto __pyx_L27_unpacking_failed; +              __Pyx_GOTREF(__pyx_t_11); +              index = 2; __pyx_t_10 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_10)) goto __pyx_L27_unpacking_failed; +              __Pyx_GOTREF(__pyx_t_10); +              index = 3; __pyx_t_3 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_3)) goto __pyx_L27_unpacking_failed; +              __Pyx_GOTREF(__pyx_t_3); +              if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_13), 4) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -              goto __pyx_L27_unpacking_done; -              __pyx_L26_unpacking_failed:; +              goto __pyx_L28_unpacking_done; +              __pyx_L27_unpacking_failed:;                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -              __pyx_t_14 = NULL; -              if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -              {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __pyx_L27_unpacking_done:; +              if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +              if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); +              {__pyx_filename = __pyx_f[5]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __pyx_L28_unpacking_done:;              }              __Pyx_XDECREF(__pyx_v_fword);              __pyx_v_fword = __pyx_t_12; @@ -15342,8 +14277,8 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_              __pyx_v_score1 = __pyx_t_10;              __pyx_t_10 = 0;              __Pyx_XDECREF(__pyx_v_score2); -            __pyx_v_score2 = __pyx_t_2; -            __pyx_t_2 = 0; +            __pyx_v_score2 = __pyx_t_3; +            __pyx_t_3 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":300   *             for line in f: @@ -15352,17 +14287,17 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 e_id = self.get_e_id(eword)   *                 index = self.f_index.arr[f_id] + fcount.arr[f_id]   */ -            __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__get_f_id); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_3); -            __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); +            __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__get_f_id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_3));              __Pyx_INCREF(__pyx_v_fword); -            PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_fword); +            PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_fword);              __Pyx_GIVEREF(__pyx_v_fword); -            __pyx_t_10 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_10 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_10); -            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -            __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; +            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +            __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;              __Pyx_XDECREF(__pyx_v_f_id);              __pyx_v_f_id = __pyx_t_10;              __pyx_t_10 = 0; @@ -15374,20 +14309,20 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 index = self.f_index.arr[f_id] + fcount.arr[f_id]   *                 fcount.arr[f_id] = fcount.arr[f_id] + 1   */ -            __pyx_t_10 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__get_e_id); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__get_e_id); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_10); -            __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); +            __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_3));              __Pyx_INCREF(__pyx_v_eword); -            PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_eword); +            PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_eword);              __Pyx_GIVEREF(__pyx_v_eword); -            __pyx_t_3 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_3); +            __pyx_t_1 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1);              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -            __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; +            __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;              __Pyx_XDECREF(__pyx_v_e_id); -            __pyx_v_e_id = __pyx_t_3; -            __pyx_t_3 = 0; +            __pyx_v_e_id = __pyx_t_1; +            __pyx_t_1 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":302   *                 f_id = self.get_f_id(fword) @@ -15396,13 +14331,13 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 fcount.arr[f_id] = fcount.arr[f_id] + 1   *                 self.e_index.arr[index] = int(e_id)   */ -            __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 = 302; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_v_f_id); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __pyx_t_3 = PyInt_FromLong(((__pyx_v_self->f_index->arr[__pyx_t_15]) + (__pyx_v_fcount->arr[__pyx_t_17]))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_3); +            __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 = 302; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_v_f_id); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __pyx_t_1 = PyInt_FromLong(((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index->arr[__pyx_t_15]) + (__pyx_v_fcount->arr[__pyx_t_17]))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1);              __Pyx_XDECREF(__pyx_v_index); -            __pyx_v_index = __pyx_t_3; -            __pyx_t_3 = 0; +            __pyx_v_index = __pyx_t_1; +            __pyx_t_1 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":303   *                 e_id = self.get_e_id(eword) @@ -15411,8 +14346,8 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 self.e_index.arr[index] = int(e_id)   *                 self.col1[index] = float(score1)   */ -            __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_v_f_id); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __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 = 303; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_v_f_id); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __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 = 303; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              (__pyx_v_fcount->arr[__pyx_t_15]) = ((__pyx_v_fcount->arr[__pyx_t_17]) + 1);              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":304 @@ -15422,18 +14357,18 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 self.col1[index] = float(score1)   *                 self.col2[index] = float(score2)   */ -            __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_3); +            __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_1));              __Pyx_INCREF(__pyx_v_e_id); -            PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_e_id); +            PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_e_id);              __Pyx_GIVEREF(__pyx_v_e_id); -            __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; -            __pyx_t_20 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_20 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -            __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            (__pyx_v_self->e_index->arr[__pyx_t_17]) = __pyx_t_20; +            __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_3); +            __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; +            __pyx_t_20 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_20 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +            __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            (((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index->arr[__pyx_t_17]) = __pyx_t_20;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":305   *                 fcount.arr[f_id] = fcount.arr[f_id] + 1 @@ -15442,11 +14377,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *                 self.col2[index] = float(score2)   *    */ -            __pyx_t_21 = __Pyx_PyObject_AsDouble(__pyx_v_score1); if (unlikely(__pyx_t_21 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __pyx_t_2 = PyFloat_FromDouble(__pyx_t_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            if (PyObject_SetItem(((PyObject *)__pyx_v_self->col1), __pyx_v_index, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +            __pyx_t_21 = __Pyx_PyObject_AsDouble(__pyx_v_score1); if (unlikely(__pyx_t_21 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __pyx_t_3 = PyFloat_FromDouble(__pyx_t_21); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_3); +            if (PyObject_SetItem(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1), __pyx_v_index, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":306   *                 self.e_index.arr[index] = int(e_id) @@ -15455,26 +14390,26 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *    *         # Sort buckets by eword   */ -            __pyx_t_21 = __Pyx_PyObject_AsDouble(__pyx_v_score2); if (unlikely(__pyx_t_21 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __pyx_t_2 = PyFloat_FromDouble(__pyx_t_21); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            if (PyObject_SetItem(((PyObject *)__pyx_v_self->col2), __pyx_v_index, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +            __pyx_t_21 = __Pyx_PyObject_AsDouble(__pyx_v_score2); if (unlikely(__pyx_t_21 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __pyx_t_3 = PyFloat_FromDouble(__pyx_t_21); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_3); +            if (PyObject_SetItem(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2), __pyx_v_index, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;            } -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;          }          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        goto __pyx_L14_try_end; -        __pyx_L7_error:; +        goto __pyx_L16_try_end; +        __pyx_L9_error:;          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; -        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":273   *  @@ -15485,57 +14420,57 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   */          /*except:*/ {            __Pyx_AddTraceback("_sa.BiLex.read_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_1); +          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_2);            __Pyx_GOTREF(__pyx_t_3); -          __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_10); -          __Pyx_INCREF(__pyx_t_1); -          PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); -          __Pyx_GIVEREF(__pyx_t_1); +          __Pyx_GOTREF(__pyx_t_1); +          __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_10));            __Pyx_INCREF(__pyx_t_2); -          PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_2); +          PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_2);            __Pyx_GIVEREF(__pyx_t_2);            __Pyx_INCREF(__pyx_t_3); -          PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_3); +          PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_3);            __Pyx_GIVEREF(__pyx_t_3); +          __Pyx_INCREF(__pyx_t_1); +          PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_1); +          __Pyx_GIVEREF(__pyx_t_1);            __pyx_t_22 = PyObject_Call(__pyx_t_4, __pyx_t_10, NULL);            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_22);            __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_22);            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; -          if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __pyx_t_23 = (!__pyx_t_16);            if (__pyx_t_23) { -            __Pyx_GIVEREF(__pyx_t_1);              __Pyx_GIVEREF(__pyx_t_2);              __Pyx_GIVEREF(__pyx_t_3); -            __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_3); -            __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0;  -            {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -            goto __pyx_L30; +            __Pyx_GIVEREF(__pyx_t_1); +            __Pyx_ErrRestore(__pyx_t_2, __pyx_t_3, __pyx_t_1); +            __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_1 = 0;  +            {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +            goto __pyx_L31;            } -          __pyx_L30:; +          __pyx_L31:;            __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; -          __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; -          goto __pyx_L8_exception_handled; +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          goto __pyx_L10_exception_handled;          } -        __pyx_L9_except_error:; +        __pyx_L11_except_error:;          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6);          __Pyx_XGIVEREF(__pyx_t_7);          __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);          goto __pyx_L1_error; -        __pyx_L8_exception_handled:; +        __pyx_L10_exception_handled:;          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6);          __Pyx_XGIVEREF(__pyx_t_7);          __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); -        __pyx_L14_try_end:; +        __pyx_L16_try_end:;        }      }      /*finally:*/ { @@ -15549,12 +14484,13 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_          if (unlikely(__pyx_t_23 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }      } -    goto __pyx_L31; -    __pyx_L3_error:; +    goto __pyx_L32; +    __pyx_L5_error:;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      goto __pyx_L1_error; -    __pyx_L31:; +    __pyx_L32:;    } +  if (unlikely(!__pyx_v_n_f)) { __Pyx_RaiseUnboundLocalError("n_f"); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_19 = __Pyx_PyInt_AsLong(__pyx_v_n_f); if (unlikely((__pyx_t_19 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":309   *  @@ -15563,14 +14499,12 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *             i = self.f_index.arr[b]   *             j = self.f_index.arr[b+1]   */ -  if (unlikely(!__pyx_v_n_f)) { __Pyx_RaiseUnboundLocalError("n_f"); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -  __pyx_t_19 = __Pyx_PyInt_AsLong(__pyx_v_n_f); if (unlikely((__pyx_t_19 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_19; __pyx_t_18++) { -    __pyx_t_3 = PyInt_FromLong(__pyx_t_18); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __pyx_t_1 = PyInt_FromLong(__pyx_t_18); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_1);      __Pyx_XDECREF(__pyx_v_b); -    __pyx_v_b = __pyx_t_3; -    __pyx_t_3 = 0; +    __pyx_v_b = __pyx_t_1; +    __pyx_t_1 = 0;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":310   *         # Sort buckets by eword @@ -15580,11 +14514,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *             self.qsort(i,j, "")   */      __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_b); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_3 = PyInt_FromLong((__pyx_v_self->f_index->arr[__pyx_t_8])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __pyx_t_1 = PyInt_FromLong((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index->arr[__pyx_t_8])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_1);      __Pyx_XDECREF(__pyx_v_i); -    __pyx_v_i = __pyx_t_3; -    __pyx_t_3 = 0; +    __pyx_v_i = __pyx_t_1; +    __pyx_t_1 = 0;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":311   *         for b from 0 <= b < n_f: @@ -15593,15 +14527,15 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *             self.qsort(i,j, "")   *    */ -    __pyx_t_3 = PyNumber_Add(__pyx_v_b, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    __pyx_t_3 = PyInt_FromLong((__pyx_v_self->f_index->arr[__pyx_t_8])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __pyx_t_1 = PyNumber_Add(__pyx_v_b, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_1); +    __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[5]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +    __pyx_t_1 = PyInt_FromLong((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index->arr[__pyx_t_8])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_1);      __Pyx_XDECREF(__pyx_v_j); -    __pyx_v_j = __pyx_t_3; -    __pyx_t_3 = 0; +    __pyx_v_j = __pyx_t_1; +    __pyx_t_1 = 0;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":312   *             i = self.f_index.arr[b] @@ -15612,12 +14546,12 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   */      __pyx_t_20 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_20 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_t_24 = __Pyx_PyInt_AsInt(__pyx_v_j); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_3 = ((PyObject *)__pyx_kp_s_45); -    __Pyx_INCREF(__pyx_t_3); -    __pyx_t_2 = ((struct __pyx_vtabstruct_3_sa_BiLex *)__pyx_v_self->__pyx_vtab)->qsort(__pyx_v_self, __pyx_t_20, __pyx_t_24, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __pyx_t_1 = ((PyObject *)__pyx_kp_s_45); +    __Pyx_INCREF(__pyx_t_1); +    __pyx_t_3 = ((struct __pyx_vtabstruct_3_sa_BiLex *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->__pyx_vtab)->qsort(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), __pyx_t_20, __pyx_t_24, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 312; __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; -    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __pyx_t_18 = __Pyx_PyInt_AsLong(__pyx_v_b); if (unlikely((__pyx_t_18 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } @@ -15628,11 +14562,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_10read_text(struct __pyx_obj_3_sa_BiLex *_   *             i = self.f_index.arr[b]   *             j = self.f_index.arr[b+1]   */ -  __pyx_t_2 = PyInt_FromLong(__pyx_t_18); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __pyx_t_3 = PyInt_FromLong(__pyx_t_18); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_3);    __Pyx_XDECREF(__pyx_v_b); -  __pyx_v_b = __pyx_t_2; -  __pyx_t_2 = 0; +  __pyx_v_b = __pyx_t_3; +  __pyx_t_3 = 0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -15681,7 +14615,7 @@ static PyObject *__pyx_f_3_sa_5BiLex_swap(struct __pyx_obj_3_sa_BiLex *__pyx_v_s    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("swap", 0); +  __Pyx_RefNannySetupContext("swap");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":319   *         cdef float ftmp @@ -15816,7 +14750,7 @@ static PyObject *__pyx_f_3_sa_5BiLex_qsort(struct __pyx_obj_3_sa_BiLex *__pyx_v_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("qsort", 0); +  __Pyx_RefNannySetupContext("qsort");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":338   *         cdef int pval, p @@ -16026,27 +14960,6 @@ static PyObject *__pyx_f_3_sa_5BiLex_qsort(struct __pyx_obj_3_sa_BiLex *__pyx_v_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_5BiLex_13write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_5BiLex_13write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_enhanced (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.BiLex.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_5BiLex_12write_enhanced(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":358   *    *  @@ -16055,7 +14968,9 @@ static PyObject *__pyx_pw_3_sa_5BiLex_13write_enhanced(PyObject *__pyx_v_self, P   *             for i in self.f_index:   */ -static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_5BiLex_6write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_5BiLex_6write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_v_f = NULL;    PyObject *__pyx_v_i = NULL;    PyObject *__pyx_v_s1 = NULL; @@ -16069,9 +14984,9 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL    PyObject *__pyx_t_4 = NULL;    PyObject *__pyx_t_5 = NULL;    PyObject *__pyx_t_6 = NULL; -  PyObject *__pyx_t_7 = NULL; -  Py_ssize_t __pyx_t_8; -  PyObject *(*__pyx_t_9)(PyObject *); +  Py_ssize_t __pyx_t_7; +  PyObject *(*__pyx_t_8)(PyObject *); +  PyObject *__pyx_t_9 = NULL;    PyObject *__pyx_t_10 = NULL;    PyObject *__pyx_t_11 = NULL;    PyObject *__pyx_t_12 = NULL; @@ -16082,7 +14997,16 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_enhanced", 0); +  __Pyx_RefNannySetupContext("write_enhanced"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.BiLex.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":359   *  @@ -16095,7 +15019,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL      __pyx_t_1 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));      __Pyx_INCREF(((PyObject *)__pyx_n_s__w)); @@ -16107,22 +15031,21 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;      __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L5_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L3_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_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L5_error;} +    __Pyx_GOTREF(__pyx_t_1); +    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      /*try:*/ {        { -        __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); +        __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); +        __Pyx_XGOTREF(__pyx_t_4);          __Pyx_XGOTREF(__pyx_t_5);          __Pyx_XGOTREF(__pyx_t_6); -        __Pyx_XGOTREF(__pyx_t_7);          /*try:*/ { -          __Pyx_INCREF(__pyx_t_4); -          __pyx_v_f = __pyx_t_4; -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __pyx_v_f = __pyx_t_1; +          __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":360   *     def write_enhanced(self, char* filename): @@ -16131,43 +15054,35 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *                 f.write("%d " % i)   *             f.write("\n")   */ -          if (PyList_CheckExact(((PyObject *)__pyx_v_self->f_index)) || PyTuple_CheckExact(((PyObject *)__pyx_v_self->f_index))) { -            __pyx_t_4 = ((PyObject *)__pyx_v_self->f_index); __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0; -            __pyx_t_9 = NULL; +          if (PyList_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index)) || PyTuple_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index))) { +            __pyx_t_1 = ((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index); __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; +            __pyx_t_8 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(((PyObject *)__pyx_v_self->f_index)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); -            __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; +            __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext;            }            for (;;) { -            if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_4)) { -              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif -            } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_4)) { -              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_1)) { +              if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; +              __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; +            } else if (PyTuple_CheckExact(__pyx_t_1)) { +              if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +              __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++;              } else { -              __pyx_t_1 = __pyx_t_9(__pyx_t_4); -              if (unlikely(!__pyx_t_1)) { +              __pyx_t_2 = __pyx_t_8(__pyx_t_1); +              if (unlikely(!__pyx_t_2)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } -              __Pyx_GOTREF(__pyx_t_1); +              __Pyx_GOTREF(__pyx_t_2);              }              __Pyx_XDECREF(__pyx_v_i); -            __pyx_v_i = __pyx_t_1; -            __pyx_t_1 = 0; +            __pyx_v_i = __pyx_t_2; +            __pyx_t_2 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":361   *         with open(filename, "w") as f: @@ -16176,22 +15091,22 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *             f.write("\n")   *             for i, s1, s2 in zip(self.e_index, self.col1, self.col2):   */ -            __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(((PyObject *)__pyx_t_2)); -            __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_10); -            PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_t_2)); -            __Pyx_GIVEREF(((PyObject *)__pyx_t_2)); -            __pyx_t_2 = 0; -            __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_2); -            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -            __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; +            __pyx_t_9 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_i); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_9)); +            __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_10)); +            PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_t_9)); +            __Pyx_GIVEREF(((PyObject *)__pyx_t_9)); +            __pyx_t_9 = 0; +            __pyx_t_9 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_9);              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +            __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; +            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            } -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":362   *             for i in self.f_index: @@ -16200,12 +15115,12 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *             for i, s1, s2 in zip(self.e_index, self.col1, self.col2):   *                 f.write("%d %f %f " % (i, s1, s2))   */ -          __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_4); -          __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_49), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_2); -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_1); +          __pyx_t_9 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_49), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_9); +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":363   *                 f.write("%d " % i) @@ -16214,116 +15129,100 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *                 f.write("%d %f %f " % (i, s1, s2))   *             f.write("\n")   */ -          __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_2); -          __Pyx_INCREF(((PyObject *)__pyx_v_self->e_index)); -          PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->e_index)); -          __Pyx_GIVEREF(((PyObject *)__pyx_v_self->e_index)); -          __Pyx_INCREF(((PyObject *)__pyx_v_self->col1)); -          PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->col1)); -          __Pyx_GIVEREF(((PyObject *)__pyx_v_self->col1)); -          __Pyx_INCREF(((PyObject *)__pyx_v_self->col2)); -          PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->col2)); -          __Pyx_GIVEREF(((PyObject *)__pyx_v_self->col2)); -          __pyx_t_4 = PyObject_Call(__pyx_builtin_zip, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_4); -          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; -          if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) { -            __pyx_t_2 = __pyx_t_4; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0; -            __pyx_t_9 = NULL; +          __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_9)); +          __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index)); +          PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index)); +          __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index)); +          __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1)); +          PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1)); +          __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1)); +          __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2)); +          PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2)); +          __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2)); +          __pyx_t_1 = PyObject_Call(__pyx_builtin_zip, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_1); +          __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; +          if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) { +            __pyx_t_9 = __pyx_t_1; __Pyx_INCREF(__pyx_t_9); __pyx_t_7 = 0; +            __pyx_t_8 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; +            __pyx_t_7 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_9); +            __pyx_t_8 = Py_TYPE(__pyx_t_9)->tp_iternext;            } -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            for (;;) { -            if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_2)) { -              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif -            } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_2)) { -              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_9)) { +              if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_9)) break; +              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; +            } else if (PyTuple_CheckExact(__pyx_t_9)) { +              if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_9)) break; +              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++;              } else { -              __pyx_t_4 = __pyx_t_9(__pyx_t_2); -              if (unlikely(!__pyx_t_4)) { +              __pyx_t_1 = __pyx_t_8(__pyx_t_9); +              if (unlikely(!__pyx_t_1)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } -              __Pyx_GOTREF(__pyx_t_4); +              __Pyx_GOTREF(__pyx_t_1);              } -            if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { -              PyObject* sequence = __pyx_t_4; -              #if CYTHON_COMPILING_IN_CPYTHON -              Py_ssize_t size = Py_SIZE(sequence); -              #else -              Py_ssize_t size = PySequence_Size(sequence); -              #endif -              if (unlikely(size != 3)) { -                if (size > 3) __Pyx_RaiseTooManyValuesError(3); -                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              } -              #if CYTHON_COMPILING_IN_CPYTHON +            if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { +              PyObject* sequence = __pyx_t_1;                if (likely(PyTuple_CheckExact(sequence))) { +                if (unlikely(PyTuple_GET_SIZE(sequence) != 3)) { +                  if (PyTuple_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3); +                  else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                  {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +                }                  __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0);  -                __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1);  +                __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);                   __pyx_t_11 = PyTuple_GET_ITEM(sequence, 2);                 } else { +                if (unlikely(PyList_GET_SIZE(sequence) != 3)) { +                  if (PyList_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3); +                  else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                  {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +                }                  __pyx_t_10 = PyList_GET_ITEM(sequence, 0);  -                __pyx_t_1 = PyList_GET_ITEM(sequence, 1);  +                __pyx_t_2 = PyList_GET_ITEM(sequence, 1);                   __pyx_t_11 = PyList_GET_ITEM(sequence, 2);                 }                __Pyx_INCREF(__pyx_t_10); -              __Pyx_INCREF(__pyx_t_1); +              __Pyx_INCREF(__pyx_t_2);                __Pyx_INCREF(__pyx_t_11); -              #else -              __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __pyx_t_11 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif -              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -            } else -            { +              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +            } else {                Py_ssize_t index = -1; -              __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_12 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_GOTREF(__pyx_t_12); -              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;                __pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext; -              index = 0; __pyx_t_10 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_10)) goto __pyx_L20_unpacking_failed; +              index = 0; __pyx_t_10 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_10)) goto __pyx_L21_unpacking_failed;                __Pyx_GOTREF(__pyx_t_10); -              index = 1; __pyx_t_1 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_1)) goto __pyx_L20_unpacking_failed; -              __Pyx_GOTREF(__pyx_t_1); -              index = 2; __pyx_t_11 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L20_unpacking_failed; +              index = 1; __pyx_t_2 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_2)) goto __pyx_L21_unpacking_failed; +              __Pyx_GOTREF(__pyx_t_2); +              index = 2; __pyx_t_11 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L21_unpacking_failed;                __Pyx_GOTREF(__pyx_t_11); -              if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 3) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __pyx_t_13 = NULL; +              if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 3) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -              goto __pyx_L21_unpacking_done; -              __pyx_L20_unpacking_failed:; +              goto __pyx_L22_unpacking_done; +              __pyx_L21_unpacking_failed:;                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -              __pyx_t_13 = NULL; -              if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); -              {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __pyx_L21_unpacking_done:; +              if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +              if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); +              {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __pyx_L22_unpacking_done:;              }              __Pyx_XDECREF(__pyx_v_i);              __pyx_v_i = __pyx_t_10;              __pyx_t_10 = 0;              __Pyx_XDECREF(__pyx_v_s1); -            __pyx_v_s1 = __pyx_t_1; -            __pyx_t_1 = 0; +            __pyx_v_s1 = __pyx_t_2; +            __pyx_t_2 = 0;              __Pyx_XDECREF(__pyx_v_s2);              __pyx_v_s2 = __pyx_t_11;              __pyx_t_11 = 0; @@ -16335,10 +15234,10 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *             f.write("\n")   *             for i, w in enumerate(self.id2fword):   */ -            __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); -            __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_11); +            __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_11));              __Pyx_INCREF(__pyx_v_i);              PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_i);              __Pyx_GIVEREF(__pyx_v_i); @@ -16348,21 +15247,21 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL              __Pyx_INCREF(__pyx_v_s2);              PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_v_s2);              __Pyx_GIVEREF(__pyx_v_s2); -            __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_50), ((PyObject *)__pyx_t_11)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(((PyObject *)__pyx_t_1)); -            __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; -            __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_11); -            PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_t_1)); -            __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); -            __pyx_t_1 = 0; -            __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); -            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +            __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_50), ((PyObject *)__pyx_t_11)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_2));              __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; +            __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_11)); +            PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_t_2)); +            __Pyx_GIVEREF(((PyObject *)__pyx_t_2)); +            __pyx_t_2 = 0; +            __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2);              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +            __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0; +            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;            } -          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":365   *             for i, s1, s2 in zip(self.e_index, self.col1, self.col2): @@ -16371,12 +15270,12 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *             for i, w in enumerate(self.id2fword):   *                 f.write("%d %s " % (i, w))   */ -          __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_9 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_9); +          __pyx_t_2 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_k_tuple_51), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_2); -          __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_51), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_1); +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":366   *                 f.write("%d %f %f " % (i, s1, s2)) @@ -16386,36 +15285,28 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *             f.write("\n")   */            __Pyx_INCREF(__pyx_int_0); -          __pyx_t_1 = __pyx_int_0; -          if (PyList_CheckExact(__pyx_v_self->id2fword) || PyTuple_CheckExact(__pyx_v_self->id2fword)) { -            __pyx_t_2 = __pyx_v_self->id2fword; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0; -            __pyx_t_9 = NULL; +          __pyx_t_2 = __pyx_int_0; +          if (PyList_CheckExact(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword) || PyTuple_CheckExact(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword)) { +            __pyx_t_9 = ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword; __Pyx_INCREF(__pyx_t_9); __pyx_t_7 = 0; +            __pyx_t_8 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_self->id2fword); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; +            __pyx_t_7 = -1; __pyx_t_9 = PyObject_GetIter(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_9); +            __pyx_t_8 = Py_TYPE(__pyx_t_9)->tp_iternext;            }            for (;;) { -            if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_2)) { -              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_11 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_11); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_11 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif -            } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_2)) { -              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_11); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_11 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_9)) { +              if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_9)) break; +              __pyx_t_11 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_7); __Pyx_INCREF(__pyx_t_11); __pyx_t_7++; +            } else if (PyTuple_CheckExact(__pyx_t_9)) { +              if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_9)) break; +              __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_7); __Pyx_INCREF(__pyx_t_11); __pyx_t_7++;              } else { -              __pyx_t_11 = __pyx_t_9(__pyx_t_2); +              __pyx_t_11 = __pyx_t_8(__pyx_t_9);                if (unlikely(!__pyx_t_11)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } @@ -16424,13 +15315,13 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL              __Pyx_XDECREF(__pyx_v_w);              __pyx_v_w = __pyx_t_11;              __pyx_t_11 = 0; -            __Pyx_INCREF(__pyx_t_1); +            __Pyx_INCREF(__pyx_t_2);              __Pyx_XDECREF(__pyx_v_i); -            __pyx_v_i = __pyx_t_1; -            __pyx_t_11 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_v_i = __pyx_t_2; +            __pyx_t_11 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_11); -            __Pyx_DECREF(__pyx_t_1); -            __pyx_t_1 = __pyx_t_11; +            __Pyx_DECREF(__pyx_t_2); +            __pyx_t_2 = __pyx_t_11;              __pyx_t_11 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":367 @@ -16440,32 +15331,32 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *             f.write("\n")   *             for i, w in enumerate(self.id2eword):   */ -            __pyx_t_11 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_11 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_11); -            __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); +            __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_1));              __Pyx_INCREF(__pyx_v_i); -            PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_i); +            PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_i);              __Pyx_GIVEREF(__pyx_v_i);              __Pyx_INCREF(__pyx_v_w); -            PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_w); +            PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_w);              __Pyx_GIVEREF(__pyx_v_w); -            __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_52), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_52), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(((PyObject *)__pyx_t_10)); -            __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; -            __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); -            PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_10)); +            __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; +            __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_1)); +            PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_10));              __Pyx_GIVEREF(((PyObject *)__pyx_t_10));              __pyx_t_10 = 0; -            __pyx_t_10 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_10 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_10);              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -            __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; +            __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;            } +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":368   *             for i, w in enumerate(self.id2fword): @@ -16474,12 +15365,12 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *             for i, w in enumerate(self.id2eword):   *                 f.write("%d %s " % (i, w))   */ -          __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_1); -          __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_53), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_2); -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __pyx_t_9 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_53), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_9);            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":369   *                 f.write("%d %s " % (i, w)) @@ -16489,36 +15380,28 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *             f.write("\n")   */            __Pyx_INCREF(__pyx_int_0); -          __pyx_t_2 = __pyx_int_0; -          if (PyList_CheckExact(__pyx_v_self->id2eword) || PyTuple_CheckExact(__pyx_v_self->id2eword)) { -            __pyx_t_1 = __pyx_v_self->id2eword; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0; -            __pyx_t_9 = NULL; +          __pyx_t_9 = __pyx_int_0; +          if (PyList_CheckExact(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword) || PyTuple_CheckExact(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword)) { +            __pyx_t_2 = ((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0; +            __pyx_t_8 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_self->id2eword); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; +            __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2); +            __pyx_t_8 = Py_TYPE(__pyx_t_2)->tp_iternext;            }            for (;;) { -            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_10 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L7_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_10 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_2)) { +              if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_10 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_10); __pyx_t_7++; +            } else if (PyTuple_CheckExact(__pyx_t_2)) { +              if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_10); __pyx_t_7++;              } else { -              __pyx_t_10 = __pyx_t_9(__pyx_t_1); +              __pyx_t_10 = __pyx_t_8(__pyx_t_2);                if (unlikely(!__pyx_t_10)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[5]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } @@ -16527,13 +15410,13 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL              __Pyx_XDECREF(__pyx_v_w);              __pyx_v_w = __pyx_t_10;              __pyx_t_10 = 0; -            __Pyx_INCREF(__pyx_t_2); +            __Pyx_INCREF(__pyx_t_9);              __Pyx_XDECREF(__pyx_v_i); -            __pyx_v_i = __pyx_t_2; -            __pyx_t_10 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_v_i = __pyx_t_9; +            __pyx_t_10 = PyNumber_Add(__pyx_t_9, __pyx_int_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_10); -            __Pyx_DECREF(__pyx_t_2); -            __pyx_t_2 = __pyx_t_10; +            __Pyx_DECREF(__pyx_t_9); +            __pyx_t_9 = __pyx_t_10;              __pyx_t_10 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":370 @@ -16543,32 +15426,32 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *             f.write("\n")   *    */ -            __pyx_t_10 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_10 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_10); -            __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); +            __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_1));              __Pyx_INCREF(__pyx_v_i); -            PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_i); +            PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_i);              __Pyx_GIVEREF(__pyx_v_i);              __Pyx_INCREF(__pyx_v_w); -            PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_w); +            PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_w);              __Pyx_GIVEREF(__pyx_v_w); -            __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_52), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_52), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(((PyObject *)__pyx_t_11)); -            __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; -            __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); -            PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_11)); +            __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; +            __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_1)); +            PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_11));              __Pyx_GIVEREF(((PyObject *)__pyx_t_11));              __pyx_t_11 = 0; -            __pyx_t_11 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_11 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_11);              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -            __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; +            __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;            } -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":371   *             for i, w in enumerate(self.id2eword): @@ -16577,24 +15460,24 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   *    *    */ -          __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_9 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_9); +          __pyx_t_2 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_k_tuple_54), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_2); -          __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_54), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_1); +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          } +        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; -        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        goto __pyx_L14_try_end; -        __pyx_L7_error:; +        goto __pyx_L16_try_end; +        __pyx_L9_error:;          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; -        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; -        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":359   *  @@ -16605,75 +15488,75 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL   */          /*except:*/ {            __Pyx_AddTraceback("_sa.BiLex.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); -          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_1); +          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_9, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_2); +          __Pyx_GOTREF(__pyx_t_9);            __Pyx_GOTREF(__pyx_t_11); -          __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_4); -          __Pyx_INCREF(__pyx_t_1); -          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); -          __Pyx_GIVEREF(__pyx_t_1); +          __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_1));            __Pyx_INCREF(__pyx_t_2); -          PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); +          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);            __Pyx_GIVEREF(__pyx_t_2); +          __Pyx_INCREF(__pyx_t_9); +          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_9); +          __Pyx_GIVEREF(__pyx_t_9);            __Pyx_INCREF(__pyx_t_11); -          PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_11); +          PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_11);            __Pyx_GIVEREF(__pyx_t_11); -          __pyx_t_15 = PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); +          __pyx_t_15 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL);            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -          if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_15);            __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_15);            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -          if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __pyx_t_16 = (!__pyx_t_14);            if (__pyx_t_16) { -            __Pyx_GIVEREF(__pyx_t_1);              __Pyx_GIVEREF(__pyx_t_2); +            __Pyx_GIVEREF(__pyx_t_9);              __Pyx_GIVEREF(__pyx_t_11); -            __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_11); -            __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_11 = 0;  -            {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -            goto __pyx_L28; +            __Pyx_ErrRestore(__pyx_t_2, __pyx_t_9, __pyx_t_11); +            __pyx_t_2 = 0; __pyx_t_9 = 0; __pyx_t_11 = 0;  +            {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +            goto __pyx_L29;            } -          __pyx_L28:; -          __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __pyx_L29:; +          __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -          goto __pyx_L8_exception_handled; +          goto __pyx_L10_exception_handled;          } -        __pyx_L9_except_error:; +        __pyx_L11_except_error:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);          goto __pyx_L1_error; -        __pyx_L8_exception_handled:; +        __pyx_L10_exception_handled:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); -        __pyx_L14_try_end:; +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); +        __pyx_L16_try_end:;        }      }      /*finally:*/ {        if (__pyx_t_3) { -        __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_55, NULL); +        __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_55, NULL);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_7); -        __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_7); -        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +        if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_6); +        __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_6); +        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;          if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }      } -    goto __pyx_L29; -    __pyx_L3_error:; +    goto __pyx_L30; +    __pyx_L5_error:;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      goto __pyx_L1_error; -    __pyx_L29:; +    __pyx_L30:;    }    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -16681,7 +15564,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1);    __Pyx_XDECREF(__pyx_t_2); -  __Pyx_XDECREF(__pyx_t_4); +  __Pyx_XDECREF(__pyx_t_9);    __Pyx_XDECREF(__pyx_t_10);    __Pyx_XDECREF(__pyx_t_11);    __Pyx_XDECREF(__pyx_t_12); @@ -16698,22 +15581,41 @@ static PyObject *__pyx_pf_3_sa_5BiLex_12write_enhanced(struct __pyx_obj_3_sa_BiL    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_5BiLex_15get_score(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_5BiLex_15get_score(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":374 + *  + *  + *     def get_score(self, fword, eword, col):             # <<<<<<<<<<<<<< + *         cdef e_id, f_id, low, high, midpoint, val + *  + */ + +static PyObject *__pyx_pf_3_sa_5BiLex_7get_score(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_5BiLex_7get_score(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_fword = 0;    PyObject *__pyx_v_eword = 0;    PyObject *__pyx_v_col = 0; -  PyObject *__pyx_r = 0; +  PyObject *__pyx_v_e_id = 0; +  PyObject *__pyx_v_f_id = 0; +  PyObject *__pyx_v_low = 0; +  PyObject *__pyx_v_high = 0; +  PyObject *__pyx_v_midpoint = 0; +  PyObject *__pyx_v_val = 0; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_score (wrapper)", 0); +  int __pyx_t_1; +  PyObject *__pyx_t_2 = NULL; +  Py_ssize_t __pyx_t_3; +  PyObject *__pyx_t_4 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fword,&__pyx_n_s__eword,&__pyx_n_s__col,0}; +  __Pyx_RefNannySetupContext("get_score");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fword,&__pyx_n_s__eword,&__pyx_n_s__col,0};      PyObject* values[3] = {0,0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); @@ -16721,23 +15623,26 @@ static PyObject *__pyx_pw_3_sa_5BiLex_15get_score(PyObject *__pyx_v_self, PyObje          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fword)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fword); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__eword)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__eword); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("get_score", 1, 3, 3, 1); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2: -        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__col)) != 0)) kw_args--; +        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__col); +        if (likely(values[2])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("get_score", 1, 3, 3, 2); {__pyx_filename = __pyx_f[5]; __pyx_lineno = 374; __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_score") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "get_score") < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -16758,36 +15663,6 @@ static PyObject *__pyx_pw_3_sa_5BiLex_15get_score(PyObject *__pyx_v_self, PyObje    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_5BiLex_14get_score(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), __pyx_v_fword, __pyx_v_eword, __pyx_v_col); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":374 - *  - *  - *     def get_score(self, fword, eword, col):             # <<<<<<<<<<<<<< - *         cdef e_id, f_id, low, high, midpoint, val - *  - */ - -static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, PyObject *__pyx_v_fword, PyObject *__pyx_v_eword, PyObject *__pyx_v_col) { -  PyObject *__pyx_v_e_id = 0; -  PyObject *__pyx_v_f_id = 0; -  PyObject *__pyx_v_low = 0; -  PyObject *__pyx_v_high = 0; -  PyObject *__pyx_v_midpoint = 0; -  PyObject *__pyx_v_val = 0; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  int __pyx_t_1; -  PyObject *__pyx_t_2 = NULL; -  Py_ssize_t __pyx_t_3; -  PyObject *__pyx_t_4 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_score", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":377   *         cdef e_id, f_id, low, high, midpoint, val @@ -16796,7 +15671,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   *             return None   *         if fword not in self.fword2id:   */ -  __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_v_eword, __pyx_v_self->eword2id, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = (__Pyx_NegateNonNeg(PySequence_Contains(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->eword2id, __pyx_v_eword))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_1) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":378 @@ -16810,9 +15685,9 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_      __Pyx_INCREF(Py_None);      __pyx_r = Py_None;      goto __pyx_L0; -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":379   *         if eword not in self.eword2id: @@ -16821,7 +15696,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   *             return None   *         f_id = self.fword2id[fword]   */ -  __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_v_fword, __pyx_v_self->fword2id, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = (__Pyx_NegateNonNeg(PySequence_Contains(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->fword2id, __pyx_v_fword))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_1) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":380 @@ -16835,9 +15710,9 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_      __Pyx_INCREF(Py_None);      __pyx_r = Py_None;      goto __pyx_L0; -    goto __pyx_L4; +    goto __pyx_L7;    } -  __pyx_L4:; +  __pyx_L7:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":381   *         if fword not in self.fword2id: @@ -16846,7 +15721,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   *         e_id = self.eword2id[eword]   *         low = self.f_index.arr[f_id]   */ -  __pyx_t_2 = PyObject_GetItem(__pyx_v_self->fword2id, __pyx_v_fword); if (!__pyx_t_2) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_GetItem(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->fword2id, __pyx_v_fword); if (!__pyx_t_2) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_v_f_id = __pyx_t_2;    __pyx_t_2 = 0; @@ -16858,7 +15733,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   *         low = self.f_index.arr[f_id]   *         high = self.f_index.arr[f_id+1]   */ -  __pyx_t_2 = PyObject_GetItem(__pyx_v_self->eword2id, __pyx_v_eword); if (!__pyx_t_2) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_GetItem(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->eword2id, __pyx_v_eword); if (!__pyx_t_2) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_v_e_id = __pyx_t_2;    __pyx_t_2 = 0; @@ -16871,7 +15746,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   *         while high - low > 0:   */    __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_v_f_id); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong((__pyx_v_self->f_index->arr[__pyx_t_3])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index->arr[__pyx_t_3])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_v_low = __pyx_t_2;    __pyx_t_2 = 0; @@ -16887,7 +15762,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_    __Pyx_GOTREF(__pyx_t_2);    __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  __pyx_t_2 = PyInt_FromLong((__pyx_v_self->f_index->arr[__pyx_t_3])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index->arr[__pyx_t_3])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_v_high = __pyx_t_2;    __pyx_t_2 = 0; @@ -16902,7 +15777,8 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_    while (1) {      __pyx_t_2 = PyNumber_Subtract(__pyx_v_high, __pyx_v_low); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_int_0, Py_GT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -16932,7 +15808,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   *                 if col == 0:   */      __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_v_midpoint); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_2 = PyInt_FromLong((__pyx_v_self->e_index->arr[__pyx_t_3])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index->arr[__pyx_t_3])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_XDECREF(__pyx_v_val);      __pyx_v_val = __pyx_t_2; @@ -16945,7 +15821,8 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   *                 if col == 0:   *                     return self.col1.arr[midpoint]   */ -    __pyx_t_2 = PyObject_RichCompare(__pyx_v_val, __pyx_v_e_id, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyObject_RichCompare(__pyx_v_val, __pyx_v_e_id, Py_EQ); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_2);      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      if (__pyx_t_1) { @@ -16957,7 +15834,8 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   *                     return self.col1.arr[midpoint]   *                 if col == 1:   */ -      __pyx_t_2 = PyObject_RichCompare(__pyx_v_col, __pyx_int_0, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyObject_RichCompare(__pyx_v_col, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_2);        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        if (__pyx_t_1) { @@ -16971,14 +15849,14 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   */          __Pyx_XDECREF(__pyx_r);          __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_v_midpoint); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->col1->arr[__pyx_t_3])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = PyFloat_FromDouble((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1->arr[__pyx_t_3])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_2);          __pyx_r = __pyx_t_2;          __pyx_t_2 = 0;          goto __pyx_L0; -        goto __pyx_L8; +        goto __pyx_L11;        } -      __pyx_L8:; +      __pyx_L11:;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":391   *                 if col == 0: @@ -16987,7 +15865,8 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   *                     return self.col2.arr[midpoint]   *             if val > e_id:   */ -      __pyx_t_2 = PyObject_RichCompare(__pyx_v_col, __pyx_int_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyObject_RichCompare(__pyx_v_col, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_2);        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        if (__pyx_t_1) { @@ -17001,17 +15880,17 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   */          __Pyx_XDECREF(__pyx_r);          __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_v_midpoint); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->col2->arr[__pyx_t_3])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = PyFloat_FromDouble((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2->arr[__pyx_t_3])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_2);          __pyx_r = __pyx_t_2;          __pyx_t_2 = 0;          goto __pyx_L0; -        goto __pyx_L9; +        goto __pyx_L12;        } -      __pyx_L9:; -      goto __pyx_L7; +      __pyx_L12:; +      goto __pyx_L10;      } -    __pyx_L7:; +    __pyx_L10:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":393   *                 if col == 1: @@ -17020,7 +15899,8 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   *                 high = midpoint   *             if val < e_id:   */ -    __pyx_t_2 = PyObject_RichCompare(__pyx_v_val, __pyx_v_e_id, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyObject_RichCompare(__pyx_v_val, __pyx_v_e_id, Py_GT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_2);      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      if (__pyx_t_1) { @@ -17035,9 +15915,9 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_        __Pyx_INCREF(__pyx_v_midpoint);        __Pyx_DECREF(__pyx_v_high);        __pyx_v_high = __pyx_v_midpoint; -      goto __pyx_L10; +      goto __pyx_L13;      } -    __pyx_L10:; +    __pyx_L13:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":395   *             if val > e_id: @@ -17046,7 +15926,8 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_   *                 low = midpoint + 1   *         return None   */ -    __pyx_t_2 = PyObject_RichCompare(__pyx_v_val, __pyx_v_e_id, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyObject_RichCompare(__pyx_v_val, __pyx_v_e_id, Py_LT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_2);      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      if (__pyx_t_1) { @@ -17063,9 +15944,9 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_        __Pyx_DECREF(__pyx_v_low);        __pyx_v_low = __pyx_t_2;        __pyx_t_2 = 0; -      goto __pyx_L11; +      goto __pyx_L14;      } -    __pyx_L11:; +    __pyx_L14:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":397 @@ -17099,28 +15980,6 @@ static PyObject *__pyx_pf_3_sa_5BiLex_14get_score(struct __pyx_obj_3_sa_BiLex *_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_5BiLex_17write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static char __pyx_doc_3_sa_5BiLex_16write_text[] = "Note: does not guarantee writing the dictionary in the original order"; -static PyObject *__pyx_pw_3_sa_5BiLex_17write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_text (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.BiLex.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_5BiLex_16write_text(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":400   *    *  @@ -17129,7 +15988,10 @@ static PyObject *__pyx_pw_3_sa_5BiLex_17write_text(PyObject *__pyx_v_self, PyObj   *         cdef i, N, e_id, f_id   */ -static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_5BiLex_8write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static char __pyx_doc_3_sa_5BiLex_8write_text[] = "Note: does not guarantee writing the dictionary in the original order"; +static PyObject *__pyx_pf_3_sa_5BiLex_8write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_v_i = 0;    PyObject *__pyx_v_N = 0;    PyObject *__pyx_v_e_id = 0; @@ -17145,18 +16007,27 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *    PyObject *__pyx_t_4 = NULL;    PyObject *__pyx_t_5 = NULL;    PyObject *__pyx_t_6 = NULL; -  PyObject *__pyx_t_7 = NULL; -  Py_ssize_t __pyx_t_8; +  Py_ssize_t __pyx_t_7; +  long __pyx_t_8;    long __pyx_t_9; -  long __pyx_t_10; -  int __pyx_t_11; +  int __pyx_t_10; +  PyObject *__pyx_t_11 = NULL;    PyObject *__pyx_t_12 = NULL;    PyObject *__pyx_t_13 = NULL;    int __pyx_t_14;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_text", 0); +  __Pyx_RefNannySetupContext("write_text"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.BiLex.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":404   *         cdef i, N, e_id, f_id @@ -17169,7 +16040,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *      __pyx_t_1 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));      __Pyx_INCREF(((PyObject *)__pyx_n_s__w)); @@ -17181,22 +16052,21 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;      __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L5_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L3_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_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L5_error;} +    __Pyx_GOTREF(__pyx_t_1); +    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      /*try:*/ {        { -        __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); +        __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); +        __Pyx_XGOTREF(__pyx_t_4);          __Pyx_XGOTREF(__pyx_t_5);          __Pyx_XGOTREF(__pyx_t_6); -        __Pyx_XGOTREF(__pyx_t_7);          /*try:*/ { -          __Pyx_INCREF(__pyx_t_4); -          __pyx_v_f = __pyx_t_4; -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __pyx_v_f = __pyx_t_1; +          __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":405   *  @@ -17205,14 +16075,14 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *   *             f_id = 0   *             for i from 0 <= i < N:   */ -          __pyx_t_4 = ((PyObject *)__pyx_v_self->e_index); -          __Pyx_INCREF(__pyx_t_4); -          __pyx_t_8 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_4); -          __pyx_v_N = __pyx_t_4; -          __pyx_t_4 = 0; +          __pyx_t_1 = ((PyObject *)((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index); +          __Pyx_INCREF(__pyx_t_1); +          __pyx_t_7 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_1); +          __pyx_v_N = __pyx_t_1; +          __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":406   *         with open(filename, "w") as f: @@ -17231,13 +16101,13 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *   *                 while self.f_index.arr[f_id+1] == i:   *                     f_id = f_id + 1   */ -          __pyx_t_9 = __Pyx_PyInt_AsLong(__pyx_v_N); if (unlikely((__pyx_t_9 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10++) { -            __pyx_t_4 = PyInt_FromLong(__pyx_t_10); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); +          __pyx_t_8 = __Pyx_PyInt_AsLong(__pyx_v_N); if (unlikely((__pyx_t_8 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9++) { +            __pyx_t_1 = PyInt_FromLong(__pyx_t_9); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1);              __Pyx_XDECREF(__pyx_v_i); -            __pyx_v_i = __pyx_t_4; -            __pyx_t_4 = 0; +            __pyx_v_i = __pyx_t_1; +            __pyx_t_1 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":408   *             f_id = 0 @@ -17247,17 +16117,18 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *   *                 e_id = self.e_index.arr[i]   */              while (1) { -              __pyx_t_4 = PyNumber_Add(__pyx_v_f_id, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_4); -              __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -              __pyx_t_4 = PyInt_FromLong((__pyx_v_self->f_index->arr[__pyx_t_8])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_4); -              __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_v_i, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -              __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +              __pyx_t_1 = PyNumber_Add(__pyx_v_f_id, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_1); +              __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -              if (!__pyx_t_11) break; +              __pyx_t_1 = PyInt_FromLong((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->f_index->arr[__pyx_t_7])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_1); +              __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_i, Py_EQ); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_2); +              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +              __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +              if (!__pyx_t_10) break;                /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":409   *             for i from 0 <= i < N: @@ -17266,11 +16137,11 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *   *                 e_id = self.e_index.arr[i]   *                 score1 = self.col1.arr[i]   */ -              __pyx_t_1 = PyNumber_Add(__pyx_v_f_id, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              __Pyx_GOTREF(__pyx_t_1); +              __pyx_t_2 = PyNumber_Add(__pyx_v_f_id, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +              __Pyx_GOTREF(__pyx_t_2);                __Pyx_DECREF(__pyx_v_f_id); -              __pyx_v_f_id = __pyx_t_1; -              __pyx_t_1 = 0; +              __pyx_v_f_id = __pyx_t_2; +              __pyx_t_2 = 0;              }              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":410 @@ -17280,12 +16151,12 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *   *                 score1 = self.col1.arr[i]   *                 score2 = self.col2.arr[i]   */ -            __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 = 410; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __pyx_t_1 = PyInt_FromLong((__pyx_v_self->e_index->arr[__pyx_t_8])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->e_index->arr[__pyx_t_7])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2);              __Pyx_XDECREF(__pyx_v_e_id); -            __pyx_v_e_id = __pyx_t_1; -            __pyx_t_1 = 0; +            __pyx_v_e_id = __pyx_t_2; +            __pyx_t_2 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":411   *                     f_id = f_id + 1 @@ -17294,12 +16165,12 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *   *                 score2 = self.col2.arr[i]   *                 f.write("%s %s %.6f %.6f\n" % (self.id2fword[f_id], self.id2eword[e_id], score1, score2))   */ -            __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 = 411; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->col1->arr[__pyx_t_8])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __pyx_t_2 = PyFloat_FromDouble((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col1->arr[__pyx_t_7])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2);              __Pyx_XDECREF(__pyx_v_score1); -            __pyx_v_score1 = __pyx_t_1; -            __pyx_t_1 = 0; +            __pyx_v_score1 = __pyx_t_2; +            __pyx_t_2 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":412   *                 e_id = self.e_index.arr[i] @@ -17307,52 +16178,52 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *   *                 score2 = self.col2.arr[i]             # <<<<<<<<<<<<<<   *                 f.write("%s %s %.6f %.6f\n" % (self.id2fword[f_id], self.id2eword[e_id], score1, score2))   */ -            __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 = 412; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->col2->arr[__pyx_t_8])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __pyx_t_2 = PyFloat_FromDouble((((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->col2->arr[__pyx_t_7])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2);              __Pyx_XDECREF(__pyx_v_score2); -            __pyx_v_score2 = __pyx_t_1; -            __pyx_t_1 = 0; +            __pyx_v_score2 = __pyx_t_2; +            __pyx_t_2 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":413   *                 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))             # <<<<<<<<<<<<<<   */ -            __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_4 = PyObject_GetItem(__pyx_v_self->id2fword, __pyx_v_f_id); if (!__pyx_t_4) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); -            __pyx_t_2 = PyObject_GetItem(__pyx_v_self->id2eword, __pyx_v_e_id); if (!__pyx_t_2) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_2); -            __pyx_t_12 = PyTuple_New(4); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_12); -            PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); -            __Pyx_GIVEREF(__pyx_t_4); -            PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_2); -            __Pyx_GIVEREF(__pyx_t_2); +            __pyx_t_1 = PyObject_GetItem(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2fword, __pyx_v_f_id); if (!__pyx_t_1) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_11 = PyObject_GetItem(((struct __pyx_obj_3_sa_BiLex *)__pyx_v_self)->id2eword, __pyx_v_e_id); if (!__pyx_t_11) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_11); +            __pyx_t_12 = PyTuple_New(4); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_12)); +            PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1); +            __Pyx_GIVEREF(__pyx_t_1); +            PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_11); +            __Pyx_GIVEREF(__pyx_t_11);              __Pyx_INCREF(__pyx_v_score1);              PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_v_score1);              __Pyx_GIVEREF(__pyx_v_score1);              __Pyx_INCREF(__pyx_v_score2);              PyTuple_SET_ITEM(__pyx_t_12, 3, __pyx_v_score2);              __Pyx_GIVEREF(__pyx_v_score2); -            __pyx_t_4 = 0; -            __pyx_t_2 = 0; -            __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_56), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(((PyObject *)__pyx_t_2)); -            __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; -            __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_12); -            PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_t_2)); -            __Pyx_GIVEREF(((PyObject *)__pyx_t_2)); -            __pyx_t_2 = 0; -            __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +            __pyx_t_1 = 0; +            __pyx_t_11 = 0; +            __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_56), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_11));              __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; +            __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_12)); +            PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_t_11)); +            __Pyx_GIVEREF(((PyObject *)__pyx_t_11)); +            __pyx_t_11 = 0; +            __pyx_t_11 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_11);              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -            __pyx_t_10 = __Pyx_PyInt_AsLong(__pyx_v_i); if (unlikely((__pyx_t_10 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0; +            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +            __pyx_t_9 = __Pyx_PyInt_AsLong(__pyx_v_i); if (unlikely((__pyx_t_9 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            }            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":407 @@ -17362,21 +16233,21 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *   *                 while self.f_index.arr[f_id+1] == i:   *                     f_id = f_id + 1   */ -          __pyx_t_2 = PyInt_FromLong(__pyx_t_10); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_2); +          __pyx_t_11 = PyInt_FromLong(__pyx_t_9); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_11);            __Pyx_XDECREF(__pyx_v_i); -          __pyx_v_i = __pyx_t_2; -          __pyx_t_2 = 0; +          __pyx_v_i = __pyx_t_11; +          __pyx_t_11 = 0;          } +        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; -        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        goto __pyx_L14_try_end; -        __pyx_L7_error:; -        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +        goto __pyx_L16_try_end; +        __pyx_L9_error:;          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; -        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/bilex.pxi":404   *         cdef i, N, e_id, f_id @@ -17387,75 +16258,75 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *   */          /*except:*/ {            __Pyx_AddTraceback("_sa.BiLex.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_12, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_2); +          if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(__pyx_t_11);            __Pyx_GOTREF(__pyx_t_12); -          __Pyx_GOTREF(__pyx_t_1); -          __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __Pyx_GOTREF(__pyx_t_4); -          __Pyx_INCREF(__pyx_t_2); -          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); -          __Pyx_GIVEREF(__pyx_t_2); +          __Pyx_GOTREF(__pyx_t_2); +          __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_1)); +          __Pyx_INCREF(__pyx_t_11); +          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_11); +          __Pyx_GIVEREF(__pyx_t_11);            __Pyx_INCREF(__pyx_t_12); -          PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_12); +          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_12);            __Pyx_GIVEREF(__pyx_t_12); -          __Pyx_INCREF(__pyx_t_1); -          PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_1); -          __Pyx_GIVEREF(__pyx_t_1); -          __pyx_t_13 = PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); +          __Pyx_INCREF(__pyx_t_2); +          PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2); +          __Pyx_GIVEREF(__pyx_t_2); +          __pyx_t_13 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL);            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -          if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_13); -          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_13); +          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13);            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -          if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -          __pyx_t_14 = (!__pyx_t_11); +          if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __pyx_t_14 = (!__pyx_t_10);            if (__pyx_t_14) { -            __Pyx_GIVEREF(__pyx_t_2); +            __Pyx_GIVEREF(__pyx_t_11);              __Pyx_GIVEREF(__pyx_t_12); -            __Pyx_GIVEREF(__pyx_t_1); -            __Pyx_ErrRestore(__pyx_t_2, __pyx_t_12, __pyx_t_1); -            __pyx_t_2 = 0; __pyx_t_12 = 0; __pyx_t_1 = 0;  -            {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -            goto __pyx_L22; +            __Pyx_GIVEREF(__pyx_t_2); +            __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_2); +            __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_2 = 0;  +            {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +            goto __pyx_L23;            } -          __pyx_L22:; -          __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; -          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __pyx_L23:; +          __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; +          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          goto __pyx_L8_exception_handled; +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          goto __pyx_L10_exception_handled;          } -        __pyx_L9_except_error:; +        __pyx_L11_except_error:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);          goto __pyx_L1_error; -        __pyx_L8_exception_handled:; +        __pyx_L10_exception_handled:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); -        __pyx_L14_try_end:; +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); +        __pyx_L16_try_end:;        }      }      /*finally:*/ {        if (__pyx_t_3) { -        __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_57, NULL); +        __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_57, NULL);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_7); -        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); -        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +        if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_6); +        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_6); +        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;          if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }      } -    goto __pyx_L23; -    __pyx_L3_error:; +    goto __pyx_L24; +    __pyx_L5_error:;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      goto __pyx_L1_error; -    __pyx_L23:; +    __pyx_L24:;    }    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -17463,7 +16334,7 @@ static PyObject *__pyx_pf_3_sa_5BiLex_16write_text(struct __pyx_obj_3_sa_BiLex *    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1);    __Pyx_XDECREF(__pyx_t_2); -  __Pyx_XDECREF(__pyx_t_4); +  __Pyx_XDECREF(__pyx_t_11);    __Pyx_XDECREF(__pyx_t_12);    __Pyx_AddTraceback("_sa.BiLex.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL; @@ -17494,7 +16365,7 @@ static void __pyx_f_3_sa__init_lower_mask(void) {    __Pyx_RefNannyDeclarations    int __pyx_t_1;    unsigned int __pyx_t_2; -  __Pyx_RefNannySetupContext("_init_lower_mask", 0); +  __Pyx_RefNannySetupContext("_init_lower_mask");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":23   * cdef void _init_lower_mask(): @@ -17550,7 +16421,7 @@ static struct __pyx_t_3_sa__BitSet *__pyx_f_3_sa_new_BitSet(void) {    struct __pyx_t_3_sa__BitSet *__pyx_v_b;    struct __pyx_t_3_sa__BitSet *__pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("new_BitSet", 0); +  __Pyx_RefNannySetupContext("new_BitSet");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":40   *     cdef _BitSet* b @@ -17632,7 +16503,7 @@ static int __pyx_f_3_sa_bitset_findsucc(struct __pyx_t_3_sa__BitSet *__pyx_v_b,    int __pyx_t_1;    int __pyx_t_2;    int __pyx_t_3; -  __Pyx_RefNannySetupContext("bitset_findsucc", 0); +  __Pyx_RefNannySetupContext("bitset_findsucc");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":52   *     cdef int low, high, mid @@ -17814,7 +16685,7 @@ static int __pyx_f_3_sa_bitset_insert(struct __pyx_t_3_sa__BitSet *__pyx_v_b, in    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("bitset_insert", 0); +  __Pyx_RefNannySetupContext("bitset_insert");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":74   *     cdef int val @@ -17972,7 +16843,7 @@ static int __pyx_f_3_sa_bitset_contains(struct __pyx_t_3_sa__BitSet *__pyx_v_b,    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("bitset_contains", 0); +  __Pyx_RefNannySetupContext("bitset_contains");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":93   *     cdef int val @@ -18024,17 +16895,6 @@ static int __pyx_f_3_sa_bitset_contains(struct __pyx_t_3_sa__BitSet *__pyx_v_b,    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_14BitSetIterator_1__next__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_14BitSetIterator_1__next__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_14BitSetIterator___next__(((struct __pyx_obj_3_sa_BitSetIterator *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":104   *     cdef int next_val   *  @@ -18043,7 +16903,8 @@ static PyObject *__pyx_pw_3_sa_14BitSetIterator_1__next__(PyObject *__pyx_v_self   *    */ -static PyObject *__pyx_pf_3_sa_14BitSetIterator___next__(struct __pyx_obj_3_sa_BitSetIterator *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_14BitSetIterator___next__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_14BitSetIterator___next__(PyObject *__pyx_v_self) {    int __pyx_v_ret_val;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -18052,7 +16913,7 @@ static PyObject *__pyx_pf_3_sa_14BitSetIterator___next__(struct __pyx_obj_3_sa_B    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__next__", 0); +  __Pyx_RefNannySetupContext("__next__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":107   *         cdef int ret_val @@ -18061,7 +16922,7 @@ static PyObject *__pyx_pf_3_sa_14BitSetIterator___next__(struct __pyx_obj_3_sa_B   *             raise StopIteration()   *         ret_val = self.next_val   */ -  __pyx_t_1 = (__pyx_v_self->next_val == -1); +  __pyx_t_1 = (((struct __pyx_obj_3_sa_BitSetIterator *)__pyx_v_self)->next_val == -1);    if (__pyx_t_1) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":108 @@ -18076,9 +16937,9 @@ static PyObject *__pyx_pf_3_sa_14BitSetIterator___next__(struct __pyx_obj_3_sa_B      __Pyx_Raise(__pyx_t_2, 0, 0, 0);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    goto __pyx_L3; +    goto __pyx_L5;    } -  __pyx_L3:; +  __pyx_L5:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":109   *         if self.next_val == -1: @@ -18087,7 +16948,7 @@ static PyObject *__pyx_pf_3_sa_14BitSetIterator___next__(struct __pyx_obj_3_sa_B   *         self.next_val = bitset_findsucc(self.b, ret_val)   *         return ret_val   */ -  __pyx_v_ret_val = __pyx_v_self->next_val; +  __pyx_v_ret_val = ((struct __pyx_obj_3_sa_BitSetIterator *)__pyx_v_self)->next_val;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":110   *             raise StopIteration() @@ -18096,7 +16957,7 @@ static PyObject *__pyx_pf_3_sa_14BitSetIterator___next__(struct __pyx_obj_3_sa_B   *         return ret_val   *    */ -  __pyx_v_self->next_val = __pyx_f_3_sa_bitset_findsucc(__pyx_v_self->b, __pyx_v_ret_val); +  ((struct __pyx_obj_3_sa_BitSetIterator *)__pyx_v_self)->next_val = __pyx_f_3_sa_bitset_findsucc(((struct __pyx_obj_3_sa_BitSetIterator *)__pyx_v_self)->b, __pyx_v_ret_val);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":111   *         ret_val = self.next_val @@ -18124,20 +16985,6 @@ static PyObject *__pyx_pf_3_sa_14BitSetIterator___next__(struct __pyx_obj_3_sa_B    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_6BitSet_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_6BitSet_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); -  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { -    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} -  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; -  __pyx_r = __pyx_pf_3_sa_6BitSet___cinit__(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":122   *     cdef _BitSet* b   *  @@ -18146,10 +16993,14 @@ static int __pyx_pw_3_sa_6BitSet_1__cinit__(PyObject *__pyx_v_self, PyObject *__   *    */ -static int __pyx_pf_3_sa_6BitSet___cinit__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self) { +static int __pyx_pf_3_sa_6BitSet___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_6BitSet___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__", 0); +  __Pyx_RefNannySetupContext("__cinit__"); +  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { +    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} +  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":123   *  @@ -18158,22 +17009,13 @@ static int __pyx_pf_3_sa_6BitSet___cinit__(struct __pyx_obj_3_sa_BitSet *__pyx_v   *    *     def __dealloc__(self):   */ -  __pyx_v_self->b = __pyx_f_3_sa_new_BitSet(); +  ((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b = __pyx_f_3_sa_new_BitSet();    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static void __pyx_pw_3_sa_6BitSet_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_3_sa_6BitSet_3__dealloc__(PyObject *__pyx_v_self) { -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); -  __pyx_pf_3_sa_6BitSet_2__dealloc__(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":125   *         self.b = new_BitSet()   *  @@ -18182,9 +17024,10 @@ static void __pyx_pw_3_sa_6BitSet_3__dealloc__(PyObject *__pyx_v_self) {   *    */ -static void __pyx_pf_3_sa_6BitSet_2__dealloc__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self) { +static void __pyx_pf_3_sa_6BitSet_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pf_3_sa_6BitSet_1__dealloc__(PyObject *__pyx_v_self) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__", 0); +  __Pyx_RefNannySetupContext("__dealloc__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":126   *  @@ -18193,22 +17036,11 @@ static void __pyx_pf_3_sa_6BitSet_2__dealloc__(struct __pyx_obj_3_sa_BitSet *__p   *    *     def __iter__(self):   */ -  free(__pyx_v_self->b); +  free(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b);    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6BitSet_5__iter__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_6BitSet_5__iter__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6BitSet_4__iter__(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":128   *         free(self.b)   *  @@ -18217,7 +17049,8 @@ static PyObject *__pyx_pw_3_sa_6BitSet_5__iter__(PyObject *__pyx_v_self) {   *         it = BitSetIterator()   */ -static PyObject *__pyx_pf_3_sa_6BitSet_4__iter__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_6BitSet_2__iter__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_6BitSet_2__iter__(PyObject *__pyx_v_self) {    struct __pyx_obj_3_sa_BitSetIterator *__pyx_v_it = 0;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -18225,7 +17058,7 @@ static PyObject *__pyx_pf_3_sa_6BitSet_4__iter__(struct __pyx_obj_3_sa_BitSet *_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__iter__", 0); +  __Pyx_RefNannySetupContext("__iter__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":130   *     def __iter__(self): @@ -18246,7 +17079,7 @@ static PyObject *__pyx_pf_3_sa_6BitSet_4__iter__(struct __pyx_obj_3_sa_BitSet *_   *         it.next_val = self.b.min_val   *         return it   */ -  __pyx_v_it->b = __pyx_v_self->b; +  __pyx_v_it->b = ((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":132   *         it = BitSetIterator() @@ -18255,7 +17088,7 @@ static PyObject *__pyx_pf_3_sa_6BitSet_4__iter__(struct __pyx_obj_3_sa_BitSet *_   *         return it   *    */ -  __pyx_v_it->next_val = __pyx_v_self->b->min_val; +  __pyx_v_it->next_val = ((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b->min_val;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":133   *         it.b = self.b @@ -18282,17 +17115,6 @@ static PyObject *__pyx_pf_3_sa_6BitSet_4__iter__(struct __pyx_obj_3_sa_BitSet *_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6BitSet_7insert(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_6BitSet_7insert(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("insert (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6BitSet_6insert(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":135   *         return it   *  @@ -18301,7 +17123,8 @@ static PyObject *__pyx_pw_3_sa_6BitSet_7insert(PyObject *__pyx_v_self, PyObject   *    */ -static PyObject *__pyx_pf_3_sa_6BitSet_6insert(struct __pyx_obj_3_sa_BitSet *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_6BitSet_3insert(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_6BitSet_3insert(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -18309,7 +17132,7 @@ static PyObject *__pyx_pf_3_sa_6BitSet_6insert(struct __pyx_obj_3_sa_BitSet *__p    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("insert", 0); +  __Pyx_RefNannySetupContext("insert");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":136   *  @@ -18320,7 +17143,7 @@ static PyObject *__pyx_pf_3_sa_6BitSet_6insert(struct __pyx_obj_3_sa_BitSet *__p   */    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong(__pyx_f_3_sa_bitset_insert(__pyx_v_self->b, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong(__pyx_f_3_sa_bitset_insert(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_r = __pyx_t_2;    __pyx_t_2 = 0; @@ -18338,17 +17161,6 @@ static PyObject *__pyx_pf_3_sa_6BitSet_6insert(struct __pyx_obj_3_sa_BitSet *__p    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6BitSet_9findsucc(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_6BitSet_9findsucc(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("findsucc (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6BitSet_8findsucc(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":138   *         return bitset_insert(self.b, i)   *  @@ -18357,7 +17169,8 @@ static PyObject *__pyx_pw_3_sa_6BitSet_9findsucc(PyObject *__pyx_v_self, PyObjec   *    */ -static PyObject *__pyx_pf_3_sa_6BitSet_8findsucc(struct __pyx_obj_3_sa_BitSet *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_6BitSet_4findsucc(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_6BitSet_4findsucc(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -18365,7 +17178,7 @@ static PyObject *__pyx_pf_3_sa_6BitSet_8findsucc(struct __pyx_obj_3_sa_BitSet *_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("findsucc", 0); +  __Pyx_RefNannySetupContext("findsucc");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":139   *  @@ -18376,7 +17189,7 @@ static PyObject *__pyx_pf_3_sa_6BitSet_8findsucc(struct __pyx_obj_3_sa_BitSet *_   */    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong(__pyx_f_3_sa_bitset_findsucc(__pyx_v_self->b, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong(__pyx_f_3_sa_bitset_findsucc(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_r = __pyx_t_2;    __pyx_t_2 = 0; @@ -18394,17 +17207,6 @@ static PyObject *__pyx_pf_3_sa_6BitSet_8findsucc(struct __pyx_obj_3_sa_BitSet *_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6BitSet_11__str__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_6BitSet_11__str__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6BitSet_10__str__(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":141   *         return bitset_findsucc(self.b, i)   *  @@ -18413,7 +17215,8 @@ static PyObject *__pyx_pw_3_sa_6BitSet_11__str__(PyObject *__pyx_v_self) {   *    */ -static PyObject *__pyx_pf_3_sa_6BitSet_10__str__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_6BitSet_5__str__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_6BitSet_5__str__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -18422,7 +17225,7 @@ static PyObject *__pyx_pf_3_sa_6BitSet_10__str__(struct __pyx_obj_3_sa_BitSet *_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__str__", 0); +  __Pyx_RefNannySetupContext("__str__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":142   *  @@ -18432,15 +17235,15 @@ static PyObject *__pyx_pf_3_sa_6BitSet_10__str__(struct __pyx_obj_3_sa_BitSet *_   *     def min(self):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = ((PyObject *)__pyx_f_3_sa_dec2bin(__pyx_v_self->b->bitset)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((PyObject *)__pyx_f_3_sa_dec2bin(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b->bitset)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_t_2 = PyNumber_Add(__pyx_t_1, ((PyObject *)__pyx_kp_s_58)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_2));    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->b->size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b->size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 142; __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[6]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_t_1 = 0; @@ -18454,10 +17257,10 @@ static PyObject *__pyx_pf_3_sa_6BitSet_10__str__(struct __pyx_obj_3_sa_BitSet *_    __pyx_t_1 = PyNumber_Add(__pyx_t_3, ((PyObject *)__pyx_kp_s_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  __pyx_t_3 = PyInt_FromLong(__pyx_v_self->b->min_val); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b->min_val); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 142; __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[6]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);    __Pyx_GIVEREF(__pyx_t_3);    __pyx_t_3 = 0; @@ -18471,10 +17274,10 @@ static PyObject *__pyx_pf_3_sa_6BitSet_10__str__(struct __pyx_obj_3_sa_BitSet *_    __pyx_t_3 = PyNumber_Add(__pyx_t_2, ((PyObject *)__pyx_kp_s_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  __pyx_t_2 = PyInt_FromLong(__pyx_v_self->b->max_val); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b->max_val); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 142; __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[6]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    __pyx_t_2 = 0; @@ -18506,17 +17309,6 @@ static PyObject *__pyx_pf_3_sa_6BitSet_10__str__(struct __pyx_obj_3_sa_BitSet *_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6BitSet_13min(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_3_sa_6BitSet_13min(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("min (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6BitSet_12min(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":144   *         return dec2bin(self.b.bitset)+"  ("+str(self.b.size)+","+str(self.b.min_val)+","+str(self.b.max_val)+")"   *  @@ -18525,14 +17317,15 @@ static PyObject *__pyx_pw_3_sa_6BitSet_13min(PyObject *__pyx_v_self, CYTHON_UNUS   *    */ -static PyObject *__pyx_pf_3_sa_6BitSet_12min(struct __pyx_obj_3_sa_BitSet *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_6BitSet_6min(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_6BitSet_6min(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("min", 0); +  __Pyx_RefNannySetupContext("min");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":145   *  @@ -18542,7 +17335,7 @@ static PyObject *__pyx_pf_3_sa_6BitSet_12min(struct __pyx_obj_3_sa_BitSet *__pyx   *     def max(self):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->b->min_val); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b->min_val); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -18560,17 +17353,6 @@ static PyObject *__pyx_pf_3_sa_6BitSet_12min(struct __pyx_obj_3_sa_BitSet *__pyx    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6BitSet_15max(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_3_sa_6BitSet_15max(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("max (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6BitSet_14max(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":147   *         return self.b.min_val   *  @@ -18579,14 +17361,15 @@ static PyObject *__pyx_pw_3_sa_6BitSet_15max(PyObject *__pyx_v_self, CYTHON_UNUS   *    */ -static PyObject *__pyx_pf_3_sa_6BitSet_14max(struct __pyx_obj_3_sa_BitSet *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_6BitSet_7max(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_6BitSet_7max(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("max", 0); +  __Pyx_RefNannySetupContext("max");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":148   *  @@ -18596,7 +17379,7 @@ static PyObject *__pyx_pf_3_sa_6BitSet_14max(struct __pyx_obj_3_sa_BitSet *__pyx   *     def __len__(self):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->b->max_val); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b->max_val); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -18614,17 +17397,6 @@ static PyObject *__pyx_pf_3_sa_6BitSet_14max(struct __pyx_obj_3_sa_BitSet *__pyx    return __pyx_r;  } -/* Python wrapper */ -static Py_ssize_t __pyx_pw_3_sa_6BitSet_17__len__(PyObject *__pyx_v_self); /*proto*/ -static Py_ssize_t __pyx_pw_3_sa_6BitSet_17__len__(PyObject *__pyx_v_self) { -  Py_ssize_t __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6BitSet_16__len__(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":150   *         return self.b.max_val   *  @@ -18633,10 +17405,11 @@ static Py_ssize_t __pyx_pw_3_sa_6BitSet_17__len__(PyObject *__pyx_v_self) {   *    */ -static Py_ssize_t __pyx_pf_3_sa_6BitSet_16__len__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self) { +static Py_ssize_t __pyx_pf_3_sa_6BitSet_8__len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_pf_3_sa_6BitSet_8__len__(PyObject *__pyx_v_self) {    Py_ssize_t __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__len__", 0); +  __Pyx_RefNannySetupContext("__len__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":151   *  @@ -18645,7 +17418,7 @@ static Py_ssize_t __pyx_pf_3_sa_6BitSet_16__len__(struct __pyx_obj_3_sa_BitSet *   *    *     def __contains__(self, i):   */ -  __pyx_r = __pyx_v_self->b->size; +  __pyx_r = ((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b->size;    goto __pyx_L0;    __pyx_r = 0; @@ -18654,17 +17427,6 @@ static Py_ssize_t __pyx_pf_3_sa_6BitSet_16__len__(struct __pyx_obj_3_sa_BitSet *    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_6BitSet_19__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static int __pyx_pw_3_sa_6BitSet_19__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6BitSet_18__contains__(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":153   *         return self.b.size   *  @@ -18673,7 +17435,8 @@ static int __pyx_pw_3_sa_6BitSet_19__contains__(PyObject *__pyx_v_self, PyObject   *    */ -static int __pyx_pf_3_sa_6BitSet_18__contains__(struct __pyx_obj_3_sa_BitSet *__pyx_v_self, PyObject *__pyx_v_i) { +static int __pyx_pf_3_sa_6BitSet_9__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static int __pyx_pf_3_sa_6BitSet_9__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -18682,7 +17445,7 @@ static int __pyx_pf_3_sa_6BitSet_18__contains__(struct __pyx_obj_3_sa_BitSet *__    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__contains__", 0); +  __Pyx_RefNannySetupContext("__contains__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":154   *  @@ -18692,7 +17455,7 @@ static int __pyx_pf_3_sa_6BitSet_18__contains__(struct __pyx_obj_3_sa_BitSet *__   *    */    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong(__pyx_f_3_sa_bitset_contains(__pyx_v_self->b, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong(__pyx_f_3_sa_bitset_contains(((struct __pyx_obj_3_sa_BitSet *)__pyx_v_self)->b, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -18720,7 +17483,7 @@ static int __pyx_pf_3_sa_6BitSet_18__contains__(struct __pyx_obj_3_sa_BitSet *__  static PyObject *__pyx_f_3_sa_dec2bin(long __pyx_v_i) {    PyObject *__pyx_v_result = 0; -  CYTHON_UNUSED unsigned int __pyx_v_d; +  unsigned int __pyx_v_d;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -18730,7 +17493,7 @@ static PyObject *__pyx_f_3_sa_dec2bin(long __pyx_v_i) {    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("dec2bin", 0); +  __Pyx_RefNannySetupContext("dec2bin");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":158   *  @@ -18848,7 +17611,7 @@ static struct __pyx_t_3_sa__VEB *__pyx_f_3_sa_new_VEB(int __pyx_v_n) {    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("new_VEB", 0); +  __Pyx_RefNannySetupContext("new_VEB");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":181   *     cdef int num_bits, num_top_bits, i @@ -19031,7 +17794,7 @@ static int __pyx_f_3_sa_VEB_insert(struct __pyx_t_3_sa__VEB *__pyx_v_veb, int __    int __pyx_t_1;    int __pyx_t_2;    int __pyx_t_3; -  __Pyx_RefNannySetupContext("VEB_insert", 0); +  __Pyx_RefNannySetupContext("VEB_insert");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":208   *     cdef int a, b, tmp @@ -19392,7 +18155,7 @@ static PyObject *__pyx_f_3_sa_del_VEB(struct __pyx_t_3_sa__VEB *__pyx_v_veb) {    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("del_VEB", 0); +  __Pyx_RefNannySetupContext("del_VEB");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":249   *     cdef int i @@ -19593,7 +18356,7 @@ static int __pyx_f_3_sa_VEB_findsucc(struct __pyx_t_3_sa__VEB *__pyx_v_veb, int    int __pyx_t_1;    int __pyx_t_2;    int __pyx_t_3; -  __Pyx_RefNannySetupContext("VEB_findsucc", 0); +  __Pyx_RefNannySetupContext("VEB_findsucc");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":278   *     cdef int a, b, j, c, found @@ -19932,7 +18695,7 @@ static int __pyx_f_3_sa_VEB_contains(struct __pyx_t_3_sa__VEB *__pyx_v_veb, int    int __pyx_t_2;    int __pyx_t_3;    int __pyx_t_4; -  __Pyx_RefNannySetupContext("VEB_contains", 0); +  __Pyx_RefNannySetupContext("VEB_contains");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":318   *     cdef int a, b @@ -20119,17 +18882,6 @@ static int __pyx_f_3_sa_VEB_contains(struct __pyx_t_3_sa__VEB *__pyx_v_veb, int    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11VEBIterator_1__next__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_11VEBIterator_1__next__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_11VEBIterator___next__(((struct __pyx_obj_3_sa_VEBIterator *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":344   *     cdef int next_val   *  @@ -20138,7 +18890,8 @@ static PyObject *__pyx_pw_3_sa_11VEBIterator_1__next__(PyObject *__pyx_v_self) {   *    */ -static PyObject *__pyx_pf_3_sa_11VEBIterator___next__(struct __pyx_obj_3_sa_VEBIterator *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_11VEBIterator___next__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_11VEBIterator___next__(PyObject *__pyx_v_self) {    int __pyx_v_ret_val;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -20147,7 +18900,7 @@ static PyObject *__pyx_pf_3_sa_11VEBIterator___next__(struct __pyx_obj_3_sa_VEBI    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__next__", 0); +  __Pyx_RefNannySetupContext("__next__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":347   *         cdef int ret_val @@ -20156,7 +18909,7 @@ static PyObject *__pyx_pf_3_sa_11VEBIterator___next__(struct __pyx_obj_3_sa_VEBI   *             raise StopIteration()   *         ret_val = self.next_val   */ -  __pyx_t_1 = (__pyx_v_self->next_val == -1); +  __pyx_t_1 = (((struct __pyx_obj_3_sa_VEBIterator *)__pyx_v_self)->next_val == -1);    if (__pyx_t_1) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":348 @@ -20171,9 +18924,9 @@ static PyObject *__pyx_pf_3_sa_11VEBIterator___next__(struct __pyx_obj_3_sa_VEBI      __Pyx_Raise(__pyx_t_2, 0, 0, 0);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    goto __pyx_L3; +    goto __pyx_L5;    } -  __pyx_L3:; +  __pyx_L5:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":349   *         if self.next_val == -1: @@ -20182,7 +18935,7 @@ static PyObject *__pyx_pf_3_sa_11VEBIterator___next__(struct __pyx_obj_3_sa_VEBI   *         self.next_val = VEB_findsucc(self.v, ret_val)   *         return ret_val   */ -  __pyx_v_ret_val = __pyx_v_self->next_val; +  __pyx_v_ret_val = ((struct __pyx_obj_3_sa_VEBIterator *)__pyx_v_self)->next_val;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":350   *             raise StopIteration() @@ -20191,7 +18944,7 @@ static PyObject *__pyx_pf_3_sa_11VEBIterator___next__(struct __pyx_obj_3_sa_VEBI   *         return ret_val   *    */ -  __pyx_v_self->next_val = __pyx_f_3_sa_VEB_findsucc(__pyx_v_self->v, __pyx_v_ret_val); +  ((struct __pyx_obj_3_sa_VEBIterator *)__pyx_v_self)->next_val = __pyx_f_3_sa_VEB_findsucc(((struct __pyx_obj_3_sa_VEBIterator *)__pyx_v_self)->v, __pyx_v_ret_val);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":351   *         ret_val = self.next_val @@ -20219,32 +18972,42 @@ static PyObject *__pyx_pf_3_sa_11VEBIterator___next__(struct __pyx_obj_3_sa_VEBI    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_3VEB_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_3VEB_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":360 + *     cdef int _first(self) + *  + *     def __cinit__(self, int size):             # <<<<<<<<<<<<<< + *         self.veb = new_VEB(size) + *  + */ + +static int __pyx_pf_3_sa_3VEB___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_3VEB___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_v_size;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__size,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__size,0};      PyObject* values[1] = {0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {        goto __pyx_L5_argtuple_error; @@ -20261,23 +19024,6 @@ static int __pyx_pw_3_sa_3VEB_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_3VEB___cinit__(((struct __pyx_obj_3_sa_VEB *)__pyx_v_self), __pyx_v_size); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":360 - *     cdef int _first(self) - *  - *     def __cinit__(self, int size):             # <<<<<<<<<<<<<< - *         self.veb = new_VEB(size) - *  - */ - -static int __pyx_pf_3_sa_3VEB___cinit__(struct __pyx_obj_3_sa_VEB *__pyx_v_self, int __pyx_v_size) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":361   *  @@ -20286,22 +19032,13 @@ static int __pyx_pf_3_sa_3VEB___cinit__(struct __pyx_obj_3_sa_VEB *__pyx_v_self,   *    *     def __dealloc__(self):   */ -  __pyx_v_self->veb = __pyx_f_3_sa_new_VEB(__pyx_v_size); +  ((struct __pyx_obj_3_sa_VEB *)__pyx_v_self)->veb = __pyx_f_3_sa_new_VEB(__pyx_v_size);    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static void __pyx_pw_3_sa_3VEB_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_3_sa_3VEB_3__dealloc__(PyObject *__pyx_v_self) { -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); -  __pyx_pf_3_sa_3VEB_2__dealloc__(((struct __pyx_obj_3_sa_VEB *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":363   *         self.veb = new_VEB(size)   *  @@ -20310,13 +19047,14 @@ static void __pyx_pw_3_sa_3VEB_3__dealloc__(PyObject *__pyx_v_self) {   *    */ -static void __pyx_pf_3_sa_3VEB_2__dealloc__(struct __pyx_obj_3_sa_VEB *__pyx_v_self) { +static void __pyx_pf_3_sa_3VEB_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pf_3_sa_3VEB_1__dealloc__(PyObject *__pyx_v_self) {    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__dealloc__", 0); +  __Pyx_RefNannySetupContext("__dealloc__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":364   *  @@ -20325,7 +19063,7 @@ static void __pyx_pf_3_sa_3VEB_2__dealloc__(struct __pyx_obj_3_sa_VEB *__pyx_v_s   *    *     def __iter__(self):   */ -  __pyx_t_1 = __pyx_f_3_sa_del_VEB(__pyx_v_self->veb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __pyx_f_3_sa_del_VEB(((struct __pyx_obj_3_sa_VEB *)__pyx_v_self)->veb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -20337,17 +19075,6 @@ static void __pyx_pf_3_sa_3VEB_2__dealloc__(struct __pyx_obj_3_sa_VEB *__pyx_v_s    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_3VEB_5__iter__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_3VEB_5__iter__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_3VEB_4__iter__(((struct __pyx_obj_3_sa_VEB *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":366   *         del_VEB(self.veb)   *  @@ -20356,7 +19083,8 @@ static PyObject *__pyx_pw_3_sa_3VEB_5__iter__(PyObject *__pyx_v_self) {   *         it = VEBIterator()   */ -static PyObject *__pyx_pf_3_sa_3VEB_4__iter__(struct __pyx_obj_3_sa_VEB *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_3VEB_2__iter__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_3VEB_2__iter__(PyObject *__pyx_v_self) {    struct __pyx_obj_3_sa_VEBIterator *__pyx_v_it = 0;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -20364,7 +19092,7 @@ static PyObject *__pyx_pf_3_sa_3VEB_4__iter__(struct __pyx_obj_3_sa_VEB *__pyx_v    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__iter__", 0); +  __Pyx_RefNannySetupContext("__iter__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":368   *     def __iter__(self): @@ -20385,7 +19113,7 @@ static PyObject *__pyx_pf_3_sa_3VEB_4__iter__(struct __pyx_obj_3_sa_VEB *__pyx_v   *         it.next_val = self.veb.min_val   *         return it   */ -  __pyx_v_it->v = __pyx_v_self->veb; +  __pyx_v_it->v = ((struct __pyx_obj_3_sa_VEB *)__pyx_v_self)->veb;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":370   *         it = VEBIterator() @@ -20394,7 +19122,7 @@ static PyObject *__pyx_pf_3_sa_3VEB_4__iter__(struct __pyx_obj_3_sa_VEB *__pyx_v   *         return it   *    */ -  __pyx_v_it->next_val = __pyx_v_self->veb->min_val; +  __pyx_v_it->next_val = ((struct __pyx_obj_3_sa_VEB *)__pyx_v_self)->veb->min_val;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":371   *         it.v = self.veb @@ -20421,17 +19149,6 @@ static PyObject *__pyx_pf_3_sa_3VEB_4__iter__(struct __pyx_obj_3_sa_VEB *__pyx_v    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_3VEB_7insert(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_3VEB_7insert(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("insert (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_3VEB_6insert(((struct __pyx_obj_3_sa_VEB *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":373   *         return it   *  @@ -20440,7 +19157,8 @@ static PyObject *__pyx_pw_3_sa_3VEB_7insert(PyObject *__pyx_v_self, PyObject *__   *    */ -static PyObject *__pyx_pf_3_sa_3VEB_6insert(struct __pyx_obj_3_sa_VEB *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_3VEB_3insert(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_3VEB_3insert(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -20448,7 +19166,7 @@ static PyObject *__pyx_pf_3_sa_3VEB_6insert(struct __pyx_obj_3_sa_VEB *__pyx_v_s    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("insert", 0); +  __Pyx_RefNannySetupContext("insert");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":374   *  @@ -20459,7 +19177,7 @@ static PyObject *__pyx_pf_3_sa_3VEB_6insert(struct __pyx_obj_3_sa_VEB *__pyx_v_s   */    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong(__pyx_f_3_sa_VEB_insert(__pyx_v_self->veb, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong(__pyx_f_3_sa_VEB_insert(((struct __pyx_obj_3_sa_VEB *)__pyx_v_self)->veb, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_r = __pyx_t_2;    __pyx_t_2 = 0; @@ -20488,7 +19206,7 @@ static PyObject *__pyx_pf_3_sa_3VEB_6insert(struct __pyx_obj_3_sa_VEB *__pyx_v_s  static int __pyx_f_3_sa_3VEB__insert(struct __pyx_obj_3_sa_VEB *__pyx_v_self, int __pyx_v_i) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("_insert", 0); +  __Pyx_RefNannySetupContext("_insert");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":377   *  @@ -20506,17 +19224,6 @@ static int __pyx_f_3_sa_3VEB__insert(struct __pyx_obj_3_sa_VEB *__pyx_v_self, in    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_3VEB_9findsucc(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_3VEB_9findsucc(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("findsucc (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_3VEB_8findsucc(((struct __pyx_obj_3_sa_VEB *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":379   *         return VEB_insert(self.veb, i)   *  @@ -20525,7 +19232,8 @@ static PyObject *__pyx_pw_3_sa_3VEB_9findsucc(PyObject *__pyx_v_self, PyObject *   *    */ -static PyObject *__pyx_pf_3_sa_3VEB_8findsucc(struct __pyx_obj_3_sa_VEB *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_3VEB_4findsucc(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_3VEB_4findsucc(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -20533,7 +19241,7 @@ static PyObject *__pyx_pf_3_sa_3VEB_8findsucc(struct __pyx_obj_3_sa_VEB *__pyx_v    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("findsucc", 0); +  __Pyx_RefNannySetupContext("findsucc");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":380   *  @@ -20544,7 +19252,7 @@ static PyObject *__pyx_pf_3_sa_3VEB_8findsucc(struct __pyx_obj_3_sa_VEB *__pyx_v   */    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong(__pyx_f_3_sa_VEB_findsucc(__pyx_v_self->veb, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong(__pyx_f_3_sa_VEB_findsucc(((struct __pyx_obj_3_sa_VEB *)__pyx_v_self)->veb, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_r = __pyx_t_2;    __pyx_t_2 = 0; @@ -20573,7 +19281,7 @@ static PyObject *__pyx_pf_3_sa_3VEB_8findsucc(struct __pyx_obj_3_sa_VEB *__pyx_v  static int __pyx_f_3_sa_3VEB__first(struct __pyx_obj_3_sa_VEB *__pyx_v_self) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("_first", 0); +  __Pyx_RefNannySetupContext("_first");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":383   *  @@ -20602,7 +19310,7 @@ static int __pyx_f_3_sa_3VEB__first(struct __pyx_obj_3_sa_VEB *__pyx_v_self) {  static int __pyx_f_3_sa_3VEB__findsucc(struct __pyx_obj_3_sa_VEB *__pyx_v_self, int __pyx_v_i) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("_findsucc", 0); +  __Pyx_RefNannySetupContext("_findsucc");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":386   *  @@ -20620,17 +19328,6 @@ static int __pyx_f_3_sa_3VEB__findsucc(struct __pyx_obj_3_sa_VEB *__pyx_v_self,    return __pyx_r;  } -/* Python wrapper */ -static Py_ssize_t __pyx_pw_3_sa_3VEB_11__len__(PyObject *__pyx_v_self); /*proto*/ -static Py_ssize_t __pyx_pw_3_sa_3VEB_11__len__(PyObject *__pyx_v_self) { -  Py_ssize_t __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_3VEB_10__len__(((struct __pyx_obj_3_sa_VEB *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":388   *         return VEB_findsucc(self.veb, i)   *  @@ -20639,10 +19336,11 @@ static Py_ssize_t __pyx_pw_3_sa_3VEB_11__len__(PyObject *__pyx_v_self) {   *    */ -static Py_ssize_t __pyx_pf_3_sa_3VEB_10__len__(struct __pyx_obj_3_sa_VEB *__pyx_v_self) { +static Py_ssize_t __pyx_pf_3_sa_3VEB_5__len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_pf_3_sa_3VEB_5__len__(PyObject *__pyx_v_self) {    Py_ssize_t __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__len__", 0); +  __Pyx_RefNannySetupContext("__len__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":389   *  @@ -20651,7 +19349,7 @@ static Py_ssize_t __pyx_pf_3_sa_3VEB_10__len__(struct __pyx_obj_3_sa_VEB *__pyx_   *    *     def __contains__(self, i):   */ -  __pyx_r = __pyx_v_self->veb->size; +  __pyx_r = ((struct __pyx_obj_3_sa_VEB *)__pyx_v_self)->veb->size;    goto __pyx_L0;    __pyx_r = 0; @@ -20660,17 +19358,6 @@ static Py_ssize_t __pyx_pf_3_sa_3VEB_10__len__(struct __pyx_obj_3_sa_VEB *__pyx_    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_3VEB_13__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static int __pyx_pw_3_sa_3VEB_13__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_3VEB_12__contains__(((struct __pyx_obj_3_sa_VEB *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":391   *         return self.veb.size   *  @@ -20678,14 +19365,15 @@ static int __pyx_pw_3_sa_3VEB_13__contains__(PyObject *__pyx_v_self, PyObject *_   *         return VEB_contains(self.veb, i)   */ -static int __pyx_pf_3_sa_3VEB_12__contains__(struct __pyx_obj_3_sa_VEB *__pyx_v_self, PyObject *__pyx_v_i) { +static int __pyx_pf_3_sa_3VEB_6__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static int __pyx_pf_3_sa_3VEB_6__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__contains__", 0); +  __Pyx_RefNannySetupContext("__contains__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/veb.pxi":392   *  @@ -20693,7 +19381,7 @@ static int __pyx_pf_3_sa_3VEB_12__contains__(struct __pyx_obj_3_sa_VEB *__pyx_v_   *         return VEB_contains(self.veb, i)             # <<<<<<<<<<<<<<   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_i); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_r = __pyx_f_3_sa_VEB_contains(__pyx_v_self->veb, __pyx_t_1); +  __pyx_r = __pyx_f_3_sa_VEB_contains(((struct __pyx_obj_3_sa_VEB *)__pyx_v_self)->veb, __pyx_t_1);    goto __pyx_L0;    __pyx_r = 0; @@ -20706,32 +19394,55 @@ static int __pyx_pf_3_sa_3VEB_12__contains__(struct __pyx_obj_3_sa_VEB *__pyx_v_    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_3LCP_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_3LCP_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":9 + *     cdef IntList lcp + *  + *     def __cinit__(self, SuffixArray sa):             # <<<<<<<<<<<<<< + *         cdef int i, k, j, h, n + *         cdef IntList rank + */ + +static int __pyx_pf_3_sa_3LCP___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_3LCP___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    struct __pyx_obj_3_sa_SuffixArray *__pyx_v_sa = 0; +  int __pyx_v_i; +  int __pyx_v_k; +  int __pyx_v_j; +  int __pyx_v_h; +  int __pyx_v_n; +  struct __pyx_obj_3_sa_IntList *__pyx_v_rank = 0;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  PyObject *__pyx_t_2 = NULL; +  int __pyx_t_3; +  int __pyx_t_4; +  int __pyx_t_5; +  int __pyx_t_6; +  int __pyx_t_7; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sa,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sa,0};      PyObject* values[1] = {0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sa)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sa); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {        goto __pyx_L5_argtuple_error; @@ -20749,43 +19460,6 @@ static int __pyx_pw_3_sa_3LCP_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx    return -1;    __pyx_L4_argument_unpacking_done:;    if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sa), __pyx_ptype_3_sa_SuffixArray, 1, "sa", 0))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_r = __pyx_pf_3_sa_3LCP___cinit__(((struct __pyx_obj_3_sa_LCP *)__pyx_v_self), __pyx_v_sa); -  goto __pyx_L0; -  __pyx_L1_error:; -  __pyx_r = -1; -  __pyx_L0:; -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":9 - *     cdef IntList lcp - *  - *     def __cinit__(self, SuffixArray sa):             # <<<<<<<<<<<<<< - *         cdef int i, k, j, h, n - *         cdef IntList rank - */ - -static int __pyx_pf_3_sa_3LCP___cinit__(struct __pyx_obj_3_sa_LCP *__pyx_v_self, struct __pyx_obj_3_sa_SuffixArray *__pyx_v_sa) { -  int __pyx_v_i; -  int __pyx_v_k; -  int __pyx_v_j; -  int __pyx_v_h; -  int __pyx_v_n; -  struct __pyx_obj_3_sa_IntList *__pyx_v_rank = 0; -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  PyObject *__pyx_t_2 = NULL; -  int __pyx_t_3; -  int __pyx_t_4; -  int __pyx_t_5; -  int __pyx_t_6; -  int __pyx_t_7; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":13   *         cdef IntList rank @@ -20813,9 +19487,9 @@ static int __pyx_pf_3_sa_3LCP___cinit__(struct __pyx_obj_3_sa_LCP *__pyx_v_self,   */    __Pyx_INCREF(((PyObject *)__pyx_v_sa));    __Pyx_GIVEREF(((PyObject *)__pyx_v_sa)); -  __Pyx_GOTREF(__pyx_v_self->sa); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->sa)); -  __pyx_v_self->sa = __pyx_v_sa; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_LCP *)__pyx_v_self)->sa); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_LCP *)__pyx_v_self)->sa)); +  ((struct __pyx_obj_3_sa_LCP *)__pyx_v_self)->sa = __pyx_v_sa;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":15   *         logger.info("Constructing LCP array") @@ -20824,7 +19498,7 @@ static int __pyx_pf_3_sa_3LCP___cinit__(struct __pyx_obj_3_sa_LCP *__pyx_v_self,   *         self.lcp = IntList(initial_len=n)   *    */ -  __pyx_v_n = __pyx_v_self->sa->sa->len; +  __pyx_v_n = ((struct __pyx_obj_3_sa_LCP *)__pyx_v_self)->sa->sa->len;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":16   *         self.sa = sa @@ -20839,13 +19513,13 @@ static int __pyx_pf_3_sa_3LCP___cinit__(struct __pyx_obj_3_sa_LCP *__pyx_v_self,    __Pyx_GOTREF(__pyx_t_2);    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;    __Pyx_GIVEREF(__pyx_t_2); -  __Pyx_GOTREF(__pyx_v_self->lcp); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->lcp)); -  __pyx_v_self->lcp = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_2); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_LCP *)__pyx_v_self)->lcp); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_LCP *)__pyx_v_self)->lcp)); +  ((struct __pyx_obj_3_sa_LCP *)__pyx_v_self)->lcp = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_2);    __pyx_t_2 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":18 @@ -20861,7 +19535,7 @@ static int __pyx_pf_3_sa_3LCP___cinit__(struct __pyx_obj_3_sa_LCP *__pyx_v_self,    __Pyx_GOTREF(__pyx_t_1);    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __pyx_v_rank = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); @@ -20932,8 +19606,8 @@ static int __pyx_pf_3_sa_3LCP___cinit__(struct __pyx_obj_3_sa_LCP *__pyx_v_self,   *             else:   *                 j = sa.sa.arr[k-1]   */ -      (__pyx_v_self->lcp->arr[__pyx_v_k]) = -1; -      goto __pyx_L7; +      (((struct __pyx_obj_3_sa_LCP *)__pyx_v_self)->lcp->arr[__pyx_v_k]) = -1; +      goto __pyx_L10;      }      /*else*/ { @@ -20986,9 +19660,9 @@ static int __pyx_pf_3_sa_3LCP___cinit__(struct __pyx_obj_3_sa_LCP *__pyx_v_self,   *             if h > 0:   *                 h = h-1   */ -      (__pyx_v_self->lcp->arr[__pyx_v_k]) = __pyx_v_h; +      (((struct __pyx_obj_3_sa_LCP *)__pyx_v_self)->lcp->arr[__pyx_v_k]) = __pyx_v_h;      } -    __pyx_L7:; +    __pyx_L10:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":32   *                     h = h+1 @@ -21008,9 +19682,9 @@ static int __pyx_pf_3_sa_3LCP___cinit__(struct __pyx_obj_3_sa_LCP *__pyx_v_self,   *    */        __pyx_v_h = (__pyx_v_h - 1); -      goto __pyx_L10; +      goto __pyx_L13;      } -    __pyx_L10:; +    __pyx_L13:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":34 @@ -21042,29 +19716,7 @@ static int __pyx_pf_3_sa_3LCP___cinit__(struct __pyx_obj_3_sa_LCP *__pyx_v_self,    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ - -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_3LCP_3compute_stats(PyObject *__pyx_v_self, PyObject *__pyx_arg_max_n); /*proto*/ -static char __pyx_doc_3_sa_3LCP_2compute_stats[] = "Note: the output of this function is not exact.  In\n        particular, the frequency associated with each word is \n        not guaranteed to be correct.  This is due to a bit of\n        laxness in the design; the function is intended only to\n        obtain a list of the most frequent words; for this \n        purpose it is perfectly fine"; -static PyObject *__pyx_pw_3_sa_3LCP_3compute_stats(PyObject *__pyx_v_self, PyObject *__pyx_arg_max_n) { -  int __pyx_v_max_n; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("compute_stats (wrapper)", 0); -  assert(__pyx_arg_max_n); { -    __pyx_v_max_n = __Pyx_PyInt_AsInt(__pyx_arg_max_n); if (unlikely((__pyx_v_max_n == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.LCP.compute_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_3LCP_2compute_stats(((struct __pyx_obj_3_sa_LCP *)__pyx_v_self), ((int)__pyx_v_max_n)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} +static PyObject *__pyx_gb_3_sa_3LCP_2generator1(struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *__pyx_cur_scope, PyObject *__pyx_sent_value); /* proto */  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":36   *         logger.info("LCP array completed") @@ -21074,46 +19726,51 @@ static PyObject *__pyx_pw_3_sa_3LCP_3compute_stats(PyObject *__pyx_v_self, PyObj   *         particular, the frequency associated with each word is   */ -static PyObject *__pyx_pf_3_sa_3LCP_2compute_stats(struct __pyx_obj_3_sa_LCP *__pyx_v_self, int __pyx_v_max_n) { +static PyObject *__pyx_pf_3_sa_3LCP_1compute_stats(PyObject *__pyx_v_self, PyObject *__pyx_arg_max_n); /*proto*/ +static char __pyx_doc_3_sa_3LCP_1compute_stats[] = "Note: the output of this function is not exact.  In\n        particular, the frequency associated with each word is \n        not guaranteed to be correct.  This is due to a bit of\n        laxness in the design; the function is intended only to\n        obtain a list of the most frequent words; for this \n        purpose it is perfectly fine"; +static PyObject *__pyx_pf_3_sa_3LCP_1compute_stats(PyObject *__pyx_v_self, PyObject *__pyx_arg_max_n) {    struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("compute_stats", 0); +  __Pyx_RefNannySetupContext("compute_stats");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *)__pyx_ptype_3_sa___pyx_scope_struct_3_compute_stats->tp_new(__pyx_ptype_3_sa___pyx_scope_struct_3_compute_stats, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL;    }    __Pyx_GOTREF(__pyx_cur_scope); +  __Pyx_INCREF(__pyx_v_self);    __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_max_n = __pyx_v_max_n; -  { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_3_sa_3LCP_4generator1, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_DECREF(__pyx_cur_scope); -    __Pyx_RefNannyFinishContext(); -    return (PyObject *) gen; +  assert(__pyx_arg_max_n); { +    __pyx_cur_scope->__pyx_v_max_n = __Pyx_PyInt_AsInt(__pyx_arg_max_n); if (unlikely((__pyx_cur_scope->__pyx_v_max_n == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.LCP.compute_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_XDECREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __pyx_cur_scope->__pyx_v_self = 0; +  __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:; +  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); +  __pyx_cur_scope->__pyx_base.resume_label = 0; +  __pyx_cur_scope->__pyx_base.body = (__pyx_generator_body_t) __pyx_gb_3_sa_3LCP_2generator1; +  __Pyx_GIVEREF(__pyx_cur_scope); +  __Pyx_RefNannyFinishContext(); +  return (PyObject *) __pyx_cur_scope;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); -  goto __pyx_L0; -  __pyx_L1_error:; -  __Pyx_AddTraceback("_sa.LCP.compute_stats", __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_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_3_sa_3LCP_2generator1(struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *__pyx_cur_scope, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *__pyx_cur_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    PyObject *__pyx_t_1 = NULL;    int __pyx_t_2; @@ -21126,8 +19783,8 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen    long __pyx_t_9;    PyObject *__pyx_t_10 = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("None", 0); -  switch (__pyx_generator->resume_label) { +  __Pyx_RefNannySetupContext("None"); +  switch (__pyx_cur_scope->__pyx_base.resume_label) {      case 0: goto __pyx_L3_first_run;      case 1: goto __pyx_L26_resume_from_yield;      default: /* CPython raises the right error here */ @@ -21144,7 +19801,7 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen   *    *         ngram_starts = []   */ -  __pyx_cur_scope->__pyx_v_N = __pyx_cur_scope->__pyx_v_self->sa->sa->len; +  __pyx_cur_scope->__pyx_v_N = ((struct __pyx_obj_3_sa_LCP *)__pyx_cur_scope->__pyx_v_self)->sa->sa->len;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":50   *         N = self.sa.sa.len @@ -21154,7 +19811,7 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen   *             ngram_starts.append(IntList(initial_len=N))   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1));    __pyx_cur_scope->__pyx_v_ngram_starts = __pyx_t_1;    __pyx_t_1 = 0; @@ -21176,13 +19833,16 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen   *    *         run_start = IntList(initial_len=max_n)   */ +    if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_ngram_starts) == Py_None)) { +      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    }      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __pyx_t_3 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_N); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;      __pyx_t_4 = PyList_Append(__pyx_cur_scope->__pyx_v_ngram_starts, __pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -21202,7 +19862,7 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen    __Pyx_GOTREF(__pyx_t_1);    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;    __Pyx_GIVEREF(__pyx_t_1); @@ -21219,7 +19879,7 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen    __pyx_t_1 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_N); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __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[9]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_t_1 = 0; @@ -21247,7 +19907,7 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen   *             if h < 0:   *                 h = 0   */ -    __pyx_cur_scope->__pyx_v_h = (__pyx_cur_scope->__pyx_v_self->lcp->arr[__pyx_cur_scope->__pyx_v_i]); +    __pyx_cur_scope->__pyx_v_h = (((struct __pyx_obj_3_sa_LCP *)__pyx_cur_scope->__pyx_v_self)->lcp->arr[__pyx_cur_scope->__pyx_v_i]);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":59   *         for i from 0 <= i < N: @@ -21481,7 +20141,7 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen   *                     valid = 1   *                     for k from 0 <= k < n+1:   */ -        __pyx_cur_scope->__pyx_v_j = (__pyx_cur_scope->__pyx_v_self->sa->sa->arr[__pyx_cur_scope->__pyx_v_rs]); +        __pyx_cur_scope->__pyx_v_j = (((struct __pyx_obj_3_sa_LCP *)__pyx_cur_scope->__pyx_v_self)->sa->sa->arr[__pyx_cur_scope->__pyx_v_rs]);          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":80   *                 while (ii==-1 or iii < ii) and rs != 0: @@ -21509,7 +20169,7 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen   *                             valid = 0   *                     if valid:   */ -          __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); +          __pyx_t_7 = ((((struct __pyx_obj_3_sa_LCP *)__pyx_cur_scope->__pyx_v_self)->sa->darray->data->arr[(__pyx_cur_scope->__pyx_v_j + __pyx_cur_scope->__pyx_v_k)]) < 2);            if (__pyx_t_7) {              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/lcp.pxi":83 @@ -21542,13 +20202,13 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen   *                     iii = iii + 1   */            __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_1); +          __Pyx_GOTREF(((PyObject *)__pyx_t_1));            __pyx_t_9 = (__pyx_cur_scope->__pyx_v_n + 1);            for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_9; __pyx_t_6+=1) {              __pyx_cur_scope->__pyx_v_k = __pyx_t_6; -            __pyx_t_3 = PyInt_FromLong((__pyx_cur_scope->__pyx_v_self->sa->darray->data->arr[(__pyx_cur_scope->__pyx_v_j + __pyx_cur_scope->__pyx_v_k)])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_3 = PyInt_FromLong((((struct __pyx_obj_3_sa_LCP *)__pyx_cur_scope->__pyx_v_self)->sa->darray->data->arr[(__pyx_cur_scope->__pyx_v_j + __pyx_cur_scope->__pyx_v_k)])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_3); -            if (unlikely(__Pyx_PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            if (unlikely(PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;            }            __pyx_t_3 = ((PyObject *)PyList_AsTuple(__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -21572,7 +20232,7 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen            __pyx_t_1 = PyInt_FromLong((__pyx_cur_scope->__pyx_v_n + 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_1);            __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_10); +          __Pyx_GOTREF(((PyObject *)__pyx_t_10));            PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3);            __Pyx_GIVEREF(__pyx_t_3);            PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_1); @@ -21588,7 +20248,7 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen            __Pyx_XGIVEREF(__pyx_r);            __Pyx_RefNannyFinishContext();            /* return from generator, yielding value */ -          __pyx_generator->resume_label = 1; +          __pyx_cur_scope->__pyx_base.resume_label = 1;            return __pyx_r;            __pyx_L26_resume_from_yield:;            __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; @@ -21623,7 +20283,7 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen   */      __pyx_cur_scope->__pyx_v_i = __pyx_cur_scope->__pyx_v_ii;    } -  PyErr_SetNone(PyExc_StopIteration); +  PyErr_SetNone(PyExc_StopIteration); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    goto __pyx_L0;    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1); @@ -21632,26 +20292,11 @@ static PyObject *__pyx_gb_3_sa_3LCP_4generator1(__pyx_GeneratorObject *__pyx_gen    __Pyx_AddTraceback("compute_stats", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_L0:;    __Pyx_XDECREF(__pyx_r); -  __pyx_generator->resume_label = -1; -  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __pyx_cur_scope->__pyx_base.resume_label = -1;    __Pyx_RefNannyFinishContext();    return NULL;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_8Alphabet_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_8Alphabet_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); -  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { -    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} -  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; -  __pyx_r = __pyx_pf_3_sa_8Alphabet___cinit__(((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":12   *     cdef dict id2sym   *  @@ -21660,14 +20305,18 @@ static int __pyx_pw_3_sa_8Alphabet_1__cinit__(PyObject *__pyx_v_self, PyObject *   *         self.nonterminals = StringMap()   */ -static int __pyx_pf_3_sa_8Alphabet___cinit__(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self) { +static int __pyx_pf_3_sa_8Alphabet___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_8Alphabet___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_r;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0); +  __Pyx_RefNannySetupContext("__cinit__"); +  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { +    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} +  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":13   *  @@ -21679,9 +20328,9 @@ static int __pyx_pf_3_sa_8Alphabet___cinit__(struct __pyx_obj_3_sa_Alphabet *__p    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_StringMap)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->terminals); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->terminals)); -  __pyx_v_self->terminals = ((struct __pyx_obj_3_sa_StringMap *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->terminals); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->terminals)); +  ((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->terminals = ((struct __pyx_obj_3_sa_StringMap *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":14 @@ -21694,9 +20343,9 @@ static int __pyx_pf_3_sa_8Alphabet___cinit__(struct __pyx_obj_3_sa_Alphabet *__p    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_StringMap)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->nonterminals); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->nonterminals)); -  __pyx_v_self->nonterminals = ((struct __pyx_obj_3_sa_StringMap *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->nonterminals); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->nonterminals)); +  ((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->nonterminals = ((struct __pyx_obj_3_sa_StringMap *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":15 @@ -21709,9 +20358,9 @@ static int __pyx_pf_3_sa_8Alphabet___cinit__(struct __pyx_obj_3_sa_Alphabet *__p    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); -  __Pyx_GOTREF(__pyx_v_self->id2sym); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->id2sym)); -  __pyx_v_self->id2sym = __pyx_t_1; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->id2sym); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->id2sym)); +  ((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->id2sym = __pyx_t_1;    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":16 @@ -21721,7 +20370,7 @@ static int __pyx_pf_3_sa_8Alphabet___cinit__(struct __pyx_obj_3_sa_Alphabet *__p   *    *     def __dealloc__(self):   */ -  __pyx_v_self->first_nonterminal = -1; +  ((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->first_nonterminal = -1;    __pyx_r = 0;    goto __pyx_L0; @@ -21734,15 +20383,6 @@ static int __pyx_pf_3_sa_8Alphabet___cinit__(struct __pyx_obj_3_sa_Alphabet *__p    return __pyx_r;  } -/* Python wrapper */ -static void __pyx_pw_3_sa_8Alphabet_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_3_sa_8Alphabet_3__dealloc__(PyObject *__pyx_v_self) { -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); -  __pyx_pf_3_sa_8Alphabet_2__dealloc__(((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":18   *         self.first_nonterminal = -1   *  @@ -21751,9 +20391,10 @@ static void __pyx_pw_3_sa_8Alphabet_3__dealloc__(PyObject *__pyx_v_self) {   *    */ -static void __pyx_pf_3_sa_8Alphabet_2__dealloc__(CYTHON_UNUSED struct __pyx_obj_3_sa_Alphabet *__pyx_v_self) { +static void __pyx_pf_3_sa_8Alphabet_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pf_3_sa_8Alphabet_1__dealloc__(PyObject *__pyx_v_self) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__", 0); +  __Pyx_RefNannySetupContext("__dealloc__");    __Pyx_RefNannyFinishContext();  } @@ -21766,10 +20407,10 @@ static void __pyx_pf_3_sa_8Alphabet_2__dealloc__(CYTHON_UNUSED struct __pyx_obj_   *    */ -static int __pyx_f_3_sa_8Alphabet_isvar(CYTHON_UNUSED struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym) { +static int __pyx_f_3_sa_8Alphabet_isvar(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("isvar", 0); +  __Pyx_RefNannySetupContext("isvar");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":22   *  @@ -21795,10 +20436,10 @@ static int __pyx_f_3_sa_8Alphabet_isvar(CYTHON_UNUSED struct __pyx_obj_3_sa_Alph   *    */ -static int __pyx_f_3_sa_8Alphabet_isword(CYTHON_UNUSED struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym) { +static int __pyx_f_3_sa_8Alphabet_isword(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("isword", 0); +  __Pyx_RefNannySetupContext("isword");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":25   *  @@ -21824,10 +20465,10 @@ static int __pyx_f_3_sa_8Alphabet_isword(CYTHON_UNUSED struct __pyx_obj_3_sa_Alp   *    */ -static int __pyx_f_3_sa_8Alphabet_getindex(CYTHON_UNUSED struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym) { +static int __pyx_f_3_sa_8Alphabet_getindex(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("getindex", 0); +  __Pyx_RefNannySetupContext("getindex");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":28   *  @@ -21853,10 +20494,10 @@ static int __pyx_f_3_sa_8Alphabet_getindex(CYTHON_UNUSED struct __pyx_obj_3_sa_A   *    */ -static int __pyx_f_3_sa_8Alphabet_setindex(CYTHON_UNUSED struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym, int __pyx_v_ind) { +static int __pyx_f_3_sa_8Alphabet_setindex(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym, int __pyx_v_ind) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("setindex", 0); +  __Pyx_RefNannySetupContext("setindex");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":31   *  @@ -21882,10 +20523,10 @@ static int __pyx_f_3_sa_8Alphabet_setindex(CYTHON_UNUSED struct __pyx_obj_3_sa_A   *    */ -static int __pyx_f_3_sa_8Alphabet_clearindex(CYTHON_UNUSED struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym) { +static int __pyx_f_3_sa_8Alphabet_clearindex(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("clearindex", 0); +  __Pyx_RefNannySetupContext("clearindex");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":34   *  @@ -21914,7 +20555,7 @@ static int __pyx_f_3_sa_8Alphabet_clearindex(CYTHON_UNUSED struct __pyx_obj_3_sa  static int __pyx_f_3_sa_8Alphabet_match(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym1, int __pyx_v_sym2) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("match", 0); +  __Pyx_RefNannySetupContext("match");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":37   *  @@ -21943,7 +20584,7 @@ static int __pyx_f_3_sa_8Alphabet_match(struct __pyx_obj_3_sa_Alphabet *__pyx_v_  static char *__pyx_f_3_sa_8Alphabet_tocat(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self, int __pyx_v_sym) {    char *__pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("tocat", 0); +  __Pyx_RefNannySetupContext("tocat");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":40   *  @@ -21974,7 +20615,7 @@ static int __pyx_f_3_sa_8Alphabet_fromcat(struct __pyx_obj_3_sa_Alphabet *__pyx_    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("fromcat", 0); +  __Pyx_RefNannySetupContext("fromcat");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":44   *     cdef int fromcat(self, char *s): @@ -22066,7 +20707,7 @@ static char *__pyx_f_3_sa_8Alphabet_tostring(struct __pyx_obj_3_sa_Alphabet *__p    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("tostring", 0); +  __Pyx_RefNannySetupContext("tostring");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":53   *     cdef char* tostring(self, int sym): @@ -22088,10 +20729,9 @@ static char *__pyx_f_3_sa_8Alphabet_tostring(struct __pyx_obj_3_sa_Alphabet *__p      __pyx_t_2 = PyInt_FromLong(__pyx_v_sym); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      if (unlikely(((PyObject *)__pyx_v_self->id2sym) == Py_None)) { -      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -      {__pyx_filename = __pyx_f[10]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[10]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}       } -    __pyx_t_3 = (__Pyx_PyDict_Contains(__pyx_t_2, ((PyObject *)__pyx_v_self->id2sym), Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = ((PyDict_Contains(((PyObject *)__pyx_v_self->id2sym), __pyx_t_2))); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      if (__pyx_t_3) { @@ -22102,10 +20742,6 @@ static char *__pyx_f_3_sa_8Alphabet_tostring(struct __pyx_obj_3_sa_Alphabet *__p   *             ind = self.getindex(sym)   *             if ind > 0:   */ -      if (unlikely(((PyObject *)__pyx_v_self->id2sym) == Py_None)) { -        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -        {__pyx_filename = __pyx_f[10]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      }        __pyx_t_2 = __Pyx_GetItemInt(((PyObject *)__pyx_v_self->id2sym), __pyx_v_sym, sizeof(int), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __pyx_t_4 = PyBytes_AsString(__pyx_t_2); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -22147,7 +20783,7 @@ static char *__pyx_f_3_sa_8Alphabet_tostring(struct __pyx_obj_3_sa_Alphabet *__p        __pyx_t_5 = PyInt_FromLong(__pyx_v_ind); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 58; __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[10]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_6); +      __Pyx_GOTREF(((PyObject *)__pyx_t_6));        PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_2));        __Pyx_GIVEREF(((PyObject *)__pyx_t_2));        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); @@ -22157,10 +20793,6 @@ static char *__pyx_f_3_sa_8Alphabet_tostring(struct __pyx_obj_3_sa_Alphabet *__p        __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_64), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(((PyObject *)__pyx_t_5));        __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; -      if (unlikely(((PyObject *)__pyx_v_self->id2sym) == Py_None)) { -        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -        {__pyx_filename = __pyx_f[10]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      }        if (__Pyx_SetItemInt(((PyObject *)__pyx_v_self->id2sym), __pyx_v_sym, ((PyObject *)__pyx_t_5), sizeof(int), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;        goto __pyx_L5; @@ -22179,10 +20811,6 @@ static char *__pyx_f_3_sa_8Alphabet_tostring(struct __pyx_obj_3_sa_Alphabet *__p        __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_65), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(((PyObject *)__pyx_t_6));        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; -      if (unlikely(((PyObject *)__pyx_v_self->id2sym) == Py_None)) { -        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -        {__pyx_filename = __pyx_f[10]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      }        if (__Pyx_SetItemInt(((PyObject *)__pyx_v_self->id2sym), __pyx_v_sym, ((PyObject *)__pyx_t_6), sizeof(int), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;      } @@ -22195,10 +20823,6 @@ static char *__pyx_f_3_sa_8Alphabet_tostring(struct __pyx_obj_3_sa_Alphabet *__p   *         else:   *             return self.terminals.word(sym)   */ -    if (unlikely(((PyObject *)__pyx_v_self->id2sym) == Py_None)) { -      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -      {__pyx_filename = __pyx_f[10]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    }      __pyx_t_6 = __Pyx_GetItemInt(((PyObject *)__pyx_v_self->id2sym), __pyx_v_sym, sizeof(int), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6);      __pyx_t_4 = PyBytes_AsString(__pyx_t_6); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -22260,7 +20884,7 @@ static int __pyx_f_3_sa_8Alphabet_fromstring(struct __pyx_obj_3_sa_Alphabet *__p    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("fromstring", 0); +  __Pyx_RefNannySetupContext("fromstring");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":69   *         cdef char *comma @@ -22445,17 +21069,6 @@ static int __pyx_f_3_sa_8Alphabet_fromstring(struct __pyx_obj_3_sa_Alphabet *__p    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_8Alphabet_9terminals_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_8Alphabet_9terminals_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_8Alphabet_9terminals___get__(((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":8   *    * cdef class Alphabet: @@ -22464,13 +21077,14 @@ static PyObject *__pyx_pw_3_sa_8Alphabet_9terminals_1__get__(PyObject *__pyx_v_s   *     cdef dict id2sym   */ -static PyObject *__pyx_pf_3_sa_8Alphabet_9terminals___get__(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_8Alphabet_9terminals___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_8Alphabet_9terminals___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    __Pyx_XDECREF(__pyx_r); -  __Pyx_INCREF(((PyObject *)__pyx_v_self->terminals)); -  __pyx_r = ((PyObject *)__pyx_v_self->terminals); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->terminals)); +  __pyx_r = ((PyObject *)((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->terminals);    goto __pyx_L0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -22480,24 +21094,14 @@ static PyObject *__pyx_pf_3_sa_8Alphabet_9terminals___get__(struct __pyx_obj_3_s    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_8Alphabet_12nonterminals_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_8Alphabet_12nonterminals_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_8Alphabet_12nonterminals___get__(((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static PyObject *__pyx_pf_3_sa_8Alphabet_12nonterminals___get__(struct __pyx_obj_3_sa_Alphabet *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_8Alphabet_12nonterminals___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_8Alphabet_12nonterminals___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    __Pyx_XDECREF(__pyx_r); -  __Pyx_INCREF(((PyObject *)__pyx_v_self->nonterminals)); -  __pyx_r = ((PyObject *)__pyx_v_self->nonterminals); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->nonterminals)); +  __pyx_r = ((PyObject *)((struct __pyx_obj_3_sa_Alphabet *)__pyx_v_self)->nonterminals);    goto __pyx_L0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -22518,7 +21122,7 @@ static PyObject *__pyx_pf_3_sa_8Alphabet_12nonterminals___get__(struct __pyx_obj  static char *__pyx_f_3_sa_sym_tostring(int __pyx_v_sym) {    char *__pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("sym_tostring", 0); +  __Pyx_RefNannySetupContext("sym_tostring");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":90   *  @@ -22547,7 +21151,7 @@ static char *__pyx_f_3_sa_sym_tostring(int __pyx_v_sym) {  static char *__pyx_f_3_sa_sym_tocat(int __pyx_v_sym) {    char *__pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("sym_tocat", 0); +  __Pyx_RefNannySetupContext("sym_tocat");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":93   *  @@ -22576,7 +21180,7 @@ static char *__pyx_f_3_sa_sym_tocat(int __pyx_v_sym) {  static int __pyx_f_3_sa_sym_isvar(int __pyx_v_sym) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("sym_isvar", 0); +  __Pyx_RefNannySetupContext("sym_isvar");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":96   *  @@ -22605,7 +21209,7 @@ static int __pyx_f_3_sa_sym_isvar(int __pyx_v_sym) {  static int __pyx_f_3_sa_sym_getindex(int __pyx_v_sym) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("sym_getindex", 0); +  __Pyx_RefNannySetupContext("sym_getindex");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":99   *  @@ -22634,7 +21238,7 @@ static int __pyx_f_3_sa_sym_getindex(int __pyx_v_sym) {  static int __pyx_f_3_sa_sym_setindex(int __pyx_v_sym, int __pyx_v_id) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("sym_setindex", 0); +  __Pyx_RefNannySetupContext("sym_setindex");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":102   *  @@ -22652,40 +21256,52 @@ static int __pyx_f_3_sa_sym_setindex(int __pyx_v_sym, int __pyx_v_id) {    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_3sym_fromstring(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_3_sa_3sym_fromstring = {__Pyx_NAMESTR("sym_fromstring"), (PyCFunction)__pyx_pw_3_sa_3sym_fromstring, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pw_3_sa_3sym_fromstring(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":104 + *     return ALPHABET.setindex(sym, id) + *  + * def sym_fromstring(char* string, bint terminal):             # <<<<<<<<<<<<<< + *     return ALPHABET.fromstring(string, terminal) + */ + +static PyObject *__pyx_pf_3_sa_1sym_fromstring(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_3_sa_1sym_fromstring = {__Pyx_NAMESTR("sym_fromstring"), (PyCFunction)__pyx_pf_3_sa_1sym_fromstring, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}; +static PyObject *__pyx_pf_3_sa_1sym_fromstring(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    char *__pyx_v_string;    int __pyx_v_terminal; -  PyObject *__pyx_r = 0; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("sym_fromstring (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__string,&__pyx_n_s__terminal,0}; +  __Pyx_RefNannySetupContext("sym_fromstring"); +  __pyx_self = __pyx_self;    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__string,&__pyx_n_s__terminal,0};      PyObject* values[2] = {0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__string)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__string); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__terminal)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__terminal); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("sym_fromstring", 1, 2, 2, 1); {__pyx_filename = __pyx_f[10]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "sym_fromstring") < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "sym_fromstring") < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {        goto __pyx_L5_argtuple_error; @@ -22704,26 +21320,6 @@ static PyObject *__pyx_pw_3_sa_3sym_fromstring(PyObject *__pyx_self, PyObject *_    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_2sym_fromstring(__pyx_self, __pyx_v_string, __pyx_v_terminal); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":104 - *     return ALPHABET.setindex(sym, id) - *  - * def sym_fromstring(char* string, bint terminal):             # <<<<<<<<<<<<<< - *     return ALPHABET.fromstring(string, terminal) - */ - -static PyObject *__pyx_pf_3_sa_2sym_fromstring(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_string, int __pyx_v_terminal) { -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("sym_fromstring", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":105   *  @@ -22749,32 +21345,50 @@ static PyObject *__pyx_pf_3_sa_2sym_fromstring(CYTHON_UNUSED PyObject *__pyx_sel    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_6Phrase_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_6Phrase_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":6 + * cdef class Phrase: + *  + *     def __cinit__(self, words):             # <<<<<<<<<<<<<< + *         cdef int i, j, n, n_vars + *         n_vars = 0 + */ + +static int __pyx_pf_3_sa_6Phrase___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_6Phrase___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_words = 0; +  int __pyx_v_i; +  int __pyx_v_j; +  int __pyx_v_n; +  int __pyx_v_n_vars;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  Py_ssize_t __pyx_t_1; +  int __pyx_t_2; +  PyObject *__pyx_t_3 = NULL; +  int __pyx_t_4; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__words,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__words,0};      PyObject* values[1] = {0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__words)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__words); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {        goto __pyx_L5_argtuple_error; @@ -22791,34 +21405,6 @@ static int __pyx_pw_3_sa_6Phrase_1__cinit__(PyObject *__pyx_v_self, PyObject *__    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_6Phrase___cinit__(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self), __pyx_v_words); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":6 - * cdef class Phrase: - *  - *     def __cinit__(self, words):             # <<<<<<<<<<<<<< - *         cdef int i, j, n, n_vars - *         n_vars = 0 - */ - -static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_words) { -  int __pyx_v_i; -  int __pyx_v_j; -  int __pyx_v_n; -  int __pyx_v_n_vars; -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  Py_ssize_t __pyx_t_1; -  int __pyx_t_2; -  PyObject *__pyx_t_3 = NULL; -  int __pyx_t_4; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":8   *     def __cinit__(self, words): @@ -22846,7 +21432,7 @@ static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *         for i from 0 <= i < n:   *             self.syms[i] = words[i]   */ -  __pyx_v_self->syms = ((int *)malloc((__pyx_v_n * (sizeof(int))))); +  ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms = ((int *)malloc((__pyx_v_n * (sizeof(int)))));    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":11   *         n = len(words) @@ -22869,7 +21455,7 @@ static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    (__pyx_v_self->syms[__pyx_v_i]) = __pyx_t_4; +    (((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i]) = __pyx_t_4;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":13   *         for i from 0 <= i < n: @@ -22878,7 +21464,7 @@ static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *                 n_vars += 1   *         self.n = n   */ -    __pyx_t_4 = __pyx_f_3_sa_sym_isvar((__pyx_v_self->syms[__pyx_v_i])); +    __pyx_t_4 = __pyx_f_3_sa_sym_isvar((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i]));      if (__pyx_t_4) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":14 @@ -22889,9 +21475,9 @@ static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *         self.n_vars = n_vars   */        __pyx_v_n_vars = (__pyx_v_n_vars + 1); -      goto __pyx_L5; +      goto __pyx_L8;      } -    __pyx_L5:; +    __pyx_L8:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":15 @@ -22901,7 +21487,7 @@ static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *         self.n_vars = n_vars   *         self.varpos = <int *>malloc(n_vars*sizeof(int))   */ -  __pyx_v_self->n = __pyx_v_n; +  ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n = __pyx_v_n;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":16   *                 n_vars += 1 @@ -22910,7 +21496,7 @@ static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *         self.varpos = <int *>malloc(n_vars*sizeof(int))   *         j = 0   */ -  __pyx_v_self->n_vars = __pyx_v_n_vars; +  ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n_vars = __pyx_v_n_vars;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":17   *         self.n = n @@ -22919,7 +21505,7 @@ static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *         j = 0   *         for i from 0 <= i < n:   */ -  __pyx_v_self->varpos = ((int *)malloc((__pyx_v_n_vars * (sizeof(int))))); +  ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->varpos = ((int *)malloc((__pyx_v_n_vars * (sizeof(int)))));    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":18   *         self.n_vars = n_vars @@ -22947,7 +21533,7 @@ static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *                 self.varpos[j] = i   *                 j = j + 1   */ -    __pyx_t_4 = __pyx_f_3_sa_sym_isvar((__pyx_v_self->syms[__pyx_v_i])); +    __pyx_t_4 = __pyx_f_3_sa_sym_isvar((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i]));      if (__pyx_t_4) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":21 @@ -22957,7 +21543,7 @@ static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *                 j = j + 1   *    */ -      (__pyx_v_self->varpos[__pyx_v_j]) = __pyx_v_i; +      (((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->varpos[__pyx_v_j]) = __pyx_v_i;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":22   *             if sym_isvar(self.syms[i]): @@ -22967,9 +21553,9 @@ static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *     def __dealloc__(self):   */        __pyx_v_j = (__pyx_v_j + 1); -      goto __pyx_L8; +      goto __pyx_L11;      } -    __pyx_L8:; +    __pyx_L11:;    }    __pyx_r = 0; @@ -22983,15 +21569,6 @@ static int __pyx_pf_3_sa_6Phrase___cinit__(struct __pyx_obj_3_sa_Phrase *__pyx_v    return __pyx_r;  } -/* Python wrapper */ -static void __pyx_pw_3_sa_6Phrase_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_3_sa_6Phrase_3__dealloc__(PyObject *__pyx_v_self) { -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); -  __pyx_pf_3_sa_6Phrase_2__dealloc__(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":24   *                 j = j + 1   *  @@ -23000,9 +21577,10 @@ static void __pyx_pw_3_sa_6Phrase_3__dealloc__(PyObject *__pyx_v_self) {   *         free(self.varpos)   */ -static void __pyx_pf_3_sa_6Phrase_2__dealloc__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self) { +static void __pyx_pf_3_sa_6Phrase_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pf_3_sa_6Phrase_1__dealloc__(PyObject *__pyx_v_self) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__", 0); +  __Pyx_RefNannySetupContext("__dealloc__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":25   *  @@ -23011,7 +21589,7 @@ static void __pyx_pf_3_sa_6Phrase_2__dealloc__(struct __pyx_obj_3_sa_Phrase *__p   *         free(self.varpos)   *    */ -  free(__pyx_v_self->syms); +  free(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":26   *     def __dealloc__(self): @@ -23020,20 +21598,9 @@ static void __pyx_pf_3_sa_6Phrase_2__dealloc__(struct __pyx_obj_3_sa_Phrase *__p   *    *     def __str__(self):   */ -  free(__pyx_v_self->varpos); - -  __Pyx_RefNannyFinishContext(); -} +  free(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->varpos); -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_5__str__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_6Phrase_5__str__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_4__str__(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self));    __Pyx_RefNannyFinishContext(); -  return __pyx_r;  }  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":28 @@ -23044,7 +21611,8 @@ static PyObject *__pyx_pw_3_sa_6Phrase_5__str__(PyObject *__pyx_v_self) {   *         cdef int i, s   */ -static PyObject *__pyx_pf_3_sa_6Phrase_4__str__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_6Phrase_2__str__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_6Phrase_2__str__(PyObject *__pyx_v_self) {    PyObject *__pyx_v_strs = NULL;    int __pyx_v_i;    int __pyx_v_s; @@ -23058,7 +21626,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_4__str__(struct __pyx_obj_3_sa_Phrase *__    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__str__", 0); +  __Pyx_RefNannySetupContext("__str__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":29   *  @@ -23068,7 +21636,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_4__str__(struct __pyx_obj_3_sa_Phrase *__   *         for i from 0 <= i < self.n:   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_strs = __pyx_t_1;    __pyx_t_1 = 0; @@ -23079,7 +21647,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_4__str__(struct __pyx_obj_3_sa_Phrase *__   *             s = self.syms[i]   *             strs.append(sym_tostring(s))   */ -  __pyx_t_2 = __pyx_v_self->n; +  __pyx_t_2 = ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":32 @@ -23089,7 +21657,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_4__str__(struct __pyx_obj_3_sa_Phrase *__   *             strs.append(sym_tostring(s))   *         return ' '.join(strs)   */ -    __pyx_v_s = (__pyx_v_self->syms[__pyx_v_i]); +    __pyx_v_s = (((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i]);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":33   *         for i from 0 <= i < self.n: @@ -23098,6 +21666,9 @@ static PyObject *__pyx_pf_3_sa_6Phrase_4__str__(struct __pyx_obj_3_sa_Phrase *__   *         return ' '.join(strs)   *    */ +    if (unlikely(((PyObject *)__pyx_v_strs) == Py_None)) { +      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    }      __pyx_t_1 = PyBytes_FromString(__pyx_f_3_sa_sym_tostring(__pyx_v_s)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __pyx_t_3 = PyList_Append(__pyx_v_strs, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -23115,7 +21686,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_4__str__(struct __pyx_obj_3_sa_Phrase *__    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_kp_s_67), __pyx_n_s__join); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 34; __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[7]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_4); +  __Pyx_GOTREF(((PyObject *)__pyx_t_4));    __Pyx_INCREF(((PyObject *)__pyx_v_strs));    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_strs));    __Pyx_GIVEREF(((PyObject *)__pyx_v_strs)); @@ -23142,18 +21713,6 @@ static PyObject *__pyx_pf_3_sa_6Phrase_4__str__(struct __pyx_obj_3_sa_Phrase *__    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_7handle(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static char __pyx_doc_3_sa_6Phrase_6handle[] = "return a hashable representation that normalizes the ordering\n        of the nonterminal indices"; -static PyObject *__pyx_pw_3_sa_6Phrase_7handle(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("handle (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_6handle(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":36   *         return ' '.join(strs)   *  @@ -23162,7 +21721,9 @@ static PyObject *__pyx_pw_3_sa_6Phrase_7handle(PyObject *__pyx_v_self, CYTHON_UN   *         of the nonterminal indices"""   */ -static PyObject *__pyx_pf_3_sa_6Phrase_6handle(struct __pyx_obj_3_sa_Phrase *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_6Phrase_3handle(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static char __pyx_doc_3_sa_6Phrase_3handle[] = "return a hashable representation that normalizes the ordering\n        of the nonterminal indices"; +static PyObject *__pyx_pf_3_sa_6Phrase_3handle(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_v_norm = NULL;    int __pyx_v_i;    int __pyx_v_j; @@ -23176,7 +21737,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_6handle(struct __pyx_obj_3_sa_Phrase *__p    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("handle", 0); +  __Pyx_RefNannySetupContext("handle");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":39   *         """return a hashable representation that normalizes the ordering @@ -23186,7 +21747,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_6handle(struct __pyx_obj_3_sa_Phrase *__p   *         i = 1   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_norm = __pyx_t_1;    __pyx_t_1 = 0; @@ -23215,7 +21776,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_6handle(struct __pyx_obj_3_sa_Phrase *__p   *             s = self.syms[j]   *             if sym_isvar(s):   */ -  __pyx_t_2 = __pyx_v_self->n; +  __pyx_t_2 = ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n;    for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_2; __pyx_v_j++) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":44 @@ -23225,7 +21786,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_6handle(struct __pyx_obj_3_sa_Phrase *__p   *             if sym_isvar(s):   *                 s = sym_setindex(s,i)   */ -    __pyx_v_s = (__pyx_v_self->syms[__pyx_v_j]); +    __pyx_v_s = (((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_j]);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":45   *         for j from 0 <= j < self.n: @@ -23254,9 +21815,9 @@ static PyObject *__pyx_pf_3_sa_6Phrase_6handle(struct __pyx_obj_3_sa_Phrase *__p   *         return tuple(norm)   */        __pyx_v_i = (__pyx_v_i + 1); -      goto __pyx_L5; +      goto __pyx_L7;      } -    __pyx_L5:; +    __pyx_L7:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":48   *                 s = sym_setindex(s,i) @@ -23265,6 +21826,9 @@ static PyObject *__pyx_pf_3_sa_6Phrase_6handle(struct __pyx_obj_3_sa_Phrase *__p   *         return tuple(norm)   *    */ +    if (unlikely(((PyObject *)__pyx_v_norm) == Py_None)) { +      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    }      __pyx_t_1 = PyInt_FromLong(__pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_4 = PyList_Append(__pyx_v_norm, __pyx_t_1); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -23279,6 +21843,9 @@ static PyObject *__pyx_pf_3_sa_6Phrase_6handle(struct __pyx_obj_3_sa_Phrase *__p   *     def strhandle(self):   */    __Pyx_XDECREF(__pyx_r); +  if (unlikely(((PyObject *)__pyx_v_norm) == Py_None)) { +    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +  }    __pyx_t_1 = ((PyObject *)PyList_AsTuple(__pyx_v_norm)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_r = ((PyObject *)__pyx_t_1); @@ -23298,17 +21865,6 @@ static PyObject *__pyx_pf_3_sa_6Phrase_6handle(struct __pyx_obj_3_sa_Phrase *__p    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_9strhandle(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_3_sa_6Phrase_9strhandle(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("strhandle (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_8strhandle(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":51   *         return tuple(norm)   *  @@ -23317,8 +21873,9 @@ static PyObject *__pyx_pw_3_sa_6Phrase_9strhandle(PyObject *__pyx_v_self, CYTHON   *         norm = []   */ -static PyObject *__pyx_pf_3_sa_6Phrase_8strhandle(struct __pyx_obj_3_sa_Phrase *__pyx_v_self) { -  CYTHON_UNUSED PyObject *__pyx_v_strs = NULL; +static PyObject *__pyx_pf_3_sa_6Phrase_4strhandle(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_6Phrase_4strhandle(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +  PyObject *__pyx_v_strs = NULL;    PyObject *__pyx_v_norm = NULL;    int __pyx_v_i;    int __pyx_v_j; @@ -23334,7 +21891,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_8strhandle(struct __pyx_obj_3_sa_Phrase *    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("strhandle", 0); +  __Pyx_RefNannySetupContext("strhandle");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":52   *  @@ -23344,7 +21901,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_8strhandle(struct __pyx_obj_3_sa_Phrase *   *         cdef int i, j, s   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_strs = __pyx_t_1;    __pyx_t_1 = 0; @@ -23356,7 +21913,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_8strhandle(struct __pyx_obj_3_sa_Phrase *   *         i = 1   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_norm = __pyx_t_1;    __pyx_t_1 = 0; @@ -23385,7 +21942,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_8strhandle(struct __pyx_obj_3_sa_Phrase *   *             s = self.syms[j]   *             if sym_isvar(s):   */ -  __pyx_t_2 = __pyx_v_self->n; +  __pyx_t_2 = ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n;    for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_2; __pyx_v_j++) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":58 @@ -23395,7 +21952,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_8strhandle(struct __pyx_obj_3_sa_Phrase *   *             if sym_isvar(s):   *                 s = sym_setindex(s,i)   */ -    __pyx_v_s = (__pyx_v_self->syms[__pyx_v_j]); +    __pyx_v_s = (((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_j]);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":59   *         for j from 0 <= j < self.n: @@ -23424,9 +21981,9 @@ static PyObject *__pyx_pf_3_sa_6Phrase_8strhandle(struct __pyx_obj_3_sa_Phrase *   *         return ' '.join(norm)   */        __pyx_v_i = (__pyx_v_i + 1); -      goto __pyx_L5; +      goto __pyx_L7;      } -    __pyx_L5:; +    __pyx_L7:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":62   *                 s = sym_setindex(s,i) @@ -23435,6 +21992,9 @@ static PyObject *__pyx_pf_3_sa_6Phrase_8strhandle(struct __pyx_obj_3_sa_Phrase *   *         return ' '.join(norm)   *    */ +    if (unlikely(((PyObject *)__pyx_v_norm) == Py_None)) { +      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    }      __pyx_t_1 = PyBytes_FromString(__pyx_f_3_sa_sym_tostring(__pyx_v_s)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __pyx_t_4 = PyList_Append(__pyx_v_norm, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -23452,7 +22012,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_8strhandle(struct __pyx_obj_3_sa_Phrase *    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_kp_s_67), __pyx_n_s__join); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 63; __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[7]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_5); +  __Pyx_GOTREF(((PyObject *)__pyx_t_5));    __Pyx_INCREF(((PyObject *)__pyx_v_norm));    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_norm));    __Pyx_GIVEREF(((PyObject *)__pyx_v_norm)); @@ -23480,17 +22040,6 @@ static PyObject *__pyx_pf_3_sa_6Phrase_8strhandle(struct __pyx_obj_3_sa_Phrase *    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_11arity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_3_sa_6Phrase_11arity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("arity (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_10arity(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":65   *         return ' '.join(norm)   *  @@ -23499,14 +22048,15 @@ static PyObject *__pyx_pw_3_sa_6Phrase_11arity(PyObject *__pyx_v_self, CYTHON_UN   *    */ -static PyObject *__pyx_pf_3_sa_6Phrase_10arity(struct __pyx_obj_3_sa_Phrase *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_6Phrase_5arity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_6Phrase_5arity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("arity", 0); +  __Pyx_RefNannySetupContext("arity");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":66   *  @@ -23516,7 +22066,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_10arity(struct __pyx_obj_3_sa_Phrase *__p   *     def getvarpos(self, i):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->n_vars); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n_vars); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -23534,17 +22084,6 @@ static PyObject *__pyx_pf_3_sa_6Phrase_10arity(struct __pyx_obj_3_sa_Phrase *__p    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_13getvarpos(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_6Phrase_13getvarpos(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("getvarpos (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_12getvarpos(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":68   *         return self.n_vars   *  @@ -23553,7 +22092,8 @@ static PyObject *__pyx_pw_3_sa_6Phrase_13getvarpos(PyObject *__pyx_v_self, PyObj   *             return self.varpos[i]   */ -static PyObject *__pyx_pf_3_sa_6Phrase_12getvarpos(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_6Phrase_6getvarpos(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_6Phrase_6getvarpos(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -23563,7 +22103,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_12getvarpos(struct __pyx_obj_3_sa_Phrase    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("getvarpos", 0); +  __Pyx_RefNannySetupContext("getvarpos");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":69   *  @@ -23572,12 +22112,14 @@ static PyObject *__pyx_pf_3_sa_6Phrase_12getvarpos(struct __pyx_obj_3_sa_Phrase   *             return self.varpos[i]   *         else:   */ -  __pyx_t_1 = PyObject_RichCompare(__pyx_int_0, __pyx_v_i, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_RichCompare(__pyx_int_0, __pyx_v_i, Py_LE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_1);    if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {      __Pyx_DECREF(__pyx_t_1); -    __pyx_t_2 = PyInt_FromLong(__pyx_v_self->n_vars); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n_vars); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_1 = PyObject_RichCompare(__pyx_v_i, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_i, __pyx_t_2, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    }    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -23593,12 +22135,12 @@ static PyObject *__pyx_pf_3_sa_6Phrase_12getvarpos(struct __pyx_obj_3_sa_Phrase   */      __Pyx_XDECREF(__pyx_r);      __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_1 = PyInt_FromLong((__pyx_v_self->varpos[__pyx_t_4])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyInt_FromLong((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->varpos[__pyx_t_4])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_r = __pyx_t_1;      __pyx_t_1 = 0;      goto __pyx_L0; -    goto __pyx_L3; +    goto __pyx_L5;    }    /*else*/ { @@ -23612,7 +22154,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_12getvarpos(struct __pyx_obj_3_sa_Phrase      __Pyx_Raise(__pyx_builtin_IndexError, 0, 0, 0);      {__pyx_filename = __pyx_f[7]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  __pyx_L3:; +  __pyx_L5:;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -23627,17 +22169,6 @@ static PyObject *__pyx_pf_3_sa_6Phrase_12getvarpos(struct __pyx_obj_3_sa_Phrase    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_15getvar(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_6Phrase_15getvar(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("getvar (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_14getvar(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":74   *             raise IndexError   *  @@ -23646,7 +22177,8 @@ static PyObject *__pyx_pw_3_sa_6Phrase_15getvar(PyObject *__pyx_v_self, PyObject   *             return self.syms[self.varpos[i]]   */ -static PyObject *__pyx_pf_3_sa_6Phrase_14getvar(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_6Phrase_7getvar(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_6Phrase_7getvar(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -23656,7 +22188,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_14getvar(struct __pyx_obj_3_sa_Phrase *__    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("getvar", 0); +  __Pyx_RefNannySetupContext("getvar");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":75   *  @@ -23665,12 +22197,14 @@ static PyObject *__pyx_pf_3_sa_6Phrase_14getvar(struct __pyx_obj_3_sa_Phrase *__   *             return self.syms[self.varpos[i]]   *         else:   */ -  __pyx_t_1 = PyObject_RichCompare(__pyx_int_0, __pyx_v_i, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_RichCompare(__pyx_int_0, __pyx_v_i, Py_LE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_1);    if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {      __Pyx_DECREF(__pyx_t_1); -    __pyx_t_2 = PyInt_FromLong(__pyx_v_self->n_vars); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n_vars); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_1 = PyObject_RichCompare(__pyx_v_i, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_i, __pyx_t_2, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_1);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    }    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -23686,12 +22220,12 @@ static PyObject *__pyx_pf_3_sa_6Phrase_14getvar(struct __pyx_obj_3_sa_Phrase *__   */      __Pyx_XDECREF(__pyx_r);      __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_1 = PyInt_FromLong((__pyx_v_self->syms[(__pyx_v_self->varpos[__pyx_t_4])])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyInt_FromLong((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->varpos[__pyx_t_4])])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_r = __pyx_t_1;      __pyx_t_1 = 0;      goto __pyx_L0; -    goto __pyx_L3; +    goto __pyx_L5;    }    /*else*/ { @@ -23705,7 +22239,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_14getvar(struct __pyx_obj_3_sa_Phrase *__      __Pyx_Raise(__pyx_builtin_IndexError, 0, 0, 0);      {__pyx_filename = __pyx_f[7]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  __pyx_L3:; +  __pyx_L5:;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -23732,7 +22266,7 @@ int __pyx_f_3_sa_6Phrase_chunkpos(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, in    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("chunkpos", 0); +  __Pyx_RefNannySetupContext("chunkpos");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":81   *  @@ -23787,7 +22321,7 @@ int __pyx_f_3_sa_6Phrase_chunklen(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, in    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("chunklen", 0); +  __Pyx_RefNannySetupContext("chunklen");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":87   *  @@ -23874,17 +22408,6 @@ int __pyx_f_3_sa_6Phrase_chunklen(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, in    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_17clen(PyObject *__pyx_v_self, PyObject *__pyx_v_k); /*proto*/ -static PyObject *__pyx_pw_3_sa_6Phrase_17clen(PyObject *__pyx_v_self, PyObject *__pyx_v_k) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("clen (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_16clen(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self), ((PyObject *)__pyx_v_k)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":96   *             return self.varpos[k]-self.varpos[k-1]-1   *  @@ -23893,7 +22416,8 @@ static PyObject *__pyx_pw_3_sa_6Phrase_17clen(PyObject *__pyx_v_self, PyObject *   *    */ -static PyObject *__pyx_pf_3_sa_6Phrase_16clen(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_k) { +static PyObject *__pyx_pf_3_sa_6Phrase_8clen(PyObject *__pyx_v_self, PyObject *__pyx_v_k); /*proto*/ +static PyObject *__pyx_pf_3_sa_6Phrase_8clen(PyObject *__pyx_v_self, PyObject *__pyx_v_k) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -23901,7 +22425,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_16clen(struct __pyx_obj_3_sa_Phrase *__py    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("clen", 0); +  __Pyx_RefNannySetupContext("clen");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":97   *  @@ -23912,7 +22436,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_16clen(struct __pyx_obj_3_sa_Phrase *__py   */    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_k); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong(((struct __pyx_vtabstruct_3_sa_Phrase *)__pyx_v_self->__pyx_vtab)->chunklen(__pyx_v_self, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong(((struct __pyx_vtabstruct_3_sa_Phrase *)((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->__pyx_vtab)->chunklen(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self), __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_r = __pyx_t_2;    __pyx_t_2 = 0; @@ -23930,17 +22454,6 @@ static PyObject *__pyx_pf_3_sa_6Phrase_16clen(struct __pyx_obj_3_sa_Phrase *__py    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_19getchunk(PyObject *__pyx_v_self, PyObject *__pyx_v_ci); /*proto*/ -static PyObject *__pyx_pw_3_sa_6Phrase_19getchunk(PyObject *__pyx_v_self, PyObject *__pyx_v_ci) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("getchunk (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_18getchunk(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self), ((PyObject *)__pyx_v_ci)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":99   *          return self.chunklen(k)   *  @@ -23949,7 +22462,8 @@ static PyObject *__pyx_pw_3_sa_6Phrase_19getchunk(PyObject *__pyx_v_self, PyObje   *         start = self.chunkpos(ci)   */ -static PyObject *__pyx_pf_3_sa_6Phrase_18getchunk(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_ci) { +static PyObject *__pyx_pf_3_sa_6Phrase_9getchunk(PyObject *__pyx_v_self, PyObject *__pyx_v_ci); /*proto*/ +static PyObject *__pyx_pf_3_sa_6Phrase_9getchunk(PyObject *__pyx_v_self, PyObject *__pyx_v_ci) {    int __pyx_v_start;    int __pyx_v_stop;    PyObject *__pyx_v_chunk = NULL; @@ -23962,7 +22476,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_18getchunk(struct __pyx_obj_3_sa_Phrase *    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("getchunk", 0); +  __Pyx_RefNannySetupContext("getchunk");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":101   *     def getchunk(self, ci): @@ -23972,7 +22486,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_18getchunk(struct __pyx_obj_3_sa_Phrase *   *         chunk = []   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__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_start = ((struct __pyx_vtabstruct_3_sa_Phrase *)__pyx_v_self->__pyx_vtab)->chunkpos(__pyx_v_self, __pyx_t_1); +  __pyx_v_start = ((struct __pyx_vtabstruct_3_sa_Phrase *)((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->__pyx_vtab)->chunkpos(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self), __pyx_t_1);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":102   *         cdef int start, stop @@ -23982,7 +22496,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_18getchunk(struct __pyx_obj_3_sa_Phrase *   *         for i from start <= i < stop:   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_ci); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_v_stop = (__pyx_v_start + ((struct __pyx_vtabstruct_3_sa_Phrase *)__pyx_v_self->__pyx_vtab)->chunklen(__pyx_v_self, __pyx_t_1)); +  __pyx_v_stop = (__pyx_v_start + ((struct __pyx_vtabstruct_3_sa_Phrase *)((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->__pyx_vtab)->chunklen(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self), __pyx_t_1));    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":103   *         start = self.chunkpos(ci) @@ -23992,7 +22506,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_18getchunk(struct __pyx_obj_3_sa_Phrase *   *             chunk.append(self.syms[i])   */    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    __pyx_v_chunk = __pyx_t_2;    __pyx_t_2 = 0; @@ -24013,7 +22527,10 @@ static PyObject *__pyx_pf_3_sa_6Phrase_18getchunk(struct __pyx_obj_3_sa_Phrase *   *         return chunk   *    */ -    __pyx_t_2 = PyInt_FromLong((__pyx_v_self->syms[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(((PyObject *)__pyx_v_chunk) == Py_None)) { +      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    } +    __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __pyx_t_3 = PyList_Append(__pyx_v_chunk, __pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -24044,19 +22561,6 @@ static PyObject *__pyx_pf_3_sa_6Phrase_18getchunk(struct __pyx_obj_3_sa_Phrase *    return __pyx_r;  } -/* Python wrapper */ -#if PY_MAJOR_VERSION < 3 -static int __pyx_pw_3_sa_6Phrase_21__cmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ -static int __pyx_pw_3_sa_6Phrase_21__cmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cmp__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_20__cmp__(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self), ((PyObject *)__pyx_v_other)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -#endif /*!(#if PY_MAJOR_VERSION < 3)*/ -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":108   *         return chunk   *  @@ -24066,7 +22570,8 @@ static int __pyx_pw_3_sa_6Phrase_21__cmp__(PyObject *__pyx_v_self, PyObject *__p   */  #if PY_MAJOR_VERSION < 3 -static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_other) { +static int __pyx_pf_3_sa_6Phrase_10__cmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static int __pyx_pf_3_sa_6Phrase_10__cmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {    struct __pyx_obj_3_sa_Phrase *__pyx_v_otherp = 0;    int __pyx_v_i;    int __pyx_r; @@ -24078,7 +22583,7 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cmp__", 0); +  __Pyx_RefNannySetupContext("__cmp__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":111   *         cdef Phrase otherp @@ -24099,7 +22604,7 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *                 return -1   */    __pyx_t_1 = __pyx_v_otherp->n; -  __pyx_t_2 = __pyx_v_self->n; +  __pyx_t_2 = ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n;    if ((__pyx_t_1 < __pyx_t_2)) {      __pyx_t_3 = __pyx_t_1;    } else { @@ -24115,7 +22620,7 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *                 return -1   *             elif self.syms[i] > otherp.syms[i]:   */ -    __pyx_t_4 = ((__pyx_v_self->syms[__pyx_v_i]) < (__pyx_v_otherp->syms[__pyx_v_i])); +    __pyx_t_4 = ((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i]) < (__pyx_v_otherp->syms[__pyx_v_i]));      if (__pyx_t_4) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":114 @@ -24127,7 +22632,7 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v   */        __pyx_r = -1;        goto __pyx_L0; -      goto __pyx_L5; +      goto __pyx_L7;      }      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":115 @@ -24137,7 +22642,7 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *                 return 1   *         if self.n < otherp.n:   */ -    __pyx_t_4 = ((__pyx_v_self->syms[__pyx_v_i]) > (__pyx_v_otherp->syms[__pyx_v_i])); +    __pyx_t_4 = ((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i]) > (__pyx_v_otherp->syms[__pyx_v_i]));      if (__pyx_t_4) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":116 @@ -24149,9 +22654,9 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v   */        __pyx_r = 1;        goto __pyx_L0; -      goto __pyx_L5; +      goto __pyx_L7;      } -    __pyx_L5:; +    __pyx_L7:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":117 @@ -24161,7 +22666,7 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *             return -1   *         elif self.n > otherp.n:   */ -  __pyx_t_4 = (__pyx_v_self->n < __pyx_v_otherp->n); +  __pyx_t_4 = (((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n < __pyx_v_otherp->n);    if (__pyx_t_4) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":118 @@ -24173,7 +22678,7 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v   */      __pyx_r = -1;      goto __pyx_L0; -    goto __pyx_L6; +    goto __pyx_L8;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":119 @@ -24183,7 +22688,7 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v   *             return 1   *         else:   */ -  __pyx_t_4 = (__pyx_v_self->n > __pyx_v_otherp->n); +  __pyx_t_4 = (((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n > __pyx_v_otherp->n);    if (__pyx_t_4) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":120 @@ -24195,7 +22700,7 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v   */      __pyx_r = 1;      goto __pyx_L0; -    goto __pyx_L6; +    goto __pyx_L8;    }    /*else*/ { @@ -24209,7 +22714,7 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v      __pyx_r = 0;      goto __pyx_L0;    } -  __pyx_L6:; +  __pyx_L8:;    __pyx_r = 0;    goto __pyx_L0; @@ -24223,17 +22728,6 @@ static int __pyx_pf_3_sa_6Phrase_20__cmp__(struct __pyx_obj_3_sa_Phrase *__pyx_v  }  #endif /*!(#if PY_MAJOR_VERSION < 3)*/ -/* Python wrapper */ -static Py_hash_t __pyx_pw_3_sa_6Phrase_23__hash__(PyObject *__pyx_v_self); /*proto*/ -static Py_hash_t __pyx_pw_3_sa_6Phrase_23__hash__(PyObject *__pyx_v_self) { -  Py_hash_t __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_22__hash__(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":124   *             return 0   *  @@ -24242,14 +22736,15 @@ static Py_hash_t __pyx_pw_3_sa_6Phrase_23__hash__(PyObject *__pyx_v_self) {   *         cdef unsigned h   */ -static Py_hash_t __pyx_pf_3_sa_6Phrase_22__hash__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self) { +static Py_hash_t __pyx_pf_3_sa_6Phrase_11__hash__(PyObject *__pyx_v_self); /*proto*/ +static Py_hash_t __pyx_pf_3_sa_6Phrase_11__hash__(PyObject *__pyx_v_self) {    int __pyx_v_i;    unsigned int __pyx_v_h;    Py_hash_t __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1;    int __pyx_t_2; -  __Pyx_RefNannySetupContext("__hash__", 0); +  __Pyx_RefNannySetupContext("__hash__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":127   *         cdef int i @@ -24267,7 +22762,7 @@ static Py_hash_t __pyx_pf_3_sa_6Phrase_22__hash__(struct __pyx_obj_3_sa_Phrase *   *             if self.syms[i] > 0:   *                 h = (h << 1) + self.syms[i]   */ -  __pyx_t_1 = __pyx_v_self->n; +  __pyx_t_1 = ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":129 @@ -24277,7 +22772,7 @@ static Py_hash_t __pyx_pf_3_sa_6Phrase_22__hash__(struct __pyx_obj_3_sa_Phrase *   *                 h = (h << 1) + self.syms[i]   *             else:   */ -    __pyx_t_2 = ((__pyx_v_self->syms[__pyx_v_i]) > 0); +    __pyx_t_2 = ((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i]) > 0);      if (__pyx_t_2) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":130 @@ -24287,8 +22782,8 @@ static Py_hash_t __pyx_pf_3_sa_6Phrase_22__hash__(struct __pyx_obj_3_sa_Phrase *   *             else:   *                 h = (h << 1) + -self.syms[i]   */ -      __pyx_v_h = ((__pyx_v_h << 1) + (__pyx_v_self->syms[__pyx_v_i])); -      goto __pyx_L5; +      __pyx_v_h = ((__pyx_v_h << 1) + (((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i])); +      goto __pyx_L7;      }      /*else*/ { @@ -24299,9 +22794,9 @@ static Py_hash_t __pyx_pf_3_sa_6Phrase_22__hash__(struct __pyx_obj_3_sa_Phrase *   *         return h   *    */ -      __pyx_v_h = ((__pyx_v_h << 1) + (-(__pyx_v_self->syms[__pyx_v_i]))); +      __pyx_v_h = ((__pyx_v_h << 1) + (-(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i])));      } -    __pyx_L5:; +    __pyx_L7:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":133 @@ -24321,17 +22816,6 @@ static Py_hash_t __pyx_pf_3_sa_6Phrase_22__hash__(struct __pyx_obj_3_sa_Phrase *    return __pyx_r;  } -/* Python wrapper */ -static Py_ssize_t __pyx_pw_3_sa_6Phrase_25__len__(PyObject *__pyx_v_self); /*proto*/ -static Py_ssize_t __pyx_pw_3_sa_6Phrase_25__len__(PyObject *__pyx_v_self) { -  Py_ssize_t __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_24__len__(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":135   *         return h   *  @@ -24340,10 +22824,11 @@ static Py_ssize_t __pyx_pw_3_sa_6Phrase_25__len__(PyObject *__pyx_v_self) {   *    */ -static Py_ssize_t __pyx_pf_3_sa_6Phrase_24__len__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self) { +static Py_ssize_t __pyx_pf_3_sa_6Phrase_12__len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_pf_3_sa_6Phrase_12__len__(PyObject *__pyx_v_self) {    Py_ssize_t __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__len__", 0); +  __Pyx_RefNannySetupContext("__len__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":136   *  @@ -24352,7 +22837,7 @@ static Py_ssize_t __pyx_pf_3_sa_6Phrase_24__len__(struct __pyx_obj_3_sa_Phrase *   *    *     def __getitem__(self, i):   */ -  __pyx_r = __pyx_v_self->n; +  __pyx_r = ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n;    goto __pyx_L0;    __pyx_r = 0; @@ -24361,17 +22846,6 @@ static Py_ssize_t __pyx_pf_3_sa_6Phrase_24__len__(struct __pyx_obj_3_sa_Phrase *    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_27__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_6Phrase_27__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_26__getitem__(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":138   *         return self.n   *  @@ -24380,7 +22854,8 @@ static PyObject *__pyx_pw_3_sa_6Phrase_27__getitem__(PyObject *__pyx_v_self, PyO   *    */ -static PyObject *__pyx_pf_3_sa_6Phrase_26__getitem__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_6Phrase_13__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_6Phrase_13__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    Py_ssize_t __pyx_t_1; @@ -24388,7 +22863,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_26__getitem__(struct __pyx_obj_3_sa_Phras    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__getitem__", 0); +  __Pyx_RefNannySetupContext("__getitem__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":139   *  @@ -24399,7 +22874,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_26__getitem__(struct __pyx_obj_3_sa_Phras   */    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong((__pyx_v_self->syms[__pyx_t_1])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_t_1])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_r = __pyx_t_2;    __pyx_t_2 = 0; @@ -24416,18 +22891,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_26__getitem__(struct __pyx_obj_3_sa_Phras    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_3_sa_6Phrase_30generator2(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ - -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_29__iter__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_6Phrase_29__iter__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_28__iter__(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} +static PyObject *__pyx_gb_3_sa_6Phrase_15generator2(struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *__pyx_cur_scope, PyObject *__pyx_sent_value); /* proto */  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":141   *         return self.syms[i] @@ -24437,51 +22901,42 @@ static PyObject *__pyx_pw_3_sa_6Phrase_29__iter__(PyObject *__pyx_v_self) {   *         for i from 0 <= i < self.n:   */ -static PyObject *__pyx_pf_3_sa_6Phrase_28__iter__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_6Phrase_14__iter__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_6Phrase_14__iter__(PyObject *__pyx_v_self) {    struct __pyx_obj_3_sa___pyx_scope_struct_4___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_RefNannySetupContext("__iter__");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *)__pyx_ptype_3_sa___pyx_scope_struct_4___iter__->tp_new(__pyx_ptype_3_sa___pyx_scope_struct_4___iter__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL;    }    __Pyx_GOTREF(__pyx_cur_scope); +  __Pyx_INCREF(__pyx_v_self);    __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_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_3_sa_6Phrase_30generator2, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_DECREF(__pyx_cur_scope); -    __Pyx_RefNannyFinishContext(); -    return (PyObject *) gen; -  } +  __pyx_cur_scope->__pyx_base.resume_label = 0; +  __pyx_cur_scope->__pyx_base.body = (__pyx_generator_body_t) __pyx_gb_3_sa_6Phrase_15generator2; +  __Pyx_GIVEREF(__pyx_cur_scope); +  __Pyx_RefNannyFinishContext(); +  return (PyObject *) __pyx_cur_scope;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); -  goto __pyx_L0; -  __pyx_L1_error:; -  __Pyx_AddTraceback("_sa.Phrase.__iter__", __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_3_sa_6Phrase_30generator2(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_3_sa_6Phrase_15generator2(struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *__pyx_cur_scope, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *__pyx_cur_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    int __pyx_t_1;    PyObject *__pyx_t_2 = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("None", 0); -  switch (__pyx_generator->resume_label) { +  __Pyx_RefNannySetupContext("None"); +  switch (__pyx_cur_scope->__pyx_base.resume_label) {      case 0: goto __pyx_L3_first_run;      case 1: goto __pyx_L6_resume_from_yield;      default: /* CPython raises the right error here */ @@ -24498,7 +22953,7 @@ static PyObject *__pyx_gb_3_sa_6Phrase_30generator2(__pyx_GeneratorObject *__pyx   *             yield self.syms[i]   *    */ -  __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->n; +  __pyx_t_1 = ((struct __pyx_obj_3_sa_Phrase *)__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++) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":144 @@ -24508,7 +22963,7 @@ static PyObject *__pyx_gb_3_sa_6Phrase_30generator2(__pyx_GeneratorObject *__pyx   *    *     def subst(self, start, children):   */ -    __pyx_t_2 = PyInt_FromLong((__pyx_cur_scope->__pyx_v_self->syms[__pyx_cur_scope->__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_Phrase *)__pyx_cur_scope->__pyx_v_self)->syms[__pyx_cur_scope->__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __pyx_r = __pyx_t_2;      __pyx_t_2 = 0; @@ -24516,58 +22971,74 @@ static PyObject *__pyx_gb_3_sa_6Phrase_30generator2(__pyx_GeneratorObject *__pyx      __Pyx_XGIVEREF(__pyx_r);      __Pyx_RefNannyFinishContext();      /* return from generator, yielding value */ -    __pyx_generator->resume_label = 1; +    __pyx_cur_scope->__pyx_base.resume_label = 1;      return __pyx_r;      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  PyErr_SetNone(PyExc_StopIteration); +  PyErr_SetNone(PyExc_StopIteration); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    goto __pyx_L0;    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_2);    __Pyx_AddTraceback("__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_L0:;    __Pyx_XDECREF(__pyx_r); -  __pyx_generator->resume_label = -1; -  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __pyx_cur_scope->__pyx_base.resume_label = -1;    __Pyx_RefNannyFinishContext();    return NULL;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_32subst(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_6Phrase_32subst(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":146 + *             yield self.syms[i] + *  + *     def subst(self, start, children):             # <<<<<<<<<<<<<< + *         cdef int i + *         for i from 0 <= i < self.n: + */ + +static PyObject *__pyx_pf_3_sa_6Phrase_16subst(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_6Phrase_16subst(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_start = 0;    PyObject *__pyx_v_children = 0; -  PyObject *__pyx_r = 0; +  int __pyx_v_i; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("subst (wrapper)", 0); +  int __pyx_t_1; +  int __pyx_t_2; +  long __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; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__start,&__pyx_n_s__children,0}; +  __Pyx_RefNannySetupContext("subst");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__start,&__pyx_n_s__children,0};      PyObject* values[2] = {0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__start)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__start); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__children)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__children); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("subst", 1, 2, 2, 1); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "subst") < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "subst") < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {        goto __pyx_L5_argtuple_error; @@ -24586,32 +23057,6 @@ static PyObject *__pyx_pw_3_sa_6Phrase_32subst(PyObject *__pyx_v_self, PyObject    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_6Phrase_31subst(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self), __pyx_v_start, __pyx_v_children); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":146 - *             yield self.syms[i] - *  - *     def subst(self, start, children):             # <<<<<<<<<<<<<< - *         cdef int i - *         for i from 0 <= i < self.n: - */ - -static PyObject *__pyx_pf_3_sa_6Phrase_31subst(struct __pyx_obj_3_sa_Phrase *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_children) { -  int __pyx_v_i; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  int __pyx_t_1; -  int __pyx_t_2; -  long __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_RefNannySetupContext("subst", 0);    __Pyx_INCREF(__pyx_v_start);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":148 @@ -24621,7 +23066,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_31subst(struct __pyx_obj_3_sa_Phrase *__p   *             if sym_isvar(self.syms[i]):   *                 start = start + children[sym_getindex(self.syms[i])-1]   */ -  __pyx_t_1 = __pyx_v_self->n; +  __pyx_t_1 = ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->n;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":149 @@ -24631,7 +23076,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_31subst(struct __pyx_obj_3_sa_Phrase *__p   *                 start = start + children[sym_getindex(self.syms[i])-1]   *             else:   */ -    __pyx_t_2 = __pyx_f_3_sa_sym_isvar((__pyx_v_self->syms[__pyx_v_i])); +    __pyx_t_2 = __pyx_f_3_sa_sym_isvar((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i]));      if (__pyx_t_2) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":150 @@ -24641,7 +23086,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_31subst(struct __pyx_obj_3_sa_Phrase *__p   *             else:   *                 start = start + (self.syms[i],)   */ -      __pyx_t_3 = (__pyx_f_3_sa_sym_getindex((__pyx_v_self->syms[__pyx_v_i])) - 1); +      __pyx_t_3 = (__pyx_f_3_sa_sym_getindex((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i])) - 1);        __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_children, __pyx_t_3, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __pyx_t_5 = PyNumber_Add(__pyx_v_start, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -24650,7 +23095,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_31subst(struct __pyx_obj_3_sa_Phrase *__p        __Pyx_DECREF(__pyx_v_start);        __pyx_v_start = __pyx_t_5;        __pyx_t_5 = 0; -      goto __pyx_L5; +      goto __pyx_L8;      }      /*else*/ { @@ -24661,10 +23106,10 @@ static PyObject *__pyx_pf_3_sa_6Phrase_31subst(struct __pyx_obj_3_sa_Phrase *__p   *         return start   *    */ -      __pyx_t_5 = PyInt_FromLong((__pyx_v_self->syms[__pyx_v_i])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyInt_FromLong((((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)->syms[__pyx_v_i])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 152; __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[7]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_4); +      __Pyx_GOTREF(((PyObject *)__pyx_t_4));        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);        __Pyx_GIVEREF(__pyx_t_5);        __pyx_t_5 = 0; @@ -24675,7 +23120,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_31subst(struct __pyx_obj_3_sa_Phrase *__p        __pyx_v_start = __pyx_t_5;        __pyx_t_5 = 0;      } -    __pyx_L5:; +    __pyx_L8:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":153 @@ -24704,17 +23149,6 @@ static PyObject *__pyx_pf_3_sa_6Phrase_31subst(struct __pyx_obj_3_sa_Phrase *__p    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_6Phrase_5words_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_6Phrase_5words_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_6Phrase_5words___get__(((struct __pyx_obj_3_sa_Phrase *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":156   *    *     property words: @@ -24723,7 +23157,8 @@ static PyObject *__pyx_pw_3_sa_6Phrase_5words_1__get__(PyObject *__pyx_v_self) {   *    */ -static PyObject *__pyx_pf_3_sa_6Phrase_5words___get__(struct __pyx_obj_3_sa_Phrase *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_6Phrase_5words___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_6Phrase_5words___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_v_w = NULL;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -24737,7 +23172,7 @@ static PyObject *__pyx_pf_3_sa_6Phrase_5words___get__(struct __pyx_obj_3_sa_Phra    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":157   *     property words: @@ -24748,30 +23183,22 @@ static PyObject *__pyx_pf_3_sa_6Phrase_5words___get__(struct __pyx_obj_3_sa_Phra   */    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); -  if (PyList_CheckExact(((PyObject *)__pyx_v_self)) || PyTuple_CheckExact(((PyObject *)__pyx_v_self))) { -    __pyx_t_2 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; +  __Pyx_GOTREF(((PyObject *)__pyx_t_1)); +  if (PyList_CheckExact(__pyx_v_self) || PyTuple_CheckExact(__pyx_v_self)) { +    __pyx_t_2 = __pyx_v_self; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;      __pyx_t_4 = NULL;    } else { -    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_2)) { +    if (PyList_CheckExact(__pyx_t_2)) {        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_2)) { +      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; +    } else if (PyTuple_CheckExact(__pyx_t_2)) {        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++;      } else {        __pyx_t_5 = __pyx_t_4(__pyx_t_2);        if (unlikely(!__pyx_t_5)) { @@ -24792,11 +23219,11 @@ static PyObject *__pyx_pf_3_sa_6Phrase_5words___get__(struct __pyx_obj_3_sa_Phra        __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_w); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_5 = PyBytes_FromString(__pyx_f_3_sa_sym_tostring(__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(((PyObject *)__pyx_t_5)); -      if (unlikely(__Pyx_PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      if (unlikely(PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; -      goto __pyx_L5; +      goto __pyx_L7;      } -    __pyx_L5:; +    __pyx_L7:;    }    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    __Pyx_INCREF(((PyObject *)__pyx_t_1)); @@ -24819,9 +23246,16 @@ static PyObject *__pyx_pf_3_sa_6Phrase_5words___get__(struct __pyx_obj_3_sa_Phra    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_4Rule_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_4Rule_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":161 + * cdef class Rule: + *  + *     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 + */ + +static int __pyx_pf_3_sa_4Rule___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_4Rule___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_v_lhs;    struct __pyx_obj_3_sa_Phrase *__pyx_v_f = 0;    struct __pyx_obj_3_sa_Phrase *__pyx_v_e = 0; @@ -24829,24 +23263,21 @@ static int __pyx_pw_3_sa_4Rule_1__cinit__(PyObject *__pyx_v_self, PyObject *__py    PyObject *__pyx_v_word_alignments = 0;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  int __pyx_t_1; +  PyObject *__pyx_t_2 = NULL; +  PyObject *__pyx_t_3 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lhs,&__pyx_n_s__f,&__pyx_n_s__e,&__pyx_n_s__scores,&__pyx_n_s__word_alignments,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lhs,&__pyx_n_s__f,&__pyx_n_s__e,&__pyx_n_s__scores,&__pyx_n_s__word_alignments,0};      PyObject* values[5] = {0,0,0,0,0}; - -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":161 - * cdef class Rule: - *  - *     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 - */      values[3] = ((PyObject *)Py_None);      values[4] = ((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) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          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); @@ -24856,17 +23287,20 @@ static int __pyx_pw_3_sa_4Rule_1__cinit__(PyObject *__pyx_v_self, PyObject *__py          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lhs)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lhs); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__f)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__f); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2: -        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__e)) != 0)) kw_args--; +        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__e); +        if (likely(values[2])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          } @@ -24882,7 +23316,7 @@ static int __pyx_pw_3_sa_4Rule_1__cinit__(PyObject *__pyx_v_self, PyObject *__py          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -24911,25 +23345,6 @@ static int __pyx_pw_3_sa_4Rule_1__cinit__(PyObject *__pyx_v_self, PyObject *__py    __pyx_L4_argument_unpacking_done:;    if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_3_sa_Phrase, 1, "f", 0))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_e), __pyx_ptype_3_sa_Phrase, 1, "e", 0))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_r = __pyx_pf_3_sa_4Rule___cinit__(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self), __pyx_v_lhs, __pyx_v_f, __pyx_v_e, __pyx_v_scores, __pyx_v_word_alignments); -  goto __pyx_L0; -  __pyx_L1_error:; -  __pyx_r = -1; -  __pyx_L0:; -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_4Rule___cinit__(struct __pyx_obj_3_sa_Rule *__pyx_v_self, int __pyx_v_lhs, struct __pyx_obj_3_sa_Phrase *__pyx_v_f, struct __pyx_obj_3_sa_Phrase *__pyx_v_e, PyObject *__pyx_v_scores, PyObject *__pyx_v_word_alignments) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  int __pyx_t_1; -  PyObject *__pyx_t_2 = NULL; -  PyObject *__pyx_t_3 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":162   *  @@ -24946,7 +23361,7 @@ static int __pyx_pf_3_sa_4Rule___cinit__(struct __pyx_obj_3_sa_Rule *__pyx_v_sel      __Pyx_GOTREF(((PyObject *)__pyx_t_3));      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));      __Pyx_GIVEREF(((PyObject *)__pyx_t_3));      __pyx_t_3 = 0; @@ -24956,9 +23371,9 @@ static int __pyx_pf_3_sa_4Rule___cinit__(struct __pyx_obj_3_sa_Rule *__pyx_v_sel      __Pyx_Raise(__pyx_t_3, 0, 0, 0);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      {__pyx_filename = __pyx_f[7]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":163   *     def __cinit__(self, int lhs, Phrase f, Phrase e, scores=None, word_alignments=None): @@ -24967,7 +23382,7 @@ static int __pyx_pf_3_sa_4Rule___cinit__(struct __pyx_obj_3_sa_Rule *__pyx_v_sel   *         self.f = f   *         self.e = e   */ -  __pyx_v_self->lhs = __pyx_v_lhs; +  ((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->lhs = __pyx_v_lhs;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":164   *         if not sym_isvar(lhs): raise Exception('Invalid LHS symbol: %d' % lhs) @@ -24978,9 +23393,9 @@ static int __pyx_pf_3_sa_4Rule___cinit__(struct __pyx_obj_3_sa_Rule *__pyx_v_sel   */    __Pyx_INCREF(((PyObject *)__pyx_v_f));    __Pyx_GIVEREF(((PyObject *)__pyx_v_f)); -  __Pyx_GOTREF(__pyx_v_self->f); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->f)); -  __pyx_v_self->f = __pyx_v_f; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f)); +  ((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f = __pyx_v_f;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":165   *         self.lhs = lhs @@ -24991,9 +23406,9 @@ static int __pyx_pf_3_sa_4Rule___cinit__(struct __pyx_obj_3_sa_Rule *__pyx_v_sel   */    __Pyx_INCREF(((PyObject *)__pyx_v_e));    __Pyx_GIVEREF(((PyObject *)__pyx_v_e)); -  __Pyx_GOTREF(__pyx_v_self->e); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->e)); -  __pyx_v_self->e = __pyx_v_e; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->e); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->e)); +  ((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->e = __pyx_v_e;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":166   *         self.f = f @@ -25004,9 +23419,9 @@ static int __pyx_pf_3_sa_4Rule___cinit__(struct __pyx_obj_3_sa_Rule *__pyx_v_sel   */    __Pyx_INCREF(__pyx_v_word_alignments);    __Pyx_GIVEREF(__pyx_v_word_alignments); -  __Pyx_GOTREF(__pyx_v_self->word_alignments); -  __Pyx_DECREF(__pyx_v_self->word_alignments); -  __pyx_v_self->word_alignments = __pyx_v_word_alignments; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->word_alignments); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->word_alignments); +  ((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->word_alignments = __pyx_v_word_alignments;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":167   *         self.e = e @@ -25018,9 +23433,9 @@ static int __pyx_pf_3_sa_4Rule___cinit__(struct __pyx_obj_3_sa_Rule *__pyx_v_sel    if (!(likely(((__pyx_v_scores) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_scores, __pyx_ptype_3_sa_FeatureVector))))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_INCREF(__pyx_v_scores);    __Pyx_GIVEREF(__pyx_v_scores); -  __Pyx_GOTREF(__pyx_v_self->scores); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->scores)); -  __pyx_v_self->scores = ((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_scores); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->scores); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->scores)); +  ((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->scores = ((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_scores);    __pyx_r = 0;    goto __pyx_L0; @@ -25034,17 +23449,6 @@ static int __pyx_pf_3_sa_4Rule___cinit__(struct __pyx_obj_3_sa_Rule *__pyx_v_sel    return __pyx_r;  } -/* Python wrapper */ -static Py_hash_t __pyx_pw_3_sa_4Rule_3__hash__(PyObject *__pyx_v_self); /*proto*/ -static Py_hash_t __pyx_pw_3_sa_4Rule_3__hash__(PyObject *__pyx_v_self) { -  Py_hash_t __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_4Rule_2__hash__(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":169   *         self.scores = scores   *  @@ -25053,7 +23457,8 @@ static Py_hash_t __pyx_pw_3_sa_4Rule_3__hash__(PyObject *__pyx_v_self) {   *    */ -static Py_hash_t __pyx_pf_3_sa_4Rule_2__hash__(struct __pyx_obj_3_sa_Rule *__pyx_v_self) { +static Py_hash_t __pyx_pf_3_sa_4Rule_1__hash__(PyObject *__pyx_v_self); /*proto*/ +static Py_hash_t __pyx_pf_3_sa_4Rule_1__hash__(PyObject *__pyx_v_self) {    Py_hash_t __pyx_r;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -25062,7 +23467,7 @@ static Py_hash_t __pyx_pf_3_sa_4Rule_2__hash__(struct __pyx_obj_3_sa_Rule *__pyx    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__hash__", 0); +  __Pyx_RefNannySetupContext("__hash__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":170   *  @@ -25071,18 +23476,18 @@ static Py_hash_t __pyx_pf_3_sa_4Rule_2__hash__(struct __pyx_obj_3_sa_Rule *__pyx   *    *     def __cmp__(self, Rule other):   */ -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->lhs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->lhs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_INCREF(((PyObject *)__pyx_v_self->f)); -  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->f)); -  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->f)); -  __Pyx_INCREF(((PyObject *)__pyx_v_self->e)); -  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->e)); -  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->e)); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f)); +  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f)); +  __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f)); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->e)); +  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->e)); +  __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->e));    __pyx_t_1 = 0;    __pyx_t_3 = PyObject_Hash(((PyObject *)__pyx_t_2)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; @@ -25102,24 +23507,6 @@ static Py_hash_t __pyx_pf_3_sa_4Rule_2__hash__(struct __pyx_obj_3_sa_Rule *__pyx    return __pyx_r;  } -/* Python wrapper */ -#if PY_MAJOR_VERSION < 3 -static int __pyx_pw_3_sa_4Rule_5__cmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ -static int __pyx_pw_3_sa_4Rule_5__cmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cmp__ (wrapper)", 0); -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_3_sa_Rule, 1, "other", 0))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_r = __pyx_pf_3_sa_4Rule_4__cmp__(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self), ((struct __pyx_obj_3_sa_Rule *)__pyx_v_other)); -  goto __pyx_L0; -  __pyx_L1_error:; -  __pyx_r = -1; -  __pyx_L0:; -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -#endif /*!(#if PY_MAJOR_VERSION < 3)*/ -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":172   *         return hash((self.lhs, self.f, self.e))   *  @@ -25129,7 +23516,8 @@ static int __pyx_pw_3_sa_4Rule_5__cmp__(PyObject *__pyx_v_self, PyObject *__pyx_   */  #if PY_MAJOR_VERSION < 3 -static int __pyx_pf_3_sa_4Rule_4__cmp__(struct __pyx_obj_3_sa_Rule *__pyx_v_self, struct __pyx_obj_3_sa_Rule *__pyx_v_other) { +static int __pyx_pf_3_sa_4Rule_2__cmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static int __pyx_pf_3_sa_4Rule_2__cmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {    int __pyx_r;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -25139,7 +23527,8 @@ static int __pyx_pf_3_sa_4Rule_4__cmp__(struct __pyx_obj_3_sa_Rule *__pyx_v_self    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cmp__", 0); +  __Pyx_RefNannySetupContext("__cmp__"); +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_3_sa_Rule, 1, "other", 0))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":173   *  @@ -25148,21 +23537,21 @@ static int __pyx_pf_3_sa_4Rule_4__cmp__(struct __pyx_obj_3_sa_Rule *__pyx_v_self   *                 (other.lhs, other.f, other.e, self.word_alignments))   *    */ -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->lhs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->lhs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_INCREF(((PyObject *)__pyx_v_self->f)); -  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->f)); -  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->f)); -  __Pyx_INCREF(((PyObject *)__pyx_v_self->e)); -  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->e)); -  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->e)); -  __Pyx_INCREF(__pyx_v_self->word_alignments); -  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->word_alignments); -  __Pyx_GIVEREF(__pyx_v_self->word_alignments); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f)); +  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f)); +  __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f)); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->e)); +  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->e)); +  __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->e)); +  __Pyx_INCREF(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->word_alignments); +  PyTuple_SET_ITEM(__pyx_t_2, 3, ((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->word_alignments); +  __Pyx_GIVEREF(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->word_alignments);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":174 @@ -25172,24 +23561,24 @@ static int __pyx_pf_3_sa_4Rule_4__cmp__(struct __pyx_obj_3_sa_Rule *__pyx_v_self   *    *     def fmerge(self, Phrase f):   */ -  __pyx_t_1 = PyInt_FromLong(__pyx_v_other->lhs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_Rule *)__pyx_v_other)->lhs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_INCREF(((PyObject *)__pyx_v_other->f)); -  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_other->f)); -  __Pyx_GIVEREF(((PyObject *)__pyx_v_other->f)); -  __Pyx_INCREF(((PyObject *)__pyx_v_other->e)); -  PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_other->e)); -  __Pyx_GIVEREF(((PyObject *)__pyx_v_other->e)); -  __Pyx_INCREF(__pyx_v_self->word_alignments); -  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_self->word_alignments); -  __Pyx_GIVEREF(__pyx_v_self->word_alignments); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_other)->f)); +  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_other)->f)); +  __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_other)->f)); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_other)->e)); +  PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_other)->e)); +  __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_other)->e)); +  __Pyx_INCREF(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->word_alignments); +  PyTuple_SET_ITEM(__pyx_t_3, 3, ((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->word_alignments); +  __Pyx_GIVEREF(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->word_alignments);    __pyx_t_1 = 0;    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_2));    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));    PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_t_3)); @@ -25218,22 +23607,6 @@ static int __pyx_pf_3_sa_4Rule_4__cmp__(struct __pyx_obj_3_sa_Rule *__pyx_v_self  }  #endif /*!(#if PY_MAJOR_VERSION < 3)*/ -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_4Rule_7fmerge(PyObject *__pyx_v_self, PyObject *__pyx_v_f); /*proto*/ -static PyObject *__pyx_pw_3_sa_4Rule_7fmerge(PyObject *__pyx_v_self, PyObject *__pyx_v_f) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("fmerge (wrapper)", 0); -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_3_sa_Phrase, 1, "f", 0))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_r = __pyx_pf_3_sa_4Rule_6fmerge(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self), ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_f)); -  goto __pyx_L0; -  __pyx_L1_error:; -  __pyx_r = NULL; -  __pyx_L0:; -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":176   *                 (other.lhs, other.f, other.e, self.word_alignments))   *  @@ -25242,7 +23615,8 @@ static PyObject *__pyx_pw_3_sa_4Rule_7fmerge(PyObject *__pyx_v_self, PyObject *_   *             self.f = f   */ -static PyObject *__pyx_pf_3_sa_4Rule_6fmerge(struct __pyx_obj_3_sa_Rule *__pyx_v_self, struct __pyx_obj_3_sa_Phrase *__pyx_v_f) { +static PyObject *__pyx_pf_3_sa_4Rule_3fmerge(PyObject *__pyx_v_self, PyObject *__pyx_v_f); /*proto*/ +static PyObject *__pyx_pf_3_sa_4Rule_3fmerge(PyObject *__pyx_v_self, PyObject *__pyx_v_f) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -25250,7 +23624,8 @@ static PyObject *__pyx_pf_3_sa_4Rule_6fmerge(struct __pyx_obj_3_sa_Rule *__pyx_v    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("fmerge", 0); +  __Pyx_RefNannySetupContext("fmerge"); +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_3_sa_Phrase, 1, "f", 0))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":177   *  @@ -25259,7 +23634,8 @@ static PyObject *__pyx_pf_3_sa_4Rule_6fmerge(struct __pyx_obj_3_sa_Rule *__pyx_v   *             self.f = f   *    */ -  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self->f), ((PyObject *)__pyx_v_f), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_RichCompare(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f), __pyx_v_f, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 177; __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[7]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_2) { @@ -25271,14 +23647,14 @@ static PyObject *__pyx_pf_3_sa_4Rule_6fmerge(struct __pyx_obj_3_sa_Rule *__pyx_v   *    *     def arity(self):   */ -    __Pyx_INCREF(((PyObject *)__pyx_v_f)); -    __Pyx_GIVEREF(((PyObject *)__pyx_v_f)); -    __Pyx_GOTREF(__pyx_v_self->f); -    __Pyx_DECREF(((PyObject *)__pyx_v_self->f)); -    __pyx_v_self->f = __pyx_v_f; -    goto __pyx_L3; +    __Pyx_INCREF(__pyx_v_f); +    __Pyx_GIVEREF(__pyx_v_f); +    __Pyx_GOTREF(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f); +    __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f)); +    ((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f = ((struct __pyx_obj_3_sa_Phrase *)__pyx_v_f); +    goto __pyx_L5;    } -  __pyx_L3:; +  __pyx_L5:;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -25292,17 +23668,6 @@ static PyObject *__pyx_pf_3_sa_4Rule_6fmerge(struct __pyx_obj_3_sa_Rule *__pyx_v    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_4Rule_9arity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_3_sa_4Rule_9arity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("arity (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_4Rule_8arity(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":180   *             self.f = f   *  @@ -25311,7 +23676,8 @@ static PyObject *__pyx_pw_3_sa_4Rule_9arity(PyObject *__pyx_v_self, CYTHON_UNUSE   *    */ -static PyObject *__pyx_pf_3_sa_4Rule_8arity(struct __pyx_obj_3_sa_Rule *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_4Rule_4arity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_4Rule_4arity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -25319,7 +23685,7 @@ static PyObject *__pyx_pf_3_sa_4Rule_8arity(struct __pyx_obj_3_sa_Rule *__pyx_v_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("arity", 0); +  __Pyx_RefNannySetupContext("arity");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":181   *  @@ -25329,7 +23695,7 @@ static PyObject *__pyx_pf_3_sa_4Rule_8arity(struct __pyx_obj_3_sa_Rule *__pyx_v_   *     def __str__(self):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->f), __pyx_n_s__arity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f), __pyx_n_s__arity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 181; __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[7]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); @@ -25350,18 +23716,7 @@ static PyObject *__pyx_pf_3_sa_4Rule_8arity(struct __pyx_obj_3_sa_Rule *__pyx_v_    __Pyx_RefNannyFinishContext();    return __pyx_r;  } - -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_4Rule_11__str__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_4Rule_11__str__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_4Rule_10__str__(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -static PyObject *__pyx_gb_3_sa_4Rule_7__str___2generator7(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_3_sa_7__str___1generator7(struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *__pyx_cur_scope, PyObject *__pyx_sent_value); /* proto */  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":187   *         fields = [sym_tostring(self.lhs), str(self.f), str(self.e), str(self.scores)] @@ -25371,53 +23726,45 @@ static PyObject *__pyx_gb_3_sa_4Rule_7__str___2generator7(__pyx_GeneratorObject   *    */ -static PyObject *__pyx_pf_3_sa_4Rule_7__str___genexpr(PyObject *__pyx_self) { +static PyObject *__pyx_pf_3_sa_7__str___genexpr(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_7__str___genexpr(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {    struct __pyx_obj_3_sa___pyx_scope_struct_6_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_RefNannySetupContext("genexpr");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *)__pyx_ptype_3_sa___pyx_scope_struct_6_genexpr->tp_new(__pyx_ptype_3_sa___pyx_scope_struct_6_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_3_sa___pyx_scope_struct_5___str__ *) __pyx_self; +  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_5___str__ *)__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_3_sa_4Rule_7__str___2generator7, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_DECREF(__pyx_cur_scope); -    __Pyx_RefNannyFinishContext(); -    return (PyObject *) gen; -  } +  __pyx_self = __pyx_self; +  __pyx_cur_scope->__pyx_base.resume_label = 0; +  __pyx_cur_scope->__pyx_base.body = (__pyx_generator_body_t) __pyx_gb_3_sa_7__str___1generator7; +  __Pyx_GIVEREF(__pyx_cur_scope); +  __Pyx_RefNannyFinishContext(); +  return (PyObject *) __pyx_cur_scope;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); -  goto __pyx_L0; -  __pyx_L1_error:; -  __Pyx_AddTraceback("_sa.Rule.__str__.genexpr", __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_3_sa_4Rule_7__str___2generator7(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_3_sa_7__str___1generator7(struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *__pyx_cur_scope, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *__pyx_cur_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    PyObject *__pyx_t_1 = NULL;    PyObject *__pyx_t_2 = NULL;    Py_ssize_t __pyx_t_3;    PyObject *(*__pyx_t_4)(PyObject *);    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("None", 0); -  switch (__pyx_generator->resume_label) { +  __Pyx_RefNannySetupContext("None"); +  switch (__pyx_cur_scope->__pyx_base.resume_label) {      case 0: goto __pyx_L3_first_run;      case 1: goto __pyx_L6_resume_from_yield;      default: /* CPython raises the right error here */ @@ -25426,8 +23773,7 @@ static PyObject *__pyx_gb_3_sa_4Rule_7__str___2generator7(__pyx_GeneratorObject    }    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __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[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s__alignments); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __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[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s__alignments); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __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[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); @@ -25442,20 +23788,12 @@ static PyObject *__pyx_gb_3_sa_4Rule_7__str___2generator7(__pyx_GeneratorObject    }    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    for (;;) { -    if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_1)) { +    if (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[7]; __pyx_lineno = 187; __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[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_1)) { +      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; +    } else if (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[7]; __pyx_lineno = 187; __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[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++;      } else {        __pyx_t_2 = __pyx_t_4(__pyx_t_1);        if (unlikely(!__pyx_t_2)) { @@ -25483,7 +23821,7 @@ static PyObject *__pyx_gb_3_sa_4Rule_7__str___2generator7(__pyx_GeneratorObject      __Pyx_XGIVEREF(__pyx_r);      __Pyx_RefNannyFinishContext();      /* return from generator, yielding value */ -    __pyx_generator->resume_label = 1; +    __pyx_cur_scope->__pyx_base.resume_label = 1;      return __pyx_r;      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; @@ -25494,7 +23832,7 @@ static PyObject *__pyx_gb_3_sa_4Rule_7__str___2generator7(__pyx_GeneratorObject      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  PyErr_SetNone(PyExc_StopIteration); +  PyErr_SetNone(PyExc_StopIteration); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    goto __pyx_L0;    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1); @@ -25502,8 +23840,7 @@ static PyObject *__pyx_gb_3_sa_4Rule_7__str___2generator7(__pyx_GeneratorObject    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_L0:;    __Pyx_XDECREF(__pyx_r); -  __pyx_generator->resume_label = -1; -  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __pyx_cur_scope->__pyx_base.resume_label = -1;    __Pyx_RefNannyFinishContext();    return NULL;  } @@ -25516,7 +23853,8 @@ static PyObject *__pyx_gb_3_sa_4Rule_7__str___2generator7(__pyx_GeneratorObject   *         fields = [sym_tostring(self.lhs), str(self.f), str(self.e), str(self.scores)]   */ -static PyObject *__pyx_pf_3_sa_4Rule_10__str__(struct __pyx_obj_3_sa_Rule *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_4Rule_5__str__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_4Rule_5__str__(PyObject *__pyx_v_self) {    struct __pyx_obj_3_sa___pyx_scope_struct_5___str__ *__pyx_cur_scope;    PyObject *__pyx_v_fields = NULL;    PyObject *__pyx_r = NULL; @@ -25531,15 +23869,15 @@ static PyObject *__pyx_pf_3_sa_4Rule_10__str__(struct __pyx_obj_3_sa_Rule *__pyx    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__str__", 0); +  __Pyx_RefNannySetupContext("__str__");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_5___str__ *)__pyx_ptype_3_sa___pyx_scope_struct_5___str__->tp_new(__pyx_ptype_3_sa___pyx_scope_struct_5___str__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL;    }    __Pyx_GOTREF(__pyx_cur_scope); +  __Pyx_INCREF(__pyx_v_self);    __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);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":185 @@ -25549,34 +23887,34 @@ static PyObject *__pyx_pf_3_sa_4Rule_10__str__(struct __pyx_obj_3_sa_Rule *__pyx   *         if self.word_alignments is not None:   *             fields.append(' '.join('%d-%d' % a for a in self.alignments()))   */ -  __pyx_t_1 = PyBytes_FromString(__pyx_f_3_sa_sym_tostring(__pyx_cur_scope->__pyx_v_self->lhs)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyBytes_FromString(__pyx_f_3_sa_sym_tostring(((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->lhs)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 185; __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[7]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); -  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self->f)); -  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_self->f)); -  __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self->f)); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2)); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->f)); +  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->f)); +  __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->f));    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); -  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self->e)); -  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_self->e)); -  __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self->e)); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2)); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->e)); +  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->e)); +  __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->e));    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); -  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self->scores)); -  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_self->scores)); -  __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self->scores)); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2)); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->scores)); +  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->scores)); +  __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->scores));    __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_5);    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1));    PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); @@ -25599,7 +23937,7 @@ static PyObject *__pyx_pf_3_sa_4Rule_10__str__(struct __pyx_obj_3_sa_Rule *__pyx   *             fields.append(' '.join('%d-%d' % a for a in self.alignments()))   *         return ' ||| '.join(fields)   */ -  __pyx_t_6 = (__pyx_cur_scope->__pyx_v_self->word_alignments != Py_None); +  __pyx_t_6 = (((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->word_alignments != Py_None);    if (__pyx_t_6) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":187 @@ -25609,12 +23947,15 @@ static PyObject *__pyx_pf_3_sa_4Rule_10__str__(struct __pyx_obj_3_sa_Rule *__pyx   *         return ' ||| '.join(fields)   *    */ +    if (unlikely(((PyObject *)__pyx_v_fields) == Py_None)) { +      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    }      __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_kp_s_67), __pyx_n_s__join); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_5 = __pyx_pf_3_sa_4Rule_7__str___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __pyx_pf_3_sa_7__str___genexpr(((PyObject*)__pyx_cur_scope), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __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[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);      __Pyx_GIVEREF(__pyx_t_5);      __pyx_t_5 = 0; @@ -25624,9 +23965,9 @@ static PyObject *__pyx_pf_3_sa_4Rule_10__str__(struct __pyx_obj_3_sa_Rule *__pyx      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;      __pyx_t_7 = PyList_Append(__pyx_v_fields, __pyx_t_5); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    goto __pyx_L3; +    goto __pyx_L5;    } -  __pyx_L3:; +  __pyx_L5:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":188   *         if self.word_alignments is not None: @@ -25639,7 +23980,7 @@ static PyObject *__pyx_pf_3_sa_4Rule_10__str__(struct __pyx_obj_3_sa_Rule *__pyx    __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_kp_s_18), __pyx_n_s__join); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 188; __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[7]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_4); +  __Pyx_GOTREF(((PyObject *)__pyx_t_4));    __Pyx_INCREF(((PyObject *)__pyx_v_fields));    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_fields));    __Pyx_GIVEREF(((PyObject *)__pyx_v_fields)); @@ -25668,18 +24009,7 @@ static PyObject *__pyx_pf_3_sa_4Rule_10__str__(struct __pyx_obj_3_sa_Rule *__pyx    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_3_sa_4Rule_14generator3(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ - -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_4Rule_13alignments(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_3_sa_4Rule_13alignments(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("alignments (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_4Rule_12alignments(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} +static PyObject *__pyx_gb_3_sa_4Rule_7generator3(struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *__pyx_cur_scope, PyObject *__pyx_sent_value); /* proto */  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rule.pxi":190   *         return ' ||| '.join(fields) @@ -25689,45 +24019,36 @@ static PyObject *__pyx_pw_3_sa_4Rule_13alignments(PyObject *__pyx_v_self, CYTHON   *             yield point/65536, point%65536   */ -static PyObject *__pyx_pf_3_sa_4Rule_12alignments(struct __pyx_obj_3_sa_Rule *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_4Rule_6alignments(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_4Rule_6alignments(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("alignments", 0); +  __Pyx_RefNannySetupContext("alignments");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *)__pyx_ptype_3_sa___pyx_scope_struct_7_alignments->tp_new(__pyx_ptype_3_sa___pyx_scope_struct_7_alignments, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL;    }    __Pyx_GOTREF(__pyx_cur_scope); +  __Pyx_INCREF(__pyx_v_self);    __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_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_3_sa_4Rule_14generator3, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_DECREF(__pyx_cur_scope); -    __Pyx_RefNannyFinishContext(); -    return (PyObject *) gen; -  } +  __pyx_cur_scope->__pyx_base.resume_label = 0; +  __pyx_cur_scope->__pyx_base.body = (__pyx_generator_body_t) __pyx_gb_3_sa_4Rule_7generator3; +  __Pyx_GIVEREF(__pyx_cur_scope); +  __Pyx_RefNannyFinishContext(); +  return (PyObject *) __pyx_cur_scope;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); -  goto __pyx_L0; -  __pyx_L1_error:; -  __Pyx_AddTraceback("_sa.Rule.alignments", __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_3_sa_4Rule_14generator3(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_3_sa_4Rule_7generator3(struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *__pyx_cur_scope, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *__pyx_cur_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    PyObject *__pyx_t_1 = NULL;    Py_ssize_t __pyx_t_2; @@ -25736,8 +24057,8 @@ static PyObject *__pyx_gb_3_sa_4Rule_14generator3(__pyx_GeneratorObject *__pyx_g    PyObject *__pyx_t_5 = NULL;    PyObject *__pyx_t_6 = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("None", 0); -  switch (__pyx_generator->resume_label) { +  __Pyx_RefNannySetupContext("None"); +  switch (__pyx_cur_scope->__pyx_base.resume_label) {      case 0: goto __pyx_L3_first_run;      case 1: goto __pyx_L6_resume_from_yield;      default: /* CPython raises the right error here */ @@ -25753,29 +24074,21 @@ static PyObject *__pyx_gb_3_sa_4Rule_14generator3(__pyx_GeneratorObject *__pyx_g   *         for point in self.word_alignments:             # <<<<<<<<<<<<<<   *             yield point/65536, point%65536   */ -  if (PyList_CheckExact(__pyx_cur_scope->__pyx_v_self->word_alignments) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_self->word_alignments)) { -    __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->word_alignments; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; +  if (PyList_CheckExact(((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->word_alignments) || PyTuple_CheckExact(((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->word_alignments)) { +    __pyx_t_1 = ((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->word_alignments; __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_v_self->word_alignments); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(((struct __pyx_obj_3_sa_Rule *)__pyx_cur_scope->__pyx_v_self)->word_alignments); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __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;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) { +    if (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[7]; __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[7]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; +    } else if (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[7]; __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[7]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1);        if (unlikely(!__pyx_t_4)) { @@ -25803,7 +24116,7 @@ static PyObject *__pyx_gb_3_sa_4Rule_14generator3(__pyx_GeneratorObject *__pyx_g      __pyx_t_5 = PyNumber_Remainder(__pyx_cur_scope->__pyx_v_point, __pyx_int_65536); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 192; __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[7]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_6); +    __Pyx_GOTREF(((PyObject *)__pyx_t_6));      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);      __Pyx_GIVEREF(__pyx_t_4);      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); @@ -25819,7 +24132,7 @@ static PyObject *__pyx_gb_3_sa_4Rule_14generator3(__pyx_GeneratorObject *__pyx_g      __Pyx_XGIVEREF(__pyx_r);      __Pyx_RefNannyFinishContext();      /* return from generator, yielding value */ -    __pyx_generator->resume_label = 1; +    __pyx_cur_scope->__pyx_base.resume_label = 1;      return __pyx_r;      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; @@ -25830,7 +24143,7 @@ static PyObject *__pyx_gb_3_sa_4Rule_14generator3(__pyx_GeneratorObject *__pyx_g      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  PyErr_SetNone(PyExc_StopIteration); +  PyErr_SetNone(PyExc_StopIteration); {__pyx_filename = __pyx_f[7]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    goto __pyx_L0;    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1); @@ -25840,23 +24153,11 @@ static PyObject *__pyx_gb_3_sa_4Rule_14generator3(__pyx_GeneratorObject *__pyx_g    __Pyx_AddTraceback("alignments", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_L0:;    __Pyx_XDECREF(__pyx_r); -  __pyx_generator->resume_label = -1; -  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __pyx_cur_scope->__pyx_base.resume_label = -1;    __Pyx_RefNannyFinishContext();    return NULL;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_4Rule_1f_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_4Rule_1f_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_4Rule_1f___get__(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "_sa.pxd":37   * cdef class Rule:   *     cdef int lhs @@ -25865,13 +24166,14 @@ static PyObject *__pyx_pw_3_sa_4Rule_1f_1__get__(PyObject *__pyx_v_self) {   *     cdef int n_scores   */ -static PyObject *__pyx_pf_3_sa_4Rule_1f___get__(struct __pyx_obj_3_sa_Rule *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_4Rule_1f___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_4Rule_1f___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    __Pyx_XDECREF(__pyx_r); -  __Pyx_INCREF(((PyObject *)__pyx_v_self->f)); -  __pyx_r = ((PyObject *)__pyx_v_self->f); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f)); +  __pyx_r = ((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->f);    goto __pyx_L0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -25881,24 +24183,14 @@ static PyObject *__pyx_pf_3_sa_4Rule_1f___get__(struct __pyx_obj_3_sa_Rule *__py    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_4Rule_1e_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_4Rule_1e_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_4Rule_1e___get__(((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static PyObject *__pyx_pf_3_sa_4Rule_1e___get__(struct __pyx_obj_3_sa_Rule *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_4Rule_1e___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_4Rule_1e___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    __Pyx_XDECREF(__pyx_r); -  __Pyx_INCREF(((PyObject *)__pyx_v_self->e)); -  __pyx_r = ((PyObject *)__pyx_v_self->e); +  __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->e)); +  __pyx_r = ((PyObject *)((struct __pyx_obj_3_sa_Rule *)__pyx_v_self)->e);    goto __pyx_L0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -25920,7 +24212,7 @@ static struct __pyx_t_3_sa__Trie_Node *__pyx_f_3_sa_new_trie_node(void) {    struct __pyx_t_3_sa__Trie_Node *__pyx_v_node;    struct __pyx_t_3_sa__Trie_Node *__pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("new_trie_node", 0); +  __Pyx_RefNannySetupContext("new_trie_node");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":23   * cdef _Trie_Node* new_trie_node(): @@ -25986,7 +24278,7 @@ static struct __pyx_t_3_sa__Trie_Edge *__pyx_f_3_sa_new_trie_edge(int __pyx_v_va    struct __pyx_t_3_sa__Trie_Edge *__pyx_v_edge;    struct __pyx_t_3_sa__Trie_Edge *__pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("new_trie_edge", 0); +  __Pyx_RefNannySetupContext("new_trie_edge");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":31   * cdef _Trie_Edge* new_trie_edge(int val): @@ -26065,7 +24357,7 @@ static PyObject *__pyx_f_3_sa_free_trie_node(struct __pyx_t_3_sa__Trie_Node *__p    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("free_trie_node", 0); +  __Pyx_RefNannySetupContext("free_trie_node");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":39   *  @@ -26128,7 +24420,7 @@ static PyObject *__pyx_f_3_sa_free_trie_edge(struct __pyx_t_3_sa__Trie_Edge *__p    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("free_trie_edge", 0); +  __Pyx_RefNannySetupContext("free_trie_edge");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":44   *  @@ -26203,7 +24495,7 @@ static struct __pyx_t_3_sa__Trie_Node *__pyx_f_3_sa_trie_find(struct __pyx_t_3_s    int __pyx_t_1;    int __pyx_t_2;    int __pyx_t_3; -  __Pyx_RefNannySetupContext("trie_find", 0); +  __Pyx_RefNannySetupContext("trie_find");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":51   * cdef _Trie_Node* trie_find(_Trie_Node* node, int val): @@ -26328,7 +24620,7 @@ static PyObject *__pyx_f_3_sa_trie_node_data_append(struct __pyx_t_3_sa__Trie_No    int __pyx_v_new_len;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("trie_node_data_append", 0); +  __Pyx_RefNannySetupContext("trie_node_data_append");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":64   * cdef trie_node_data_append(_Trie_Node* node, int val): @@ -26384,7 +24676,7 @@ static PyObject *__pyx_f_3_sa_trie_node_data_extend(struct __pyx_t_3_sa__Trie_No    int __pyx_v_new_len;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("trie_node_data_extend", 0); +  __Pyx_RefNannySetupContext("trie_node_data_extend");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":71   * cdef trie_node_data_extend(_Trie_Node* node, int* vals, int num_vals): @@ -26443,7 +24735,7 @@ static struct __pyx_t_3_sa__Trie_Node *__pyx_f_3_sa_trie_insert(struct __pyx_t_3    int __pyx_t_1;    int __pyx_t_2;    int __pyx_t_3; -  __Pyx_RefNannySetupContext("trie_insert", 0); +  __Pyx_RefNannySetupContext("trie_insert");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":79   * cdef _Trie_Node* trie_insert(_Trie_Node* node, int val): @@ -26571,7 +24863,7 @@ static PyObject *__pyx_f_3_sa_trie_node_to_map(struct __pyx_t_3_sa__Trie_Node *_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("trie_node_to_map", 0); +  __Pyx_RefNannySetupContext("trie_node_to_map");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":92   *     cdef IntList arr @@ -26698,7 +24990,7 @@ static PyObject *__pyx_f_3_sa_trie_edge_to_map(struct __pyx_t_3_sa__Trie_Edge *_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("trie_edge_to_map", 0); +  __Pyx_RefNannySetupContext("trie_edge_to_map");    __Pyx_INCREF(__pyx_v_prefix);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":103 @@ -26743,7 +25035,7 @@ static PyObject *__pyx_f_3_sa_trie_edge_to_map(struct __pyx_t_3_sa__Trie_Edge *_      __pyx_t_2 = PyInt_FromLong(__pyx_v_edge->val); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 106; __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[11]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);      __Pyx_GIVEREF(__pyx_t_2);      __pyx_t_2 = 0; @@ -26782,32 +25074,42 @@ static PyObject *__pyx_f_3_sa_trie_edge_to_map(struct __pyx_t_3_sa__Trie_Edge *_    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_7TrieMap_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_7TrieMap_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":114 + *     cdef int V + *  + *     def __cinit__(self, int alphabet_size):             # <<<<<<<<<<<<<< + *         self.V = alphabet_size + *         self.root = <_Trie_Node**> malloc(self.V * sizeof(_Trie_Node*)) + */ + +static int __pyx_pf_3_sa_7TrieMap___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_7TrieMap___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_v_alphabet_size;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__alphabet_size,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__alphabet_size,0};      PyObject* values[1] = {0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__alphabet_size)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__alphabet_size); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {        goto __pyx_L5_argtuple_error; @@ -26824,23 +25126,6 @@ static int __pyx_pw_3_sa_7TrieMap_1__cinit__(PyObject *__pyx_v_self, PyObject *_    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_7TrieMap___cinit__(((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self), __pyx_v_alphabet_size); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":114 - *     cdef int V - *  - *     def __cinit__(self, int alphabet_size):             # <<<<<<<<<<<<<< - *         self.V = alphabet_size - *         self.root = <_Trie_Node**> malloc(self.V * sizeof(_Trie_Node*)) - */ - -static int __pyx_pf_3_sa_7TrieMap___cinit__(struct __pyx_obj_3_sa_TrieMap *__pyx_v_self, int __pyx_v_alphabet_size) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":115   *  @@ -26849,7 +25134,7 @@ static int __pyx_pf_3_sa_7TrieMap___cinit__(struct __pyx_obj_3_sa_TrieMap *__pyx   *         self.root = <_Trie_Node**> malloc(self.V * sizeof(_Trie_Node*))   *         memset(self.root, 0, self.V * sizeof(_Trie_Node*))   */ -  __pyx_v_self->V = __pyx_v_alphabet_size; +  ((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->V = __pyx_v_alphabet_size;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":116   *     def __cinit__(self, int alphabet_size): @@ -26858,7 +25143,7 @@ static int __pyx_pf_3_sa_7TrieMap___cinit__(struct __pyx_obj_3_sa_TrieMap *__pyx   *         memset(self.root, 0, self.V * sizeof(_Trie_Node*))   *    */ -  __pyx_v_self->root = ((struct __pyx_t_3_sa__Trie_Node **)malloc((__pyx_v_self->V * (sizeof(struct __pyx_t_3_sa__Trie_Node *))))); +  ((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->root = ((struct __pyx_t_3_sa__Trie_Node **)malloc((((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->V * (sizeof(struct __pyx_t_3_sa__Trie_Node *)))));    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":117   *         self.V = alphabet_size @@ -26867,22 +25152,13 @@ static int __pyx_pf_3_sa_7TrieMap___cinit__(struct __pyx_obj_3_sa_TrieMap *__pyx   *    *    */ -  memset(__pyx_v_self->root, 0, (__pyx_v_self->V * (sizeof(struct __pyx_t_3_sa__Trie_Node *)))); +  memset(((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->root, 0, (((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->V * (sizeof(struct __pyx_t_3_sa__Trie_Node *))));    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static void __pyx_pw_3_sa_7TrieMap_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_3_sa_7TrieMap_3__dealloc__(PyObject *__pyx_v_self) { -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); -  __pyx_pf_3_sa_7TrieMap_2__dealloc__(((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":120   *    *  @@ -26891,7 +25167,8 @@ static void __pyx_pw_3_sa_7TrieMap_3__dealloc__(PyObject *__pyx_v_self) {   *         for i from 0 <= i < self.V:   */ -static void __pyx_pf_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_3_sa_TrieMap *__pyx_v_self) { +static void __pyx_pf_3_sa_7TrieMap_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pf_3_sa_7TrieMap_1__dealloc__(PyObject *__pyx_v_self) {    int __pyx_v_i;    __Pyx_RefNannyDeclarations    int __pyx_t_1; @@ -26900,7 +25177,7 @@ static void __pyx_pf_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_3_sa_TrieMap *_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__dealloc__", 0); +  __Pyx_RefNannySetupContext("__dealloc__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":122   *     def __dealloc__(self): @@ -26909,7 +25186,7 @@ static void __pyx_pf_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_3_sa_TrieMap *_   *             if self.root[i] != NULL:   *                 free_trie_node(self.root[i])   */ -  __pyx_t_1 = __pyx_v_self->V; +  __pyx_t_1 = ((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->V;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":123 @@ -26919,7 +25196,7 @@ static void __pyx_pf_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_3_sa_TrieMap *_   *                 free_trie_node(self.root[i])   *         free(self.root)   */ -    __pyx_t_2 = ((__pyx_v_self->root[__pyx_v_i]) != NULL); +    __pyx_t_2 = ((((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->root[__pyx_v_i]) != NULL);      if (__pyx_t_2) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":124 @@ -26929,12 +25206,12 @@ static void __pyx_pf_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_3_sa_TrieMap *_   *         free(self.root)   *    */ -      __pyx_t_3 = __pyx_f_3_sa_free_trie_node((__pyx_v_self->root[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __pyx_f_3_sa_free_trie_node((((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->root[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      goto __pyx_L5; +      goto __pyx_L7;      } -    __pyx_L5:; +    __pyx_L7:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":125 @@ -26944,7 +25221,7 @@ static void __pyx_pf_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_3_sa_TrieMap *_   *    *    */ -  free(__pyx_v_self->root); +  free(((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->root);    goto __pyx_L0;    __pyx_L1_error:; @@ -26954,17 +25231,6 @@ static void __pyx_pf_3_sa_7TrieMap_2__dealloc__(struct __pyx_obj_3_sa_TrieMap *_    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7TrieMap_5insert(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern); /*proto*/ -static PyObject *__pyx_pw_3_sa_7TrieMap_5insert(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("insert (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7TrieMap_4insert(((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self), ((PyObject *)__pyx_v_pattern)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":128   *    *  @@ -26973,7 +25239,8 @@ static PyObject *__pyx_pw_3_sa_7TrieMap_5insert(PyObject *__pyx_v_self, PyObject   *         cdef int i, l   */ -static PyObject *__pyx_pf_3_sa_7TrieMap_4insert(struct __pyx_obj_3_sa_TrieMap *__pyx_v_self, PyObject *__pyx_v_pattern) { +static PyObject *__pyx_pf_3_sa_7TrieMap_2insert(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern); /*proto*/ +static PyObject *__pyx_pf_3_sa_7TrieMap_2insert(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern) {    int *__pyx_v_p;    int __pyx_v_i;    int __pyx_v_l; @@ -26986,7 +25253,7 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_4insert(struct __pyx_obj_3_sa_TrieMap *_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("insert", 0); +  __Pyx_RefNannySetupContext("insert");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":131   *         cdef int* p @@ -27038,7 +25305,7 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_4insert(struct __pyx_obj_3_sa_TrieMap *_   *         free(p)   *    */ -  ((struct __pyx_vtabstruct_3_sa_TrieMap *)__pyx_v_self->__pyx_vtab)->_insert(__pyx_v_self, __pyx_v_p, __pyx_v_l); +  ((struct __pyx_vtabstruct_3_sa_TrieMap *)((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->__pyx_vtab)->_insert(((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self), __pyx_v_p, __pyx_v_l);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":136   *             p[i] = pattern[i] @@ -27076,7 +25343,7 @@ static struct __pyx_t_3_sa__Trie_Node *__pyx_f_3_sa_7TrieMap__insert(struct __py    __Pyx_RefNannyDeclarations    int __pyx_t_1;    int __pyx_t_2; -  __Pyx_RefNannySetupContext("_insert", 0); +  __Pyx_RefNannySetupContext("_insert");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":142   *         cdef int i @@ -27145,17 +25412,6 @@ static struct __pyx_t_3_sa__Trie_Node *__pyx_f_3_sa_7TrieMap__insert(struct __py    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7TrieMap_7contains(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern); /*proto*/ -static PyObject *__pyx_pw_3_sa_7TrieMap_7contains(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("contains (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7TrieMap_6contains(((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self), ((PyObject *)__pyx_v_pattern)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":149   *         return node   *  @@ -27164,7 +25420,8 @@ static PyObject *__pyx_pw_3_sa_7TrieMap_7contains(PyObject *__pyx_v_self, PyObje   *         cdef int i, l   */ -static PyObject *__pyx_pf_3_sa_7TrieMap_6contains(struct __pyx_obj_3_sa_TrieMap *__pyx_v_self, PyObject *__pyx_v_pattern) { +static PyObject *__pyx_pf_3_sa_7TrieMap_3contains(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern); /*proto*/ +static PyObject *__pyx_pf_3_sa_7TrieMap_3contains(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern) {    int *__pyx_v_p;    int __pyx_v_i;    int __pyx_v_l; @@ -27179,7 +25436,7 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_6contains(struct __pyx_obj_3_sa_TrieMap    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("contains", 0); +  __Pyx_RefNannySetupContext("contains");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":153   *         cdef int i, l @@ -27231,7 +25488,7 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_6contains(struct __pyx_obj_3_sa_TrieMap   *         free(p)   *         if node == NULL:   */ -  __pyx_v_node = ((struct __pyx_vtabstruct_3_sa_TrieMap *)__pyx_v_self->__pyx_vtab)->_contains(__pyx_v_self, __pyx_v_p, __pyx_v_l); +  __pyx_v_node = ((struct __pyx_vtabstruct_3_sa_TrieMap *)((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->__pyx_vtab)->_contains(((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self), __pyx_v_p, __pyx_v_l);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":158   *             p[i] = pattern[i] @@ -27265,7 +25522,7 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_6contains(struct __pyx_obj_3_sa_TrieMap      __pyx_r = __pyx_t_3;      __pyx_t_3 = 0;      goto __pyx_L0; -    goto __pyx_L5; +    goto __pyx_L7;    }    /*else*/ { @@ -27283,7 +25540,7 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_6contains(struct __pyx_obj_3_sa_TrieMap      __pyx_t_3 = 0;      goto __pyx_L0;    } -  __pyx_L5:; +  __pyx_L7:;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -27313,7 +25570,7 @@ static struct __pyx_t_3_sa__Trie_Node *__pyx_f_3_sa_7TrieMap__contains(struct __    int __pyx_t_1;    int __pyx_t_2;    int __pyx_t_3; -  __Pyx_RefNannySetupContext("_contains", 0); +  __Pyx_RefNannySetupContext("_contains");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":167   *         cdef int i @@ -27385,17 +25642,6 @@ static struct __pyx_t_3_sa__Trie_Node *__pyx_f_3_sa_7TrieMap__contains(struct __    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7TrieMap_9toMap(PyObject *__pyx_v_self, PyObject *__pyx_v_flag); /*proto*/ -static PyObject *__pyx_pw_3_sa_7TrieMap_9toMap(PyObject *__pyx_v_self, PyObject *__pyx_v_flag) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("toMap (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_7TrieMap_8toMap(((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self), ((PyObject *)__pyx_v_flag)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":174   *         return node   *  @@ -27404,7 +25650,8 @@ static PyObject *__pyx_pw_3_sa_7TrieMap_9toMap(PyObject *__pyx_v_self, PyObject   *    */ -static PyObject *__pyx_pf_3_sa_7TrieMap_8toMap(struct __pyx_obj_3_sa_TrieMap *__pyx_v_self, PyObject *__pyx_v_flag) { +static PyObject *__pyx_pf_3_sa_7TrieMap_4toMap(PyObject *__pyx_v_self, PyObject *__pyx_v_flag); /*proto*/ +static PyObject *__pyx_pf_3_sa_7TrieMap_4toMap(PyObject *__pyx_v_self, PyObject *__pyx_v_flag) {    int __pyx_v_i;    int __pyx_v_include_zeros;    PyObject *__pyx_v_result = NULL; @@ -27417,7 +25664,7 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_8toMap(struct __pyx_obj_3_sa_TrieMap *__    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("toMap", 0); +  __Pyx_RefNannySetupContext("toMap");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":177   *         cdef int i, include_zeros @@ -27437,7 +25684,7 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_8toMap(struct __pyx_obj_3_sa_TrieMap *__   *             include_zeros=0   */      __pyx_v_include_zeros = 1; -    goto __pyx_L3; +    goto __pyx_L5;    }    /*else*/ { @@ -27450,7 +25697,7 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_8toMap(struct __pyx_obj_3_sa_TrieMap *__   */      __pyx_v_include_zeros = 0;    } -  __pyx_L3:; +  __pyx_L5:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":181   *         else: @@ -27471,7 +25718,7 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_8toMap(struct __pyx_obj_3_sa_TrieMap *__   *             if self.root[i] != NULL:   *                 trie_node_to_map(self.root[i], result, (i,), include_zeros)   */ -  __pyx_t_3 = __pyx_v_self->V; +  __pyx_t_3 = ((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->V;    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":183 @@ -27481,7 +25728,7 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_8toMap(struct __pyx_obj_3_sa_TrieMap *__   *                 trie_node_to_map(self.root[i], result, (i,), include_zeros)   *         return result   */ -    __pyx_t_1 = ((__pyx_v_self->root[__pyx_v_i]) != NULL); +    __pyx_t_1 = ((((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->root[__pyx_v_i]) != NULL);      if (__pyx_t_1) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":184 @@ -27494,17 +25741,17 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_8toMap(struct __pyx_obj_3_sa_TrieMap *__        __pyx_t_2 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_4); +      __Pyx_GOTREF(((PyObject *)__pyx_t_4));        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);        __Pyx_GIVEREF(__pyx_t_2);        __pyx_t_2 = 0; -      __pyx_t_2 = __pyx_f_3_sa_trie_node_to_map((__pyx_v_self->root[__pyx_v_i]), ((PyObject *)__pyx_v_result), ((PyObject *)__pyx_t_4), __pyx_v_include_zeros); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = __pyx_f_3_sa_trie_node_to_map((((struct __pyx_obj_3_sa_TrieMap *)__pyx_v_self)->root[__pyx_v_i]), ((PyObject *)__pyx_v_result), ((PyObject *)__pyx_t_4), __pyx_v_include_zeros); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      goto __pyx_L6; +      goto __pyx_L8;      } -    __pyx_L6:; +    __pyx_L8:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":185 @@ -27533,9 +25780,16 @@ static PyObject *__pyx_pf_3_sa_7TrieMap_8toMap(struct __pyx_obj_3_sa_TrieMap *__    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_14Precomputation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_14Precomputation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":200 + *     cdef write_map(self, m, FILE* f) + *  + *     def __cinit__(self, fsarray=None, from_stats=None, from_binary=None,             # <<<<<<<<<<<<<< + *             precompute_rank=1000, precompute_secondary_rank=20, + *             max_length=5, max_nonterminals=2, + */ + +static int __pyx_pf_3_sa_14Precomputation___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_14Precomputation___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_fsarray = 0;    PyObject *__pyx_v_from_stats = 0;    PyObject *__pyx_v_from_binary = 0; @@ -27547,18 +25801,18 @@ static int __pyx_pw_3_sa_14Precomputation_1__cinit__(PyObject *__pyx_v_self, PyO    PyObject *__pyx_v_train_min_gap_size = 0;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  int __pyx_t_1; +  int __pyx_t_2; +  PyObject *__pyx_t_3 = NULL; +  PyObject *__pyx_t_4 = NULL; +  PyObject *__pyx_t_5 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fsarray,&__pyx_n_s__from_stats,&__pyx_n_s__from_binary,&__pyx_n_s__precompute_rank,&__pyx_n_s_70,&__pyx_n_s__max_length,&__pyx_n_s__max_nonterminals,&__pyx_n_s_71,&__pyx_n_s__train_min_gap_size,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fsarray,&__pyx_n_s__from_stats,&__pyx_n_s__from_binary,&__pyx_n_s__precompute_rank,&__pyx_n_s_70,&__pyx_n_s__max_length,&__pyx_n_s__max_nonterminals,&__pyx_n_s_71,&__pyx_n_s__train_min_gap_size,0};      PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; - -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":200 - *     cdef write_map(self, m, FILE* f) - *  - *     def __cinit__(self, fsarray=None, from_stats=None, from_binary=None,             # <<<<<<<<<<<<<< - *             precompute_rank=1000, precompute_secondary_rank=20, - *             max_length=5, max_nonterminals=2, - */      values[0] = ((PyObject *)Py_None);      values[1] = ((PyObject *)Py_None);      values[2] = ((PyObject *)Py_None); @@ -27570,8 +25824,7 @@ static int __pyx_pw_3_sa_14Precomputation_1__cinit__(PyObject *__pyx_v_self, PyO      values[8] = ((PyObject *)__pyx_int_2);      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);          case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);          case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); @@ -27585,7 +25838,7 @@ static int __pyx_pw_3_sa_14Precomputation_1__cinit__(PyObject *__pyx_v_self, PyO          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0:          if (kw_args > 0) {            PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fsarray); @@ -27633,7 +25886,7 @@ static int __pyx_pw_3_sa_14Precomputation_1__cinit__(PyObject *__pyx_v_self, PyO          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -27668,23 +25921,6 @@ static int __pyx_pw_3_sa_14Precomputation_1__cinit__(PyObject *__pyx_v_self, PyO    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_14Precomputation___cinit__(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self), __pyx_v_fsarray, __pyx_v_from_stats, __pyx_v_from_binary, __pyx_v_precompute_rank, __pyx_v_precompute_secondary_rank, __pyx_v_max_length, __pyx_v_max_nonterminals, __pyx_v_train_max_initial_size, __pyx_v_train_min_gap_size); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, PyObject *__pyx_v_fsarray, PyObject *__pyx_v_from_stats, PyObject *__pyx_v_from_binary, PyObject *__pyx_v_precompute_rank, PyObject *__pyx_v_precompute_secondary_rank, PyObject *__pyx_v_max_length, PyObject *__pyx_v_max_nonterminals, PyObject *__pyx_v_train_max_initial_size, PyObject *__pyx_v_train_min_gap_size) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  int __pyx_t_1; -  int __pyx_t_2; -  PyObject *__pyx_t_3 = NULL; -  PyObject *__pyx_t_4 = NULL; -  PyObject *__pyx_t_5 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":204   *             max_length=5, max_nonterminals=2, @@ -27694,7 +25930,7 @@ static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precom   *         self.max_length = max_length   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__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; +  ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precompute_rank = __pyx_t_1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":205   *             train_max_initial_size=10, train_min_gap_size=2): @@ -27704,7 +25940,7 @@ static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precom   *         self.max_nonterminals = max_nonterminals   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__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; +  ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precompute_secondary_rank = __pyx_t_1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":206   *         self.precompute_rank = precompute_rank @@ -27714,7 +25950,7 @@ static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precom   *         self.train_max_initial_size = train_max_initial_size   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__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; +  ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->max_length = __pyx_t_1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":207   *         self.precompute_secondary_rank = precompute_secondary_rank @@ -27724,7 +25960,7 @@ static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precom   *         self.train_min_gap_size = train_min_gap_size   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__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; +  ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->max_nonterminals = __pyx_t_1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":208   *         self.max_length = max_length @@ -27734,7 +25970,7 @@ static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precom   *         if from_binary:   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__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; +  ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_max_initial_size = __pyx_t_1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":209   *         self.max_nonterminals = max_nonterminals @@ -27744,7 +25980,7 @@ static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precom   *             self.read_binary(from_binary)   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__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; +  ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_min_gap_size = __pyx_t_1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":210   *         self.train_max_initial_size = train_max_initial_size @@ -27763,10 +25999,10 @@ static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precom   *         elif from_stats:   *             self.precompute(from_stats, fsarray)   */ -    __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_binary); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_binary); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 211; __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[11]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      __Pyx_INCREF(__pyx_v_from_binary);      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_from_binary);      __Pyx_GIVEREF(__pyx_v_from_binary); @@ -27775,7 +26011,7 @@ static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precom      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":212 @@ -27795,10 +26031,10 @@ static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precom   *    *    */ -    __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__precompute); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__precompute); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 213; __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[11]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      __Pyx_INCREF(__pyx_v_from_stats);      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_from_stats);      __Pyx_GIVEREF(__pyx_v_from_stats); @@ -27810,9 +26046,9 @@ static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precom      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    __pyx_r = 0;    goto __pyx_L0; @@ -27827,27 +26063,6 @@ static int __pyx_pf_3_sa_14Precomputation___cinit__(struct __pyx_obj_3_sa_Precom    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_14Precomputation_3read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_14Precomputation_3read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_binary (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.Precomputation.read_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_14Precomputation_2read_binary(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":216   *    *  @@ -27856,7 +26071,9 @@ static PyObject *__pyx_pw_3_sa_14Precomputation_3read_binary(PyObject *__pyx_v_s   *         f = fopen(filename, "r")   */ -static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_14Precomputation_1read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_14Precomputation_1read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -27864,7 +26081,16 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("read_binary", 0); +  __Pyx_RefNannySetupContext("read_binary"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.Precomputation.read_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":218   *     def read_binary(self, char* filename): @@ -27882,7 +26108,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_   *         fread(&(self.precompute_secondary_rank), sizeof(int), 1, f)   *         fread(&(self.max_length), sizeof(int), 1, f)   */ -  fread((&__pyx_v_self->precompute_rank), (sizeof(int)), 1, __pyx_v_f); +  fread((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precompute_rank), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":220   *         f = fopen(filename, "r") @@ -27891,7 +26117,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_   *         fread(&(self.max_length), sizeof(int), 1, f)   *         fread(&(self.max_nonterminals), sizeof(int), 1, f)   */ -  fread((&__pyx_v_self->precompute_secondary_rank), (sizeof(int)), 1, __pyx_v_f); +  fread((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precompute_secondary_rank), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":221   *         fread(&(self.precompute_rank), sizeof(int), 1, f) @@ -27900,7 +26126,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_   *         fread(&(self.max_nonterminals), sizeof(int), 1, f)   *         fread(&(self.train_max_initial_size), sizeof(int), 1, f)   */ -  fread((&__pyx_v_self->max_length), (sizeof(int)), 1, __pyx_v_f); +  fread((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->max_length), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":222   *         fread(&(self.precompute_secondary_rank), sizeof(int), 1, f) @@ -27909,7 +26135,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_   *         fread(&(self.train_max_initial_size), sizeof(int), 1, f)   *         fread(&(self.train_min_gap_size), sizeof(int), 1, f)   */ -  fread((&__pyx_v_self->max_nonterminals), (sizeof(int)), 1, __pyx_v_f); +  fread((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->max_nonterminals), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":223   *         fread(&(self.max_length), sizeof(int), 1, f) @@ -27918,7 +26144,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_   *         fread(&(self.train_min_gap_size), sizeof(int), 1, f)   *         self.precomputed_index = self.read_map(f)   */ -  fread((&__pyx_v_self->train_max_initial_size), (sizeof(int)), 1, __pyx_v_f); +  fread((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_max_initial_size), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":224   *         fread(&(self.max_nonterminals), sizeof(int), 1, f) @@ -27927,7 +26153,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_   *         self.precomputed_index = self.read_map(f)   *         self.precomputed_collocations = self.read_map(f)   */ -  fread((&__pyx_v_self->train_min_gap_size), (sizeof(int)), 1, __pyx_v_f); +  fread((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_min_gap_size), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":225   *         fread(&(self.train_max_initial_size), sizeof(int), 1, f) @@ -27936,12 +26162,12 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_   *         self.precomputed_collocations = self.read_map(f)   *         fclose(f)   */ -  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_Precomputation *)__pyx_v_self->__pyx_vtab)->read_map(__pyx_v_self, __pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_Precomputation *)((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->__pyx_vtab)->read_map(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self), __pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->precomputed_index); -  __Pyx_DECREF(__pyx_v_self->precomputed_index); -  __pyx_v_self->precomputed_index = __pyx_t_1; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_index); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_index); +  ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_index = __pyx_t_1;    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":226 @@ -27951,12 +26177,12 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_   *         fclose(f)   *    */ -  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_Precomputation *)__pyx_v_self->__pyx_vtab)->read_map(__pyx_v_self, __pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_Precomputation *)((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->__pyx_vtab)->read_map(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self), __pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->precomputed_collocations); -  __Pyx_DECREF(__pyx_v_self->precomputed_collocations); -  __pyx_v_self->precomputed_collocations = __pyx_t_1; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations); +  ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations = __pyx_t_1;    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":227 @@ -27980,27 +26206,6 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_2read_binary(struct __pyx_obj_3_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_14Precomputation_5write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_14Precomputation_5write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_binary (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.Precomputation.write_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_14Precomputation_4write_binary(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":230   *    *  @@ -28009,7 +26214,9 @@ static PyObject *__pyx_pw_3_sa_14Precomputation_5write_binary(PyObject *__pyx_v_   *         f = fopen(filename, "w")   */ -static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_14Precomputation_2write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_14Precomputation_2write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -28018,7 +26225,16 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_binary", 0); +  __Pyx_RefNannySetupContext("write_binary"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.Precomputation.write_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":232   *     def write_binary(self, char* filename): @@ -28036,7 +26252,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3   *         fwrite(&(self.precompute_secondary_rank), sizeof(int), 1, f)   *         fwrite(&(self.max_length), sizeof(int), 1, f)   */ -  fwrite((&__pyx_v_self->precompute_rank), (sizeof(int)), 1, __pyx_v_f); +  fwrite((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precompute_rank), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":234   *         f = fopen(filename, "w") @@ -28045,7 +26261,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3   *         fwrite(&(self.max_length), sizeof(int), 1, f)   *         fwrite(&(self.max_nonterminals), sizeof(int), 1, f)   */ -  fwrite((&__pyx_v_self->precompute_secondary_rank), (sizeof(int)), 1, __pyx_v_f); +  fwrite((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precompute_secondary_rank), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":235   *         fwrite(&(self.precompute_rank), sizeof(int), 1, f) @@ -28054,7 +26270,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3   *         fwrite(&(self.max_nonterminals), sizeof(int), 1, f)   *         fwrite(&(self.train_max_initial_size), sizeof(int), 1, f)   */ -  fwrite((&__pyx_v_self->max_length), (sizeof(int)), 1, __pyx_v_f); +  fwrite((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->max_length), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":236   *         fwrite(&(self.precompute_secondary_rank), sizeof(int), 1, f) @@ -28063,7 +26279,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3   *         fwrite(&(self.train_max_initial_size), sizeof(int), 1, f)   *         fwrite(&(self.train_min_gap_size), sizeof(int), 1, f)   */ -  fwrite((&__pyx_v_self->max_nonterminals), (sizeof(int)), 1, __pyx_v_f); +  fwrite((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->max_nonterminals), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":237   *         fwrite(&(self.max_length), sizeof(int), 1, f) @@ -28072,7 +26288,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3   *         fwrite(&(self.train_min_gap_size), sizeof(int), 1, f)   *         self.write_map(self.precomputed_index, f)   */ -  fwrite((&__pyx_v_self->train_max_initial_size), (sizeof(int)), 1, __pyx_v_f); +  fwrite((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_max_initial_size), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":238   *         fwrite(&(self.max_nonterminals), sizeof(int), 1, f) @@ -28081,7 +26297,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3   *         self.write_map(self.precomputed_index, f)   *         self.write_map(self.precomputed_collocations, f)   */ -  fwrite((&__pyx_v_self->train_min_gap_size), (sizeof(int)), 1, __pyx_v_f); +  fwrite((&((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_min_gap_size), (sizeof(int)), 1, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":239   *         fwrite(&(self.train_max_initial_size), sizeof(int), 1, f) @@ -28090,9 +26306,9 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3   *         self.write_map(self.precomputed_collocations, f)   *         fclose(f)   */ -  __pyx_t_1 = __pyx_v_self->precomputed_index; +  __pyx_t_1 = ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_index;    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = ((struct __pyx_vtabstruct_3_sa_Precomputation *)__pyx_v_self->__pyx_vtab)->write_map(__pyx_v_self, __pyx_t_1, __pyx_v_f); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = ((struct __pyx_vtabstruct_3_sa_Precomputation *)((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->__pyx_vtab)->write_map(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self), __pyx_t_1, __pyx_v_f); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 239; __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; @@ -28104,9 +26320,9 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3   *         fclose(f)   *    */ -  __pyx_t_2 = __pyx_v_self->precomputed_collocations; +  __pyx_t_2 = ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations;    __Pyx_INCREF(__pyx_t_2); -  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_Precomputation *)__pyx_v_self->__pyx_vtab)->write_map(__pyx_v_self, __pyx_t_2, __pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_Precomputation *)((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->__pyx_vtab)->write_map(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self), __pyx_t_2, __pyx_v_f); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 240; __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_1); __pyx_t_1 = 0; @@ -28141,7 +26357,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_4write_binary(struct __pyx_obj_3   *         cdef IntList arr   */ -static PyObject *__pyx_f_3_sa_14Precomputation_write_map(CYTHON_UNUSED struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, PyObject *__pyx_v_m, FILE *__pyx_v_f) { +static PyObject *__pyx_f_3_sa_14Precomputation_write_map(struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, PyObject *__pyx_v_m, FILE *__pyx_v_f) {    int __pyx_v_i;    int __pyx_v_N;    struct __pyx_obj_3_sa_IntList *__pyx_v_arr = 0; @@ -28152,17 +26368,19 @@ static PyObject *__pyx_f_3_sa_14Precomputation_write_map(CYTHON_UNUSED struct __    __Pyx_RefNannyDeclarations    Py_ssize_t __pyx_t_1;    PyObject *__pyx_t_2 = NULL; -  Py_ssize_t __pyx_t_3; -  int __pyx_t_4; +  PyObject *__pyx_t_3 = NULL; +  PyObject *(*__pyx_t_4)(PyObject *);    PyObject *__pyx_t_5 = NULL;    PyObject *__pyx_t_6 = NULL; -  int __pyx_t_7; -  Py_ssize_t __pyx_t_8; -  PyObject *(*__pyx_t_9)(PyObject *); +  PyObject *__pyx_t_7 = NULL; +  PyObject *(*__pyx_t_8)(PyObject *); +  Py_ssize_t __pyx_t_9; +  PyObject *(*__pyx_t_10)(PyObject *); +  int __pyx_t_11;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_map", 0); +  __Pyx_RefNannySetupContext("write_map");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":248   *         cdef IntList arr @@ -28190,22 +26408,80 @@ static PyObject *__pyx_f_3_sa_14Precomputation_write_map(CYTHON_UNUSED struct __   *             N = len(pattern)   *             fwrite(&(N), sizeof(int), 1, f)   */ -  __pyx_t_1 = 0; -  if (unlikely(__pyx_v_m == Py_None)) { -    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iteritems"); -    {__pyx_filename = __pyx_f[11]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyObject_GetAttr(__pyx_v_m, __pyx_n_s__iteritems); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_2); +  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) { +    __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = 0; +    __pyx_t_4 = NULL; +  } else { +    __pyx_t_1 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_2); +    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;    } -  __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_m, 0, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_5); -  __Pyx_XDECREF(__pyx_t_2); -  __pyx_t_2 = __pyx_t_5; -  __pyx_t_5 = 0; -  while (1) { -    __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_3, &__pyx_t_1, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4); -    if (unlikely(__pyx_t_7 == 0)) break; -    if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_5); -    __Pyx_GOTREF(__pyx_t_6); +  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +  for (;;) { +    if (PyList_CheckExact(__pyx_t_2)) { +      if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_2)) break; +      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; +    } else if (PyTuple_CheckExact(__pyx_t_2)) { +      if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; +    } else { +      __pyx_t_3 = __pyx_t_4(__pyx_t_2); +      if (unlikely(!__pyx_t_3)) { +        if (PyErr_Occurred()) { +          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); +          else {__pyx_filename = __pyx_f[11]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        } +        break; +      } +      __Pyx_GOTREF(__pyx_t_3); +    } +    if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { +      PyObject* sequence = __pyx_t_3; +      if (likely(PyTuple_CheckExact(sequence))) { +        if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +          if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[11]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        } +        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);  +        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);  +      } else { +        if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +          if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[11]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        } +        __pyx_t_5 = PyList_GET_ITEM(sequence, 0);  +        __pyx_t_6 = PyList_GET_ITEM(sequence, 1);  +      } +      __Pyx_INCREF(__pyx_t_5); +      __Pyx_INCREF(__pyx_t_6); +      __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[11]; __pyx_lineno = 250; __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; +      index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; +      __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[11]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +      goto __pyx_L6_unpacking_done; +      __pyx_L5_unpacking_failed:; +      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); +      {__pyx_filename = __pyx_f[11]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_L6_unpacking_done:; +    }      __Pyx_XDECREF(__pyx_v_pattern);      __pyx_v_pattern = __pyx_t_5;      __pyx_t_5 = 0; @@ -28220,8 +26496,8 @@ static PyObject *__pyx_f_3_sa_14Precomputation_write_map(CYTHON_UNUSED struct __   *             fwrite(&(N), sizeof(int), 1, f)   *             for word_id in pattern:   */ -    __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; +    __pyx_t_9 = PyObject_Length(__pyx_v_pattern); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_v_N = __pyx_t_9;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":252   *         for pattern, val in m.iteritems(): @@ -28240,42 +26516,34 @@ static PyObject *__pyx_f_3_sa_14Precomputation_write_map(CYTHON_UNUSED struct __   *                 fwrite(&(i), sizeof(int), 1, f)   */      if (PyList_CheckExact(__pyx_v_pattern) || PyTuple_CheckExact(__pyx_v_pattern)) { -      __pyx_t_6 = __pyx_v_pattern; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0; -      __pyx_t_9 = NULL; +      __pyx_t_3 = __pyx_v_pattern; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0; +      __pyx_t_10 = NULL;      } else { -      __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_pattern); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; +      __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_pattern); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_3); +      __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext;      }      for (;;) { -      if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_6)) { -        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break; -        #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #else -        __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #endif -      } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_6)) { -        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break; -        #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #else -        __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #endif +      if (PyList_CheckExact(__pyx_t_3)) { +        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break; +        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; +      } else if (PyTuple_CheckExact(__pyx_t_3)) { +        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++;        } else { -        __pyx_t_5 = __pyx_t_9(__pyx_t_6); -        if (unlikely(!__pyx_t_5)) { +        __pyx_t_6 = __pyx_t_10(__pyx_t_3); +        if (unlikely(!__pyx_t_6)) {            if (PyErr_Occurred()) {              if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();              else {__pyx_filename = __pyx_f[11]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            }            break;          } -        __Pyx_GOTREF(__pyx_t_5); +        __Pyx_GOTREF(__pyx_t_6);        }        __Pyx_XDECREF(__pyx_v_word_id); -      __pyx_v_word_id = __pyx_t_5; -      __pyx_t_5 = 0; +      __pyx_v_word_id = __pyx_t_6; +      __pyx_t_6 = 0;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":254   *             fwrite(&(N), sizeof(int), 1, f) @@ -28284,8 +26552,8 @@ static PyObject *__pyx_f_3_sa_14Precomputation_write_map(CYTHON_UNUSED struct __   *                 fwrite(&(i), sizeof(int), 1, f)   *             arr = val   */ -      __pyx_t_7 = __Pyx_PyInt_AsInt(__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; +      __pyx_t_11 = __Pyx_PyInt_AsInt(__pyx_v_word_id); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_v_i = __pyx_t_11;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":255   *             for word_id in pattern: @@ -28296,7 +26564,7 @@ static PyObject *__pyx_f_3_sa_14Precomputation_write_map(CYTHON_UNUSED struct __   */        fwrite((&__pyx_v_i), (sizeof(int)), 1, __pyx_v_f);      } -    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":256   *                 i = word_id @@ -28325,8 +26593,10 @@ static PyObject *__pyx_f_3_sa_14Precomputation_write_map(CYTHON_UNUSED struct __    goto __pyx_L0;    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_2); +  __Pyx_XDECREF(__pyx_t_3);    __Pyx_XDECREF(__pyx_t_5);    __Pyx_XDECREF(__pyx_t_6); +  __Pyx_XDECREF(__pyx_t_7);    __Pyx_AddTraceback("_sa.Precomputation.write_map", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = 0;    __pyx_L0:; @@ -28347,10 +26617,10 @@ static PyObject *__pyx_f_3_sa_14Precomputation_write_map(CYTHON_UNUSED struct __   *         cdef IntList arr   */ -static PyObject *__pyx_f_3_sa_14Precomputation_read_map(CYTHON_UNUSED struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, FILE *__pyx_v_f) { +static PyObject *__pyx_f_3_sa_14Precomputation_read_map(struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, FILE *__pyx_v_f) {    int __pyx_v_i; -  CYTHON_UNUSED int __pyx_v_j; -  CYTHON_UNUSED int __pyx_v_k; +  int __pyx_v_j; +  int __pyx_v_k;    int __pyx_v_word_id;    int __pyx_v_N;    struct __pyx_obj_3_sa_IntList *__pyx_v_arr = 0; @@ -28365,7 +26635,7 @@ static PyObject *__pyx_f_3_sa_14Precomputation_read_map(CYTHON_UNUSED struct __p    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("read_map", 0); +  __Pyx_RefNannySetupContext("read_map");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":264   *         cdef IntList arr @@ -28447,7 +26717,7 @@ static PyObject *__pyx_f_3_sa_14Precomputation_read_map(CYTHON_UNUSED struct __p        __pyx_t_1 = PyInt_FromLong(__pyx_v_word_id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 271; __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[11]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_4); +      __Pyx_GOTREF(((PyObject *)__pyx_t_4));        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);        __Pyx_GIVEREF(__pyx_t_1);        __pyx_t_1 = 0; @@ -28519,67 +26789,6 @@ static PyObject *__pyx_f_3_sa_14Precomputation_read_map(CYTHON_UNUSED struct __p    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_14Precomputation_7precompute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_14Precomputation_7precompute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { -  PyObject *__pyx_v_stats = 0; -  struct __pyx_obj_3_sa_SuffixArray *__pyx_v_sarray = 0; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("precompute (wrapper)", 0); -  { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__stats,&__pyx_n_s__sarray,0}; -    PyObject* values[2] = {0,0}; -    if (unlikely(__pyx_kwds)) { -      Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { -        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); -        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); -        case  0: break; -        default: goto __pyx_L5_argtuple_error; -      } -      kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { -        case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__stats)) != 0)) kw_args--; -        else goto __pyx_L5_argtuple_error; -        case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sarray)) != 0)) kw_args--; -        else { -          __Pyx_RaiseArgtupleInvalid("precompute", 1, 2, 2, 1); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -        } -      } -      if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "precompute") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -      } -    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { -      goto __pyx_L5_argtuple_error; -    } else { -      values[0] = PyTuple_GET_ITEM(__pyx_args, 0); -      values[1] = PyTuple_GET_ITEM(__pyx_args, 1); -    } -    __pyx_v_stats = values[0]; -    __pyx_v_sarray = ((struct __pyx_obj_3_sa_SuffixArray *)values[1]); -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L5_argtuple_error:; -  __Pyx_RaiseArgtupleInvalid("precompute", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.Precomputation.precompute", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sarray), __pyx_ptype_3_sa_SuffixArray, 1, "sarray", 0))) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_r = __pyx_pf_3_sa_14Precomputation_6precompute(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self), __pyx_v_stats, __pyx_v_sarray); -  goto __pyx_L0; -  __pyx_L1_error:; -  __pyx_r = NULL; -  __pyx_L0:; -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":278   *    *  @@ -28588,7 +26797,10 @@ static PyObject *__pyx_pw_3_sa_14Precomputation_7precompute(PyObject *__pyx_v_se   *         cdef DataArray darray = sarray.darray   */ -static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_sa_Precomputation *__pyx_v_self, PyObject *__pyx_v_stats, struct __pyx_obj_3_sa_SuffixArray *__pyx_v_sarray) { +static PyObject *__pyx_pf_3_sa_14Precomputation_3precompute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_14Precomputation_3precompute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +  PyObject *__pyx_v_stats = 0; +  struct __pyx_obj_3_sa_SuffixArray *__pyx_v_sarray = 0;    int __pyx_v_i;    int __pyx_v_l;    int __pyx_v_N; @@ -28621,7 +26833,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    PyObject *__pyx_v_pattern_rank = NULL;    float __pyx_v_start_time;    PyObject *__pyx_v_rank = NULL; -  CYTHON_UNUSED PyObject *__pyx_v__ = NULL; +  PyObject *__pyx_v__ = NULL;    PyObject *__pyx_v_phrase = NULL;    int __pyx_v_sa_word_id;    PyObject *__pyx_v_x = NULL; @@ -28636,7 +26848,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    PyObject *__pyx_v_arity = NULL;    PyObject *__pyx_v_cumul_cost = NULL;    PyObject *__pyx_v_cumul_count = NULL; -  PyObject *__pyx_v_num_found_patterns = NULL; +  Py_ssize_t __pyx_v_num_found_patterns;    float __pyx_v_stop_time;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -28663,7 +26875,52 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("precompute", 0); +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__stats,&__pyx_n_s__sarray,0}; +  __Pyx_RefNannySetupContext("precompute"); +  { +    PyObject* values[2] = {0,0}; +    if (unlikely(__pyx_kwds)) { +      Py_ssize_t kw_args; +      switch (PyTuple_GET_SIZE(__pyx_args)) { +        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); +        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); +        case  0: break; +        default: goto __pyx_L5_argtuple_error; +      } +      kw_args = PyDict_Size(__pyx_kwds); +      switch (PyTuple_GET_SIZE(__pyx_args)) { +        case  0: +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__stats); +        if (likely(values[0])) kw_args--; +        else goto __pyx_L5_argtuple_error; +        case  1: +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sarray); +        if (likely(values[1])) kw_args--; +        else { +          __Pyx_RaiseArgtupleInvalid("precompute", 1, 2, 2, 1); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        } +      } +      if (unlikely(kw_args > 0)) { +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "precompute") < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      } +    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { +      goto __pyx_L5_argtuple_error; +    } else { +      values[0] = PyTuple_GET_ITEM(__pyx_args, 0); +      values[1] = PyTuple_GET_ITEM(__pyx_args, 1); +    } +    __pyx_v_stats = values[0]; +    __pyx_v_sarray = ((struct __pyx_obj_3_sa_SuffixArray *)values[1]); +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L5_argtuple_error:; +  __Pyx_RaiseArgtupleInvalid("precompute", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.Precomputation.precompute", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:; +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sarray), __pyx_ptype_3_sa_SuffixArray, 1, "sarray", 0))) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":280   *     def precompute(self, stats, SuffixArray sarray): @@ -28699,7 +26956,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 287; __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[11]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_t_1 = 0; @@ -28723,7 +26980,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 288; __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[11]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_t_1 = 0; @@ -28747,7 +27004,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 289; __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[11]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_t_1 = 0; @@ -28870,20 +27127,12 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s      __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_3)) { +    if (PyList_CheckExact(__pyx_t_3)) {        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_3)) { +      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; +    } else if (PyTuple_CheckExact(__pyx_t_3)) {        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++;      } else {        __pyx_t_5 = __pyx_t_4(__pyx_t_3);        if (unlikely(!__pyx_t_5)) { @@ -28897,22 +27146,21 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s      }      if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {        PyObject* sequence = __pyx_t_5; -      #if CYTHON_COMPILING_IN_CPYTHON -      Py_ssize_t size = Py_SIZE(sequence); -      #else -      Py_ssize_t size = PySequence_Size(sequence); -      #endif -      if (unlikely(size != 3)) { -        if (size > 3) __Pyx_RaiseTooManyValuesError(3); -        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      } -      #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { +        if (unlikely(PyTuple_GET_SIZE(sequence) != 3)) { +          if (PyTuple_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3); +          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        }          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);           __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1);           __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2);         } else { +        if (unlikely(PyList_GET_SIZE(sequence) != 3)) { +          if (PyList_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3); +          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        }          __pyx_t_6 = PyList_GET_ITEM(sequence, 0);           __pyx_t_7 = PyList_GET_ITEM(sequence, 1);           __pyx_t_8 = PyList_GET_ITEM(sequence, 2);  @@ -28920,35 +27168,28 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s        __Pyx_INCREF(__pyx_t_6);        __Pyx_INCREF(__pyx_t_7);        __Pyx_INCREF(__pyx_t_8); -      #else -      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    } else -    { +    } else {        Py_ssize_t index = -1;        __pyx_t_9 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_9);        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; -      index = 0; __pyx_t_6 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; +      index = 0; __pyx_t_6 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed;        __Pyx_GOTREF(__pyx_t_6); -      index = 1; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; +      index = 1; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L8_unpacking_failed;        __Pyx_GOTREF(__pyx_t_7); -      index = 2; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L5_unpacking_failed; +      index = 2; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L8_unpacking_failed;        __Pyx_GOTREF(__pyx_t_8);        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_10 = NULL;        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; -      goto __pyx_L6_unpacking_done; -      __pyx_L5_unpacking_failed:; +      goto __pyx_L9_unpacking_done; +      __pyx_L8_unpacking_failed:;        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; -      __pyx_t_10 = NULL; -      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);        {__pyx_filename = __pyx_f[11]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_L6_unpacking_done:; +      __pyx_L9_unpacking_done:;      }      __Pyx_XDECREF(__pyx_v__);      __pyx_v__ = __pyx_t_6; @@ -28975,9 +27216,10 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                 break   *             max_pattern_len = max(max_pattern_len, len(phrase))   */ -    __pyx_t_5 = PyInt_FromLong(__pyx_v_self->precompute_rank); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyInt_FromLong(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precompute_rank); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_8 = PyObject_RichCompare(__pyx_v_rank, __pyx_t_5, Py_GE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_8 = PyObject_RichCompare(__pyx_v_rank, __pyx_t_5, Py_GE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_8);      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -28990,10 +27232,10 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *             max_pattern_len = max(max_pattern_len, len(phrase))   *             frequent_patterns.insert(phrase)   */ -      goto __pyx_L4_break; -      goto __pyx_L7; +      goto __pyx_L7_break; +      goto __pyx_L10;      } -    __pyx_L7:; +    __pyx_L10:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":304   *             if rank >= self.precompute_rank: @@ -29021,7 +27263,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s      __pyx_t_8 = PyObject_GetAttr(((PyObject *)__pyx_v_frequent_patterns), __pyx_n_s__insert); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_8);      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_5); +    __Pyx_GOTREF(((PyObject *)__pyx_t_5));      __Pyx_INCREF(__pyx_v_phrase);      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_phrase);      __Pyx_GIVEREF(__pyx_v_phrase); @@ -29038,6 +27280,9 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *             pattern_rank[phrase] = rank   *             if rank < self.precompute_secondary_rank:   */ +    if (unlikely(((PyObject *)__pyx_v_I_set) == Py_None)) { +      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add"); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    }      __pyx_t_15 = PySet_Add(__pyx_v_I_set, __pyx_v_phrase); if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":307 @@ -29056,9 +27301,10 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                 super_frequent_patterns.insert(phrase)   *                 J_set.add(phrase)   */ -    __pyx_t_7 = PyInt_FromLong(__pyx_v_self->precompute_secondary_rank); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = PyInt_FromLong(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precompute_secondary_rank); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_7); -    __pyx_t_5 = PyObject_RichCompare(__pyx_v_rank, __pyx_t_7, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyObject_RichCompare(__pyx_v_rank, __pyx_t_7, Py_LT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -29074,7 +27320,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s        __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_super_frequent_patterns), __pyx_n_s__insert); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_7); +      __Pyx_GOTREF(((PyObject *)__pyx_t_7));        __Pyx_INCREF(__pyx_v_phrase);        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_phrase);        __Pyx_GIVEREF(__pyx_v_phrase); @@ -29091,12 +27337,15 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *    *         queue = IntList(increment=1000)   */ +      if (unlikely(((PyObject *)__pyx_v_J_set) == Py_None)) { +        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add"); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +      }        __pyx_t_15 = PySet_Add(__pyx_v_J_set, __pyx_v_phrase); if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      goto __pyx_L8; +      goto __pyx_L11;      } -    __pyx_L8:; +    __pyx_L11:;    } -  __pyx_L4_break:; +  __pyx_L7_break:;    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -29110,7 +27359,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_1));    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__increment), __pyx_int_1000) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;    __pyx_v_queue = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_3); @@ -29180,7 +27429,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                 for l from 1 <= l <= max_pattern_len:   */        ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_queue->__pyx_vtab)->_append(__pyx_v_queue, -1); -      goto __pyx_L11; +      goto __pyx_L14;      }      /*else*/ { @@ -29220,10 +27469,10 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                     queue._append(i)   *                     queue._append(l)   */ -          goto __pyx_L13_break; -          goto __pyx_L14; +          goto __pyx_L16_break; +          goto __pyx_L17;          } -        __pyx_L14:; +        __pyx_L17:;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":325   *                     if node == NULL: @@ -29254,9 +27503,9 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s          __Pyx_GOTREF(__pyx_t_3);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        } -      __pyx_L13_break:; +      __pyx_L16_break:;      } -    __pyx_L11:; +    __pyx_L14:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":329 @@ -29381,7 +27630,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   */          __pyx_t_11 = (__pyx_v_i2 == -1);          if (!__pyx_t_11) { -          __pyx_t_17 = ((__pyx_v_i2 - __pyx_v_i1) >= __pyx_v_self->train_max_initial_size); +          __pyx_t_17 = ((__pyx_v_i2 - __pyx_v_i1) >= ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_max_initial_size);            __pyx_t_18 = __pyx_t_17;          } else {            __pyx_t_18 = __pyx_t_11; @@ -29395,10 +27644,10 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                     l2 = queue.arr[ptr2+1]   *                     if (i2 - i1 - l1 >= self.train_min_gap_size and   */ -          goto __pyx_L19_break; -          goto __pyx_L20; +          goto __pyx_L22_break; +          goto __pyx_L23;          } -        __pyx_L20:; +        __pyx_L23:;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":342   *                     if i2 == -1 or i2 - i1 >= self.train_max_initial_size: @@ -29416,7 +27665,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                             i2 + l2 - i1 <= self.train_max_initial_size and   *                             l1+l2+1 <= self.max_length):   */ -        __pyx_t_18 = (((__pyx_v_i2 - __pyx_v_i1) - __pyx_v_l1) >= __pyx_v_self->train_min_gap_size); +        __pyx_t_18 = (((__pyx_v_i2 - __pyx_v_i1) - __pyx_v_l1) >= ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_min_gap_size);          if (__pyx_t_18) {            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":344 @@ -29426,7 +27675,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                             l1+l2+1 <= self.max_length):   *                         node = collocations._insert(data.arr+i1, l1)   */ -          __pyx_t_11 = (((__pyx_v_i2 + __pyx_v_l2) - __pyx_v_i1) <= __pyx_v_self->train_max_initial_size); +          __pyx_t_11 = (((__pyx_v_i2 + __pyx_v_l2) - __pyx_v_i1) <= ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_max_initial_size);            if (__pyx_t_11) {              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":345 @@ -29436,7 +27685,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                         node = collocations._insert(data.arr+i1, l1)   *                         node = trie_insert(node, -1)   */ -            __pyx_t_17 = (((__pyx_v_l1 + __pyx_v_l2) + 1) <= __pyx_v_self->max_length); +            __pyx_t_17 = (((__pyx_v_l1 + __pyx_v_l2) + 1) <= ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->max_length);              __pyx_t_19 = __pyx_t_17;            } else {              __pyx_t_19 = __pyx_t_11; @@ -29535,7 +27784,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                                 is_super = 0   */                __pyx_v_is_super = 1; -              goto __pyx_L25; +              goto __pyx_L28;              }              /*else*/ { @@ -29548,7 +27797,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   */                __pyx_v_is_super = 0;              } -            __pyx_L25:; +            __pyx_L28:;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":357   *                             else: @@ -29588,7 +27837,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   */                __pyx_t_11 = (__pyx_v_i3 == -1);                if (!__pyx_t_11) { -                __pyx_t_18 = ((__pyx_v_i3 - __pyx_v_i1) >= __pyx_v_self->train_max_initial_size); +                __pyx_t_18 = ((__pyx_v_i3 - __pyx_v_i1) >= ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_max_initial_size);                  __pyx_t_19 = __pyx_t_18;                } else {                  __pyx_t_19 = __pyx_t_11; @@ -29602,10 +27851,10 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                                 l3 = queue.arr[ptr3+1]   *                                 if (i3 - i2 - l2 >= self.train_min_gap_size and   */ -                goto __pyx_L27_break; -                goto __pyx_L28; +                goto __pyx_L30_break; +                goto __pyx_L31;                } -              __pyx_L28:; +              __pyx_L31:;                /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":362   *                                 if i3 == -1 or i3 - i1 >= self.train_max_initial_size: @@ -29623,7 +27872,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                                         i3 + l3 - i1 <= self.train_max_initial_size and   *                                         l1+l2+l3+2 <= self.max_length):   */ -              __pyx_t_19 = (((__pyx_v_i3 - __pyx_v_i2) - __pyx_v_l2) >= __pyx_v_self->train_min_gap_size); +              __pyx_t_19 = (((__pyx_v_i3 - __pyx_v_i2) - __pyx_v_l2) >= ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_min_gap_size);                if (__pyx_t_19) {                  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":364 @@ -29633,7 +27882,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                                         l1+l2+l3+2 <= self.max_length):   *                                     if is_super or super_frequent_patterns._contains(data.arr+i3, l3) != NULL:   */ -                __pyx_t_11 = (((__pyx_v_i3 + __pyx_v_l3) - __pyx_v_i1) <= __pyx_v_self->train_max_initial_size); +                __pyx_t_11 = (((__pyx_v_i3 + __pyx_v_l3) - __pyx_v_i1) <= ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->train_max_initial_size);                  if (__pyx_t_11) {                    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":365 @@ -29643,7 +27892,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                                     if is_super or super_frequent_patterns._contains(data.arr+i3, l3) != NULL:   *                                         node = collocations._insert(data.arr+i1, l1)   */ -                  __pyx_t_18 = ((((__pyx_v_l1 + __pyx_v_l2) + __pyx_v_l3) + 2) <= __pyx_v_self->max_length); +                  __pyx_t_18 = ((((__pyx_v_l1 + __pyx_v_l2) + __pyx_v_l3) + 2) <= ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->max_length);                    __pyx_t_17 = __pyx_t_18;                  } else {                    __pyx_t_17 = __pyx_t_11; @@ -29768,12 +28017,12 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s                    __pyx_t_3 = __pyx_f_3_sa_trie_node_data_append(__pyx_v_node, __pyx_v_i3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_3);                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -                  goto __pyx_L30; +                  goto __pyx_L33;                  } -                __pyx_L30:; -                goto __pyx_L29; +                __pyx_L33:; +                goto __pyx_L32;                } -              __pyx_L29:; +              __pyx_L32:;                /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":377   *                                         trie_node_data_append(node, i2) @@ -29784,13 +28033,13 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   */                __pyx_v_ptr3 = (__pyx_v_ptr3 + 2);              } -            __pyx_L27_break:; -            goto __pyx_L24; +            __pyx_L30_break:; +            goto __pyx_L27;            } -          __pyx_L24:; -          goto __pyx_L21; +          __pyx_L27:; +          goto __pyx_L24;          } -        __pyx_L21:; +        __pyx_L24:;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":378   *                                         trie_node_data_append(node, i3) @@ -29801,7 +28050,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   */          __pyx_v_ptr2 = (__pyx_v_ptr2 + 2);        } -      __pyx_L19_break:; +      __pyx_L22_break:;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":379   *                                 ptr3 = ptr3 + 2 @@ -29811,7 +28060,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                 sent_count = sent_count + 1   */        __pyx_v_ptr1 = (__pyx_v_ptr1 + 2); -      goto __pyx_L17; +      goto __pyx_L20;      }      /*else*/ { @@ -29849,7 +28098,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s          __pyx_t_3 = PyInt_FromLong(__pyx_v_sent_count); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3);          __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_8); +        __Pyx_GOTREF(((PyObject *)__pyx_t_8));          __Pyx_INCREF(((PyObject *)__pyx_kp_s_78));          PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_kp_s_78));          __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_78)); @@ -29861,9 +28110,9 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;          __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        goto __pyx_L35; +        goto __pyx_L38;        } -      __pyx_L35:; +      __pyx_L38:;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":384   *                 if sent_count % 10000 == 0: @@ -29874,7 +28123,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   */        __pyx_v_ptr1 = (__pyx_v_ptr1 + 1);      } -    __pyx_L17:; +    __pyx_L20:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":386 @@ -29889,7 +28138,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    __pyx_t_8 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8);    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8);    __Pyx_GIVEREF(__pyx_t_8);    __pyx_t_8 = 0; @@ -29898,9 +28147,9 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;    __Pyx_GIVEREF(__pyx_t_8); -  __Pyx_GOTREF(__pyx_v_self->precomputed_collocations); -  __Pyx_DECREF(__pyx_v_self->precomputed_collocations); -  __pyx_v_self->precomputed_collocations = __pyx_t_8; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations); +  ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations = __pyx_t_8;    __pyx_t_8 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":387 @@ -29915,7 +28164,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 387; __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[11]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_t_1 = 0; @@ -29924,9 +28173,9 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->precomputed_index); -  __Pyx_DECREF(__pyx_v_self->precomputed_index); -  __pyx_v_self->precomputed_index = __pyx_t_1; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_index); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_index); +  ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_index = __pyx_t_1;    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":389 @@ -30000,7 +28249,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   */        __pyx_t_2 = PyObject_Length(__pyx_v_pattern1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_14 = PyObject_Length(__pyx_v_pattern2); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_19 = (((__pyx_t_2 + __pyx_t_14) + 1) < __pyx_v_self->max_length); +      __pyx_t_19 = (((__pyx_t_2 + __pyx_t_14) + 1) < ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->max_length);        if (__pyx_t_19) {          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":393 @@ -30026,10 +28275,13 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *    *         for pattern1 in I_set:   */ +        if (unlikely(((PyObject *)__pyx_v_J2_set) == Py_None)) { +          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add"); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +        }          __pyx_t_15 = PySet_Add(__pyx_v_J2_set, __pyx_v_combined_pattern); if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        goto __pyx_L40; +        goto __pyx_L43;        } -      __pyx_L40:; +      __pyx_L43:;      }      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    } @@ -30109,7 +28361,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   */        __pyx_t_14 = PyObject_Length(__pyx_v_pattern1); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_2 = PyObject_Length(__pyx_v_pattern2); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_19 = (((__pyx_t_14 + __pyx_t_2) + 1) <= __pyx_v_self->max_length); +      __pyx_t_19 = (((__pyx_t_14 + __pyx_t_2) + 1) <= ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->max_length);        if (__pyx_t_19) {          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":400 @@ -30135,10 +28387,13 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *    *         for pattern1 in I_set:   */ +        if (unlikely(((PyObject *)__pyx_v_IJ_set) == Py_None)) { +          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add"); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +        }          __pyx_t_15 = PySet_Add(__pyx_v_IJ_set, __pyx_v_combined_pattern); if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        goto __pyx_L45; +        goto __pyx_L48;        } -      __pyx_L45:; +      __pyx_L48:;      }      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    } @@ -30218,7 +28473,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   */        __pyx_t_2 = PyObject_Length(__pyx_v_pattern1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_14 = PyObject_Length(__pyx_v_pattern2); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_19 = (((__pyx_t_2 + __pyx_t_14) + 1) <= __pyx_v_self->max_length); +      __pyx_t_19 = (((__pyx_t_2 + __pyx_t_14) + 1) <= ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->max_length);        if (__pyx_t_19) {          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":407 @@ -30244,6 +28499,9 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                     combined_pattern = pattern2 + (-1,) + pattern1   *                     IJ_set.add(combined_pattern)   */ +        if (unlikely(((PyObject *)__pyx_v_IJ_set) == Py_None)) { +          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add"); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +        }          __pyx_t_15 = PySet_Add(__pyx_v_IJ_set, __pyx_v_combined_pattern); if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":409 @@ -30269,10 +28527,13 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *    *         N = len(pattern_rank)   */ +        if (unlikely(((PyObject *)__pyx_v_IJ_set) == Py_None)) { +          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add"); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +        }          __pyx_t_15 = PySet_Add(__pyx_v_IJ_set, __pyx_v_combined_pattern); if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        goto __pyx_L50; +        goto __pyx_L53;        } -      __pyx_L50:; +      __pyx_L53:;      }      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    } @@ -30285,7 +28546,10 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *         cost_by_rank = IntList(initial_len=N)   *         count_by_rank = IntList(initial_len=N)   */ -  __pyx_t_14 = PyDict_Size(((PyObject *)__pyx_v_pattern_rank)); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(((PyObject *)__pyx_v_pattern_rank) == Py_None)) { +    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[11]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +  } +  __pyx_t_14 = PyDict_Size(((PyObject *)__pyx_v_pattern_rank));     __pyx_v_N = __pyx_t_14;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":413 @@ -30301,7 +28565,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    __Pyx_GOTREF(__pyx_t_3);    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;    __pyx_v_cost_by_rank = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_3); @@ -30320,7 +28584,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    __Pyx_GOTREF(__pyx_t_1);    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;    __pyx_v_count_by_rank = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); @@ -30333,28 +28597,86 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *             if pattern not in IJ_set:   *                 s = ""   */ -  __pyx_t_14 = 0; -  if (unlikely(__pyx_v_self->precomputed_collocations == Py_None)) { -    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iteritems"); -    {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  } -  __pyx_t_3 = __Pyx_dict_iterator(__pyx_v_self->precomputed_collocations, 0, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_2), (&__pyx_t_13)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_GetAttr(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations, __pyx_n_s__iteritems); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_1); +  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3); -  __Pyx_XDECREF(__pyx_t_1); -  __pyx_t_1 = __pyx_t_3; -  __pyx_t_3 = 0; -  while (1) { -    __pyx_t_16 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_2, &__pyx_t_14, &__pyx_t_3, &__pyx_t_8, NULL, __pyx_t_13); -    if (unlikely(__pyx_t_16 == 0)) break; -    if (unlikely(__pyx_t_16 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); -    __Pyx_GOTREF(__pyx_t_8); +  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) { +    __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0; +    __pyx_t_4 = NULL; +  } else { +    __pyx_t_14 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_1); +    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; +  } +  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +  for (;;) { +    if (PyList_CheckExact(__pyx_t_1)) { +      if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break; +      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; +    } else if (PyTuple_CheckExact(__pyx_t_1)) { +      if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; +    } else { +      __pyx_t_3 = __pyx_t_4(__pyx_t_1); +      if (unlikely(!__pyx_t_3)) { +        if (PyErr_Occurred()) { +          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); +          else {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        } +        break; +      } +      __Pyx_GOTREF(__pyx_t_3); +    } +    if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { +      PyObject* sequence = __pyx_t_3; +      if (likely(PyTuple_CheckExact(sequence))) { +        if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +          if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        } +        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0);  +        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1);  +      } else { +        if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +          if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        } +        __pyx_t_8 = PyList_GET_ITEM(sequence, 0);  +        __pyx_t_7 = PyList_GET_ITEM(sequence, 1);  +      } +      __Pyx_INCREF(__pyx_t_8); +      __Pyx_INCREF(__pyx_t_7); +      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +    } else { +      Py_ssize_t index = -1; +      __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_5); +      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +      __pyx_t_10 = Py_TYPE(__pyx_t_5)->tp_iternext; +      index = 0; __pyx_t_8 = __pyx_t_10(__pyx_t_5); if (unlikely(!__pyx_t_8)) goto __pyx_L56_unpacking_failed; +      __Pyx_GOTREF(__pyx_t_8); +      index = 1; __pyx_t_7 = __pyx_t_10(__pyx_t_5); if (unlikely(!__pyx_t_7)) goto __pyx_L56_unpacking_failed; +      __Pyx_GOTREF(__pyx_t_7); +      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +      goto __pyx_L57_unpacking_done; +      __pyx_L56_unpacking_failed:; +      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); +      {__pyx_filename = __pyx_f[11]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_L57_unpacking_done:; +    }      __Pyx_XDECREF(__pyx_v_pattern); -    __pyx_v_pattern = __pyx_t_3; -    __pyx_t_3 = 0; -    __Pyx_XDECREF(__pyx_v_arr); -    __pyx_v_arr = __pyx_t_8; +    __pyx_v_pattern = __pyx_t_8;      __pyx_t_8 = 0; +    __Pyx_XDECREF(__pyx_v_arr); +    __pyx_v_arr = __pyx_t_7; +    __pyx_t_7 = 0;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":416   *         count_by_rank = IntList(initial_len=N) @@ -30363,7 +28685,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                 s = ""   *                 for word_id in pattern:   */ -    __pyx_t_19 = (__Pyx_PySequence_Contains(__pyx_v_pattern, ((PyObject *)__pyx_v_IJ_set), Py_NE)); if (unlikely(__pyx_t_19 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_19 = (__Pyx_NegateNonNeg(PySequence_Contains(((PyObject *)__pyx_v_IJ_set), __pyx_v_pattern))); if (unlikely(__pyx_t_19 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      if (__pyx_t_19) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":417 @@ -30385,42 +28707,34 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                         s = s + "X "   */        if (PyList_CheckExact(__pyx_v_pattern) || PyTuple_CheckExact(__pyx_v_pattern)) { -        __pyx_t_8 = __pyx_v_pattern; __Pyx_INCREF(__pyx_t_8); __pyx_t_12 = 0; -        __pyx_t_4 = NULL; +        __pyx_t_3 = __pyx_v_pattern; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = 0; +        __pyx_t_20 = NULL;        } else { -        __pyx_t_12 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_pattern); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_8); -        __pyx_t_4 = Py_TYPE(__pyx_t_8)->tp_iternext; +        __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_pattern); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_3); +        __pyx_t_20 = Py_TYPE(__pyx_t_3)->tp_iternext;        }        for (;;) { -        if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_8)) { -          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break; -          #if CYTHON_COMPILING_IN_CPYTHON -          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_3); __pyx_t_12++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          #else -          __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          #endif -        } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_8)) { -          if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_8)) break; -          #if CYTHON_COMPILING_IN_CPYTHON -          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_3); __pyx_t_12++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          #else -          __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          #endif +        if (PyList_CheckExact(__pyx_t_3)) { +          if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break; +          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++; +        } else if (PyTuple_CheckExact(__pyx_t_3)) { +          if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++;          } else { -          __pyx_t_3 = __pyx_t_4(__pyx_t_8); -          if (unlikely(!__pyx_t_3)) { +          __pyx_t_7 = __pyx_t_20(__pyx_t_3); +          if (unlikely(!__pyx_t_7)) {              if (PyErr_Occurred()) {                if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();                else {__pyx_filename = __pyx_f[11]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              }              break;            } -          __Pyx_GOTREF(__pyx_t_3); +          __Pyx_GOTREF(__pyx_t_7);          }          __Pyx_XDECREF(__pyx_v_word_id); -        __pyx_v_word_id = __pyx_t_3; -        __pyx_t_3 = 0; +        __pyx_v_word_id = __pyx_t_7; +        __pyx_t_7 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":419   *                 s = "" @@ -30429,9 +28743,10 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                         s = s + "X "   *                     else:   */ -        __pyx_t_3 = PyObject_RichCompare(__pyx_v_word_id, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_19 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +        __pyx_t_7 = PyObject_RichCompare(__pyx_v_word_id, __pyx_int_neg_1, Py_EQ); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_7); +        __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_19 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;          if (__pyx_t_19) {            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":420 @@ -30441,12 +28756,12 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                     else:   *                         s = s + darray.id2word[word_id] + " "   */ -          __pyx_t_3 = PyNumber_Add(__pyx_v_s, ((PyObject *)__pyx_kp_s_83)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); +          __pyx_t_7 = PyNumber_Add(__pyx_v_s, ((PyObject *)__pyx_kp_s_83)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_7);            __Pyx_DECREF(__pyx_v_s); -          __pyx_v_s = __pyx_t_3; -          __pyx_t_3 = 0; -          goto __pyx_L56; +          __pyx_v_s = __pyx_t_7; +          __pyx_t_7 = 0; +          goto __pyx_L61;          }          /*else*/ { @@ -30457,21 +28772,21 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                 logger.warn("ERROR: unexpected pattern %s in set of precomputed collocations", s)   *             else:   */ -          __pyx_t_3 = PyObject_GetItem(__pyx_v_darray->id2word, __pyx_v_word_id); if (!__pyx_t_3) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); -          __pyx_t_7 = PyNumber_Add(__pyx_v_s, __pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_7 = PyObject_GetItem(__pyx_v_darray->id2word, __pyx_v_word_id); if (!__pyx_t_7) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_7); -          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -          __pyx_t_3 = PyNumber_Add(__pyx_t_7, ((PyObject *)__pyx_kp_s_67)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); +          __pyx_t_8 = PyNumber_Add(__pyx_v_s, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_8);            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +          __pyx_t_7 = PyNumber_Add(__pyx_t_8, ((PyObject *)__pyx_kp_s_67)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_7); +          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;            __Pyx_DECREF(__pyx_v_s); -          __pyx_v_s = __pyx_t_3; -          __pyx_t_3 = 0; +          __pyx_v_s = __pyx_t_7; +          __pyx_t_7 = 0;          } -        __pyx_L56:; +        __pyx_L61:;        } -      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":423   *                     else: @@ -30480,25 +28795,25 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *             else:   *                 chunk = ()   */ -      __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_8); -      __pyx_t_3 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__warn); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_8); +      __pyx_t_7 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__warn); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_7); +      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(((PyObject *)__pyx_t_3));        __Pyx_INCREF(((PyObject *)__pyx_kp_s_84)); -      PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_kp_s_84)); +      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_84));        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_84));        __Pyx_INCREF(__pyx_v_s); -      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_s); +      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_s);        __Pyx_GIVEREF(__pyx_v_s); -      __pyx_t_7 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_7); -      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; +      __pyx_t_8 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_8);        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -      goto __pyx_L53; +      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; +      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +      goto __pyx_L58;      }      /*else*/ { @@ -30541,42 +28856,34 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                         max_rank = max(max_rank, pattern_rank[chunk])   */        if (PyList_CheckExact(__pyx_v_pattern) || PyTuple_CheckExact(__pyx_v_pattern)) { -        __pyx_t_7 = __pyx_v_pattern; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0; -        __pyx_t_4 = NULL; +        __pyx_t_8 = __pyx_v_pattern; __Pyx_INCREF(__pyx_t_8); __pyx_t_2 = 0; +        __pyx_t_20 = NULL;        } else { -        __pyx_t_12 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_pattern); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_7); -        __pyx_t_4 = Py_TYPE(__pyx_t_7)->tp_iternext; +        __pyx_t_2 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_pattern); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_8); +        __pyx_t_20 = Py_TYPE(__pyx_t_8)->tp_iternext;        }        for (;;) { -        if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_7)) { -          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break; -          #if CYTHON_COMPILING_IN_CPYTHON -          __pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          #else -          __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          #endif -        } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_7)) { -          if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_7)) break; -          #if CYTHON_COMPILING_IN_CPYTHON -          __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          #else -          __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          #endif +        if (PyList_CheckExact(__pyx_t_8)) { +          if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_8)) break; +          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; +        } else if (PyTuple_CheckExact(__pyx_t_8)) { +          if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_8)) break; +          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++;          } else { -          __pyx_t_8 = __pyx_t_4(__pyx_t_7); -          if (unlikely(!__pyx_t_8)) { +          __pyx_t_3 = __pyx_t_20(__pyx_t_8); +          if (unlikely(!__pyx_t_3)) {              if (PyErr_Occurred()) {                if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();                else {__pyx_filename = __pyx_f[11]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              }              break;            } -          __Pyx_GOTREF(__pyx_t_8); +          __Pyx_GOTREF(__pyx_t_3);          }          __Pyx_XDECREF(__pyx_v_word_id); -        __pyx_v_word_id = __pyx_t_8; -        __pyx_t_8 = 0; +        __pyx_v_word_id = __pyx_t_3; +        __pyx_t_3 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":429   *                 arity = 0 @@ -30585,9 +28892,10 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                         max_rank = max(max_rank, pattern_rank[chunk])   *                         arity = arity + 1   */ -        __pyx_t_8 = PyObject_RichCompare(__pyx_v_word_id, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_19 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +        __pyx_t_3 = PyObject_RichCompare(__pyx_v_word_id, __pyx_int_neg_1, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_3); +        __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_19 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;          if (__pyx_t_19) {            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":430 @@ -30597,28 +28905,29 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                         arity = arity + 1   *                         chunk = ()   */ -          __pyx_t_8 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_pattern_rank), ((PyObject *)__pyx_v_chunk)); if (!__pyx_t_8) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_8); -          __pyx_t_16 = __pyx_v_max_rank; -          __pyx_t_5 = PyInt_FromLong(__pyx_t_16); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_3 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_pattern_rank), ((PyObject *)__pyx_v_chunk)); if (!__pyx_t_3) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_3); +          __pyx_t_13 = __pyx_v_max_rank; +          __pyx_t_5 = PyInt_FromLong(__pyx_t_13); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_5); -          __pyx_t_6 = PyObject_RichCompare(__pyx_t_8, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_6 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_GT); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_6);            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;            __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_19 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;            if (__pyx_t_19) { -            __Pyx_INCREF(__pyx_t_8); -            __pyx_t_3 = __pyx_t_8; +            __Pyx_INCREF(__pyx_t_3); +            __pyx_t_7 = __pyx_t_3;            } else { -            __pyx_t_6 = PyInt_FromLong(__pyx_t_16); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_6 = PyInt_FromLong(__pyx_t_13); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_6); -            __pyx_t_3 = __pyx_t_6; +            __pyx_t_7 = __pyx_t_6;              __pyx_t_6 = 0;            } -          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -          __pyx_t_16 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -          __pyx_v_max_rank = __pyx_t_16; +          __pyx_t_13 = __Pyx_PyInt_AsInt(__pyx_t_7); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +          __pyx_v_max_rank = __pyx_t_13;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":431   *                     if word_id == -1: @@ -30627,11 +28936,11 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                         chunk = ()   *                     else:   */ -          __pyx_t_3 = PyNumber_Add(__pyx_v_arity, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); +          __pyx_t_7 = PyNumber_Add(__pyx_v_arity, __pyx_int_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_7);            __Pyx_DECREF(__pyx_v_arity); -          __pyx_v_arity = __pyx_t_3; -          __pyx_t_3 = 0; +          __pyx_v_arity = __pyx_t_7; +          __pyx_t_7 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":432   *                         max_rank = max(max_rank, pattern_rank[chunk]) @@ -30643,7 +28952,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s            __Pyx_INCREF(((PyObject *)__pyx_empty_tuple));            __Pyx_DECREF(((PyObject *)__pyx_v_chunk));            __pyx_v_chunk = __pyx_empty_tuple; -          goto __pyx_L59; +          goto __pyx_L64;          }          /*else*/ { @@ -30654,21 +28963,21 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                 max_rank = max(max_rank, pattern_rank[chunk])   *                 cost_by_rank.arr[max_rank] = cost_by_rank.arr[max_rank] + (4*len(arr))   */ -          __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); +          __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_7));            __Pyx_INCREF(__pyx_v_word_id); -          PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_word_id); +          PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_word_id);            __Pyx_GIVEREF(__pyx_v_word_id); -          __pyx_t_8 = PyNumber_Add(((PyObject *)__pyx_v_chunk), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(((PyObject *)__pyx_t_8)); -          __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; +          __pyx_t_3 = PyNumber_Add(((PyObject *)__pyx_v_chunk), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_3)); +          __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;            __Pyx_DECREF(((PyObject *)__pyx_v_chunk)); -          __pyx_v_chunk = __pyx_t_8; -          __pyx_t_8 = 0; +          __pyx_v_chunk = __pyx_t_3; +          __pyx_t_3 = 0;          } -        __pyx_L59:; +        __pyx_L64:;        } -      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":435   *                     else: @@ -30677,28 +28986,29 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                 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))   */ -      __pyx_t_7 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_pattern_rank), ((PyObject *)__pyx_v_chunk)); if (!__pyx_t_7) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_pattern_rank), ((PyObject *)__pyx_v_chunk)); if (!__pyx_t_8) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_8); +      __pyx_t_13 = __pyx_v_max_rank; +      __pyx_t_7 = PyInt_FromLong(__pyx_t_13); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_7); -      __pyx_t_16 = __pyx_v_max_rank; -      __pyx_t_3 = PyInt_FromLong(__pyx_t_16); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_6 = PyObject_RichCompare(__pyx_t_7, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +      __pyx_t_6 = PyObject_RichCompare(__pyx_t_8, __pyx_t_7, Py_GT); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_6); +      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_19 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        if (__pyx_t_19) { -        __Pyx_INCREF(__pyx_t_7); -        __pyx_t_8 = __pyx_t_7; +        __Pyx_INCREF(__pyx_t_8); +        __pyx_t_3 = __pyx_t_8;        } else { -        __pyx_t_6 = PyInt_FromLong(__pyx_t_16); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_6 = PyInt_FromLong(__pyx_t_13); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_6); -        __pyx_t_8 = __pyx_t_6; +        __pyx_t_3 = __pyx_t_6;          __pyx_t_6 = 0;        } -      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -      __pyx_t_16 = __Pyx_PyInt_AsInt(__pyx_t_8); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_v_max_rank = __pyx_t_16; +      __pyx_t_13 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +      __pyx_v_max_rank = __pyx_t_13;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":436   *                         chunk = chunk + (word_id,) @@ -30707,8 +29017,8 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                 count_by_rank.arr[max_rank] = count_by_rank.arr[max_rank] + (len(arr)/(arity+1))   *    */ -      __pyx_t_12 = PyObject_Length(__pyx_v_arr); if (unlikely(__pyx_t_12 == -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_12)); +      __pyx_t_2 = PyObject_Length(__pyx_v_arr); if (unlikely(__pyx_t_2 == -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_2));        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":437   *                 max_rank = max(max_rank, pattern_rank[chunk]) @@ -30717,26 +29027,26 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *    *         cumul_cost = 0   */ -      __pyx_t_8 = PyInt_FromLong((__pyx_v_count_by_rank->arr[__pyx_v_max_rank])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyInt_FromLong((__pyx_v_count_by_rank->arr[__pyx_v_max_rank])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_3); +      __pyx_t_2 = PyObject_Length(__pyx_v_arr); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8); -      __pyx_t_12 = PyObject_Length(__pyx_v_arr); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_12); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_7);        __pyx_t_6 = PyNumber_Add(__pyx_v_arity, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_3); -      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +      __pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_t_8, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_7); +      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      __pyx_t_6 = PyNumber_Add(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyNumber_Add(__pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      __pyx_t_16 = __Pyx_PyInt_AsInt(__pyx_t_6); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +      __pyx_t_13 = __Pyx_PyInt_AsInt(__pyx_t_6); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      (__pyx_v_count_by_rank->arr[__pyx_v_max_rank]) = __pyx_t_16; +      (__pyx_v_count_by_rank->arr[__pyx_v_max_rank]) = __pyx_t_13;      } -    __pyx_L53:; +    __pyx_L58:;    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -30816,35 +29126,35 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __pyx_t_1 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_3 = PyInt_FromLong((__pyx_v_count_by_rank->arr[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_8 = PyInt_FromLong((__pyx_v_cost_by_rank->arr[__pyx_v_i])); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_8); -    __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_7 = PyInt_FromLong((__pyx_v_count_by_rank->arr[__pyx_v_i])); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_7); +    __pyx_t_3 = PyInt_FromLong((__pyx_v_cost_by_rank->arr[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_3); +    __pyx_t_8 = PyTuple_New(6); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(((PyObject *)__pyx_t_8));      __Pyx_INCREF(((PyObject *)__pyx_kp_s_85)); -    PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_85)); +    PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_kp_s_85));      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_85)); -    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1); +    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1);      __Pyx_GIVEREF(__pyx_t_1); -    PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3); +    PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); +    __Pyx_GIVEREF(__pyx_t_7); +    PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_3);      __Pyx_GIVEREF(__pyx_t_3); -    PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_8); -    __Pyx_GIVEREF(__pyx_t_8);      __Pyx_INCREF(__pyx_v_cumul_count); -    PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_v_cumul_count); +    PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_v_cumul_count);      __Pyx_GIVEREF(__pyx_v_cumul_count);      __Pyx_INCREF(__pyx_v_cumul_cost); -    PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_v_cumul_cost); +    PyTuple_SET_ITEM(__pyx_t_8, 5, __pyx_v_cumul_cost);      __Pyx_GIVEREF(__pyx_v_cumul_cost);      __pyx_t_1 = 0; +    __pyx_t_7 = 0;      __pyx_t_3 = 0; -    __pyx_t_8 = 0; -    __pyx_t_8 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_8); +    __pyx_t_3 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; -    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +    __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; +    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":446 @@ -30854,14 +29164,11 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *         for pattern in IJ_set:   *             if pattern not in self.precomputed_collocations:   */ -  __pyx_t_8 = __pyx_v_self->precomputed_collocations; -  __Pyx_INCREF(__pyx_t_8); -  __pyx_t_2 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_8); -  __pyx_v_num_found_patterns = __pyx_t_8; -  __pyx_t_8 = 0; +  __pyx_t_3 = ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations; +  __Pyx_INCREF(__pyx_t_3); +  __pyx_t_14 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +  __pyx_v_num_found_patterns = __pyx_t_14;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":447   *  @@ -30870,24 +29177,24 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *             if pattern not in self.precomputed_collocations:   *                 self.precomputed_collocations[pattern] = IntList()   */ -  __pyx_t_8 = PyObject_GetIter(((PyObject *)__pyx_v_IJ_set)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_4 = Py_TYPE(__pyx_t_8)->tp_iternext; +  __pyx_t_3 = PyObject_GetIter(((PyObject *)__pyx_v_IJ_set)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_3); +  __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext;    for (;;) {      { -      __pyx_t_7 = __pyx_t_4(__pyx_t_8); -      if (unlikely(!__pyx_t_7)) { +      __pyx_t_8 = __pyx_t_4(__pyx_t_3); +      if (unlikely(!__pyx_t_8)) {          if (PyErr_Occurred()) {            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();            else {__pyx_filename = __pyx_f[11]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          }          break;        } -      __Pyx_GOTREF(__pyx_t_7); +      __Pyx_GOTREF(__pyx_t_8);      }      __Pyx_XDECREF(__pyx_v_pattern); -    __pyx_v_pattern = __pyx_t_7; -    __pyx_t_7 = 0; +    __pyx_v_pattern = __pyx_t_8; +    __pyx_t_8 = 0;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":448   *         num_found_patterns = len(self.precomputed_collocations) @@ -30896,7 +29203,7 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *                 self.precomputed_collocations[pattern] = IntList()   *    */ -    __pyx_t_19 = (__Pyx_PySequence_Contains(__pyx_v_pattern, __pyx_v_self->precomputed_collocations, Py_NE)); if (unlikely(__pyx_t_19 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_19 = (__Pyx_NegateNonNeg(PySequence_Contains(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations, __pyx_v_pattern))); if (unlikely(__pyx_t_19 < 0)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      if (__pyx_t_19) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":449 @@ -30906,15 +29213,15 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *    *         cdef float stop_time = monitor_cpu()   */ -      __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_7); -      if (PyObject_SetItem(__pyx_v_self->precomputed_collocations, __pyx_v_pattern, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -      goto __pyx_L64; +      __pyx_t_8 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_8); +      if (PyObject_SetItem(((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations, __pyx_v_pattern, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +      goto __pyx_L69;      } -    __pyx_L64:; +    __pyx_L69:;    } -  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":451   *                 self.precomputed_collocations[pattern] = IntList() @@ -30932,36 +29239,38 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *         logger.info("Precomputed inverted index for %d patterns ", len(self.precomputed_index))   *         logger.info("Precomputation took %f seconds", (stop_time - start_time))   */ -  __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_7 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__info); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_7); -  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  __pyx_t_8 = __pyx_v_self->precomputed_collocations; -  __Pyx_INCREF(__pyx_t_8); -  __pyx_t_2 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_3); +  __pyx_t_8 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__info); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +  __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_num_found_patterns); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_3); +  __pyx_t_6 = ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_collocations; +  __Pyx_INCREF(__pyx_t_6); +  __pyx_t_14 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +  __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_6); +  __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_t_7));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_86)); -  PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_s_86)); +  PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_86));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_86)); -  __Pyx_INCREF(__pyx_v_num_found_patterns); -  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_num_found_patterns); -  __Pyx_GIVEREF(__pyx_v_num_found_patterns); -  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_8); -  __Pyx_GIVEREF(__pyx_t_8); +  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3); +  __Pyx_GIVEREF(__pyx_t_3); +  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_6); +  __Pyx_GIVEREF(__pyx_t_6);    __Pyx_INCREF(__pyx_v_x); -  PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_v_x); +  PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_x);    __Pyx_GIVEREF(__pyx_v_x); -  __pyx_t_8 = 0; -  __pyx_t_8 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_8); -  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; +  __pyx_t_3 = 0; +  __pyx_t_6 = 0; +  __pyx_t_6 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_6);    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; +  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/precomputation.pxi":453   *         cdef float stop_time = monitor_cpu() @@ -30969,56 +29278,56 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s   *         logger.info("Precomputed inverted index for %d patterns ", len(self.precomputed_index))             # <<<<<<<<<<<<<<   *         logger.info("Precomputation took %f seconds", (stop_time - start_time))   */ -  __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_6 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__info); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_6); -  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  __pyx_t_8 = __pyx_v_self->precomputed_index; -  __Pyx_INCREF(__pyx_t_8); -  __pyx_t_2 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__info); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_7); +  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +  __pyx_t_6 = ((struct __pyx_obj_3_sa_Precomputation *)__pyx_v_self)->precomputed_index; +  __Pyx_INCREF(__pyx_t_6); +  __pyx_t_14 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +  __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_6); +  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_t_8));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_87)); -  PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_87)); +  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_kp_s_87));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_87)); -  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8); -  __Pyx_GIVEREF(__pyx_t_8); -  __pyx_t_8 = 0; -  __pyx_t_8 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_8); +  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); +  __Pyx_GIVEREF(__pyx_t_6); +  __pyx_t_6 = 0; +  __pyx_t_6 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_6); +  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +  __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; -  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/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))             # <<<<<<<<<<<<<<   */ -  __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_7 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__info); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_7); -  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -  __pyx_t_8 = PyFloat_FromDouble((__pyx_v_stop_time - __pyx_v_start_time)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_6); +  __pyx_t_8 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__info); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8); -  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +  __pyx_t_6 = PyFloat_FromDouble((__pyx_v_stop_time - __pyx_v_start_time)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_6); +  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_t_7));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_88)); -  PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_s_88)); +  PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_88));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_88)); -  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8); -  __Pyx_GIVEREF(__pyx_t_8); -  __pyx_t_8 = 0; -  __pyx_t_8 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_8); -  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; +  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); +  __Pyx_GIVEREF(__pyx_t_6); +  __pyx_t_6 = 0; +  __pyx_t_6 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(__pyx_t_6);    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; +  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -31061,39 +29370,43 @@ static PyObject *__pyx_pf_3_sa_14Precomputation_6precompute(struct __pyx_obj_3_s    __Pyx_XDECREF(__pyx_v_arity);    __Pyx_XDECREF(__pyx_v_cumul_cost);    __Pyx_XDECREF(__pyx_v_cumul_count); -  __Pyx_XDECREF(__pyx_v_num_found_patterns);    __Pyx_XGIVEREF(__pyx_r);    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_11SuffixArray_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_11SuffixArray_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":11 + *     cdef IntList ha + *  + *     def __cinit__(self, from_binary=None, from_text=None, side=None):             # <<<<<<<<<<<<<< + *         self.darray = DataArray() + *         self.sa = IntList() + */ + +static int __pyx_pf_3_sa_11SuffixArray___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_11SuffixArray___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_from_binary = 0;    PyObject *__pyx_v_from_text = 0;    PyObject *__pyx_v_side = 0;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  int __pyx_t_2; +  PyObject *__pyx_t_3 = NULL; +  PyObject *__pyx_t_4 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__from_binary,&__pyx_n_s__from_text,&__pyx_n_s__side,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__from_binary,&__pyx_n_s__from_text,&__pyx_n_s__side,0};      PyObject* values[3] = {0,0,0}; - -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":11 - *     cdef IntList ha - *  - *     def __cinit__(self, from_binary=None, from_text=None, side=None):             # <<<<<<<<<<<<<< - *         self.darray = DataArray() - *         self.sa = IntList() - */      values[0] = ((PyObject *)Py_None);      values[1] = ((PyObject *)Py_None);      values[2] = ((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) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); @@ -31101,7 +29414,7 @@ static int __pyx_pw_3_sa_11SuffixArray_1__cinit__(PyObject *__pyx_v_self, PyObje          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0:          if (kw_args > 0) {            PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__from_binary); @@ -31119,7 +29432,7 @@ static int __pyx_pw_3_sa_11SuffixArray_1__cinit__(PyObject *__pyx_v_self, PyObje          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -31142,22 +29455,6 @@ static int __pyx_pw_3_sa_11SuffixArray_1__cinit__(PyObject *__pyx_v_self, PyObje    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_11SuffixArray___cinit__(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), __pyx_v_from_binary, __pyx_v_from_text, __pyx_v_side); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_11SuffixArray___cinit__(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_from_binary, PyObject *__pyx_v_from_text, PyObject *__pyx_v_side) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  int __pyx_t_2; -  PyObject *__pyx_t_3 = NULL; -  PyObject *__pyx_t_4 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":12   *  @@ -31169,9 +29466,9 @@ static int __pyx_pf_3_sa_11SuffixArray___cinit__(struct __pyx_obj_3_sa_SuffixArr    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_DataArray)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->darray); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->darray)); -  __pyx_v_self->darray = ((struct __pyx_obj_3_sa_DataArray *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray)); +  ((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray = ((struct __pyx_obj_3_sa_DataArray *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":13 @@ -31184,9 +29481,9 @@ static int __pyx_pf_3_sa_11SuffixArray___cinit__(struct __pyx_obj_3_sa_SuffixArr    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->sa); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->sa)); -  __pyx_v_self->sa = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa)); +  ((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":14 @@ -31199,9 +29496,9 @@ static int __pyx_pf_3_sa_11SuffixArray___cinit__(struct __pyx_obj_3_sa_SuffixArr    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->ha); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->ha)); -  __pyx_v_self->ha = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha)); +  ((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":15 @@ -31221,10 +29518,10 @@ static int __pyx_pf_3_sa_11SuffixArray___cinit__(struct __pyx_obj_3_sa_SuffixArr   *         elif from_text:   *             self.read_text(from_text, side)   */ -    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_binary); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_binary); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 16; __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[12]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      __Pyx_INCREF(__pyx_v_from_binary);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_from_binary);      __Pyx_GIVEREF(__pyx_v_from_binary); @@ -31233,7 +29530,7 @@ static int __pyx_pf_3_sa_11SuffixArray___cinit__(struct __pyx_obj_3_sa_SuffixArr      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":17 @@ -31253,10 +29550,10 @@ static int __pyx_pf_3_sa_11SuffixArray___cinit__(struct __pyx_obj_3_sa_SuffixArr   *    *     def __getitem__(self, i):   */ -    __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__read_text); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__read_text); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_3); +    __Pyx_GOTREF(((PyObject *)__pyx_t_3));      __Pyx_INCREF(__pyx_v_from_text);      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_from_text);      __Pyx_GIVEREF(__pyx_v_from_text); @@ -31268,9 +29565,9 @@ static int __pyx_pf_3_sa_11SuffixArray___cinit__(struct __pyx_obj_3_sa_SuffixArr      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    __pyx_r = 0;    goto __pyx_L0; @@ -31285,17 +29582,6 @@ static int __pyx_pf_3_sa_11SuffixArray___cinit__(struct __pyx_obj_3_sa_SuffixArr    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11SuffixArray_3__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_11SuffixArray_3__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_11SuffixArray_2__getitem__(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":20   *             self.read_text(from_text, side)   *  @@ -31304,7 +29590,8 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_3__getitem__(PyObject *__pyx_v_self   *    */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_2__getitem__(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_11SuffixArray_1__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_11SuffixArray_1__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    Py_ssize_t __pyx_t_1; @@ -31312,7 +29599,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_2__getitem__(struct __pyx_obj_3_sa_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__getitem__", 0); +  __Pyx_RefNannySetupContext("__getitem__");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":21   *  @@ -31323,7 +29610,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_2__getitem__(struct __pyx_obj_3_sa_   */    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_2 = PyInt_FromLong((__pyx_v_self->sa->arr[__pyx_t_1])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong((((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_t_1])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_r = __pyx_t_2;    __pyx_t_2 = 0; @@ -31341,17 +29628,6 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_2__getitem__(struct __pyx_obj_3_sa_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11SuffixArray_5get_sentence_id(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_11SuffixArray_5get_sentence_id(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_sentence_id (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_11SuffixArray_4get_sentence_id(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":23   *         return self.sa.arr[i]   *  @@ -31360,7 +29636,8 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_5get_sentence_id(PyObject *__pyx_v_   *    */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_4get_sentence_id(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_11SuffixArray_2get_sentence_id(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_11SuffixArray_2get_sentence_id(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -31369,7 +29646,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_4get_sentence_id(struct __pyx_obj_3    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_sentence_id", 0); +  __Pyx_RefNannySetupContext("get_sentence_id");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":24   *  @@ -31379,10 +29656,10 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_4get_sentence_id(struct __pyx_obj_3   *     def get_sentence(self, i):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->darray), __pyx_n_s__get_sentence_id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray), __pyx_n_s__get_sentence_id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 24; __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[12]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    __Pyx_INCREF(__pyx_v_i);    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_i);    __Pyx_GIVEREF(__pyx_v_i); @@ -31408,17 +29685,6 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_4get_sentence_id(struct __pyx_obj_3    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11SuffixArray_7get_sentence(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ -static PyObject *__pyx_pw_3_sa_11SuffixArray_7get_sentence(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_sentence (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_11SuffixArray_6get_sentence(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), ((PyObject *)__pyx_v_i)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":26   *         return self.darray.get_sentence_id(i)   *  @@ -31427,7 +29693,8 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_7get_sentence(PyObject *__pyx_v_sel   *    */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_6get_sentence(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_i) { +static PyObject *__pyx_pf_3_sa_11SuffixArray_3get_sentence(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pf_3_sa_11SuffixArray_3get_sentence(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -31436,7 +29703,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_6get_sentence(struct __pyx_obj_3_sa    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_sentence", 0); +  __Pyx_RefNannySetupContext("get_sentence");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":27   *  @@ -31446,10 +29713,10 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_6get_sentence(struct __pyx_obj_3_sa   *     def get_sentence_position(self, loc):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->darray), __pyx_n_s__get_sentence); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray), __pyx_n_s__get_sentence); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 27; __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[12]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    __Pyx_INCREF(__pyx_v_i);    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_i);    __Pyx_GIVEREF(__pyx_v_i); @@ -31475,17 +29742,6 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_6get_sentence(struct __pyx_obj_3_sa    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11SuffixArray_9get_sentence_position(PyObject *__pyx_v_self, PyObject *__pyx_v_loc); /*proto*/ -static PyObject *__pyx_pw_3_sa_11SuffixArray_9get_sentence_position(PyObject *__pyx_v_self, PyObject *__pyx_v_loc) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_sentence_position (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_11SuffixArray_8get_sentence_position(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), ((PyObject *)__pyx_v_loc)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":29   *         return self.darray.get_sentence(i)   *  @@ -31494,7 +29750,8 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_9get_sentence_position(PyObject *__   *    */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_8get_sentence_position(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_loc) { +static PyObject *__pyx_pf_3_sa_11SuffixArray_4get_sentence_position(PyObject *__pyx_v_self, PyObject *__pyx_v_loc); /*proto*/ +static PyObject *__pyx_pf_3_sa_11SuffixArray_4get_sentence_position(PyObject *__pyx_v_self, PyObject *__pyx_v_loc) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -31503,7 +29760,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_8get_sentence_position(struct __pyx    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_sentence_position", 0); +  __Pyx_RefNannySetupContext("get_sentence_position");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":30   *  @@ -31513,10 +29770,10 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_8get_sentence_position(struct __pyx   *     def read_text(self, filename, side):   */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->darray), __pyx_n_s_89); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray), __pyx_n_s_89); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 30; __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[12]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    __Pyx_INCREF(__pyx_v_loc);    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_loc);    __Pyx_GIVEREF(__pyx_v_loc); @@ -31542,40 +29799,75 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_8get_sentence_position(struct __pyx    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11SuffixArray_11read_text(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_3_sa_11SuffixArray_10read_text[] = "Constructs suffix array using the algorithm\n        of Larsson & Sadahkane (1999)"; -static PyObject *__pyx_pw_3_sa_11SuffixArray_11read_text(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":32 + *         return self.darray.get_sentence_position(loc) + *  + *     def read_text(self, filename, side):             # <<<<<<<<<<<<<< + *         '''Constructs suffix array using the algorithm + *         of Larsson & Sadahkane (1999)''' + */ + +static PyObject *__pyx_pf_3_sa_11SuffixArray_5read_text(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_3_sa_11SuffixArray_5read_text[] = "Constructs suffix array using the algorithm\n        of Larsson & Sadahkane (1999)"; +static PyObject *__pyx_pf_3_sa_11SuffixArray_5read_text(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_filename = 0;    PyObject *__pyx_v_side = 0; -  PyObject *__pyx_r = 0; +  int __pyx_v_V; +  int __pyx_v_N; +  int __pyx_v_i; +  int __pyx_v_j; +  int __pyx_v_h; +  int __pyx_v_a_i; +  int __pyx_v_n; +  int __pyx_v_current_run; +  int __pyx_v_skip; +  struct __pyx_obj_3_sa_IntList *__pyx_v_isa = 0; +  struct __pyx_obj_3_sa_IntList *__pyx_v_word_count = 0; +  float __pyx_v_sort_start_time; +  float __pyx_v_start_time; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_text (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  PyObject *__pyx_t_2 = NULL; +  Py_ssize_t __pyx_t_3; +  int __pyx_t_4; +  long __pyx_t_5; +  int __pyx_t_6; +  int __pyx_t_7; +  int __pyx_t_8; +  PyObject *__pyx_t_9 = NULL; +  PyObject *__pyx_t_10 = NULL; +  PyObject *__pyx_t_11 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__filename,&__pyx_n_s__side,0}; +  __Pyx_RefNannySetupContext("read_text");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__filename,&__pyx_n_s__side,0};      PyObject* values[2] = {0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__filename)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__filename); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__side)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__side); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("read_text", 1, 2, 2, 1); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "read_text") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "read_text") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {        goto __pyx_L5_argtuple_error; @@ -31594,50 +29886,6 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_11read_text(PyObject *__pyx_v_self,    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_11SuffixArray_10read_text(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), __pyx_v_filename, __pyx_v_side); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":32 - *         return self.darray.get_sentence_position(loc) - *  - *     def read_text(self, filename, side):             # <<<<<<<<<<<<<< - *         '''Constructs suffix array using the algorithm - *         of Larsson & Sadahkane (1999)''' - */ - -static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_side) { -  int __pyx_v_V; -  int __pyx_v_N; -  int __pyx_v_i; -  int __pyx_v_j; -  int __pyx_v_h; -  int __pyx_v_a_i; -  int __pyx_v_n; -  int __pyx_v_current_run; -  int __pyx_v_skip; -  struct __pyx_obj_3_sa_IntList *__pyx_v_isa = 0; -  struct __pyx_obj_3_sa_IntList *__pyx_v_word_count = 0; -  float __pyx_v_sort_start_time; -  float __pyx_v_start_time; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  PyObject *__pyx_t_2 = NULL; -  Py_ssize_t __pyx_t_3; -  int __pyx_t_4; -  long __pyx_t_5; -  int __pyx_t_6; -  int __pyx_t_7; -  int __pyx_t_8; -  PyObject *__pyx_t_9 = NULL; -  PyObject *__pyx_t_10 = NULL; -  PyObject *__pyx_t_11 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("read_text", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":38   *         cdef IntList isa, word_count @@ -31654,13 +29902,13 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S    __Pyx_GOTREF(__pyx_t_2);    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__use_sent_id), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_DataArray)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_DataArray)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;    __Pyx_GIVEREF(__pyx_t_2); -  __Pyx_GOTREF(__pyx_v_self->darray); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->darray)); -  __pyx_v_self->darray = ((struct __pyx_obj_3_sa_DataArray *)__pyx_t_2); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray)); +  ((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray = ((struct __pyx_obj_3_sa_DataArray *)__pyx_t_2);    __pyx_t_2 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":39 @@ -31670,7 +29918,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *         V = len(self.darray.id2word)   *    */ -  __pyx_t_2 = ((PyObject *)__pyx_v_self->darray); +  __pyx_t_2 = ((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray);    __Pyx_INCREF(__pyx_t_2);    __pyx_t_3 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -31683,7 +29931,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *    *         self.sa = IntList(initial_len=N)   */ -  __pyx_t_2 = __pyx_v_self->darray->id2word; +  __pyx_t_2 = ((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray->id2word;    __Pyx_INCREF(__pyx_t_2);    __pyx_t_3 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -31702,13 +29950,13 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S    __Pyx_GOTREF(__pyx_t_1);    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->sa); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->sa)); -  __pyx_v_self->sa = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa)); +  ((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":43 @@ -31724,13 +29972,13 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S    __Pyx_GOTREF(__pyx_t_2);    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;    __Pyx_GIVEREF(__pyx_t_2); -  __Pyx_GOTREF(__pyx_v_self->ha); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->ha)); -  __pyx_v_self->ha = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_2); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha)); +  ((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_2);    __pyx_t_2 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":45 @@ -31746,7 +29994,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S    __Pyx_GOTREF(__pyx_t_1);    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __pyx_v_isa = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1); @@ -31765,7 +30013,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S    __Pyx_GOTREF(__pyx_t_2);    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;    __pyx_v_word_count = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_2); @@ -31806,7 +30054,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *             word_count.arr[a_i] = word_count.arr[a_i] + 1   *    */ -    __pyx_v_a_i = (__pyx_v_self->darray->data->arr[__pyx_v_i]); +    __pyx_v_a_i = (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray->data->arr[__pyx_v_i]);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":53   *         for i from 0 <= i < N: @@ -31844,7 +30092,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *             n = n + word_count.arr[i]   *             word_count.arr[i] = 0   */ -    (__pyx_v_self->ha->arr[__pyx_v_i]) = __pyx_v_n; +    (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha->arr[__pyx_v_i]) = __pyx_v_n;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":58   *         for i from 0 <= i < V+1: @@ -31882,7 +30130,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *             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   */ -    __pyx_v_a_i = (__pyx_v_self->darray->data->arr[__pyx_v_i]); +    __pyx_v_a_i = (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray->data->arr[__pyx_v_i]);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":63   *         for i from 0 <= i < N: @@ -31891,7 +30139,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *             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   */ -    (__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; +    (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[((((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha->arr[__pyx_v_a_i]) + (__pyx_v_word_count->arr[__pyx_v_a_i]))]) = __pyx_v_i;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":64   *             a_i = self.darray.data.arr[i] @@ -31900,7 +30148,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *             word_count.arr[a_i] = word_count.arr[a_i] + 1   *    */ -    (__pyx_v_isa->arr[__pyx_v_i]) = ((__pyx_v_self->ha->arr[(__pyx_v_a_i + 1)]) - 1); +    (__pyx_v_isa->arr[__pyx_v_i]) = ((((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha->arr[(__pyx_v_a_i + 1)]) - 1);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":65   *             self.sa.arr[self.ha.arr[a_i] + word_count.arr[a_i]] = i @@ -31940,7 +30188,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   */      __pyx_t_6 = (__pyx_v_i < __pyx_v_V);      if (__pyx_t_6) { -      __pyx_t_7 = (((__pyx_v_self->ha->arr[(__pyx_v_i + 1)]) - (__pyx_v_self->ha->arr[__pyx_v_i])) == 1); +      __pyx_t_7 = (((((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha->arr[(__pyx_v_i + 1)]) - (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha->arr[__pyx_v_i])) == 1);        __pyx_t_8 = __pyx_t_7;      } else {        __pyx_t_8 = __pyx_t_6; @@ -31955,7 +30203,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *                 if current_run > 0:   */        __pyx_v_current_run = (__pyx_v_current_run + 1); -      goto __pyx_L11; +      goto __pyx_L14;      }      /*else*/ { @@ -31976,7 +30224,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *                     current_run = 0   *    */ -        (__pyx_v_self->sa->arr[((__pyx_v_self->ha->arr[__pyx_v_i]) - __pyx_v_current_run)]) = (-__pyx_v_current_run); +        (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[((((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha->arr[__pyx_v_i]) - __pyx_v_current_run)]) = (-__pyx_v_current_run);          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":75   *                 if current_run > 0: @@ -31986,11 +30234,11 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *         logger.info("    Bucket sort took %f seconds", (monitor_cpu() - sort_start_time))   */          __pyx_v_current_run = 0; -        goto __pyx_L12; +        goto __pyx_L15;        } -      __pyx_L12:; +      __pyx_L15:;      } -    __pyx_L11:; +    __pyx_L14:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":77 @@ -32008,7 +30256,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S    __pyx_t_2 = PyFloat_FromDouble((__pyx_f_3_sa_monitor_cpu() - __pyx_v_sort_start_time)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_9); +  __Pyx_GOTREF(((PyObject *)__pyx_t_9));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_90));    PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_kp_s_90));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_90)); @@ -32038,7 +30286,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *             logger.debug("    Refining, sort depth = %d", h)   */    while (1) { -    __pyx_t_8 = ((__pyx_v_self->sa->arr[0]) != (-__pyx_v_N)); +    __pyx_t_8 = ((((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[0]) != (-__pyx_v_N));      if (!__pyx_t_8) break;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":82 @@ -32065,7 +30313,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S      __pyx_t_2 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 83; __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[12]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_1); +    __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __Pyx_INCREF(((PyObject *)__pyx_kp_s_91));      PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_91));      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_91)); @@ -32114,7 +30362,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *                     skip = skip + self.sa.arr[i]   *                     i = i - self.sa.arr[i]   */ -      __pyx_t_8 = ((__pyx_v_self->sa->arr[__pyx_v_i]) < 0); +      __pyx_t_8 = ((((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_i]) < 0);        if (__pyx_t_8) {          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":88 @@ -32124,7 +30372,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *                     i = i - self.sa.arr[i]   *                 else:   */ -        __pyx_v_skip = (__pyx_v_skip + (__pyx_v_self->sa->arr[__pyx_v_i])); +        __pyx_v_skip = (__pyx_v_skip + (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_i]));          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":89   *                 if self.sa.arr[i] < 0: @@ -32133,8 +30381,8 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *                 else:   *                     if skip < 0:   */ -        __pyx_v_i = (__pyx_v_i - (__pyx_v_self->sa->arr[__pyx_v_i])); -        goto __pyx_L17; +        __pyx_v_i = (__pyx_v_i - (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_i])); +        goto __pyx_L20;        }        /*else*/ { @@ -32155,7 +30403,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *                         skip = 0   *                     j = isa.arr[self.sa.arr[i]]   */ -          (__pyx_v_self->sa->arr[(__pyx_v_i + __pyx_v_skip)]) = __pyx_v_skip; +          (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[(__pyx_v_i + __pyx_v_skip)]) = __pyx_v_skip;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":93   *                     if skip < 0: @@ -32165,9 +30413,9 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *                     self.q3sort(i, j, h, isa)   */            __pyx_v_skip = 0; -          goto __pyx_L18; +          goto __pyx_L21;          } -        __pyx_L18:; +        __pyx_L21:;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":94   *                         self.sa.arr[i+skip] = skip @@ -32176,7 +30424,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *                     self.q3sort(i, j, h, isa)   *                     i = j+1   */ -        __pyx_v_j = (__pyx_v_isa->arr[(__pyx_v_self->sa->arr[__pyx_v_i])]); +        __pyx_v_j = (__pyx_v_isa->arr[(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_i])]);          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":95   *                         skip = 0 @@ -32185,7 +30433,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *                     i = j+1   *             if skip < 0:   */ -        __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__q3sort); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__q3sort); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_2);          __pyx_t_1 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1); @@ -32194,7 +30442,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S          __pyx_t_10 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 95; __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[12]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_11); +        __Pyx_GOTREF(((PyObject *)__pyx_t_11));          PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);          __Pyx_GIVEREF(__pyx_t_1);          PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_9); @@ -32222,7 +30470,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   */          __pyx_v_i = (__pyx_v_j + 1);        } -      __pyx_L17:; +      __pyx_L20:;      }      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":97 @@ -32242,10 +30490,10 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *             h = h * 2   *             logger.debug("    Refinement took %f seconds", (monitor_cpu() - sort_start_time))   */ -      (__pyx_v_self->sa->arr[(__pyx_v_i + __pyx_v_skip)]) = __pyx_v_skip; -      goto __pyx_L19; +      (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[(__pyx_v_i + __pyx_v_skip)]) = __pyx_v_skip; +      goto __pyx_L22;      } -    __pyx_L19:; +    __pyx_L22:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":99   *             if skip < 0: @@ -32271,7 +30519,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S      __pyx_t_10 = PyFloat_FromDouble((__pyx_f_3_sa_monitor_cpu() - __pyx_v_sort_start_time)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_10);      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      __Pyx_INCREF(((PyObject *)__pyx_kp_s_92));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_92));      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_92)); @@ -32328,7 +30576,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S   *         logger.info("Suffix array construction took %f seconds", (monitor_cpu() - start_time))   *    */ -    (__pyx_v_self->sa->arr[__pyx_v_j]) = __pyx_v_i; +    (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_j]) = __pyx_v_i;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":107 @@ -32346,7 +30594,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S    __pyx_t_10 = PyFloat_FromDouble((__pyx_f_3_sa_monitor_cpu() - __pyx_v_start_time)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_10);    __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_11); +  __Pyx_GOTREF(((PyObject *)__pyx_t_11));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_95));    PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_kp_s_95));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_95)); @@ -32377,26 +30625,49 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_10read_text(struct __pyx_obj_3_sa_S    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11SuffixArray_13q3sort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_3_sa_11SuffixArray_12q3sort[] = "This is a ternary quicksort. It divides the array into\n        three partitions: items less than the pivot, items equal\n        to pivot, and items greater than pivot.    The first and last\n        of these partitions are then recursively sorted"; -static PyObject *__pyx_pw_3_sa_11SuffixArray_13q3sort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":109 + *         logger.info("Suffix array construction took %f seconds", (monitor_cpu() - start_time)) + *  + *     def q3sort(self, int i, int j, int h, IntList isa, pad=""):             # <<<<<<<<<<<<<< + *         '''This is a ternary quicksort. It divides the array into + *         three partitions: items less than the pivot, items equal + */ + +static PyObject *__pyx_pf_3_sa_11SuffixArray_6q3sort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_3_sa_11SuffixArray_6q3sort[] = "This is a ternary quicksort. It divides the array into\n        three partitions: items less than the pivot, items equal\n        to pivot, and items greater than pivot.    The first and last\n        of these partitions are then recursively sorted"; +static PyObject *__pyx_pf_3_sa_11SuffixArray_6q3sort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_v_i;    int __pyx_v_j;    int __pyx_v_h;    struct __pyx_obj_3_sa_IntList *__pyx_v_isa = 0;    PyObject *__pyx_v_pad = 0; -  PyObject *__pyx_r = 0; +  int __pyx_v_k; +  int __pyx_v_midpoint; +  int __pyx_v_pval; +  int __pyx_v_phead; +  int __pyx_v_ptail; +  int __pyx_v_tmp; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("q3sort (wrapper)", 0); +  int __pyx_t_1; +  PyObject *__pyx_t_2 = NULL; +  PyObject *__pyx_t_3 = NULL; +  PyObject *__pyx_t_4 = NULL; +  long __pyx_t_5; +  PyObject *__pyx_t_6 = NULL; +  PyObject *__pyx_t_7 = NULL; +  PyObject *__pyx_t_8 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__i,&__pyx_n_s__j,&__pyx_n_s__h,&__pyx_n_s__isa,&__pyx_n_s__pad,0}; +  __Pyx_RefNannySetupContext("q3sort");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__i,&__pyx_n_s__j,&__pyx_n_s__h,&__pyx_n_s__isa,&__pyx_n_s__pad,0};      PyObject* values[5] = {0,0,0,0,0};      values[4] = ((PyObject *)__pyx_kp_s_45);      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          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); @@ -32406,22 +30677,26 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_13q3sort(PyObject *__pyx_v_self, Py          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("q3sort", 0, 4, 5, 1); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2: -        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__h)) != 0)) kw_args--; +        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__h); +        if (likely(values[2])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("q3sort", 0, 4, 5, 2); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  3: -        if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__isa)) != 0)) kw_args--; +        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__isa); +        if (likely(values[3])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("q3sort", 0, 4, 5, 3); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          } @@ -32432,7 +30707,7 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_13q3sort(PyObject *__pyx_v_self, Py          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "q3sort") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "q3sort") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -32460,44 +30735,6 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_13q3sort(PyObject *__pyx_v_self, Py    return NULL;    __pyx_L4_argument_unpacking_done:;    if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isa), __pyx_ptype_3_sa_IntList, 1, "isa", 0))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_r = __pyx_pf_3_sa_11SuffixArray_12q3sort(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), __pyx_v_i, __pyx_v_j, __pyx_v_h, __pyx_v_isa, __pyx_v_pad); -  goto __pyx_L0; -  __pyx_L1_error:; -  __pyx_r = NULL; -  __pyx_L0:; -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":109 - *         logger.info("Suffix array construction took %f seconds", (monitor_cpu() - start_time)) - *  - *     def q3sort(self, int i, int j, int h, IntList isa, pad=""):             # <<<<<<<<<<<<<< - *         '''This is a ternary quicksort. It divides the array into - *         three partitions: items less than the pivot, items equal - */ - -static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, int __pyx_v_i, int __pyx_v_j, int __pyx_v_h, struct __pyx_obj_3_sa_IntList *__pyx_v_isa, PyObject *__pyx_v_pad) { -  int __pyx_v_k; -  int __pyx_v_midpoint; -  int __pyx_v_pval; -  int __pyx_v_phead; -  int __pyx_v_ptail; -  int __pyx_v_tmp; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  int __pyx_t_1; -  PyObject *__pyx_t_2 = NULL; -  PyObject *__pyx_t_3 = NULL; -  PyObject *__pyx_t_4 = NULL; -  long __pyx_t_5; -  PyObject *__pyx_t_6 = NULL; -  PyObject *__pyx_t_7 = NULL; -  PyObject *__pyx_t_8 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("q3sort", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":116   *         cdef int k, midpoint, pval, phead, ptail, tmp @@ -32521,7 +30758,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff      __pyx_t_3 = PyInt_FromLong(__pyx_v_j); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 117; __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[12]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);      __Pyx_GIVEREF(__pyx_t_2);      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -32532,7 +30769,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff      __Pyx_GOTREF(((PyObject *)__pyx_t_3));      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));      __Pyx_GIVEREF(((PyObject *)__pyx_t_3));      __pyx_t_3 = 0; @@ -32542,9 +30779,9 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff      __Pyx_Raise(__pyx_t_3, 0, 0, 0);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      {__pyx_filename = __pyx_f[12]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":118   *         if j-i < -1: @@ -32566,9 +30803,9 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff      __Pyx_XDECREF(__pyx_r);      __pyx_r = Py_None; __Pyx_INCREF(Py_None);      goto __pyx_L0; -    goto __pyx_L4; +    goto __pyx_L7;    } -  __pyx_L4:; +  __pyx_L7:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":120   *         if j-i == -1:    # recursive base case -- empty interval @@ -32587,7 +30824,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *             self.sa.arr[i] = -1   *             return   */ -    (__pyx_v_isa->arr[(__pyx_v_self->sa->arr[__pyx_v_i])]) = __pyx_v_i; +    (__pyx_v_isa->arr[(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_i])]) = __pyx_v_i;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":122   *         if (j-i == 0):    # recursive base case -- singleton interval @@ -32596,7 +30833,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *             return   *    */ -    (__pyx_v_self->sa->arr[__pyx_v_i]) = -1; +    (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_i]) = -1;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":123   *             isa.arr[self.sa.arr[i]] = i @@ -32608,9 +30845,9 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff      __Pyx_XDECREF(__pyx_r);      __pyx_r = Py_None; __Pyx_INCREF(Py_None);      goto __pyx_L0; -    goto __pyx_L5; +    goto __pyx_L8;    } -  __pyx_L5:; +  __pyx_L8:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":132   *         # If the method of assigning word_id's is changed, this method @@ -32628,7 +30865,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *         if i != midpoint:   *             tmp = self.sa.arr[midpoint]   */ -  __pyx_v_pval = (__pyx_v_isa->arr[((__pyx_v_self->sa->arr[__pyx_v_midpoint]) + __pyx_v_h)]); +  __pyx_v_pval = (__pyx_v_isa->arr[((((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_midpoint]) + __pyx_v_h)]);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":134   *         midpoint = (i+j)/2 @@ -32647,7 +30884,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *             self.sa.arr[midpoint] = self.sa.arr[i]   *             self.sa.arr[i] = tmp   */ -    __pyx_v_tmp = (__pyx_v_self->sa->arr[__pyx_v_midpoint]); +    __pyx_v_tmp = (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_midpoint]);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":136   *         if i != midpoint: @@ -32656,7 +30893,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *             self.sa.arr[i] = tmp   *         phead = i   */ -    (__pyx_v_self->sa->arr[__pyx_v_midpoint]) = (__pyx_v_self->sa->arr[__pyx_v_i]); +    (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_midpoint]) = (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_i]);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":137   *             tmp = self.sa.arr[midpoint] @@ -32665,10 +30902,10 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *         phead = i   *         ptail = i   */ -    (__pyx_v_self->sa->arr[__pyx_v_i]) = __pyx_v_tmp; -    goto __pyx_L6; +    (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_i]) = __pyx_v_tmp; +    goto __pyx_L9;    } -  __pyx_L6:; +  __pyx_L9:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":138   *             self.sa.arr[midpoint] = self.sa.arr[i] @@ -32705,7 +30942,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                 if k > ptail+1:   *                     tmp = self.sa.arr[phead]   */ -    __pyx_t_1 = ((__pyx_v_isa->arr[((__pyx_v_self->sa->arr[__pyx_v_k]) + __pyx_v_h)]) < __pyx_v_pval); +    __pyx_t_1 = ((__pyx_v_isa->arr[((((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_k]) + __pyx_v_h)]) < __pyx_v_pval);      if (__pyx_t_1) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":145 @@ -32725,7 +30962,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                     self.sa.arr[phead] = self.sa.arr[k]   *                     self.sa.arr[k] = self.sa.arr[ptail+1]   */ -        __pyx_v_tmp = (__pyx_v_self->sa->arr[__pyx_v_phead]); +        __pyx_v_tmp = (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_phead]);          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":147   *                 if k > ptail+1: @@ -32734,7 +30971,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                     self.sa.arr[k] = self.sa.arr[ptail+1]   *                     self.sa.arr[ptail+1] = tmp   */ -        (__pyx_v_self->sa->arr[__pyx_v_phead]) = (__pyx_v_self->sa->arr[__pyx_v_k]); +        (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_phead]) = (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_k]);          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":148   *                     tmp = self.sa.arr[phead] @@ -32743,7 +30980,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                     self.sa.arr[ptail+1] = tmp   *                 else: # k == ptail+1   */ -        (__pyx_v_self->sa->arr[__pyx_v_k]) = (__pyx_v_self->sa->arr[(__pyx_v_ptail + 1)]); +        (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_k]) = (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[(__pyx_v_ptail + 1)]);          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":149   *                     self.sa.arr[phead] = self.sa.arr[k] @@ -32752,8 +30989,8 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                 else: # k == ptail+1   *                     tmp = self.sa.arr[phead]   */ -        (__pyx_v_self->sa->arr[(__pyx_v_ptail + 1)]) = __pyx_v_tmp; -        goto __pyx_L10; +        (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[(__pyx_v_ptail + 1)]) = __pyx_v_tmp; +        goto __pyx_L13;        }        /*else*/ { @@ -32764,7 +31001,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                     self.sa.arr[phead] = self.sa.arr[k]   *                     self.sa.arr[k] = tmp   */ -        __pyx_v_tmp = (__pyx_v_self->sa->arr[__pyx_v_phead]); +        __pyx_v_tmp = (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_phead]);          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":152   *                 else: # k == ptail+1 @@ -32773,7 +31010,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                     self.sa.arr[k] = tmp   *                 phead = phead + 1   */ -        (__pyx_v_self->sa->arr[__pyx_v_phead]) = (__pyx_v_self->sa->arr[__pyx_v_k]); +        (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_phead]) = (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_k]);          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":153   *                     tmp = self.sa.arr[phead] @@ -32782,9 +31019,9 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                 phead = phead + 1   *                 ptail = ptail + 1   */ -        (__pyx_v_self->sa->arr[__pyx_v_k]) = __pyx_v_tmp; +        (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_k]) = __pyx_v_tmp;        } -      __pyx_L10:; +      __pyx_L13:;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":154   *                     self.sa.arr[phead] = self.sa.arr[k] @@ -32803,7 +31040,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                 if isa.arr[self.sa.arr[k] + h] == pval:   */        __pyx_v_ptail = (__pyx_v_ptail + 1); -      goto __pyx_L9; +      goto __pyx_L12;      }      /*else*/ { @@ -32814,7 +31051,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                     if k > ptail+1:   *                         tmp = self.sa.arr[ptail+1]   */ -      __pyx_t_1 = ((__pyx_v_isa->arr[((__pyx_v_self->sa->arr[__pyx_v_k]) + __pyx_v_h)]) == __pyx_v_pval); +      __pyx_t_1 = ((__pyx_v_isa->arr[((((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_k]) + __pyx_v_h)]) == __pyx_v_pval);        if (__pyx_t_1) {          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":158 @@ -32834,7 +31071,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                         self.sa.arr[ptail+1] = self.sa.arr[k]   *                         self.sa.arr[k] = tmp   */ -          __pyx_v_tmp = (__pyx_v_self->sa->arr[(__pyx_v_ptail + 1)]); +          __pyx_v_tmp = (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[(__pyx_v_ptail + 1)]);            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":160   *                     if k > ptail+1: @@ -32843,7 +31080,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                         self.sa.arr[k] = tmp   *                     ptail = ptail + 1   */ -          (__pyx_v_self->sa->arr[(__pyx_v_ptail + 1)]) = (__pyx_v_self->sa->arr[__pyx_v_k]); +          (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[(__pyx_v_ptail + 1)]) = (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_k]);            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":161   *                         tmp = self.sa.arr[ptail+1] @@ -32852,10 +31089,10 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *                     ptail = ptail + 1   *    */ -          (__pyx_v_self->sa->arr[__pyx_v_k]) = __pyx_v_tmp; -          goto __pyx_L12; +          (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_k]) = __pyx_v_tmp; +          goto __pyx_L15;          } -        __pyx_L12:; +        __pyx_L15:;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":162   *                         self.sa.arr[ptail+1] = self.sa.arr[k] @@ -32865,11 +31102,11 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *         # recursively sort smaller suffixes   */          __pyx_v_ptail = (__pyx_v_ptail + 1); -        goto __pyx_L11; +        goto __pyx_L14;        } -      __pyx_L11:; +      __pyx_L14:;      } -    __pyx_L9:; +    __pyx_L12:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":165 @@ -32879,7 +31116,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *    *         # update suffixes with pivot value   */ -  __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__q3sort); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__q3sort); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __pyx_t_4 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4); @@ -32890,7 +31127,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff    __pyx_t_7 = PyNumber_Add(__pyx_v_pad, ((PyObject *)__pyx_kp_s_48)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_7);    __pyx_t_8 = PyTuple_New(5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_8); +  __Pyx_GOTREF(((PyObject *)__pyx_t_8));    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);    __Pyx_GIVEREF(__pyx_t_4);    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2); @@ -32929,7 +31166,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *         if phead == ptail:   *             self.sa.arr[phead] = -1   */ -    (__pyx_v_isa->arr[(__pyx_v_self->sa->arr[__pyx_v_k])]) = __pyx_v_ptail; +    (__pyx_v_isa->arr[(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_k])]) = __pyx_v_ptail;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":171 @@ -32949,10 +31186,10 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *    *         # recursively sort larger suffixes   */ -    (__pyx_v_self->sa->arr[__pyx_v_phead]) = -1; -    goto __pyx_L15; +    (((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->arr[__pyx_v_phead]) = -1; +    goto __pyx_L18;    } -  __pyx_L15:; +  __pyx_L18:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":175   *  @@ -32961,7 +31198,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff   *    *    */ -  __pyx_t_7 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__q3sort); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__q3sort); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_7);    __pyx_t_8 = PyInt_FromLong((__pyx_v_ptail + 1)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_8); @@ -32972,7 +31209,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff    __pyx_t_2 = PyNumber_Add(__pyx_v_pad, ((PyObject *)__pyx_kp_s_48)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_4); +  __Pyx_GOTREF(((PyObject *)__pyx_t_4));    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8);    __Pyx_GIVEREF(__pyx_t_8);    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -33011,27 +31248,6 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_12q3sort(struct __pyx_obj_3_sa_Suff    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11SuffixArray_15write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_11SuffixArray_15write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_text (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.SuffixArray.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_11SuffixArray_14write_text(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":178   *    *  @@ -33040,7 +31256,9 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_15write_text(PyObject *__pyx_v_self   *    */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_14write_text(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_11SuffixArray_7write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_11SuffixArray_7write_text(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -33049,7 +31267,16 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_14write_text(struct __pyx_obj_3_sa_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_text", 0); +  __Pyx_RefNannySetupContext("write_text"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.SuffixArray.write_text", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":179   *  @@ -33058,12 +31285,12 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_14write_text(struct __pyx_obj_3_sa_   *    *     def read_binary(self, char* filename):   */ -  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->darray), __pyx_n_s__write_text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray), __pyx_n_s__write_text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    __pyx_t_2 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 179; __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[12]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_2));    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));    __pyx_t_2 = 0; @@ -33087,27 +31314,6 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_14write_text(struct __pyx_obj_3_sa_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11SuffixArray_17read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_11SuffixArray_17read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_binary (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.SuffixArray.read_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_11SuffixArray_16read_binary(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":181   *         self.darray.write_text(filename)   *  @@ -33116,11 +31322,25 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_17read_binary(PyObject *__pyx_v_sel   *         f = fopen(filename, "r")   */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_16read_binary(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_11SuffixArray_8read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_11SuffixArray_8read_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("read_binary", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("read_binary"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.SuffixArray.read_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":183   *     def read_binary(self, char* filename): @@ -33138,7 +31358,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_16read_binary(struct __pyx_obj_3_sa   *         self.sa.read_handle(f)   *         self.ha.read_handle(f)   */ -  ((struct __pyx_vtabstruct_3_sa_DataArray *)__pyx_v_self->darray->__pyx_vtab)->read_handle(__pyx_v_self->darray, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_DataArray *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":185   *         f = fopen(filename, "r") @@ -33147,7 +31367,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_16read_binary(struct __pyx_obj_3_sa   *         self.ha.read_handle(f)   *         fclose(f)   */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->sa->__pyx_vtab)->read_handle(__pyx_v_self->sa, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":186   *         self.darray.read_handle(f) @@ -33156,7 +31376,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_16read_binary(struct __pyx_obj_3_sa   *         fclose(f)   *    */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->ha->__pyx_vtab)->read_handle(__pyx_v_self->ha, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha->__pyx_vtab)->read_handle(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":187   *         self.sa.read_handle(f) @@ -33173,27 +31393,6 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_16read_binary(struct __pyx_obj_3_sa    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11SuffixArray_19write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_11SuffixArray_19write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_binary (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.SuffixArray.write_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_11SuffixArray_18write_binary(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":189   *         fclose(f)   *  @@ -33202,11 +31401,25 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_19write_binary(PyObject *__pyx_v_se   *         f = fopen(filename, "w")   */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_18write_binary(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_11SuffixArray_9write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_11SuffixArray_9write_binary(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    FILE *__pyx_v_f;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_binary", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  __Pyx_RefNannySetupContext("write_binary"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.SuffixArray.write_binary", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":191   *     def write_binary(self, char* filename): @@ -33224,7 +31437,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_18write_binary(struct __pyx_obj_3_s   *         self.sa.write_handle(f)   *         self.ha.write_handle(f)   */ -  ((struct __pyx_vtabstruct_3_sa_DataArray *)__pyx_v_self->darray->__pyx_vtab)->write_handle(__pyx_v_self->darray, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_DataArray *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":193   *         f = fopen(filename, "w") @@ -33233,7 +31446,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_18write_binary(struct __pyx_obj_3_s   *         self.ha.write_handle(f)   *         fclose(f)   */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->sa->__pyx_vtab)->write_handle(__pyx_v_self->sa, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":194   *         self.darray.write_handle(f) @@ -33242,7 +31455,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_18write_binary(struct __pyx_obj_3_s   *         fclose(f)   *    */ -  ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_self->ha->__pyx_vtab)->write_handle(__pyx_v_self->ha, __pyx_v_f); +  ((struct __pyx_vtabstruct_3_sa_IntList *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha->__pyx_vtab)->write_handle(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha, __pyx_v_f);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":195   *         self.sa.write_handle(f) @@ -33259,27 +31472,6 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_18write_binary(struct __pyx_obj_3_s    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11SuffixArray_21write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ -static PyObject *__pyx_pw_3_sa_11SuffixArray_21write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { -  char *__pyx_v_filename; -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("write_enhanced (wrapper)", 0); -  assert(__pyx_arg_filename); { -    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -  } -  goto __pyx_L4_argument_unpacking_done; -  __pyx_L3_error:; -  __Pyx_AddTraceback("_sa.SuffixArray.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); -  __Pyx_RefNannyFinishContext(); -  return NULL; -  __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_11SuffixArray_20write_enhanced(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), ((char *)__pyx_v_filename)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":197   *         fclose(f)   *  @@ -33288,7 +31480,9 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_21write_enhanced(PyObject *__pyx_v_   *             self.darray.write_enhanced_handle(f)   */ -static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, char *__pyx_v_filename) { +static PyObject *__pyx_pf_3_sa_11SuffixArray_10write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename); /*proto*/ +static PyObject *__pyx_pf_3_sa_11SuffixArray_10write_enhanced(PyObject *__pyx_v_self, PyObject *__pyx_arg_filename) { +  char *__pyx_v_filename;    PyObject *__pyx_v_f = NULL;    PyObject *__pyx_v_a_i = NULL;    PyObject *__pyx_v_w_i = NULL; @@ -33310,7 +31504,16 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("write_enhanced", 0); +  __Pyx_RefNannySetupContext("write_enhanced"); +  assert(__pyx_arg_filename); { +    __pyx_v_filename = PyBytes_AsString(__pyx_arg_filename); if (unlikely((!__pyx_v_filename) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +  } +  goto __pyx_L4_argument_unpacking_done; +  __pyx_L3_error:; +  __Pyx_AddTraceback("_sa.SuffixArray.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_RefNannyFinishContext(); +  return NULL; +  __pyx_L4_argument_unpacking_done:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":198   *  @@ -33323,7 +31526,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3      __pyx_t_1 = PyBytes_FromString(__pyx_v_filename); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));      __Pyx_INCREF(((PyObject *)__pyx_n_s__w)); @@ -33335,22 +31538,21 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;      __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____exit__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____enter__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L5_error;}      __Pyx_GOTREF(__pyx_t_2); -    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L3_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_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L5_error;} +    __Pyx_GOTREF(__pyx_t_1); +    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      /*try:*/ {        { -        __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); +        __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); +        __Pyx_XGOTREF(__pyx_t_4);          __Pyx_XGOTREF(__pyx_t_5);          __Pyx_XGOTREF(__pyx_t_6); -        __Pyx_XGOTREF(__pyx_t_7);          /*try:*/ { -          __Pyx_INCREF(__pyx_t_4); -          __pyx_v_f = __pyx_t_4; -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __pyx_v_f = __pyx_t_1; +          __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":199   *     def write_enhanced(self, char* filename): @@ -33359,18 +31561,18 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3   *             for a_i in self.sa:   *                 f.write("%d " % a_i)   */ -          __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self->darray), __pyx_n_s_27); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_4); -          __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_1 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray), __pyx_n_s_27); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_1); +          __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_2));            __Pyx_INCREF(__pyx_v_f); -          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_f); +          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_f);            __Pyx_GIVEREF(__pyx_v_f); -          __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_2); -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; -          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_7); +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; +          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":200   *         with open(filename, "w") as f: @@ -33379,43 +31581,35 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3   *                 f.write("%d " % a_i)   *             f.write("\n")   */ -          if (PyList_CheckExact(((PyObject *)__pyx_v_self->sa)) || PyTuple_CheckExact(((PyObject *)__pyx_v_self->sa))) { -            __pyx_t_2 = ((PyObject *)__pyx_v_self->sa); __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0; +          if (PyList_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa)) || PyTuple_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa))) { +            __pyx_t_7 = ((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa); __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;              __pyx_t_9 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(((PyObject *)__pyx_v_self->sa)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; +            __pyx_t_8 = -1; __pyx_t_7 = PyObject_GetIter(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_7); +            __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext;            }            for (;;) { -            if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_2)) { -              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif -            } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_2)) { -              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_7)) { +              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_7)) break; +              __pyx_t_2 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; +            } else if (PyTuple_CheckExact(__pyx_t_7)) { +              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_7)) break; +              __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++;              } else { -              __pyx_t_1 = __pyx_t_9(__pyx_t_2); -              if (unlikely(!__pyx_t_1)) { +              __pyx_t_2 = __pyx_t_9(__pyx_t_7); +              if (unlikely(!__pyx_t_2)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[12]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[12]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } -              __Pyx_GOTREF(__pyx_t_1); +              __Pyx_GOTREF(__pyx_t_2);              }              __Pyx_XDECREF(__pyx_v_a_i); -            __pyx_v_a_i = __pyx_t_1; -            __pyx_t_1 = 0; +            __pyx_v_a_i = __pyx_t_2; +            __pyx_t_2 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":201   *             self.darray.write_enhanced_handle(f) @@ -33424,22 +31618,22 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3   *             f.write("\n")   *             for w_i in self.ha:   */ -            __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_2); +            __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_a_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_1)); +            __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_10)); +            PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_t_1)); +            __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); +            __pyx_t_1 = 0; +            __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_1); -            __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_a_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(((PyObject *)__pyx_t_4)); -            __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_10); -            PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_t_4)); -            __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); -            __pyx_t_4 = 0; -            __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); -            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;              __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; -            __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; +          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":202   *             for a_i in self.sa: @@ -33448,12 +31642,12 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3   *             for w_i in self.ha:   *                 f.write("%d " % w_i)   */ -          __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_2); -          __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_97), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_4); -          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __pyx_t_7 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_7); +          __pyx_t_1 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_k_tuple_97), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_1); +          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":203   *                 f.write("%d " % a_i) @@ -33462,43 +31656,35 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3   *                 f.write("%d " % w_i)   *             f.write("\n")   */ -          if (PyList_CheckExact(((PyObject *)__pyx_v_self->ha)) || PyTuple_CheckExact(((PyObject *)__pyx_v_self->ha))) { -            __pyx_t_4 = ((PyObject *)__pyx_v_self->ha); __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0; +          if (PyList_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha)) || PyTuple_CheckExact(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha))) { +            __pyx_t_1 = ((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha); __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;              __pyx_t_9 = NULL;            } else { -            __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(((PyObject *)__pyx_v_self->ha)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_4); -            __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; +            __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->ha)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_1); +            __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext;            }            for (;;) { -            if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_4)) { -              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif -            } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_4)) { -              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #else -              __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_1)) { +              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break; +              __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_t_8++; +            } else if (PyTuple_CheckExact(__pyx_t_1)) { +              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +              __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_t_8++;              } else { -              __pyx_t_2 = __pyx_t_9(__pyx_t_4); -              if (unlikely(!__pyx_t_2)) { +              __pyx_t_7 = __pyx_t_9(__pyx_t_1); +              if (unlikely(!__pyx_t_7)) {                  if (PyErr_Occurred()) {                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                  else {__pyx_filename = __pyx_f[12]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +                  else {__pyx_filename = __pyx_f[12]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L9_error;}                  }                  break;                } -              __Pyx_GOTREF(__pyx_t_2); +              __Pyx_GOTREF(__pyx_t_7);              }              __Pyx_XDECREF(__pyx_v_w_i); -            __pyx_v_w_i = __pyx_t_2; -            __pyx_t_2 = 0; +            __pyx_v_w_i = __pyx_t_7; +            __pyx_t_7 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":204   *             f.write("\n") @@ -33507,22 +31693,22 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3   *             f.write("\n")   *    */ -            __pyx_t_2 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_2); -            __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_w_i); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_7 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(__pyx_t_7); +            __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_21), __pyx_v_w_i); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(((PyObject *)__pyx_t_10)); -            __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -            __Pyx_GOTREF(__pyx_t_1); -            PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_10)); +            __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_2)); +            PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_10));              __Pyx_GIVEREF(((PyObject *)__pyx_t_10));              __pyx_t_10 = 0; -            __pyx_t_10 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +            __pyx_t_10 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L9_error;}              __Pyx_GOTREF(__pyx_t_10); -            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -            __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; +            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +            __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;            } -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":205   *             for w_i in self.ha: @@ -33531,21 +31717,21 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3   *    *     cdef int __search_high(self, int word_id, int offset, int low, int high):   */ -          __pyx_t_4 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L7_error;} -          __Pyx_GOTREF(__pyx_t_4); -          __pyx_t_10 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_98), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L7_error;} +          __pyx_t_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L9_error;} +          __Pyx_GOTREF(__pyx_t_1); +          __pyx_t_10 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_98), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L9_error;}            __Pyx_GOTREF(__pyx_t_10); -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;          } +        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +        goto __pyx_L16_try_end; +        __pyx_L9_error:;          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; -        goto __pyx_L14_try_end; -        __pyx_L7_error:;          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; -        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":198 @@ -33557,75 +31743,75 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3   */          /*except:*/ {            __Pyx_AddTraceback("_sa.SuffixArray.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename); -          if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_4, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_1, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_10); -          __Pyx_GOTREF(__pyx_t_4);            __Pyx_GOTREF(__pyx_t_1); -          __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}            __Pyx_GOTREF(__pyx_t_2); +          __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_7));            __Pyx_INCREF(__pyx_t_10); -          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_10); +          PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_10);            __Pyx_GIVEREF(__pyx_t_10); -          __Pyx_INCREF(__pyx_t_4); -          PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); -          __Pyx_GIVEREF(__pyx_t_4);            __Pyx_INCREF(__pyx_t_1); -          PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1); +          PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1);            __Pyx_GIVEREF(__pyx_t_1); -          __pyx_t_12 = PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); +          __Pyx_INCREF(__pyx_t_2); +          PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_2); +          __Pyx_GIVEREF(__pyx_t_2); +          __pyx_t_12 = PyObject_Call(__pyx_t_3, __pyx_t_7, NULL);            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -          if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __Pyx_GOTREF(__pyx_t_12);            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_12);            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; -          if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} +          if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}            __pyx_t_13 = (!__pyx_t_11);            if (__pyx_t_13) {              __Pyx_GIVEREF(__pyx_t_10); -            __Pyx_GIVEREF(__pyx_t_4);              __Pyx_GIVEREF(__pyx_t_1); -            __Pyx_ErrRestore(__pyx_t_10, __pyx_t_4, __pyx_t_1); -            __pyx_t_10 = 0; __pyx_t_4 = 0; __pyx_t_1 = 0;  -            {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;} -            goto __pyx_L22; +            __Pyx_GIVEREF(__pyx_t_2); +            __Pyx_ErrRestore(__pyx_t_10, __pyx_t_1, __pyx_t_2); +            __pyx_t_10 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0;  +            {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;} +            goto __pyx_L23;            } -          __pyx_L22:; -          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; +          __pyx_L23:; +          __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -          goto __pyx_L8_exception_handled; +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          goto __pyx_L10_exception_handled;          } -        __pyx_L9_except_error:; +        __pyx_L11_except_error:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);          goto __pyx_L1_error; -        __pyx_L8_exception_handled:; +        __pyx_L10_exception_handled:; +        __Pyx_XGIVEREF(__pyx_t_4);          __Pyx_XGIVEREF(__pyx_t_5);          __Pyx_XGIVEREF(__pyx_t_6); -        __Pyx_XGIVEREF(__pyx_t_7); -        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); -        __pyx_L14_try_end:; +        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); +        __pyx_L16_try_end:;        }      }      /*finally:*/ {        if (__pyx_t_3) { -        __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_99, NULL); +        __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_99, NULL);          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_7); -        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_7); -        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +        if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_6); +        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); +        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;          if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }      } -    goto __pyx_L23; -    __pyx_L3_error:; +    goto __pyx_L24; +    __pyx_L5_error:;      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      goto __pyx_L1_error; -    __pyx_L23:; +    __pyx_L24:;    }    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -33633,7 +31819,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_20write_enhanced(struct __pyx_obj_3    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1);    __Pyx_XDECREF(__pyx_t_2); -  __Pyx_XDECREF(__pyx_t_4); +  __Pyx_XDECREF(__pyx_t_7);    __Pyx_XDECREF(__pyx_t_10);    __Pyx_AddTraceback("_sa.SuffixArray.write_enhanced", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL; @@ -33659,7 +31845,7 @@ static int __pyx_f_3_sa_11SuffixArray___search_high(struct __pyx_obj_3_sa_Suffix    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("__search_high", 0); +  __Pyx_RefNannySetupContext("__search_high");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":210   *         cdef int midpoint @@ -33710,7 +31896,7 @@ static int __pyx_f_3_sa_11SuffixArray___search_high(struct __pyx_obj_3_sa_Suffix   *         else:   *             return self.__search_high(word_id, offset, low, midpoint)   */ -    __pyx_r = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__pyx___search_high(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, (__pyx_v_midpoint + 1), __pyx_v_high); +    __pyx_r = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__search_high(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, (__pyx_v_midpoint + 1), __pyx_v_high);      goto __pyx_L0;      goto __pyx_L4;    } @@ -33723,7 +31909,7 @@ static int __pyx_f_3_sa_11SuffixArray___search_high(struct __pyx_obj_3_sa_Suffix   *    *     cdef int __search_low(self, int word_id, int offset, int low, int high):   */ -    __pyx_r = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__pyx___search_high(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, __pyx_v_low, __pyx_v_midpoint); +    __pyx_r = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__search_high(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, __pyx_v_low, __pyx_v_midpoint);      goto __pyx_L0;    }    __pyx_L4:; @@ -33747,7 +31933,7 @@ static int __pyx_f_3_sa_11SuffixArray___search_low(struct __pyx_obj_3_sa_SuffixA    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("__search_low", 0); +  __Pyx_RefNannySetupContext("__search_low");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":221   *         cdef int midpoint @@ -33798,7 +31984,7 @@ static int __pyx_f_3_sa_11SuffixArray___search_low(struct __pyx_obj_3_sa_SuffixA   *         else:   *             return self.__search_low(word_id, offset, midpoint+1, high)   */ -    __pyx_r = ((struct __pyx_vtabstruct_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); +    __pyx_r = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__search_low(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, __pyx_v_low, __pyx_v_midpoint);      goto __pyx_L0;      goto __pyx_L4;    } @@ -33811,7 +31997,7 @@ static int __pyx_f_3_sa_11SuffixArray___search_low(struct __pyx_obj_3_sa_SuffixA   *    *     cdef __get_range(self, int word_id, int offset, int low, int high, int midpoint):   */ -    __pyx_r = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__pyx___search_low(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, (__pyx_v_midpoint + 1), __pyx_v_high); +    __pyx_r = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__search_low(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, (__pyx_v_midpoint + 1), __pyx_v_high);      goto __pyx_L0;    }    __pyx_L4:; @@ -33839,7 +32025,7 @@ static PyObject *__pyx_f_3_sa_11SuffixArray___get_range(struct __pyx_obj_3_sa_Su    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__get_range", 0); +  __Pyx_RefNannySetupContext("__get_range");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":230   *  @@ -33849,7 +32035,7 @@ static PyObject *__pyx_f_3_sa_11SuffixArray___get_range(struct __pyx_obj_3_sa_Su   *    */    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyInt_FromLong(((struct __pyx_vtabstruct_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 = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__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 = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":231 @@ -33859,10 +32045,10 @@ static PyObject *__pyx_f_3_sa_11SuffixArray___get_range(struct __pyx_obj_3_sa_Su   *    *     cdef __lookup_helper(self, int word_id, int offset, int low, int high):   */ -  __pyx_t_2 = PyInt_FromLong(((struct __pyx_vtabstruct_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 = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyInt_FromLong(((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__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 = 231; __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[12]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); @@ -33906,7 +32092,7 @@ static PyObject *__pyx_f_3_sa_11SuffixArray___lookup_helper(struct __pyx_obj_3_s    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__lookup_helper", 0); +  __Pyx_RefNannySetupContext("__lookup_helper");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":236   *         cdef int midpoint @@ -33931,7 +32117,7 @@ static PyObject *__pyx_f_3_sa_11SuffixArray___lookup_helper(struct __pyx_obj_3_s      __pyx_t_3 = PyInt_FromLong((__pyx_v_self->ha->arr[(__pyx_v_word_id + 1)])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 237; __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[12]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);      __Pyx_GIVEREF(__pyx_t_2);      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); @@ -33997,7 +32183,7 @@ static PyObject *__pyx_f_3_sa_11SuffixArray___lookup_helper(struct __pyx_obj_3_s   *             return self.__lookup_helper(word_id, offset, low, midpoint)   */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_4 = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__pyx___get_range(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, __pyx_v_low, __pyx_v_high, __pyx_v_midpoint); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__get_range(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, __pyx_v_low, __pyx_v_high, __pyx_v_midpoint); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __pyx_r = __pyx_t_4;      __pyx_t_4 = 0; @@ -34024,7 +32210,7 @@ static PyObject *__pyx_f_3_sa_11SuffixArray___lookup_helper(struct __pyx_obj_3_s   *             return self.__lookup_helper(word_id, offset, midpoint+1, high)   */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_4 = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__pyx___lookup_helper(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, __pyx_v_low, __pyx_v_midpoint); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__lookup_helper(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, __pyx_v_low, __pyx_v_midpoint); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __pyx_r = __pyx_t_4;      __pyx_t_4 = 0; @@ -34041,7 +32227,7 @@ static PyObject *__pyx_f_3_sa_11SuffixArray___lookup_helper(struct __pyx_obj_3_s   *     def lookup(self, word, int offset, int low, int high):   */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_4 = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__pyx___lookup_helper(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, (__pyx_v_midpoint + 1), __pyx_v_high); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__lookup_helper(__pyx_v_self, __pyx_v_word_id, __pyx_v_offset, (__pyx_v_midpoint + 1), __pyx_v_high); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __pyx_r = __pyx_t_4;      __pyx_t_4 = 0; @@ -34063,23 +32249,37 @@ static PyObject *__pyx_f_3_sa_11SuffixArray___lookup_helper(struct __pyx_obj_3_s    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_11SuffixArray_23lookup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_11SuffixArray_23lookup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":249 + *             return self.__lookup_helper(word_id, offset, midpoint+1, high) + *  + *     def lookup(self, word, int offset, int low, int high):             # <<<<<<<<<<<<<< + *         cdef int wordid + *         if low == -1: + */ + +static PyObject *__pyx_pf_3_sa_11SuffixArray_11lookup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_11SuffixArray_11lookup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_word = 0;    int __pyx_v_offset;    int __pyx_v_low;    int __pyx_v_high; -  PyObject *__pyx_r = 0; +  PyObject *__pyx_v_word_id = NULL; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("lookup (wrapper)", 0); +  int __pyx_t_1; +  PyObject *__pyx_t_2 = NULL; +  Py_ssize_t __pyx_t_3; +  int __pyx_t_4; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__word,&__pyx_n_s__offset,&__pyx_n_s__low,&__pyx_n_s__high,0}; +  __Pyx_RefNannySetupContext("lookup");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__word,&__pyx_n_s__offset,&__pyx_n_s__low,&__pyx_n_s__high,0};      PyObject* values[4] = {0,0,0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); @@ -34088,28 +32288,32 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_23lookup(PyObject *__pyx_v_self, Py          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__word)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__word); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__offset); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("lookup", 1, 4, 4, 1); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2: -        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__low)) != 0)) kw_args--; +        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__low); +        if (likely(values[2])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("lookup", 1, 4, 4, 2); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  3: -        if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__high)) != 0)) kw_args--; +        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__high); +        if (likely(values[3])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("lookup", 1, 4, 4, 3); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lookup") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "lookup") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {        goto __pyx_L5_argtuple_error; @@ -34132,31 +32336,6 @@ static PyObject *__pyx_pw_3_sa_11SuffixArray_23lookup(PyObject *__pyx_v_self, Py    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_11SuffixArray_22lookup(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), __pyx_v_word, __pyx_v_offset, __pyx_v_low, __pyx_v_high); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":249 - *             return self.__lookup_helper(word_id, offset, midpoint+1, high) - *  - *     def lookup(self, word, int offset, int low, int high):             # <<<<<<<<<<<<<< - *         cdef int wordid - *         if low == -1: - */ - -static PyObject *__pyx_pf_3_sa_11SuffixArray_22lookup(struct __pyx_obj_3_sa_SuffixArray *__pyx_v_self, PyObject *__pyx_v_word, int __pyx_v_offset, int __pyx_v_low, int __pyx_v_high) { -  PyObject *__pyx_v_word_id = NULL; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  int __pyx_t_1; -  PyObject *__pyx_t_2 = NULL; -  Py_ssize_t __pyx_t_3; -  int __pyx_t_4; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("lookup", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":251   *     def lookup(self, word, int offset, int low, int high): @@ -34176,9 +32355,9 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_22lookup(struct __pyx_obj_3_sa_Suff   *             high = len(self.sa)   */      __pyx_v_low = 0; -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":253   *         if low == -1: @@ -34197,14 +32376,14 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_22lookup(struct __pyx_obj_3_sa_Suff   *         if word in self.darray.word2id:   *             word_id = self.darray.word2id[word]   */ -    __pyx_t_2 = ((PyObject *)__pyx_v_self->sa); +    __pyx_t_2 = ((PyObject *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->sa);      __Pyx_INCREF(__pyx_t_2);      __pyx_t_3 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      __pyx_v_high = __pyx_t_3; -    goto __pyx_L4; +    goto __pyx_L7;    } -  __pyx_L4:; +  __pyx_L7:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":255   *         if high == -1: @@ -34213,7 +32392,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_22lookup(struct __pyx_obj_3_sa_Suff   *             word_id = self.darray.word2id[word]   *             return self.__lookup_helper(word_id, offset, low, high)   */ -  __pyx_t_1 = (__Pyx_PySequence_Contains(__pyx_v_word, __pyx_v_self->darray->word2id, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((PySequence_Contains(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray->word2id, __pyx_v_word))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_1) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/suffix_array.pxi":256 @@ -34223,7 +32402,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_22lookup(struct __pyx_obj_3_sa_Suff   *             return self.__lookup_helper(word_id, offset, low, high)   *         else:   */ -    __pyx_t_2 = PyObject_GetItem(__pyx_v_self->darray->word2id, __pyx_v_word); if (!__pyx_t_2) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyObject_GetItem(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->darray->word2id, __pyx_v_word); if (!__pyx_t_2) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __pyx_v_word_id = __pyx_t_2;      __pyx_t_2 = 0; @@ -34237,12 +32416,12 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_22lookup(struct __pyx_obj_3_sa_Suff   */      __Pyx_XDECREF(__pyx_r);      __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_v_word_id); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_2 = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)__pyx_v_self->__pyx_vtab)->__pyx___lookup_helper(__pyx_v_self, __pyx_t_4, __pyx_v_offset, __pyx_v_low, __pyx_v_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = ((struct __pyx_vtabstruct_3_sa_SuffixArray *)((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self)->__pyx_vtab)->__lookup_helper(((struct __pyx_obj_3_sa_SuffixArray *)__pyx_v_self), __pyx_t_4, __pyx_v_offset, __pyx_v_low, __pyx_v_high); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __pyx_r = __pyx_t_2;      __pyx_t_2 = 0;      goto __pyx_L0; -    goto __pyx_L5; +    goto __pyx_L8;    }    /*else*/ { @@ -34256,7 +32435,7 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_22lookup(struct __pyx_obj_3_sa_Suff      __pyx_r = Py_None;      goto __pyx_L0;    } -  __pyx_L5:; +  __pyx_L8:;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -34271,20 +32450,6 @@ static PyObject *__pyx_pf_3_sa_11SuffixArray_22lookup(struct __pyx_obj_3_sa_Suff    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_8TrieNode_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_8TrieNode_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); -  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { -    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} -  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; -  __pyx_r = __pyx_pf_3_sa_8TrieNode___cinit__(((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":37   *     cdef public children   *  @@ -34293,14 +32458,18 @@ static int __pyx_pw_3_sa_8TrieNode_1__cinit__(PyObject *__pyx_v_self, PyObject *   *    */ -static int __pyx_pf_3_sa_8TrieNode___cinit__(struct __pyx_obj_3_sa_TrieNode *__pyx_v_self) { +static int __pyx_pf_3_sa_8TrieNode___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_8TrieNode___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_r;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0); +  __Pyx_RefNannySetupContext("__cinit__"); +  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { +    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} +  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":38   *  @@ -34312,9 +32481,9 @@ static int __pyx_pf_3_sa_8TrieNode___cinit__(struct __pyx_obj_3_sa_TrieNode *__p    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); -  __Pyx_GOTREF(__pyx_v_self->children); -  __Pyx_DECREF(__pyx_v_self->children); -  __pyx_v_self->children = ((PyObject *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)->children); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)->children); +  ((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)->children = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0;    __pyx_r = 0; @@ -34328,17 +32497,6 @@ static int __pyx_pf_3_sa_8TrieNode___cinit__(struct __pyx_obj_3_sa_TrieNode *__p    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_8TrieNode_8children_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_8TrieNode_8children_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_8TrieNode_8children___get__(((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":35   *    * cdef class TrieNode: @@ -34347,13 +32505,14 @@ static PyObject *__pyx_pw_3_sa_8TrieNode_8children_1__get__(PyObject *__pyx_v_se   *     def __cinit__(self):   */ -static PyObject *__pyx_pf_3_sa_8TrieNode_8children___get__(struct __pyx_obj_3_sa_TrieNode *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_8TrieNode_8children___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_8TrieNode_8children___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    __Pyx_XDECREF(__pyx_r); -  __Pyx_INCREF(__pyx_v_self->children); -  __pyx_r = __pyx_v_self->children; +  __Pyx_INCREF(((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)->children); +  __pyx_r = ((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)->children;    goto __pyx_L0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -34363,85 +32522,66 @@ static PyObject *__pyx_pf_3_sa_8TrieNode_8children___get__(struct __pyx_obj_3_sa    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_8TrieNode_8children_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ -static int __pyx_pw_3_sa_8TrieNode_8children_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { +static int __pyx_pf_3_sa_8TrieNode_8children_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pf_3_sa_8TrieNode_8children_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_8TrieNode_8children_2__set__(((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self), ((PyObject *)__pyx_v_value)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_8TrieNode_8children_2__set__(struct __pyx_obj_3_sa_TrieNode *__pyx_v_self, PyObject *__pyx_v_value) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__", 0); +  __Pyx_RefNannySetupContext("__set__");    __Pyx_INCREF(__pyx_v_value);    __Pyx_GIVEREF(__pyx_v_value); -  __Pyx_GOTREF(__pyx_v_self->children); -  __Pyx_DECREF(__pyx_v_self->children); -  __pyx_v_self->children = __pyx_v_value; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)->children); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)->children); +  ((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)->children = __pyx_v_value;    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_8TrieNode_8children_5__del__(PyObject *__pyx_v_self); /*proto*/ -static int __pyx_pw_3_sa_8TrieNode_8children_5__del__(PyObject *__pyx_v_self) { +static int __pyx_pf_3_sa_8TrieNode_8children_2__del__(PyObject *__pyx_v_self); /*proto*/ +static int __pyx_pf_3_sa_8TrieNode_8children_2__del__(PyObject *__pyx_v_self) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_8TrieNode_8children_4__del__(((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_8TrieNode_8children_4__del__(struct __pyx_obj_3_sa_TrieNode *__pyx_v_self) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__del__", 0); +  __Pyx_RefNannySetupContext("__del__");    __Pyx_INCREF(Py_None);    __Pyx_GIVEREF(Py_None); -  __Pyx_GOTREF(__pyx_v_self->children); -  __Pyx_DECREF(__pyx_v_self->children); -  __pyx_v_self->children = Py_None; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)->children); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)->children); +  ((struct __pyx_obj_3_sa_TrieNode *)__pyx_v_self)->children = Py_None;    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_16ExtendedTrieNode_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_16ExtendedTrieNode_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":45 + *     cdef public suffix_link + *  + *     def __cinit__(self, phrase=None, phrase_location=None, suffix_link=None):             # <<<<<<<<<<<<<< + *         self.phrase = phrase + *         self.phrase_location = phrase_location + */ + +static int __pyx_pf_3_sa_16ExtendedTrieNode___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_16ExtendedTrieNode___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_phrase = 0;    PyObject *__pyx_v_phrase_location = 0;    PyObject *__pyx_v_suffix_link = 0;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__phrase,&__pyx_n_s__phrase_location,&__pyx_n_s__suffix_link,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__phrase,&__pyx_n_s__phrase_location,&__pyx_n_s__suffix_link,0};      PyObject* values[3] = {0,0,0}; - -    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":45 - *     cdef public suffix_link - *  - *     def __cinit__(self, phrase=None, phrase_location=None, suffix_link=None):             # <<<<<<<<<<<<<< - *         self.phrase = phrase - *         self.phrase_location = phrase_location - */      values[0] = ((PyObject *)Py_None);      values[1] = ((PyObject *)Py_None);      values[2] = ((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) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); @@ -34449,7 +32589,7 @@ static int __pyx_pw_3_sa_16ExtendedTrieNode_1__cinit__(PyObject *__pyx_v_self, P          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0:          if (kw_args > 0) {            PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__phrase); @@ -34467,7 +32607,7 @@ static int __pyx_pw_3_sa_16ExtendedTrieNode_1__cinit__(PyObject *__pyx_v_self, P          }        }        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 = 45; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -34490,15 +32630,6 @@ static int __pyx_pw_3_sa_16ExtendedTrieNode_1__cinit__(PyObject *__pyx_v_self, P    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_16ExtendedTrieNode___cinit__(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self), __pyx_v_phrase, __pyx_v_phrase_location, __pyx_v_suffix_link); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_16ExtendedTrieNode___cinit__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self, PyObject *__pyx_v_phrase, PyObject *__pyx_v_phrase_location, PyObject *__pyx_v_suffix_link) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":46   *  @@ -34509,9 +32640,9 @@ static int __pyx_pf_3_sa_16ExtendedTrieNode___cinit__(struct __pyx_obj_3_sa_Exte   */    __Pyx_INCREF(__pyx_v_phrase);    __Pyx_GIVEREF(__pyx_v_phrase); -  __Pyx_GOTREF(__pyx_v_self->phrase); -  __Pyx_DECREF(__pyx_v_self->phrase); -  __pyx_v_self->phrase = __pyx_v_phrase; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase); +  ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase = __pyx_v_phrase;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":47   *     def __cinit__(self, phrase=None, phrase_location=None, suffix_link=None): @@ -34522,9 +32653,9 @@ static int __pyx_pf_3_sa_16ExtendedTrieNode___cinit__(struct __pyx_obj_3_sa_Exte   */    __Pyx_INCREF(__pyx_v_phrase_location);    __Pyx_GIVEREF(__pyx_v_phrase_location); -  __Pyx_GOTREF(__pyx_v_self->phrase_location); -  __Pyx_DECREF(__pyx_v_self->phrase_location); -  __pyx_v_self->phrase_location = __pyx_v_phrase_location; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase_location); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase_location); +  ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase_location = __pyx_v_phrase_location;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":48   *         self.phrase = phrase @@ -34535,26 +32666,15 @@ static int __pyx_pf_3_sa_16ExtendedTrieNode___cinit__(struct __pyx_obj_3_sa_Exte   */    __Pyx_INCREF(__pyx_v_suffix_link);    __Pyx_GIVEREF(__pyx_v_suffix_link); -  __Pyx_GOTREF(__pyx_v_self->suffix_link); -  __Pyx_DECREF(__pyx_v_self->suffix_link); -  __pyx_v_self->suffix_link = __pyx_v_suffix_link; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->suffix_link); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->suffix_link); +  ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->suffix_link = __pyx_v_suffix_link;    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_16ExtendedTrieNode_6phrase_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_16ExtendedTrieNode_6phrase_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_16ExtendedTrieNode_6phrase___get__(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":41   *    * cdef class ExtendedTrieNode(TrieNode): @@ -34563,13 +32683,14 @@ static PyObject *__pyx_pw_3_sa_16ExtendedTrieNode_6phrase_1__get__(PyObject *__p   *     cdef public suffix_link   */ -static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_6phrase___get__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_6phrase___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_6phrase___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    __Pyx_XDECREF(__pyx_r); -  __Pyx_INCREF(__pyx_v_self->phrase); -  __pyx_r = __pyx_v_self->phrase; +  __Pyx_INCREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase); +  __pyx_r = ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase;    goto __pyx_L0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -34579,69 +32700,38 @@ static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_6phrase___get__(struct __pyx_o    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_16ExtendedTrieNode_6phrase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ -static int __pyx_pw_3_sa_16ExtendedTrieNode_6phrase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_2__set__(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self), ((PyObject *)__pyx_v_value)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_2__set__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self, PyObject *__pyx_v_value) { +static int __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__", 0); +  __Pyx_RefNannySetupContext("__set__");    __Pyx_INCREF(__pyx_v_value);    __Pyx_GIVEREF(__pyx_v_value); -  __Pyx_GOTREF(__pyx_v_self->phrase); -  __Pyx_DECREF(__pyx_v_self->phrase); -  __pyx_v_self->phrase = __pyx_v_value; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase); +  ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase = __pyx_v_value;    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_16ExtendedTrieNode_6phrase_5__del__(PyObject *__pyx_v_self); /*proto*/ -static int __pyx_pw_3_sa_16ExtendedTrieNode_6phrase_5__del__(PyObject *__pyx_v_self) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_4__del__(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_4__del__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self) { +static int __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_2__del__(PyObject *__pyx_v_self); /*proto*/ +static int __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_2__del__(PyObject *__pyx_v_self) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__del__", 0); +  __Pyx_RefNannySetupContext("__del__");    __Pyx_INCREF(Py_None);    __Pyx_GIVEREF(Py_None); -  __Pyx_GOTREF(__pyx_v_self->phrase); -  __Pyx_DECREF(__pyx_v_self->phrase); -  __pyx_v_self->phrase = Py_None; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase); +  ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase = Py_None;    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_16ExtendedTrieNode_15phrase_location_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_16ExtendedTrieNode_15phrase_location_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location___get__(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":42   * cdef class ExtendedTrieNode(TrieNode):   *     cdef public phrase @@ -34650,13 +32740,14 @@ static PyObject *__pyx_pw_3_sa_16ExtendedTrieNode_15phrase_location_1__get__(PyO   *    */ -static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location___get__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    __Pyx_XDECREF(__pyx_r); -  __Pyx_INCREF(__pyx_v_self->phrase_location); -  __pyx_r = __pyx_v_self->phrase_location; +  __Pyx_INCREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase_location); +  __pyx_r = ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase_location;    goto __pyx_L0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -34666,69 +32757,38 @@ static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location___get__(stru    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_16ExtendedTrieNode_15phrase_location_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ -static int __pyx_pw_3_sa_16ExtendedTrieNode_15phrase_location_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_2__set__(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self), ((PyObject *)__pyx_v_value)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_2__set__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self, PyObject *__pyx_v_value) { +static int __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__", 0); +  __Pyx_RefNannySetupContext("__set__");    __Pyx_INCREF(__pyx_v_value);    __Pyx_GIVEREF(__pyx_v_value); -  __Pyx_GOTREF(__pyx_v_self->phrase_location); -  __Pyx_DECREF(__pyx_v_self->phrase_location); -  __pyx_v_self->phrase_location = __pyx_v_value; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase_location); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase_location); +  ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase_location = __pyx_v_value;    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_16ExtendedTrieNode_15phrase_location_5__del__(PyObject *__pyx_v_self); /*proto*/ -static int __pyx_pw_3_sa_16ExtendedTrieNode_15phrase_location_5__del__(PyObject *__pyx_v_self) { +static int __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_2__del__(PyObject *__pyx_v_self); /*proto*/ +static int __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_2__del__(PyObject *__pyx_v_self) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_4__del__(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_4__del__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__del__", 0); +  __Pyx_RefNannySetupContext("__del__");    __Pyx_INCREF(Py_None);    __Pyx_GIVEREF(Py_None); -  __Pyx_GOTREF(__pyx_v_self->phrase_location); -  __Pyx_DECREF(__pyx_v_self->phrase_location); -  __pyx_v_self->phrase_location = Py_None; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase_location); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase_location); +  ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->phrase_location = Py_None;    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_16ExtendedTrieNode_11suffix_link_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_16ExtendedTrieNode_11suffix_link_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link___get__(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":43   *     cdef public phrase   *     cdef public phrase_location @@ -34737,13 +32797,14 @@ static PyObject *__pyx_pw_3_sa_16ExtendedTrieNode_11suffix_link_1__get__(PyObjec   *     def __cinit__(self, phrase=None, phrase_location=None, suffix_link=None):   */ -static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link___get__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    __Pyx_XDECREF(__pyx_r); -  __Pyx_INCREF(__pyx_v_self->suffix_link); -  __pyx_r = __pyx_v_self->suffix_link; +  __Pyx_INCREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->suffix_link); +  __pyx_r = ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->suffix_link;    goto __pyx_L0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -34753,79 +32814,71 @@ static PyObject *__pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link___get__(struct _    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_16ExtendedTrieNode_11suffix_link_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ -static int __pyx_pw_3_sa_16ExtendedTrieNode_11suffix_link_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_2__set__(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self), ((PyObject *)__pyx_v_value)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_2__set__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self, PyObject *__pyx_v_value) { +static int __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__", 0); +  __Pyx_RefNannySetupContext("__set__");    __Pyx_INCREF(__pyx_v_value);    __Pyx_GIVEREF(__pyx_v_value); -  __Pyx_GOTREF(__pyx_v_self->suffix_link); -  __Pyx_DECREF(__pyx_v_self->suffix_link); -  __pyx_v_self->suffix_link = __pyx_v_value; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->suffix_link); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->suffix_link); +  ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->suffix_link = __pyx_v_value;    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_16ExtendedTrieNode_11suffix_link_5__del__(PyObject *__pyx_v_self); /*proto*/ -static int __pyx_pw_3_sa_16ExtendedTrieNode_11suffix_link_5__del__(PyObject *__pyx_v_self) { +static int __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_2__del__(PyObject *__pyx_v_self); /*proto*/ +static int __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_2__del__(PyObject *__pyx_v_self) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_4__del__(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_4__del__(struct __pyx_obj_3_sa_ExtendedTrieNode *__pyx_v_self) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__del__", 0); +  __Pyx_RefNannySetupContext("__del__");    __Pyx_INCREF(Py_None);    __Pyx_GIVEREF(Py_None); -  __Pyx_GOTREF(__pyx_v_self->suffix_link); -  __Pyx_DECREF(__pyx_v_self->suffix_link); -  __pyx_v_self->suffix_link = Py_None; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->suffix_link); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->suffix_link); +  ((struct __pyx_obj_3_sa_ExtendedTrieNode *)__pyx_v_self)->suffix_link = Py_None;    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_9TrieTable_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_9TrieTable_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":55 + *     cdef public int count + *     cdef public root + *     def __cinit__(self, extended=False):             # <<<<<<<<<<<<<< + *         self.count = 0 + *         self.extended = extended + */ + +static int __pyx_pf_3_sa_9TrieTable___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_9TrieTable___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_extended = 0;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  int __pyx_t_1; +  int __pyx_t_2; +  PyObject *__pyx_t_3 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__extended,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__extended,0};      PyObject* values[1] = {0};      values[0] = __pyx_k_100;      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0:          if (kw_args > 0) {            PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__extended); @@ -34833,7 +32886,7 @@ static int __pyx_pw_3_sa_9TrieTable_1__cinit__(PyObject *__pyx_v_self, 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 = 55; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -34852,29 +32905,6 @@ static int __pyx_pw_3_sa_9TrieTable_1__cinit__(PyObject *__pyx_v_self, PyObject    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_9TrieTable___cinit__(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self), __pyx_v_extended); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":55 - *     cdef public int count - *     cdef public root - *     def __cinit__(self, extended=False):             # <<<<<<<<<<<<<< - *         self.count = 0 - *         self.extended = extended - */ - -static int __pyx_pf_3_sa_9TrieTable___cinit__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self, PyObject *__pyx_v_extended) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  int __pyx_t_1; -  int __pyx_t_2; -  PyObject *__pyx_t_3 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":56   *     cdef public root @@ -34883,7 +32913,7 @@ static int __pyx_pf_3_sa_9TrieTable___cinit__(struct __pyx_obj_3_sa_TrieTable *_   *         self.extended = extended   *         if extended:   */ -  __pyx_v_self->count = 0; +  ((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->count = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":57   *     def __cinit__(self, extended=False): @@ -34893,7 +32923,7 @@ static int __pyx_pf_3_sa_9TrieTable___cinit__(struct __pyx_obj_3_sa_TrieTable *_   *             self.root = ExtendedTrieNode()   */    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_extended); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_v_self->extended = __pyx_t_1; +  ((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->extended = __pyx_t_1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":58   *         self.count = 0 @@ -34915,11 +32945,11 @@ static int __pyx_pf_3_sa_9TrieTable___cinit__(struct __pyx_obj_3_sa_TrieTable *_      __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_GIVEREF(__pyx_t_3); -    __Pyx_GOTREF(__pyx_v_self->root); -    __Pyx_DECREF(__pyx_v_self->root); -    __pyx_v_self->root = __pyx_t_3; +    __Pyx_GOTREF(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root); +    __Pyx_DECREF(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root); +    ((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root = __pyx_t_3;      __pyx_t_3 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    }    /*else*/ { @@ -34933,12 +32963,12 @@ static int __pyx_pf_3_sa_9TrieTable___cinit__(struct __pyx_obj_3_sa_TrieTable *_      __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_TrieNode)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_GIVEREF(__pyx_t_3); -    __Pyx_GOTREF(__pyx_v_self->root); -    __Pyx_DECREF(__pyx_v_self->root); -    __pyx_v_self->root = __pyx_t_3; +    __Pyx_GOTREF(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root); +    __Pyx_DECREF(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root); +    ((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root = __pyx_t_3;      __pyx_t_3 = 0;    } -  __pyx_L3:; +  __pyx_L6:;    __pyx_r = 0;    goto __pyx_L0; @@ -34951,17 +32981,6 @@ static int __pyx_pf_3_sa_9TrieTable___cinit__(struct __pyx_obj_3_sa_TrieTable *_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9TrieTable_8extended_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_9TrieTable_8extended_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9TrieTable_8extended___get__(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":52   *    * cdef class TrieTable: @@ -34970,16 +32989,17 @@ static PyObject *__pyx_pw_3_sa_9TrieTable_8extended_1__get__(PyObject *__pyx_v_s   *     cdef public root   */ -static PyObject *__pyx_pf_3_sa_9TrieTable_8extended___get__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_9TrieTable_8extended___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_9TrieTable_8extended___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->extended); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->extended); 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_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -34997,27 +33017,17 @@ static PyObject *__pyx_pf_3_sa_9TrieTable_8extended___get__(struct __pyx_obj_3_s    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_9TrieTable_8extended_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ -static int __pyx_pw_3_sa_9TrieTable_8extended_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9TrieTable_8extended_2__set__(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self), ((PyObject *)__pyx_v_value)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_9TrieTable_8extended_2__set__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self, PyObject *__pyx_v_value) { +static int __pyx_pf_3_sa_9TrieTable_8extended_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pf_3_sa_9TrieTable_8extended_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__set__", 0); +  __Pyx_RefNannySetupContext("__set__");    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_v_self->extended = __pyx_t_1; +  ((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->extended = __pyx_t_1;    __pyx_r = 0;    goto __pyx_L0; @@ -35029,17 +33039,6 @@ static int __pyx_pf_3_sa_9TrieTable_8extended_2__set__(struct __pyx_obj_3_sa_Tri    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9TrieTable_5count_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_9TrieTable_5count_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9TrieTable_5count___get__(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":53   * cdef class TrieTable:   *     cdef public int extended @@ -35048,16 +33047,17 @@ static PyObject *__pyx_pw_3_sa_9TrieTable_5count_1__get__(PyObject *__pyx_v_self   *     def __cinit__(self, extended=False):   */ -static PyObject *__pyx_pf_3_sa_9TrieTable_5count___get__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_9TrieTable_5count___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_9TrieTable_5count___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    __Pyx_XDECREF(__pyx_r); -  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->count); 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_r = __pyx_t_1;    __pyx_t_1 = 0; @@ -35075,27 +33075,17 @@ static PyObject *__pyx_pf_3_sa_9TrieTable_5count___get__(struct __pyx_obj_3_sa_T    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_9TrieTable_5count_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ -static int __pyx_pw_3_sa_9TrieTable_5count_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9TrieTable_5count_2__set__(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self), ((PyObject *)__pyx_v_value)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_9TrieTable_5count_2__set__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self, PyObject *__pyx_v_value) { +static int __pyx_pf_3_sa_9TrieTable_5count_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pf_3_sa_9TrieTable_5count_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {    int __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1;    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__set__", 0); +  __Pyx_RefNannySetupContext("__set__");    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_v_self->count = __pyx_t_1; +  ((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->count = __pyx_t_1;    __pyx_r = 0;    goto __pyx_L0; @@ -35107,17 +33097,6 @@ static int __pyx_pf_3_sa_9TrieTable_5count_2__set__(struct __pyx_obj_3_sa_TrieTa    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_9TrieTable_4root_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_9TrieTable_4root_1__get__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9TrieTable_4root___get__(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":54   *     cdef public int extended   *     cdef public int count @@ -35126,13 +33105,14 @@ static PyObject *__pyx_pw_3_sa_9TrieTable_4root_1__get__(PyObject *__pyx_v_self)   *         self.count = 0   */ -static PyObject *__pyx_pf_3_sa_9TrieTable_4root___get__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_9TrieTable_4root___get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_9TrieTable_4root___get__(PyObject *__pyx_v_self) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__get__", 0); +  __Pyx_RefNannySetupContext("__get__");    __Pyx_XDECREF(__pyx_r); -  __Pyx_INCREF(__pyx_v_self->root); -  __pyx_r = __pyx_v_self->root; +  __Pyx_INCREF(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root); +  __pyx_r = ((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root;    goto __pyx_L0;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -35142,52 +33122,32 @@ static PyObject *__pyx_pf_3_sa_9TrieTable_4root___get__(struct __pyx_obj_3_sa_Tr    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_9TrieTable_4root_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ -static int __pyx_pw_3_sa_9TrieTable_4root_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9TrieTable_4root_2__set__(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self), ((PyObject *)__pyx_v_value)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_9TrieTable_4root_2__set__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self, PyObject *__pyx_v_value) { +static int __pyx_pf_3_sa_9TrieTable_4root_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pf_3_sa_9TrieTable_4root_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__set__", 0); +  __Pyx_RefNannySetupContext("__set__");    __Pyx_INCREF(__pyx_v_value);    __Pyx_GIVEREF(__pyx_v_value); -  __Pyx_GOTREF(__pyx_v_self->root); -  __Pyx_DECREF(__pyx_v_self->root); -  __pyx_v_self->root = __pyx_v_value; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root); +  ((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root = __pyx_v_value;    __pyx_r = 0;    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_9TrieTable_4root_5__del__(PyObject *__pyx_v_self); /*proto*/ -static int __pyx_pw_3_sa_9TrieTable_4root_5__del__(PyObject *__pyx_v_self) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_9TrieTable_4root_4__del__(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -static int __pyx_pf_3_sa_9TrieTable_4root_4__del__(struct __pyx_obj_3_sa_TrieTable *__pyx_v_self) { +static int __pyx_pf_3_sa_9TrieTable_4root_2__del__(PyObject *__pyx_v_self); /*proto*/ +static int __pyx_pf_3_sa_9TrieTable_4root_2__del__(PyObject *__pyx_v_self) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__del__", 0); +  __Pyx_RefNannySetupContext("__del__");    __Pyx_INCREF(Py_None);    __Pyx_GIVEREF(Py_None); -  __Pyx_GOTREF(__pyx_v_self->root); -  __Pyx_DECREF(__pyx_v_self->root); -  __pyx_v_self->root = Py_None; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root); +  ((struct __pyx_obj_3_sa_TrieTable *)__pyx_v_self)->root = Py_None;    __pyx_r = 0;    __Pyx_RefNannyFinishContext(); @@ -35202,10 +33162,10 @@ static int __pyx_pf_3_sa_9TrieTable_4root_4__del__(struct __pyx_obj_3_sa_TrieTab   *    */ -static int __pyx_f_3_sa_14PhraseLocation_contains(CYTHON_UNUSED struct __pyx_obj_3_sa_PhraseLocation *__pyx_v_self, CYTHON_UNUSED int __pyx_v_sent_id) { +static int __pyx_f_3_sa_14PhraseLocation_contains(struct __pyx_obj_3_sa_PhraseLocation *__pyx_v_self, int __pyx_v_sent_id) {    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("contains", 0); +  __Pyx_RefNannySetupContext("contains");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":82   *     # returns true if sent_id is contained @@ -35223,9 +33183,16 @@ static int __pyx_f_3_sa_14PhraseLocation_contains(CYTHON_UNUSED struct __pyx_obj    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_14PhraseLocation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_14PhraseLocation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":84 + *         return 1 + *  + *     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 + */ + +static int __pyx_pf_3_sa_14PhraseLocation___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_14PhraseLocation___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_v_sa_low;    int __pyx_v_sa_high;    int __pyx_v_arr_low; @@ -35234,9 +33201,12 @@ static int __pyx_pw_3_sa_14PhraseLocation_1__cinit__(PyObject *__pyx_v_self, PyO    int __pyx_v_num_subpatterns;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  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}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    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};      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":85 @@ -35249,8 +33219,7 @@ static int __pyx_pw_3_sa_14PhraseLocation_1__cinit__(PyObject *__pyx_v_self, PyO      values[4] = ((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) { +      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); @@ -35261,7 +33230,7 @@ static int __pyx_pw_3_sa_14PhraseLocation_1__cinit__(PyObject *__pyx_v_self, PyO          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0:          if (kw_args > 0) {            PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sa_low); @@ -35294,7 +33263,7 @@ static int __pyx_pw_3_sa_14PhraseLocation_1__cinit__(PyObject *__pyx_v_self, PyO          }        }        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 = 84; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -35343,26 +33312,6 @@ static int __pyx_pw_3_sa_14PhraseLocation_1__cinit__(PyObject *__pyx_v_self, PyO    __Pyx_RefNannyFinishContext();    return -1;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_14PhraseLocation___cinit__(((struct __pyx_obj_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); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":84 - *         return 1 - *  - *     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 - */ - -static int __pyx_pf_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_3_sa_PhraseLocation *__pyx_v_self, int __pyx_v_sa_low, int __pyx_v_sa_high, int __pyx_v_arr_low, int __pyx_v_arr_high, PyObject *__pyx_v_arr, int __pyx_v_num_subpatterns) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":86   *     def __cinit__(self, int sa_low=-1, int sa_high=-1, int arr_low=-1, int arr_high=-1, @@ -35371,7 +33320,7 @@ static int __pyx_pf_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_3_sa_Phrase   *         self.sa_high = sa_high   *         self.arr_low = arr_low   */ -  __pyx_v_self->sa_low = __pyx_v_sa_low; +  ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_self)->sa_low = __pyx_v_sa_low;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":87   *             arr=None, int num_subpatterns=1): @@ -35380,7 +33329,7 @@ static int __pyx_pf_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_3_sa_Phrase   *         self.arr_low = arr_low   *         self.arr_high = arr_high   */ -  __pyx_v_self->sa_high = __pyx_v_sa_high; +  ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_self)->sa_high = __pyx_v_sa_high;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":88   *         self.sa_low = sa_low @@ -35389,7 +33338,7 @@ static int __pyx_pf_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_3_sa_Phrase   *         self.arr_high = arr_high   *         self.arr = arr   */ -  __pyx_v_self->arr_low = __pyx_v_arr_low; +  ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_self)->arr_low = __pyx_v_arr_low;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":89   *         self.sa_high = sa_high @@ -35398,7 +33347,7 @@ static int __pyx_pf_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_3_sa_Phrase   *         self.arr = arr   *         self.num_subpatterns = num_subpatterns   */ -  __pyx_v_self->arr_high = __pyx_v_arr_high; +  ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_self)->arr_high = __pyx_v_arr_high;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":90   *         self.arr_low = arr_low @@ -35410,9 +33359,9 @@ static int __pyx_pf_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_3_sa_Phrase    if (!(likely(((__pyx_v_arr) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_arr, __pyx_ptype_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_INCREF(__pyx_v_arr);    __Pyx_GIVEREF(__pyx_v_arr); -  __Pyx_GOTREF(__pyx_v_self->arr); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->arr)); -  __pyx_v_self->arr = ((struct __pyx_obj_3_sa_IntList *)__pyx_v_arr); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_self)->arr); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_self)->arr)); +  ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_self)->arr = ((struct __pyx_obj_3_sa_IntList *)__pyx_v_arr);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":91   *         self.arr_high = arr_high @@ -35421,7 +33370,7 @@ static int __pyx_pf_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_3_sa_Phrase   *    *    */ -  __pyx_v_self->num_subpatterns = __pyx_v_num_subpatterns; +  ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_self)->num_subpatterns = __pyx_v_num_subpatterns;    __pyx_r = 0;    goto __pyx_L0; @@ -35433,39 +33382,54 @@ static int __pyx_pf_3_sa_14PhraseLocation___cinit__(struct __pyx_obj_3_sa_Phrase    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_7Sampler_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_7Sampler_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":101 + *     cdef IntList sa + *  + *     def __cinit__(self, int sample_size, SuffixArray fsarray):             # <<<<<<<<<<<<<< + *         self.sample_size = sample_size + *         self.sa = fsarray.sa + */ + +static int __pyx_pf_3_sa_7Sampler___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_7Sampler___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_v_sample_size;    struct __pyx_obj_3_sa_SuffixArray *__pyx_v_fsarray = 0;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  int __pyx_t_1; +  PyObject *__pyx_t_2 = NULL; +  PyObject *__pyx_t_3 = NULL; +  PyObject *__pyx_t_4 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sample_size,&__pyx_n_s__fsarray,0}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__sample_size,&__pyx_n_s__fsarray,0};      PyObject* values[2] = {0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sample_size)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sample_size); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fsarray)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fsarray); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 101; __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 = 101; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {        goto __pyx_L5_argtuple_error; @@ -35485,34 +33449,6 @@ static int __pyx_pw_3_sa_7Sampler_1__cinit__(PyObject *__pyx_v_self, PyObject *_    return -1;    __pyx_L4_argument_unpacking_done:;    if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fsarray), __pyx_ptype_3_sa_SuffixArray, 1, "fsarray", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_r = __pyx_pf_3_sa_7Sampler___cinit__(((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self), __pyx_v_sample_size, __pyx_v_fsarray); -  goto __pyx_L0; -  __pyx_L1_error:; -  __pyx_r = -1; -  __pyx_L0:; -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":101 - *     cdef IntList sa - *  - *     def __cinit__(self, int sample_size, SuffixArray fsarray):             # <<<<<<<<<<<<<< - *         self.sample_size = sample_size - *         self.sa = fsarray.sa - */ - -static int __pyx_pf_3_sa_7Sampler___cinit__(struct __pyx_obj_3_sa_Sampler *__pyx_v_self, int __pyx_v_sample_size, struct __pyx_obj_3_sa_SuffixArray *__pyx_v_fsarray) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  int __pyx_t_1; -  PyObject *__pyx_t_2 = NULL; -  PyObject *__pyx_t_3 = NULL; -  PyObject *__pyx_t_4 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":102   *  @@ -35521,7 +33457,7 @@ static int __pyx_pf_3_sa_7Sampler___cinit__(struct __pyx_obj_3_sa_Sampler *__pyx   *         self.sa = fsarray.sa   *         if sample_size > 0:   */ -  __pyx_v_self->sample_size = __pyx_v_sample_size; +  ((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sample_size = __pyx_v_sample_size;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":103   *     def __cinit__(self, int sample_size, SuffixArray fsarray): @@ -35532,9 +33468,9 @@ static int __pyx_pf_3_sa_7Sampler___cinit__(struct __pyx_obj_3_sa_Sampler *__pyx   */    __Pyx_INCREF(((PyObject *)__pyx_v_fsarray->sa));    __Pyx_GIVEREF(((PyObject *)__pyx_v_fsarray->sa)); -  __Pyx_GOTREF(__pyx_v_self->sa); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->sa)); -  __pyx_v_self->sa = __pyx_v_fsarray->sa; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sa); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sa)); +  ((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sa = __pyx_v_fsarray->sa;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":104   *         self.sample_size = sample_size @@ -35561,7 +33497,7 @@ static int __pyx_pf_3_sa_7Sampler___cinit__(struct __pyx_obj_3_sa_Sampler *__pyx      __pyx_t_2 = PyInt_FromLong(__pyx_v_sample_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      __Pyx_INCREF(((PyObject *)__pyx_kp_s_101));      PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_101));      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_101)); @@ -35573,7 +33509,7 @@ static int __pyx_pf_3_sa_7Sampler___cinit__(struct __pyx_obj_3_sa_Sampler *__pyx      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -    goto __pyx_L3; +    goto __pyx_L6;    }    /*else*/ { @@ -35594,7 +33530,7 @@ static int __pyx_pf_3_sa_7Sampler___cinit__(struct __pyx_obj_3_sa_Sampler *__pyx      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;    } -  __pyx_L3:; +  __pyx_L6:;    __pyx_r = 0;    goto __pyx_L0; @@ -35609,23 +33545,6 @@ static int __pyx_pf_3_sa_7Sampler___cinit__(struct __pyx_obj_3_sa_Sampler *__pyx    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_7Sampler_3sample(PyObject *__pyx_v_self, PyObject *__pyx_v_phrase_location); /*proto*/ -static char __pyx_doc_3_sa_7Sampler_2sample[] = "Returns a sample of the locations for\n        the phrase.    If there are less than self.sample_size\n        locations, return all of them; otherwise, return\n        up to self.sample_size locations.    In the latter case,\n        we choose to sample UNIFORMLY -- that is, the locations\n        are chosen at uniform intervals over the entire set, rather\n        than randomly.    This makes the algorithm deterministic, which\n        is good for things like MERT"; -static PyObject *__pyx_pw_3_sa_7Sampler_3sample(PyObject *__pyx_v_self, PyObject *__pyx_v_phrase_location) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("sample (wrapper)", 0); -  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phrase_location), __pyx_ptype_3_sa_PhraseLocation, 1, "phrase_location", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_r = __pyx_pf_3_sa_7Sampler_2sample(((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self), ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)); -  goto __pyx_L0; -  __pyx_L1_error:; -  __pyx_r = NULL; -  __pyx_L0:; -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":109   *             logger.info("Sampling strategy: no sampling")   *  @@ -35634,7 +33553,9 @@ static PyObject *__pyx_pw_3_sa_7Sampler_3sample(PyObject *__pyx_v_self, PyObject   *         the phrase.    If there are less than self.sample_size   */ -static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *__pyx_v_self, struct __pyx_obj_3_sa_PhraseLocation *__pyx_v_phrase_location) { +static PyObject *__pyx_pf_3_sa_7Sampler_1sample(PyObject *__pyx_v_self, PyObject *__pyx_v_phrase_location); /*proto*/ +static char __pyx_doc_3_sa_7Sampler_1sample[] = "Returns a sample of the locations for\n        the phrase.    If there are less than self.sample_size\n        locations, return all of them; otherwise, return\n        up to self.sample_size locations.    In the latter case,\n        we choose to sample UNIFORMLY -- that is, the locations\n        are chosen at uniform intervals over the entire set, rather\n        than randomly.    This makes the algorithm deterministic, which\n        is good for things like MERT"; +static PyObject *__pyx_pf_3_sa_7Sampler_1sample(PyObject *__pyx_v_self, PyObject *__pyx_v_phrase_location) {    struct __pyx_obj_3_sa_IntList *__pyx_v_sample = 0;    double __pyx_v_i;    double __pyx_v_stepsize; @@ -35651,7 +33572,8 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("sample", 0); +  __Pyx_RefNannySetupContext("sample"); +  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_phrase_location), __pyx_ptype_3_sa_PhraseLocation, 1, "phrase_location", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":122   *         cdef int num_locations, val, j @@ -35672,7 +33594,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *             num_locations = phrase_location.sa_high - phrase_location.sa_low   *             if self.sample_size == -1 or num_locations <= self.sample_size:   */ -  __pyx_t_2 = (((PyObject *)__pyx_v_phrase_location->arr) == Py_None); +  __pyx_t_2 = (((PyObject *)((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->arr) == Py_None);    if (__pyx_t_2) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":124 @@ -35682,7 +33604,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *             if self.sample_size == -1 or num_locations <= self.sample_size:   *                 sample._extend_arr(self.sa.arr + phrase_location.sa_low, num_locations)   */ -    __pyx_v_num_locations = (__pyx_v_phrase_location->sa_high - __pyx_v_phrase_location->sa_low); +    __pyx_v_num_locations = (((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->sa_high - ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->sa_low);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":125   *         if phrase_location.arr is None: @@ -35691,9 +33613,9 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                 sample._extend_arr(self.sa.arr + phrase_location.sa_low, num_locations)   *             else:   */ -    __pyx_t_2 = (__pyx_v_self->sample_size == -1); +    __pyx_t_2 = (((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sample_size == -1);      if (!__pyx_t_2) { -      __pyx_t_3 = (__pyx_v_num_locations <= __pyx_v_self->sample_size); +      __pyx_t_3 = (__pyx_v_num_locations <= ((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sample_size);        __pyx_t_4 = __pyx_t_3;      } else {        __pyx_t_4 = __pyx_t_2; @@ -35707,8 +33629,8 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *             else:   *                 stepsize = float(num_locations)/float(self.sample_size)   */ -      ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_sample->__pyx_vtab)->_extend_arr(__pyx_v_sample, (__pyx_v_self->sa->arr + __pyx_v_phrase_location->sa_low), __pyx_v_num_locations); -      goto __pyx_L4; +      ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_sample->__pyx_vtab)->_extend_arr(__pyx_v_sample, (((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sa->arr + ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->sa_low), __pyx_v_num_locations); +      goto __pyx_L6;      }      /*else*/ { @@ -35719,11 +33641,11 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                 i = phrase_location.sa_low   *                 while i < phrase_location.sa_high and sample.len < self.sample_size:   */ -      if (unlikely(((double)__pyx_v_self->sample_size) == 0)) { +      if (unlikely(((double)((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sample_size) == 0)) {          PyErr_Format(PyExc_ZeroDivisionError, "float division");          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      __pyx_v_stepsize = (((double)__pyx_v_num_locations) / ((double)__pyx_v_self->sample_size)); +      __pyx_v_stepsize = (((double)__pyx_v_num_locations) / ((double)((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sample_size));        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":129   *             else: @@ -35732,7 +33654,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                 while i < phrase_location.sa_high and sample.len < self.sample_size:   *                     '''Note: int(i) not guaranteed to have the desired   */ -      __pyx_v_i = __pyx_v_phrase_location->sa_low; +      __pyx_v_i = ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->sa_low;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":130   *                 stepsize = float(num_locations)/float(self.sample_size) @@ -35742,9 +33664,9 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                     effect, according to the python documentation'''   */        while (1) { -        __pyx_t_4 = (__pyx_v_i < __pyx_v_phrase_location->sa_high); +        __pyx_t_4 = (__pyx_v_i < ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->sa_high);          if (__pyx_t_4) { -          __pyx_t_2 = (__pyx_v_sample->len < __pyx_v_self->sample_size); +          __pyx_t_2 = (__pyx_v_sample->len < ((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sample_size);            __pyx_t_3 = __pyx_t_2;          } else {            __pyx_t_3 = __pyx_t_4; @@ -35769,7 +33691,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                         val = int(floor(i))   */            __pyx_v_val = ((int)ceil(__pyx_v_i)); -          goto __pyx_L7; +          goto __pyx_L9;          }          /*else*/ { @@ -35782,7 +33704,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   */            __pyx_v_val = ((int)floor(__pyx_v_i));          } -        __pyx_L7:; +        __pyx_L9:;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":137   *                     else: @@ -35791,7 +33713,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                     i = i + stepsize   *         else:   */ -        ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_sample->__pyx_vtab)->_append(__pyx_v_sample, (__pyx_v_self->sa->arr[__pyx_v_val])); +        ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_sample->__pyx_vtab)->_append(__pyx_v_sample, (((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sa->arr[__pyx_v_val]));          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":138   *                         val = int(floor(i)) @@ -35803,8 +33725,8 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_          __pyx_v_i = (__pyx_v_i + __pyx_v_stepsize);        }      } -    __pyx_L4:; -    goto __pyx_L3; +    __pyx_L6:; +    goto __pyx_L5;    }    /*else*/ { @@ -35815,16 +33737,16 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *             if self.sample_size == -1 or num_locations <= self.sample_size:   *                 sample = phrase_location.arr   */ -    __pyx_t_5 = (__pyx_v_phrase_location->arr_high - __pyx_v_phrase_location->arr_low); -    if (unlikely(__pyx_v_phrase_location->num_subpatterns == 0)) { +    __pyx_t_5 = (((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->arr_high - ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->arr_low); +    if (unlikely(((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->num_subpatterns == 0)) {        PyErr_Format(PyExc_ZeroDivisionError, "integer division or modulo by zero");        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      } -    else if (sizeof(int) == sizeof(long) && unlikely(__pyx_v_phrase_location->num_subpatterns == -1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_t_5))) { +    else if (sizeof(int) == sizeof(long) && unlikely(((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->num_subpatterns == -1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_t_5))) {        PyErr_Format(PyExc_OverflowError, "value too large to perform division");        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      } -    __pyx_v_num_locations = __Pyx_div_int(__pyx_t_5, __pyx_v_phrase_location->num_subpatterns); +    __pyx_v_num_locations = __Pyx_div_int(__pyx_t_5, ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->num_subpatterns);      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":141   *         else: @@ -35833,9 +33755,9 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                 sample = phrase_location.arr   *             else:   */ -    __pyx_t_3 = (__pyx_v_self->sample_size == -1); +    __pyx_t_3 = (((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sample_size == -1);      if (!__pyx_t_3) { -      __pyx_t_4 = (__pyx_v_num_locations <= __pyx_v_self->sample_size); +      __pyx_t_4 = (__pyx_v_num_locations <= ((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sample_size);        __pyx_t_2 = __pyx_t_4;      } else {        __pyx_t_2 = __pyx_t_3; @@ -35849,10 +33771,10 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *             else:   *                 stepsize = float(num_locations)/float(self.sample_size)   */ -      __Pyx_INCREF(((PyObject *)__pyx_v_phrase_location->arr)); +      __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->arr));        __Pyx_DECREF(((PyObject *)__pyx_v_sample)); -      __pyx_v_sample = __pyx_v_phrase_location->arr; -      goto __pyx_L8; +      __pyx_v_sample = ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->arr; +      goto __pyx_L10;      }      /*else*/ { @@ -35863,11 +33785,11 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                 i = phrase_location.arr_low   *                 while i < num_locations and sample.len < self.sample_size * phrase_location.num_subpatterns:   */ -      if (unlikely(((double)__pyx_v_self->sample_size) == 0)) { +      if (unlikely(((double)((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sample_size) == 0)) {          PyErr_Format(PyExc_ZeroDivisionError, "float division");          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        } -      __pyx_v_stepsize = (((double)__pyx_v_num_locations) / ((double)__pyx_v_self->sample_size)); +      __pyx_v_stepsize = (((double)__pyx_v_num_locations) / ((double)((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sample_size));        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":145   *             else: @@ -35876,7 +33798,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                 while i < num_locations and sample.len < self.sample_size * phrase_location.num_subpatterns:   *                     '''Note: int(i) not guaranteed to have the desired   */ -      __pyx_v_i = __pyx_v_phrase_location->arr_low; +      __pyx_v_i = ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->arr_low;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":146   *                 stepsize = float(num_locations)/float(self.sample_size) @@ -35888,7 +33810,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_        while (1) {          __pyx_t_2 = (__pyx_v_i < __pyx_v_num_locations);          if (__pyx_t_2) { -          __pyx_t_3 = (__pyx_v_sample->len < (__pyx_v_self->sample_size * __pyx_v_phrase_location->num_subpatterns)); +          __pyx_t_3 = (__pyx_v_sample->len < (((struct __pyx_obj_3_sa_Sampler *)__pyx_v_self)->sample_size * ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->num_subpatterns));            __pyx_t_4 = __pyx_t_3;          } else {            __pyx_t_4 = __pyx_t_2; @@ -35913,7 +33835,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                         val = int(floor(i))   */            __pyx_v_val = ((int)ceil(__pyx_v_i)); -          goto __pyx_L11; +          goto __pyx_L13;          }          /*else*/ { @@ -35926,7 +33848,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   */            __pyx_v_val = ((int)floor(__pyx_v_i));          } -        __pyx_L11:; +        __pyx_L13:;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":153   *                     else: @@ -35935,7 +33857,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                     sample._extend_arr(phrase_location.arr.arr + j, phrase_location.num_subpatterns)   *                     i = i + stepsize   */ -        __pyx_v_j = (__pyx_v_phrase_location->arr_low + (__pyx_v_val * __pyx_v_phrase_location->num_subpatterns)); +        __pyx_v_j = (((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->arr_low + (__pyx_v_val * ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->num_subpatterns));          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":154   *                         val = int(floor(i)) @@ -35944,7 +33866,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_   *                     i = i + stepsize   *         return sample   */ -        ((struct __pyx_vtabstruct_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); +        ((struct __pyx_vtabstruct_3_sa_IntList *)__pyx_v_sample->__pyx_vtab)->_extend_arr(__pyx_v_sample, (((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->arr->arr + __pyx_v_j), ((struct __pyx_obj_3_sa_PhraseLocation *)__pyx_v_phrase_location)->num_subpatterns);          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":155   *                     j = phrase_location.arr_low + (val*phrase_location.num_subpatterns) @@ -35956,9 +33878,9 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_          __pyx_v_i = (__pyx_v_i + __pyx_v_stepsize);        }      } -    __pyx_L8:; +    __pyx_L10:;    } -  __pyx_L3:; +  __pyx_L5:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":156   *                     sample._extend_arr(phrase_location.arr.arr + j, phrase_location.num_subpatterns) @@ -35995,7 +33917,7 @@ static PyObject *__pyx_pf_3_sa_7Sampler_2sample(struct __pyx_obj_3_sa_Sampler *_  static void __pyx_f_3_sa_assign_matching(struct __pyx_t_3_sa_Matching *__pyx_v_m, int *__pyx_v_arr, int __pyx_v_start, int __pyx_v_step, int *__pyx_v_sent_id_arr) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("assign_matching", 0); +  __Pyx_RefNannySetupContext("assign_matching");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":169   *  @@ -36053,14 +33975,14 @@ static void __pyx_f_3_sa_assign_matching(struct __pyx_t_3_sa_Matching *__pyx_v_m   *     cdef int i, new_len   */ -static int *__pyx_f_3_sa_append_combined_matching(int *__pyx_v_arr, struct __pyx_t_3_sa_Matching *__pyx_v_loc1, struct __pyx_t_3_sa_Matching *__pyx_v_loc2, CYTHON_UNUSED int __pyx_v_offset_by_one, int __pyx_v_num_subpatterns, int *__pyx_v_result_len) { +static int *__pyx_f_3_sa_append_combined_matching(int *__pyx_v_arr, struct __pyx_t_3_sa_Matching *__pyx_v_loc1, struct __pyx_t_3_sa_Matching *__pyx_v_loc2, int __pyx_v_offset_by_one, int __pyx_v_num_subpatterns, int *__pyx_v_result_len) {    int __pyx_v_i;    int __pyx_v_new_len;    int *__pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1;    int __pyx_t_2; -  __Pyx_RefNannySetupContext("append_combined_matching", 0); +  __Pyx_RefNannySetupContext("append_combined_matching");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":180   *     cdef int i, new_len @@ -36159,7 +34081,7 @@ static int *__pyx_f_3_sa_extend_arr(int *__pyx_v_arr, int *__pyx_v_arr_len, int    int __pyx_v_new_len;    int *__pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("extend_arr", 0); +  __Pyx_RefNannySetupContext("extend_arr");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":194   *     cdef int new_len @@ -36228,7 +34150,7 @@ static int __pyx_f_3_sa_median(int __pyx_v_low, int __pyx_v_high, int __pyx_v_st    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("median", 0); +  __Pyx_RefNannySetupContext("median");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":201   *  @@ -36272,7 +34194,7 @@ static void __pyx_f_3_sa_find_comparable_matchings(int __pyx_v_low, int __pyx_v_    int __pyx_t_1;    int __pyx_t_2;    int __pyx_t_3; -  __Pyx_RefNannySetupContext("find_comparable_matchings", 0); +  __Pyx_RefNannySetupContext("find_comparable_matchings");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":208   *     # in which all matchings have the same first index as the one @@ -36349,9 +34271,16 @@ static void __pyx_f_3_sa_find_comparable_matchings(int __pyx_v_low, int __pyx_v_    __Pyx_RefNannyFinishContext();  } -/* Python wrapper */ -static int __pyx_pw_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":265 + *     cdef IntList findexes1 + *  + *     def __cinit__(self,             # <<<<<<<<<<<<<< + *             # compiled alignment object (REQUIRED) + *             Alignment alignment, + */ + +static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    struct __pyx_obj_3_sa_Alignment *__pyx_v_alignment = 0;    float __pyx_v_by_slack_factor;    char *__pyx_v_category; @@ -36375,9 +34304,18 @@ static int __pyx_pw_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject *__pyx_v_    int __pyx_v_use_index;    int __pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  PyObject *__pyx_t_2 = NULL; +  int __pyx_t_3; +  PyObject *__pyx_t_4 = NULL; +  PyObject *__pyx_t_5 = NULL; +  int __pyx_t_6; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__alignment,&__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_70,&__pyx_n_s__precompute_rank,&__pyx_n_s_104,&__pyx_n_s_105,&__pyx_n_s_71,&__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}; +  __Pyx_RefNannySetupContext("__cinit__");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__alignment,&__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_70,&__pyx_n_s__precompute_rank,&__pyx_n_s_104,&__pyx_n_s_105,&__pyx_n_s_71,&__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[21] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":273 @@ -36417,8 +34355,7 @@ static int __pyx_pw_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject *__pyx_v_      values[10] = ((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) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);          case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);          case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18); @@ -36444,9 +34381,10 @@ static int __pyx_pw_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject *__pyx_v_          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__alignment)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__alignment); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1:          if (kw_args > 0) { @@ -36550,7 +34488,7 @@ static int __pyx_pw_3_sa_23HieroCachingRuleFactory_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 = 265; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -36581,7 +34519,7 @@ static int __pyx_pw_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject *__pyx_v_      }      __pyx_v_alignment = ((struct __pyx_obj_3_sa_Alignment *)values[0]);      if (values[1]) { -      __pyx_v_by_slack_factor = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_by_slack_factor == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +      __pyx_v_by_slack_factor = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_by_slack_factor == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L3_error;}      } else {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":269 @@ -36730,36 +34668,6 @@ static int __pyx_pw_3_sa_23HieroCachingRuleFactory_1__cinit__(PyObject *__pyx_v_    return -1;    __pyx_L4_argument_unpacking_done:;    if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_alignment), __pyx_ptype_3_sa_Alignment, 1, "alignment", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), __pyx_v_alignment, __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); -  goto __pyx_L0; -  __pyx_L1_error:; -  __pyx_r = -1; -  __pyx_L0:; -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":265 - *     cdef IntList findexes1 - *  - *     def __cinit__(self,             # <<<<<<<<<<<<<< - *             # compiled alignment object (REQUIRED) - *             Alignment alignment, - */ - -static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, struct __pyx_obj_3_sa_Alignment *__pyx_v_alignment, float __pyx_v_by_slack_factor, char *__pyx_v_category, PyObject *__pyx_v_max_chunks, unsigned int __pyx_v_max_initial_size, unsigned int __pyx_v_max_length, unsigned int __pyx_v_max_nonterminals, PyObject *__pyx_v_max_target_chunks, PyObject *__pyx_v_max_target_length, unsigned int __pyx_v_min_gap_size, PyObject *__pyx_v_precompute_file, unsigned int __pyx_v_precompute_secondary_rank, unsigned int __pyx_v_precompute_rank, int __pyx_v_require_aligned_terminal, int __pyx_v_require_aligned_chunks, unsigned int __pyx_v_train_max_initial_size, unsigned int __pyx_v_train_min_gap_size, int __pyx_v_tight_phrases, int __pyx_v_use_baeza_yates, int __pyx_v_use_collocations, int __pyx_v_use_index) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  PyObject *__pyx_t_2 = NULL; -  int __pyx_t_3; -  PyObject *__pyx_t_4 = NULL; -  PyObject *__pyx_t_5 = NULL; -  int __pyx_t_6; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":313   *         respectively.    This is because Chiang's model does not require @@ -36771,7 +34679,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_    __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 313; __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 = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    __pyx_t_1 = 0; @@ -36779,9 +34687,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_    __Pyx_GOTREF(__pyx_t_1);    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __Pyx_GIVEREF(__pyx_t_1); -  __Pyx_GOTREF(__pyx_v_self->rules); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->rules)); -  __pyx_v_self->rules = ((struct __pyx_obj_3_sa_TrieTable *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->rules); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->rules)); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->rules = ((struct __pyx_obj_3_sa_TrieTable *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":314 @@ -36797,13 +34705,13 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_    __Pyx_GOTREF(__pyx_t_2);    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__phrase_location), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;    __Pyx_GIVEREF(__pyx_t_2); -  __Pyx_GOTREF(__pyx_v_self->rules->root); -  __Pyx_DECREF(__pyx_v_self->rules->root); -  __pyx_v_self->rules->root = __pyx_t_2; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->rules->root); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->rules->root); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->rules->root = __pyx_t_2;    __pyx_t_2 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":315 @@ -36828,9 +34736,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_      __Pyx_Raise(__pyx_t_2, 0, 0, 0);      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":317   *         if alignment is None: @@ -36841,9 +34749,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   */    __Pyx_INCREF(((PyObject *)__pyx_v_alignment));    __Pyx_GIVEREF(((PyObject *)__pyx_v_alignment)); -  __Pyx_GOTREF(__pyx_v_self->alignment); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->alignment)); -  __pyx_v_self->alignment = __pyx_v_alignment; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->alignment); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->alignment)); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->alignment = __pyx_v_alignment;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":321   *         # grammar parameters and settings @@ -36852,7 +34760,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         self.max_nonterminals = max_nonterminals   *         self.max_initial_size = max_initial_size   */ -  __pyx_v_self->max_length = __pyx_v_max_length; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_length = __pyx_v_max_length;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":322   *         # NOTE: setting max_nonterminals > 2 is not currently supported in Hiero @@ -36861,7 +34769,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         self.max_initial_size = max_initial_size   *         self.train_max_initial_size = train_max_initial_size   */ -  __pyx_v_self->max_nonterminals = __pyx_v_max_nonterminals; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_nonterminals = __pyx_v_max_nonterminals;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":323   *         self.max_length = max_length @@ -36870,7 +34778,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         self.train_max_initial_size = train_max_initial_size   *         self.min_gap_size = min_gap_size   */ -  __pyx_v_self->max_initial_size = __pyx_v_max_initial_size; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_initial_size = __pyx_v_max_initial_size;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":324   *         self.max_nonterminals = max_nonterminals @@ -36879,7 +34787,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         self.min_gap_size = min_gap_size   *         self.train_min_gap_size = train_min_gap_size   */ -  __pyx_v_self->train_max_initial_size = __pyx_v_train_max_initial_size; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->train_max_initial_size = __pyx_v_train_max_initial_size;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":325   *         self.max_initial_size = max_initial_size @@ -36888,7 +34796,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         self.train_min_gap_size = train_min_gap_size   *         self.category = sym_fromstring(category, False)   */ -  __pyx_v_self->min_gap_size = __pyx_v_min_gap_size; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->min_gap_size = __pyx_v_min_gap_size;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":326   *         self.train_max_initial_size = train_max_initial_size @@ -36897,7 +34805,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         self.category = sym_fromstring(category, False)   *    */ -  __pyx_v_self->train_min_gap_size = __pyx_v_train_min_gap_size; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->train_min_gap_size = __pyx_v_train_min_gap_size;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":327   *         self.min_gap_size = min_gap_size @@ -36913,7 +34821,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_    __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 327; __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[8]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_5); +  __Pyx_GOTREF(((PyObject *)__pyx_t_5));    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1));    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); @@ -36926,7 +34834,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;    __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -  __pyx_v_self->category = __pyx_t_6; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->category = __pyx_t_6;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":329   *         self.category = sym_fromstring(category, False) @@ -36945,8 +34853,8 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         else:   *             self.max_chunks = max_chunks   */ -    __pyx_v_self->max_chunks = (__pyx_v_self->max_nonterminals + 1); -    goto __pyx_L4; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_chunks = (((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_nonterminals + 1); +    goto __pyx_L7;    }    /*else*/ { @@ -36958,9 +34866,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         if max_target_chunks is None:   */      __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_max_chunks); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_v_self->max_chunks = __pyx_t_6; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_chunks = __pyx_t_6;    } -  __pyx_L4:; +  __pyx_L7:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":334   *             self.max_chunks = max_chunks @@ -36979,8 +34887,8 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         else:   *             self.max_target_chunks = max_target_chunks   */ -    __pyx_v_self->max_target_chunks = (__pyx_v_self->max_nonterminals + 1); -    goto __pyx_L5; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_target_chunks = (((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_nonterminals + 1); +    goto __pyx_L8;    }    /*else*/ { @@ -36992,9 +34900,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         if max_target_length is None:   */      __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_max_target_chunks); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_v_self->max_target_chunks = __pyx_t_6; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_target_chunks = __pyx_t_6;    } -  __pyx_L5:; +  __pyx_L8:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":339   *             self.max_target_chunks = max_target_chunks @@ -37013,8 +34921,8 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         else:   *             self.max_target_length = max_target_length   */ -    __pyx_v_self->max_target_length = __pyx_v_max_initial_size; -    goto __pyx_L6; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_target_length = __pyx_v_max_initial_size; +    goto __pyx_L9;    }    /*else*/ { @@ -37026,9 +34934,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         # algorithmic parameters and settings   */      __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_max_target_length); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_v_self->max_target_length = __pyx_t_6; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_target_length = __pyx_t_6;    } -  __pyx_L6:; +  __pyx_L9:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":345   *  @@ -37040,9 +34948,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_4));    __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); -  __Pyx_GOTREF(__pyx_v_self->precomputed_collocations); -  __Pyx_DECREF(__pyx_v_self->precomputed_collocations); -  __pyx_v_self->precomputed_collocations = ((PyObject *)__pyx_t_4); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precomputed_collocations); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precomputed_collocations); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precomputed_collocations = ((PyObject *)__pyx_t_4);    __pyx_t_4 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":346 @@ -37055,9 +34963,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_4));    __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); -  __Pyx_GOTREF(__pyx_v_self->precomputed_index); -  __Pyx_DECREF(__pyx_v_self->precomputed_index); -  __pyx_v_self->precomputed_index = ((PyObject *)__pyx_t_4); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precomputed_index); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precomputed_index); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precomputed_index = ((PyObject *)__pyx_t_4);    __pyx_t_4 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":347 @@ -37067,7 +34975,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         self.use_collocations = use_collocations   *         self.max_rank = {}   */ -  __pyx_v_self->use_index = __pyx_v_use_index; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->use_index = __pyx_v_use_index;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":348   *         self.precomputed_index = {} @@ -37076,7 +34984,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         self.max_rank = {}   *         self.precompute_file = precompute_file   */ -  __pyx_v_self->use_collocations = __pyx_v_use_collocations; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->use_collocations = __pyx_v_use_collocations;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":349   *         self.use_index = use_index @@ -37088,9 +34996,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_4));    __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); -  __Pyx_GOTREF(__pyx_v_self->max_rank); -  __Pyx_DECREF(__pyx_v_self->max_rank); -  __pyx_v_self->max_rank = ((PyObject *)__pyx_t_4); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_rank); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_rank); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_rank = ((PyObject *)__pyx_t_4);    __pyx_t_4 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":350 @@ -37102,9 +35010,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   */    __Pyx_INCREF(__pyx_v_precompute_file);    __Pyx_GIVEREF(__pyx_v_precompute_file); -  __Pyx_GOTREF(__pyx_v_self->precompute_file); -  __Pyx_DECREF(__pyx_v_self->precompute_file); -  __pyx_v_self->precompute_file = __pyx_v_precompute_file; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precompute_file); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precompute_file); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precompute_file = __pyx_v_precompute_file;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":351   *         self.max_rank = {} @@ -37113,7 +35021,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         self.precompute_secondary_rank = precompute_secondary_rank   *         self.use_baeza_yates = use_baeza_yates   */ -  __pyx_v_self->precompute_rank = __pyx_v_precompute_rank; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precompute_rank = __pyx_v_precompute_rank;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":352   *         self.precompute_file = precompute_file @@ -37122,7 +35030,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         self.use_baeza_yates = use_baeza_yates   *         self.by_slack_factor = by_slack_factor   */ -  __pyx_v_self->precompute_secondary_rank = __pyx_v_precompute_secondary_rank; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precompute_secondary_rank = __pyx_v_precompute_secondary_rank;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":353   *         self.precompute_rank = precompute_rank @@ -37131,7 +35039,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         self.by_slack_factor = by_slack_factor   *         if tight_phrases:   */ -  __pyx_v_self->use_baeza_yates = __pyx_v_use_baeza_yates; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->use_baeza_yates = __pyx_v_use_baeza_yates;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":354   *         self.precompute_secondary_rank = precompute_secondary_rank @@ -37140,7 +35048,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         if tight_phrases:   *             self.tight_phrases = 1   */ -  __pyx_v_self->by_slack_factor = __pyx_v_by_slack_factor; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->by_slack_factor = __pyx_v_by_slack_factor;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":355   *         self.use_baeza_yates = use_baeza_yates @@ -37158,8 +35066,8 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         else:   *             self.tight_phrases = 0   */ -    __pyx_v_self->tight_phrases = 1; -    goto __pyx_L7; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->tight_phrases = 1; +    goto __pyx_L10;    }    /*else*/ { @@ -37170,9 +35078,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *    *         if require_aligned_chunks:   */ -    __pyx_v_self->tight_phrases = 0; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->tight_phrases = 0;    } -  __pyx_L7:; +  __pyx_L10:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":360   *             self.tight_phrases = 0 @@ -37190,7 +35098,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *             self.require_aligned_terminal = 1   *         elif require_aligned_terminal:   */ -    __pyx_v_self->require_aligned_chunks = 1; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->require_aligned_chunks = 1;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":363   *             # one condition is a stronger version of the other. @@ -37199,8 +35107,8 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         elif require_aligned_terminal:   *             self.require_aligned_chunks = 0   */ -    __pyx_v_self->require_aligned_terminal = 1; -    goto __pyx_L8; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->require_aligned_terminal = 1; +    goto __pyx_L11;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":364 @@ -37219,7 +35127,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *             self.require_aligned_terminal = 1   *         else:   */ -    __pyx_v_self->require_aligned_chunks = 0; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->require_aligned_chunks = 0;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":366   *         elif require_aligned_terminal: @@ -37228,8 +35136,8 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *         else:   *             self.require_aligned_chunks = 0   */ -    __pyx_v_self->require_aligned_terminal = 1; -    goto __pyx_L8; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->require_aligned_terminal = 1; +    goto __pyx_L11;    }    /*else*/ { @@ -37240,7 +35148,7 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *             self.require_aligned_terminal = 0   *    */ -    __pyx_v_self->require_aligned_chunks = 0; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->require_aligned_chunks = 0;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":369   *         else: @@ -37249,9 +35157,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   *    *    */ -    __pyx_v_self->require_aligned_terminal = 0; +    ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->require_aligned_terminal = 0;    } -  __pyx_L8:; +  __pyx_L11:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":373   *  @@ -37262,9 +35170,9 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_   */    __Pyx_INCREF(((PyObject *)__pyx_empty_tuple));    __Pyx_GIVEREF(((PyObject *)__pyx_empty_tuple)); -  __Pyx_GOTREF(__pyx_v_self->prev_norm_prefix); -  __Pyx_DECREF(__pyx_v_self->prev_norm_prefix); -  __pyx_v_self->prev_norm_prefix = ((PyObject *)__pyx_empty_tuple); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->prev_norm_prefix); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->prev_norm_prefix); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->prev_norm_prefix = ((PyObject *)__pyx_empty_tuple);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":375   *         self.prev_norm_prefix = () @@ -37276,13 +35184,13 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_4));    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__initial_len), __pyx_int_10) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_5);    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;    __Pyx_GIVEREF(__pyx_t_5); -  __Pyx_GOTREF(__pyx_v_self->findexes); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->findexes)); -  __pyx_v_self->findexes = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_5); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->findexes); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->findexes)); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->findexes = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_5);    __pyx_t_5 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":376 @@ -37295,13 +35203,13 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(((PyObject *)__pyx_t_5));    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__initial_len), __pyx_int_10) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_4);    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;    __Pyx_GIVEREF(__pyx_t_4); -  __Pyx_GOTREF(__pyx_v_self->findexes1); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->findexes1)); -  __pyx_v_self->findexes1 = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_4); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->findexes1); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->findexes1)); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->findexes1 = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_4);    __pyx_t_4 = 0;    __pyx_r = 0; @@ -37318,24 +35226,35 @@ static int __pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(struct __pyx_obj_3_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_3configure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_3_sa_23HieroCachingRuleFactory_2configure[] = "This gives the RuleFactory access to the Context object.\n        Here we also use it to precompute the most expensive intersections\n        in the corpus quickly."; -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_3configure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":378 + *         self.findexes1 = IntList(initial_len=10) + *  + *     def configure(self, SuffixArray fsarray, DataArray edarray,             # <<<<<<<<<<<<<< + *             Sampler sampler, Scorer scorer): + *         '''This gives the RuleFactory access to the Context object. + */ + +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_1configure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_3_sa_23HieroCachingRuleFactory_1configure[] = "This gives the RuleFactory access to the Context object.\n        Here we also use it to precompute the most expensive intersections\n        in the corpus quickly."; +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_1configure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    struct __pyx_obj_3_sa_SuffixArray *__pyx_v_fsarray = 0;    struct __pyx_obj_3_sa_DataArray *__pyx_v_edarray = 0;    struct __pyx_obj_3_sa_Sampler *__pyx_v_sampler = 0;    struct __pyx_obj_3_sa_Scorer *__pyx_v_scorer = 0; -  PyObject *__pyx_r = 0; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("configure (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  PyObject *__pyx_t_2 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fsarray,&__pyx_n_s__edarray,&__pyx_n_s__sampler,&__pyx_n_s__scorer,0}; +  __Pyx_RefNannySetupContext("configure");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fsarray,&__pyx_n_s__edarray,&__pyx_n_s__sampler,&__pyx_n_s__scorer,0};      PyObject* values[4] = {0,0,0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); @@ -37344,28 +35263,32 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_3configure(PyObject *__          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fsarray)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fsarray); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__edarray)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__edarray); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("configure", 1, 4, 4, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2: -        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sampler)) != 0)) kw_args--; +        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sampler); +        if (likely(values[2])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("configure", 1, 4, 4, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  3: -        if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__scorer)) != 0)) kw_args--; +        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__scorer); +        if (likely(values[3])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("configure", 1, 4, 4, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 378; __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 = 378; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "configure") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {        goto __pyx_L5_argtuple_error; @@ -37392,32 +35315,6 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_3configure(PyObject *__    if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_edarray), __pyx_ptype_3_sa_DataArray, 1, "edarray", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sampler), __pyx_ptype_3_sa_Sampler, 1, "sampler", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scorer), __pyx_ptype_3_sa_Scorer, 1, "scorer", 0))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), __pyx_v_fsarray, __pyx_v_edarray, __pyx_v_sampler, __pyx_v_scorer); -  goto __pyx_L0; -  __pyx_L1_error:; -  __pyx_r = NULL; -  __pyx_L0:; -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":378 - *         self.findexes1 = IntList(initial_len=10) - *  - *     def configure(self, SuffixArray fsarray, DataArray edarray,             # <<<<<<<<<<<<<< - *             Sampler sampler, Scorer scorer): - *         '''This gives the RuleFactory access to the Context object. - */ - -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, struct __pyx_obj_3_sa_SuffixArray *__pyx_v_fsarray, struct __pyx_obj_3_sa_DataArray *__pyx_v_edarray, struct __pyx_obj_3_sa_Sampler *__pyx_v_sampler, struct __pyx_obj_3_sa_Scorer *__pyx_v_scorer) { -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  PyObject *__pyx_t_2 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("configure", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":383   *         Here we also use it to precompute the most expensive intersections @@ -37428,9 +35325,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(struct __pyx   */    __Pyx_INCREF(((PyObject *)__pyx_v_fsarray));    __Pyx_GIVEREF(((PyObject *)__pyx_v_fsarray)); -  __Pyx_GOTREF(__pyx_v_self->fsa); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->fsa)); -  __pyx_v_self->fsa = __pyx_v_fsarray; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fsa); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fsa)); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fsa = __pyx_v_fsarray;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":384   *         in the corpus quickly.''' @@ -37441,9 +35338,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(struct __pyx   */    __Pyx_INCREF(((PyObject *)__pyx_v_fsarray->darray));    __Pyx_GIVEREF(((PyObject *)__pyx_v_fsarray->darray)); -  __Pyx_GOTREF(__pyx_v_self->fda); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->fda)); -  __pyx_v_self->fda = __pyx_v_fsarray->darray; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fda); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fda)); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fda = __pyx_v_fsarray->darray;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":385   *         self.fsa = fsarray @@ -37454,9 +35351,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(struct __pyx   */    __Pyx_INCREF(((PyObject *)__pyx_v_edarray));    __Pyx_GIVEREF(((PyObject *)__pyx_v_edarray)); -  __Pyx_GOTREF(__pyx_v_self->eda); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->eda)); -  __pyx_v_self->eda = __pyx_v_edarray; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->eda); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->eda)); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->eda = __pyx_v_edarray;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":386   *         self.fda = fsarray.darray @@ -37465,16 +35362,16 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(struct __pyx   *         self.eid2symid = self.set_idmap(self.eda)   *         self.precompute()   */ -  __pyx_t_1 = ((PyObject *)__pyx_v_self->fda); +  __pyx_t_1 = ((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fda);    __Pyx_INCREF(__pyx_t_1); -  __pyx_t_2 = ((struct __pyx_vtabstruct_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->set_idmap(__pyx_v_self, ((struct __pyx_obj_3_sa_DataArray *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = ((struct __pyx_vtabstruct_3_sa_HieroCachingRuleFactory *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->__pyx_vtab)->set_idmap(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), ((struct __pyx_obj_3_sa_DataArray *)__pyx_t_1)); 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_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 386; __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_3_sa_IntList *)__pyx_t_2); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fid2symid); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fid2symid)); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fid2symid = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_2);    __pyx_t_2 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":387 @@ -37484,16 +35381,16 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(struct __pyx   *         self.precompute()   *         self.sampler = sampler   */ -  __pyx_t_2 = ((PyObject *)__pyx_v_self->eda); +  __pyx_t_2 = ((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->eda);    __Pyx_INCREF(__pyx_t_2); -  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_HieroCachingRuleFactory *)__pyx_v_self->__pyx_vtab)->set_idmap(__pyx_v_self, ((struct __pyx_obj_3_sa_DataArray *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((struct __pyx_vtabstruct_3_sa_HieroCachingRuleFactory *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->__pyx_vtab)->set_idmap(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), ((struct __pyx_obj_3_sa_DataArray *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 387; __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_3_sa_IntList))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 387; __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_3_sa_IntList *)__pyx_t_1); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->eid2symid); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->eid2symid)); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->eid2symid = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_1);    __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":388 @@ -37503,7 +35400,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(struct __pyx   *         self.sampler = sampler   *         self.scorer = scorer   */ -  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__precompute); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__precompute); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 388; __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[8]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); @@ -37519,9 +35416,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(struct __pyx   */    __Pyx_INCREF(((PyObject *)__pyx_v_sampler));    __Pyx_GIVEREF(((PyObject *)__pyx_v_sampler)); -  __Pyx_GOTREF(__pyx_v_self->sampler); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->sampler)); -  __pyx_v_self->sampler = __pyx_v_sampler; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->sampler); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->sampler)); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->sampler = __pyx_v_sampler;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":390   *         self.precompute() @@ -37532,9 +35429,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(struct __pyx   */    __Pyx_INCREF(((PyObject *)__pyx_v_scorer));    __Pyx_GIVEREF(((PyObject *)__pyx_v_scorer)); -  __Pyx_GOTREF(__pyx_v_self->scorer); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->scorer)); -  __pyx_v_self->scorer = __pyx_v_scorer; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->scorer); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->scorer)); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->scorer = __pyx_v_scorer;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -37557,7 +35454,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2configure(struct __pyx   *         cdef IntList idmap   */ -static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_set_idmap(CYTHON_UNUSED struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, struct __pyx_obj_3_sa_DataArray *__pyx_v_darray) { +static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_set_idmap(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, struct __pyx_obj_3_sa_DataArray *__pyx_v_darray) {    int __pyx_v_word_id;    int __pyx_v_new_word_id;    int __pyx_v_N; @@ -37574,7 +35471,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_set_idmap(CYTHON_UNUSED    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("set_idmap", 0); +  __Pyx_RefNannySetupContext("set_idmap");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":396   *         cdef IntList idmap @@ -37602,7 +35499,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_set_idmap(CYTHON_UNUSED    __Pyx_GOTREF(__pyx_t_3);    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;    __pyx_v_idmap = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_3); @@ -37632,7 +35529,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_set_idmap(CYTHON_UNUSED      __pyx_t_5 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 399; __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[8]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_6); +    __Pyx_GOTREF(((PyObject *)__pyx_t_6));      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);      __Pyx_GIVEREF(__pyx_t_1);      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); @@ -37685,17 +35582,6 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_set_idmap(CYTHON_UNUSED    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_5pattern2phrase(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern); /*proto*/ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_5pattern2phrase(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("pattern2phrase (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), ((PyObject *)__pyx_v_pattern)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":404   *    *  @@ -37704,7 +35590,8 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_5pattern2phrase(PyObjec   *         result = ()   */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_pattern) { +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2pattern2phrase(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern); /*proto*/ +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_2pattern2phrase(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern) {    PyObject *__pyx_v_result = NULL;    PyObject *__pyx_v_arity = NULL;    PyObject *__pyx_v_word_id = NULL; @@ -37723,7 +35610,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(struct    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("pattern2phrase", 0); +  __Pyx_RefNannySetupContext("pattern2phrase");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":406   *     def pattern2phrase(self, pattern): @@ -37761,20 +35648,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(struct      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) { +    if (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 = 408; __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 = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; +    } else if (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 = 408; __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 = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1);        if (unlikely(!__pyx_t_4)) { @@ -37797,7 +35676,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(struct   *                 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 = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_v_word_id, __pyx_int_neg_1, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_4);      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      if (__pyx_t_5) { @@ -37823,12 +35703,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(struct   *                 new_id = sym_fromstring(self.fda.id2word[word_id], True)   */        __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_arity); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_4 = PyInt_FromLong(__pyx_f_3_sa_sym_setindex(__pyx_v_self->category, __pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyInt_FromLong(__pyx_f_3_sa_sym_setindex(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->category, __pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_XDECREF(__pyx_v_new_id);        __pyx_v_new_id = __pyx_t_4;        __pyx_t_4 = 0; -      goto __pyx_L5; +      goto __pyx_L7;      }      /*else*/ { @@ -37841,12 +35721,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(struct   */        __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__sym_fromstring); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_7 = PyObject_GetItem(__pyx_v_self->fda->id2word, __pyx_v_word_id); if (!__pyx_t_7) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyObject_GetItem(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fda->id2word, __pyx_v_word_id); if (!__pyx_t_7) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_7);        __pyx_t_8 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_9); +      __Pyx_GOTREF(((PyObject *)__pyx_t_9));        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7);        __Pyx_GIVEREF(__pyx_t_7);        PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8); @@ -37861,7 +35741,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(struct        __pyx_v_new_id = __pyx_t_8;        __pyx_t_8 = 0;      } -    __pyx_L5:; +    __pyx_L7:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":414   *             else: @@ -37871,7 +35751,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(struct   *    */      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_8); +    __Pyx_GOTREF(((PyObject *)__pyx_t_8));      __Pyx_INCREF(__pyx_v_new_id);      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_new_id);      __Pyx_GIVEREF(__pyx_v_new_id); @@ -37893,7 +35773,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(struct   */    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_INCREF(((PyObject *)__pyx_v_result));    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_result));    __Pyx_GIVEREF(((PyObject *)__pyx_v_result)); @@ -37924,17 +35804,6 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4pattern2phrase(struct    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_7pattern2phrase_plus(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern); /*proto*/ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_7pattern2phrase_plus(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("pattern2phrase_plus (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), ((PyObject *)__pyx_v_pattern)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":417   *         return Phrase(result)   *  @@ -37943,7 +35812,8 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_7pattern2phrase_plus(Py   *         # suffixed/prefixed with the NT category.   */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_pattern) { +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_3pattern2phrase_plus(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern); /*proto*/ +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_3pattern2phrase_plus(PyObject *__pyx_v_self, PyObject *__pyx_v_pattern) {    PyObject *__pyx_v_patterns = NULL;    PyObject *__pyx_v_result = NULL;    PyObject *__pyx_v_arity = NULL; @@ -37964,7 +35834,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("pattern2phrase_plus", 0); +  __Pyx_RefNannySetupContext("pattern2phrase_plus");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":420   *         # returns a list containing both the pattern, and pattern @@ -37974,7 +35844,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st   *         arity = 0   */    __pyx_t_1 = PyList_New(0); 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_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_patterns = __pyx_t_1;    __pyx_t_1 = 0; @@ -38014,20 +35884,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) { +    if (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 = 423; __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 = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; +    } else if (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 = 423; __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 = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1);        if (unlikely(!__pyx_t_4)) { @@ -38050,7 +35912,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st   *                 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 = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_v_word_id, __pyx_int_neg_1, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_4);      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      if (__pyx_t_5) { @@ -38076,12 +35939,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st   *                 new_id = sym_fromstring(self.fda.id2word[word_id], True)   */        __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_arity); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_4 = PyInt_FromLong(__pyx_f_3_sa_sym_setindex(__pyx_v_self->category, __pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyInt_FromLong(__pyx_f_3_sa_sym_setindex(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->category, __pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __Pyx_XDECREF(__pyx_v_new_id);        __pyx_v_new_id = __pyx_t_4;        __pyx_t_4 = 0; -      goto __pyx_L5; +      goto __pyx_L7;      }      /*else*/ { @@ -38094,12 +35957,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st   */        __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__sym_fromstring); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_7 = PyObject_GetItem(__pyx_v_self->fda->id2word, __pyx_v_word_id); if (!__pyx_t_7) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyObject_GetItem(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->fda->id2word, __pyx_v_word_id); if (!__pyx_t_7) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_7);        __pyx_t_8 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_8);        __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_9); +      __Pyx_GOTREF(((PyObject *)__pyx_t_9));        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7);        __Pyx_GIVEREF(__pyx_t_7);        PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8); @@ -38114,7 +35977,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st        __pyx_v_new_id = __pyx_t_8;        __pyx_t_8 = 0;      } -    __pyx_L5:; +    __pyx_L7:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":429   *             else: @@ -38124,7 +35987,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st   *         patterns.append(Phrase(result + (sym_setindex(self.category, 1),)))   */      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_8); +    __Pyx_GOTREF(((PyObject *)__pyx_t_8));      __Pyx_INCREF(__pyx_v_new_id);      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_new_id);      __Pyx_GIVEREF(__pyx_v_new_id); @@ -38144,8 +36007,11 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st   *         patterns.append(Phrase(result + (sym_setindex(self.category, 1),)))   *         patterns.append(Phrase((sym_setindex(self.category, 1),) + result))   */ +  if (unlikely(((PyObject *)__pyx_v_patterns) == Py_None)) { +    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 430; __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 = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_INCREF(((PyObject *)__pyx_v_result));    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_result));    __Pyx_GIVEREF(((PyObject *)__pyx_v_result)); @@ -38162,10 +36028,13 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st   *         patterns.append(Phrase((sym_setindex(self.category, 1),) + result))   *         return patterns   */ -  __pyx_t_9 = PyInt_FromLong(__pyx_f_3_sa_sym_setindex(__pyx_v_self->category, 1)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(((PyObject *)__pyx_v_patterns) == Py_None)) { +    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +  } +  __pyx_t_9 = PyInt_FromLong(__pyx_f_3_sa_sym_setindex(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->category, 1)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_9);    __pyx_t_1 = PyTuple_New(1); 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_GOTREF(((PyObject *)__pyx_t_1));    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9);    __Pyx_GIVEREF(__pyx_t_9);    __pyx_t_9 = 0; @@ -38173,7 +36042,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st    __Pyx_GOTREF(((PyObject *)__pyx_t_9));    __Pyx_DECREF(((PyObject *)__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 = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_9));    __Pyx_GIVEREF(((PyObject *)__pyx_t_9));    __pyx_t_9 = 0; @@ -38190,10 +36059,13 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st   *         return patterns   *    */ -  __pyx_t_9 = PyInt_FromLong(__pyx_f_3_sa_sym_setindex(__pyx_v_self->category, 1)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(((PyObject *)__pyx_v_patterns) == Py_None)) { +    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +  } +  __pyx_t_9 = PyInt_FromLong(__pyx_f_3_sa_sym_setindex(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->category, 1)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_9);    __pyx_t_1 = PyTuple_New(1); 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_GOTREF(((PyObject *)__pyx_t_1));    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9);    __Pyx_GIVEREF(__pyx_t_9);    __pyx_t_9 = 0; @@ -38201,7 +36073,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st    __Pyx_GOTREF(((PyObject *)__pyx_t_9));    __Pyx_DECREF(((PyObject *)__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 = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_9));    __Pyx_GIVEREF(((PyObject *)__pyx_t_9));    __pyx_t_9 = 0; @@ -38244,17 +36116,6 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6pattern2phrase_plus(st    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_9precompute(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_9precompute(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("precompute (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":435   *         return patterns   *  @@ -38263,7 +36124,8 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_9precompute(PyObject *_   *    */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4precompute(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_4precompute(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {    struct __pyx_obj_3_sa_Precomputation *__pyx_v_pre = 0;    PyObject *__pyx_v_start_time = NULL;    PyObject *__pyx_v_pattern = NULL; @@ -38279,15 +36141,15 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py    PyObject *__pyx_t_4 = NULL;    PyObject *__pyx_t_5 = NULL;    Py_ssize_t __pyx_t_6; -  Py_ssize_t __pyx_t_7; -  int __pyx_t_8; -  int __pyx_t_9; +  PyObject *(*__pyx_t_7)(PyObject *); +  PyObject *__pyx_t_8 = NULL; +  PyObject *(*__pyx_t_9)(PyObject *);    Py_ssize_t __pyx_t_10;    PyObject *(*__pyx_t_11)(PyObject *);    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("precompute", 0); +  __Pyx_RefNannySetupContext("precompute");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":438   *         cdef Precomputation pre @@ -38296,7 +36158,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *             start_time = monitor_cpu()   *             logger.info("Reading precomputed data from file %s... ", self.precompute_file)   */ -  __pyx_t_1 = (__pyx_v_self->precompute_file != Py_None); +  __pyx_t_1 = (((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precompute_file != Py_None);    if (__pyx_t_1) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":439 @@ -38324,13 +36186,13 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py      __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 = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      __Pyx_INCREF(((PyObject *)__pyx_kp_s_109));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_109));      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_109)); -    __Pyx_INCREF(__pyx_v_self->precompute_file); -    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->precompute_file); -    __Pyx_GIVEREF(__pyx_v_self->precompute_file); +    __Pyx_INCREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precompute_file); +    PyTuple_SET_ITEM(__pyx_t_2, 1, ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precompute_file); +    __Pyx_GIVEREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precompute_file);      __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -38346,8 +36208,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   */      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_4)); -    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__from_binary), __pyx_v_self->precompute_file) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_Precomputation)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__from_binary), ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precompute_file) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_Precomputation)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;      __pyx_v_pre = ((struct __pyx_obj_3_sa_Precomputation *)__pyx_t_2); @@ -38360,7 +36222,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *                 logger.warn("Precomputation done with max nonterminals %d, decoder uses %d", pre.max_nonterminals, self.max_nonterminals)   *             if pre.max_length != self.max_length:   */ -    __pyx_t_1 = (__pyx_v_pre->max_nonterminals != __pyx_v_self->max_nonterminals); +    __pyx_t_1 = (__pyx_v_pre->max_nonterminals != ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_nonterminals);      if (__pyx_t_1) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":444 @@ -38377,10 +36239,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __pyx_t_2 = PyInt_FromLong(__pyx_v_pre->max_nonterminals); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_3 = PyInt_FromLong(__pyx_v_self->max_nonterminals); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_nonterminals); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3);        __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_5); +      __Pyx_GOTREF(((PyObject *)__pyx_t_5));        __Pyx_INCREF(((PyObject *)__pyx_kp_s_110));        PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_kp_s_110));        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_110)); @@ -38395,9 +36257,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      goto __pyx_L4; +      goto __pyx_L6;      } -    __pyx_L4:; +    __pyx_L6:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":445   *             if pre.max_nonterminals != self.max_nonterminals: @@ -38406,7 +36268,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *                 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:   */ -    __pyx_t_1 = (__pyx_v_pre->max_length != __pyx_v_self->max_length); +    __pyx_t_1 = (__pyx_v_pre->max_length != ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_length);      if (__pyx_t_1) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":446 @@ -38423,10 +36285,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __pyx_t_3 = PyInt_FromLong(__pyx_v_pre->max_length); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_4 = PyInt_FromLong(__pyx_v_self->max_length); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_length); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_2); +      __Pyx_GOTREF(((PyObject *)__pyx_t_2));        __Pyx_INCREF(((PyObject *)__pyx_kp_s_111));        PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_111));        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_111)); @@ -38441,9 +36303,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -      goto __pyx_L5; +      goto __pyx_L7;      } -    __pyx_L5:; +    __pyx_L7:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":447   *             if pre.max_length != self.max_length: @@ -38452,7 +36314,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *                 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:   */ -    __pyx_t_1 = (__pyx_v_pre->train_max_initial_size != __pyx_v_self->train_max_initial_size); +    __pyx_t_1 = (__pyx_v_pre->train_max_initial_size != ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->train_max_initial_size);      if (__pyx_t_1) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":448 @@ -38464,10 +36326,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   */        __pyx_t_4 = PyInt_FromLong(__pyx_v_pre->train_max_initial_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_2 = PyInt_FromLong(__pyx_v_self->train_max_initial_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->train_max_initial_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2);        __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_5); +      __Pyx_GOTREF(((PyObject *)__pyx_t_5));        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);        __Pyx_GIVEREF(__pyx_t_4);        PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); @@ -38478,7 +36340,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py        __Pyx_GOTREF(((PyObject *)__pyx_t_2));        __Pyx_DECREF(((PyObject *)__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 = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_5); +      __Pyx_GOTREF(((PyObject *)__pyx_t_5));        PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_2));        __Pyx_GIVEREF(((PyObject *)__pyx_t_2));        __pyx_t_2 = 0; @@ -38488,9 +36350,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py        __Pyx_Raise(__pyx_t_2, 0, 0, 0);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      goto __pyx_L6; +      goto __pyx_L8;      } -    __pyx_L6:; +    __pyx_L8:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":449   *             if pre.train_max_initial_size != self.train_max_initial_size: @@ -38499,7 +36361,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *                 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:   */ -    __pyx_t_1 = (__pyx_v_pre->train_min_gap_size != __pyx_v_self->train_min_gap_size); +    __pyx_t_1 = (__pyx_v_pre->train_min_gap_size != ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->train_min_gap_size);      if (__pyx_t_1) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":450 @@ -38511,10 +36373,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   */        __pyx_t_2 = PyInt_FromLong(__pyx_v_pre->train_min_gap_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_5 = PyInt_FromLong(__pyx_v_self->train_min_gap_size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->train_min_gap_size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 450; __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 = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_4); +      __Pyx_GOTREF(((PyObject *)__pyx_t_4));        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);        __Pyx_GIVEREF(__pyx_t_2);        PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); @@ -38525,7 +36387,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py        __Pyx_GOTREF(((PyObject *)__pyx_t_5));        __Pyx_DECREF(((PyObject *)__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 = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_4); +      __Pyx_GOTREF(((PyObject *)__pyx_t_4));        PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_5));        __Pyx_GIVEREF(((PyObject *)__pyx_t_5));        __pyx_t_5 = 0; @@ -38535,9 +36397,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py        __Pyx_Raise(__pyx_t_5, 0, 0, 0);        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      goto __pyx_L7; +      goto __pyx_L9;      } -    __pyx_L7:; +    __pyx_L9:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":451   *             if pre.train_min_gap_size != self.train_min_gap_size: @@ -38546,7 +36408,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *                 logger.info("Converting %d hash keys on precomputed inverted index... ", len(pre.precomputed_index))   *                 for pattern, arr in pre.precomputed_index.iteritems():   */ -    if (__pyx_v_self->use_index) { +    if (((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->use_index) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":452   *                 raise Exception("Precomputation done with min gap size %d, decoder uses %d" % (pre.train_min_gap_size, self.train_min_gap_size)) @@ -38567,7 +36429,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py        __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5);        __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_2); +      __Pyx_GOTREF(((PyObject *)__pyx_t_2));        __Pyx_INCREF(((PyObject *)__pyx_kp_s_114));        PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_114));        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_114)); @@ -38587,28 +36449,86 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *                     phrases = self.pattern2phrase_plus(pattern)   *                     for phrase in phrases:   */ -      __pyx_t_6 = 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 = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      } -      __pyx_t_2 = __Pyx_dict_iterator(__pyx_v_pre->precomputed_index, 0, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyObject_GetAttr(__pyx_v_pre->precomputed_index, __pyx_n_s__iteritems); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_5); +      __pyx_t_2 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      __Pyx_XDECREF(__pyx_t_5); -      __pyx_t_5 = __pyx_t_2; -      __pyx_t_2 = 0; -      while (1) { -        __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_7, &__pyx_t_6, &__pyx_t_2, &__pyx_t_4, NULL, __pyx_t_8); -        if (unlikely(__pyx_t_9 == 0)) break; -        if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_2); -        __Pyx_GOTREF(__pyx_t_4); +      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +      if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) { +        __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; +        __pyx_t_7 = NULL; +      } else { +        __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_5); +        __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; +      } +      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +      for (;;) { +        if (PyList_CheckExact(__pyx_t_5)) { +          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; +          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; +        } else if (PyTuple_CheckExact(__pyx_t_5)) { +          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; +          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; +        } else { +          __pyx_t_2 = __pyx_t_7(__pyx_t_5); +          if (unlikely(!__pyx_t_2)) { +            if (PyErr_Occurred()) { +              if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); +              else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            } +            break; +          } +          __Pyx_GOTREF(__pyx_t_2); +        } +        if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { +          PyObject* sequence = __pyx_t_2; +          if (likely(PyTuple_CheckExact(sequence))) { +            if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +              if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +              else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            } +            __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);  +            __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);  +          } else { +            if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +              if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +              else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            } +            __pyx_t_4 = PyList_GET_ITEM(sequence, 0);  +            __pyx_t_3 = PyList_GET_ITEM(sequence, 1);  +          } +          __Pyx_INCREF(__pyx_t_4); +          __Pyx_INCREF(__pyx_t_3); +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +        } else { +          Py_ssize_t index = -1; +          __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_8); +          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +          __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; +          index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L13_unpacking_failed; +          __Pyx_GOTREF(__pyx_t_4); +          index = 1; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L13_unpacking_failed; +          __Pyx_GOTREF(__pyx_t_3); +          if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +          goto __pyx_L14_unpacking_done; +          __pyx_L13_unpacking_failed:; +          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +          if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +          if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_L14_unpacking_done:; +        }          __Pyx_XDECREF(__pyx_v_pattern); -        __pyx_v_pattern = __pyx_t_2; -        __pyx_t_2 = 0; -        __Pyx_XDECREF(__pyx_v_arr); -        __pyx_v_arr = __pyx_t_4; +        __pyx_v_pattern = __pyx_t_4;          __pyx_t_4 = 0; +        __Pyx_XDECREF(__pyx_v_arr); +        __pyx_v_arr = __pyx_t_3; +        __pyx_t_3 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":454   *                 logger.info("Converting %d hash keys on precomputed inverted index... ", len(pre.precomputed_index)) @@ -38617,20 +36537,20 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *                     for phrase in phrases:   *                         self.precomputed_index[phrase] = arr   */ -        __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__pattern2phrase_plus); 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_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pattern2phrase_plus); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 454; __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 = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(((PyObject *)__pyx_t_3));          __Pyx_INCREF(__pyx_v_pattern); -        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pattern); +        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pattern);          __Pyx_GIVEREF(__pyx_v_pattern); -        __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 454; __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_2)); __pyx_t_2 = 0; +        __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); 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(__pyx_t_2); __pyx_t_2 = 0; +        __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;          __Pyx_XDECREF(__pyx_v_phrases); -        __pyx_v_phrases = __pyx_t_3; -        __pyx_t_3 = 0; +        __pyx_v_phrases = __pyx_t_4; +        __pyx_t_4 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":455   *                 for pattern, arr in pre.precomputed_index.iteritems(): @@ -38640,42 +36560,34 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *             if self.use_collocations:   */          if (PyList_CheckExact(__pyx_v_phrases) || PyTuple_CheckExact(__pyx_v_phrases)) { -          __pyx_t_3 = __pyx_v_phrases; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0; +          __pyx_t_4 = __pyx_v_phrases; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0;            __pyx_t_11 = NULL;          } else { -          __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_phrases); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); -          __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; +          __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_phrases); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_4); +          __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext;          }          for (;;) { -          if (!__pyx_t_11 && PyList_CheckExact(__pyx_t_3)) { -            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break; -            #if CYTHON_COMPILING_IN_CPYTHON -            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_2); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #else -            __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #endif -          } else if (!__pyx_t_11 && PyTuple_CheckExact(__pyx_t_3)) { -            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break; -            #if CYTHON_COMPILING_IN_CPYTHON -            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_2); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #else -            __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #endif +          if (PyList_CheckExact(__pyx_t_4)) { +            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break; +            __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; +          } else if (PyTuple_CheckExact(__pyx_t_4)) { +            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +            __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++;            } else { -            __pyx_t_2 = __pyx_t_11(__pyx_t_3); -            if (unlikely(!__pyx_t_2)) { +            __pyx_t_3 = __pyx_t_11(__pyx_t_4); +            if (unlikely(!__pyx_t_3)) {                if (PyErr_Occurred()) {                  if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();                  else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                }                break;              } -            __Pyx_GOTREF(__pyx_t_2); +            __Pyx_GOTREF(__pyx_t_3);            }            __Pyx_XDECREF(__pyx_v_phrase); -          __pyx_v_phrase = __pyx_t_2; -          __pyx_t_2 = 0; +          __pyx_v_phrase = __pyx_t_3; +          __pyx_t_3 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":456   *                     phrases = self.pattern2phrase_plus(pattern) @@ -38684,14 +36596,14 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *             if self.use_collocations:   *                 logger.info("Converting %d hash keys on precomputed collocations... ", len(pre.precomputed_collocations))   */ -          if (PyObject_SetItem(__pyx_v_self->precomputed_index, __pyx_v_phrase, __pyx_v_arr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (PyObject_SetItem(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precomputed_index, __pyx_v_phrase, __pyx_v_arr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          } -        __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; -      goto __pyx_L8; +      goto __pyx_L10;      } -    __pyx_L8:; +    __pyx_L10:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":457   *                     for phrase in phrases: @@ -38700,7 +36612,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *                 logger.info("Converting %d hash keys on precomputed collocations... ", len(pre.precomputed_collocations))   *                 for pattern, arr in pre.precomputed_collocations.iteritems():   */ -    if (__pyx_v_self->use_collocations) { +    if (((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->use_collocations) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":458   *                         self.precomputed_index[phrase] = arr @@ -38711,27 +36623,27 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   */        __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__logger); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5); -      __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__info); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_3); +      __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__info); 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_5); __pyx_t_5 = 0;        __pyx_t_5 = __pyx_v_pre->precomputed_collocations;        __Pyx_INCREF(__pyx_t_5); -      __pyx_t_7 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 458; __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 = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -      __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5); -      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 458; __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 = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(((PyObject *)__pyx_t_3));        __Pyx_INCREF(((PyObject *)__pyx_kp_s_115)); -      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_115)); +      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_115));        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_115)); -      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5); +      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);        __Pyx_GIVEREF(__pyx_t_5);        __pyx_t_5 = 0; -      __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5); -      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; +      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":459 @@ -38741,28 +36653,86 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *                     phrase = self.pattern2phrase(pattern)   *                     self.precomputed_collocations[phrase] = arr   */ -      __pyx_t_7 = 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 = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyObject_GetAttr(__pyx_v_pre->precomputed_collocations, __pyx_n_s__iteritems); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_5); +      __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_3); +      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +      if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) { +        __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; +        __pyx_t_7 = NULL; +      } else { +        __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_5); +        __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext;        } -      __pyx_t_2 = __Pyx_dict_iterator(__pyx_v_pre->precomputed_collocations, 0, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_6), (&__pyx_t_8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_2); -      __Pyx_XDECREF(__pyx_t_5); -      __pyx_t_5 = __pyx_t_2; -      __pyx_t_2 = 0; -      while (1) { -        __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_6, &__pyx_t_7, &__pyx_t_2, &__pyx_t_3, NULL, __pyx_t_8); -        if (unlikely(__pyx_t_9 == 0)) break; -        if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_2); -        __Pyx_GOTREF(__pyx_t_3); +      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +      for (;;) { +        if (PyList_CheckExact(__pyx_t_5)) { +          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; +          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; +        } else if (PyTuple_CheckExact(__pyx_t_5)) { +          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; +          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; +        } else { +          __pyx_t_3 = __pyx_t_7(__pyx_t_5); +          if (unlikely(!__pyx_t_3)) { +            if (PyErr_Occurred()) { +              if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); +              else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            } +            break; +          } +          __Pyx_GOTREF(__pyx_t_3); +        } +        if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { +          PyObject* sequence = __pyx_t_3; +          if (likely(PyTuple_CheckExact(sequence))) { +            if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +              if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +              else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            } +            __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);  +            __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);  +          } else { +            if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +              if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +              else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +              {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            } +            __pyx_t_4 = PyList_GET_ITEM(sequence, 0);  +            __pyx_t_2 = PyList_GET_ITEM(sequence, 1);  +          } +          __Pyx_INCREF(__pyx_t_4); +          __Pyx_INCREF(__pyx_t_2); +          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +        } else { +          Py_ssize_t index = -1; +          __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_8); +          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +          __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; +          index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L20_unpacking_failed; +          __Pyx_GOTREF(__pyx_t_4); +          index = 1; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L20_unpacking_failed; +          __Pyx_GOTREF(__pyx_t_2); +          if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +          goto __pyx_L21_unpacking_done; +          __pyx_L20_unpacking_failed:; +          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +          if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +          if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_L21_unpacking_done:; +        }          __Pyx_XDECREF(__pyx_v_pattern); -        __pyx_v_pattern = __pyx_t_2; -        __pyx_t_2 = 0; +        __pyx_v_pattern = __pyx_t_4; +        __pyx_t_4 = 0;          __Pyx_XDECREF(__pyx_v_arr); -        __pyx_v_arr = __pyx_t_3; -        __pyx_t_3 = 0; +        __pyx_v_arr = __pyx_t_2; +        __pyx_t_2 = 0;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":460   *                 logger.info("Converting %d hash keys on precomputed collocations... ", len(pre.precomputed_collocations)) @@ -38771,10 +36741,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *                     self.precomputed_collocations[phrase] = arr   *             stop_time = monitor_cpu()   */ -        __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__pattern2phrase); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pattern2phrase); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 460; __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 = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_2); +        __Pyx_GOTREF(((PyObject *)__pyx_t_2));          __Pyx_INCREF(__pyx_v_pattern);          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pattern);          __Pyx_GIVEREF(__pyx_v_pattern); @@ -38793,12 +36763,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py   *             stop_time = monitor_cpu()   *             logger.info("Processing precomputations took %f seconds", stop_time - start_time)   */ -        if (PyObject_SetItem(__pyx_v_self->precomputed_collocations, __pyx_v_phrase, __pyx_v_arr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (PyObject_SetItem(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precomputed_collocations, __pyx_v_phrase, __pyx_v_arr) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        }        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -      goto __pyx_L13; +      goto __pyx_L17;      } -    __pyx_L13:; +    __pyx_L17:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":462   *                     phrase = self.pattern2phrase(pattern) @@ -38827,7 +36797,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py      __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 = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5);      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      __Pyx_INCREF(((PyObject *)__pyx_kp_s_116));      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_116));      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_116)); @@ -38839,9 +36809,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    goto __pyx_L3; +    goto __pyx_L5;    } -  __pyx_L3:; +  __pyx_L5:;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -38850,6 +36820,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py    __Pyx_XDECREF(__pyx_t_3);    __Pyx_XDECREF(__pyx_t_4);    __Pyx_XDECREF(__pyx_t_5); +  __Pyx_XDECREF(__pyx_t_8);    __Pyx_AddTraceback("_sa.HieroCachingRuleFactory.precompute", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL;    __pyx_L0:; @@ -38865,17 +36836,6 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8precompute(struct __py    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_11get_precomputed_collocation(PyObject *__pyx_v_self, PyObject *__pyx_v_phrase); /*proto*/ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_11get_precomputed_collocation(PyObject *__pyx_v_self, PyObject *__pyx_v_phrase) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_precomputed_collocation (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory_10get_precomputed_collocation(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), ((PyObject *)__pyx_v_phrase)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":466   *    *  @@ -38884,7 +36844,8 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_11get_precomputed_collo   *             arr = self.precomputed_collocations[phrase]   */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_10get_precomputed_collocation(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_phrase) { +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_5get_precomputed_collocation(PyObject *__pyx_v_self, PyObject *__pyx_v_phrase); /*proto*/ +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_5get_precomputed_collocation(PyObject *__pyx_v_self, PyObject *__pyx_v_phrase) {    PyObject *__pyx_v_arr = NULL;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -38896,7 +36857,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_10get_precomputed_collo    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_precomputed_collocation", 0); +  __Pyx_RefNannySetupContext("get_precomputed_collocation");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":467   *  @@ -38905,7 +36866,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_10get_precomputed_collo   *             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 = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((PySequence_Contains(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precomputed_collocations, __pyx_v_phrase))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_1) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":468 @@ -38915,7 +36876,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_10get_precomputed_collo   *             return PhraseLocation(arr=arr, arr_low=0, arr_high=len(arr), num_subpatterns=phrase.arity()+1)   *         return None   */ -    __pyx_t_2 = PyObject_GetItem(__pyx_v_self->precomputed_collocations, __pyx_v_phrase); if (!__pyx_t_2) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = PyObject_GetItem(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->precomputed_collocations, __pyx_v_phrase); if (!__pyx_t_2) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_2);      __pyx_v_arr = __pyx_t_2;      __pyx_t_2 = 0; @@ -38947,15 +36908,15 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_10get_precomputed_collo      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__num_subpatterns), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_PhraseLocation)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_PhraseLocation)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); 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(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;      __pyx_r = __pyx_t_4;      __pyx_t_4 = 0;      goto __pyx_L0; -    goto __pyx_L3; +    goto __pyx_L5;    } -  __pyx_L3:; +  __pyx_L5:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":470   *             arr = self.precomputed_collocations[phrase] @@ -39028,7 +36989,7 @@ static int *__pyx_f_3_sa_23HieroCachingRuleFactory_baeza_yates_helper(struct __p    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("baeza_yates_helper", 0); +  __Pyx_RefNannySetupContext("baeza_yates_helper");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":486   *         cdef Matching loc1, loc2 @@ -40135,7 +38096,7 @@ static long __pyx_f_3_sa_23HieroCachingRuleFactory_compare_matchings_set(struct    long __pyx_r;    __Pyx_RefNannyDeclarations    int __pyx_t_1; -  __Pyx_RefNannySetupContext("compare_matchings_set", 0); +  __Pyx_RefNannySetupContext("compare_matchings_set");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":637   *         cdef Matching* loc1 @@ -40312,7 +38273,7 @@ static long __pyx_f_3_sa_23HieroCachingRuleFactory_compare_matchings(struct __py    int __pyx_t_2;    int __pyx_t_3;    int __pyx_t_4; -  __Pyx_RefNannySetupContext("compare_matchings", 0); +  __Pyx_RefNannySetupContext("compare_matchings");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":659   *         cdef int i @@ -40636,7 +38597,7 @@ static int *__pyx_f_3_sa_23HieroCachingRuleFactory_merge_helper(struct __pyx_obj    int __pyx_t_1;    int __pyx_t_2;    int __pyx_t_3; -  __Pyx_RefNannySetupContext("merge_helper", 0); +  __Pyx_RefNannySetupContext("merge_helper");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":700   *         cdef Matching loc1, loc2 @@ -40945,7 +38906,7 @@ static void __pyx_f_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(struct __pyx_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("sort_phrase_loc", 0); +  __Pyx_RefNannySetupContext("sort_phrase_loc");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":741   *         cdef IntList result @@ -40954,7 +38915,7 @@ static void __pyx_f_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(struct __pyx_   *             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 = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = ((PySequence_Contains(__pyx_v_self->precomputed_index, ((PyObject *)__pyx_v_phrase)))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_1) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":742 @@ -40989,7 +38950,7 @@ static void __pyx_f_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(struct __pyx_      __Pyx_GOTREF(__pyx_t_3);      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;      __Pyx_GIVEREF(__pyx_t_3); @@ -41008,7 +38969,7 @@ static void __pyx_f_3_sa_23HieroCachingRuleFactory_sort_phrase_loc(struct __pyx_      __pyx_t_3 = PyInt_FromLong(__pyx_v_arr->len); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 745; __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 = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);      __Pyx_GIVEREF(__pyx_t_3);      __pyx_t_3 = 0; @@ -41141,7 +39102,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_intersect_helper(struct    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("intersect_helper", 0); +  __Pyx_RefNannySetupContext("intersect_helper");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":763   *         cdef int* result_ptr @@ -41204,7 +39165,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_intersect_helper(struct    __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 = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_4); +  __Pyx_GOTREF(((PyObject *)__pyx_t_4));    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);    __Pyx_GIVEREF(__pyx_t_5);    __pyx_t_5 = 0; @@ -41494,7 +39455,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_intersect_helper(struct      __Pyx_GOTREF(__pyx_t_4);      if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__num_subpatterns), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_PhraseLocation)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_PhraseLocation)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;      __pyx_r = __pyx_t_4; @@ -41528,7 +39489,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_intersect_helper(struct   *         result = "{"   */ -static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_loc2str(CYTHON_UNUSED struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, struct __pyx_obj_3_sa_PhraseLocation *__pyx_v_loc) { +static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_loc2str(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, struct __pyx_obj_3_sa_PhraseLocation *__pyx_v_loc) {    int __pyx_v_i;    int __pyx_v_j;    PyObject *__pyx_v_result = NULL; @@ -41541,7 +39502,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_loc2str(CYTHON_UNUSED st    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("loc2str", 0); +  __Pyx_RefNannySetupContext("loc2str");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":810   *     cdef loc2str(self, PhraseLocation loc): @@ -41692,7 +39653,7 @@ static struct __pyx_obj_3_sa_PhraseLocation *__pyx_f_3_sa_23HieroCachingRuleFact    struct __pyx_obj_3_sa_PhraseLocation *__pyx_v_prefix_loc = 0;    struct __pyx_obj_3_sa_PhraseLocation *__pyx_v_suffix_loc = 0;    struct __pyx_obj_3_sa_PhraseLocation *__pyx_v_result = 0; -  CYTHON_UNUSED PyObject *__pyx_v_intersect_method = NULL; +  PyObject *__pyx_v_intersect_method = NULL;    struct __pyx_obj_3_sa_PhraseLocation *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -41702,7 +39663,7 @@ static struct __pyx_obj_3_sa_PhraseLocation *__pyx_f_3_sa_23HieroCachingRuleFact    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("intersect", 0); +  __Pyx_RefNannySetupContext("intersect");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":825   *         cdef PhraseLocation prefix_loc, suffix_loc, result @@ -41766,7 +39727,7 @@ static struct __pyx_obj_3_sa_PhraseLocation *__pyx_f_3_sa_23HieroCachingRuleFact    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s_120); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 830; __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 = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__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)); @@ -41910,22 +39871,56 @@ static struct __pyx_obj_3_sa_PhraseLocation *__pyx_f_3_sa_23HieroCachingRuleFact    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_13advance(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_13advance(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":843 + *         return result + *  + *     def advance(self, frontier, res, fwords):             # <<<<<<<<<<<<<< + *         cdef unsigned na + *         nf = [] + */ + +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6advance(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_6advance(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_frontier = 0;    PyObject *__pyx_v_res = 0;    PyObject *__pyx_v_fwords = 0; -  PyObject *__pyx_r = 0; +  unsigned int __pyx_v_na; +  PyObject *__pyx_v_nf = NULL; +  PyObject *__pyx_v_toskip = NULL; +  PyObject *__pyx_v_i = NULL; +  PyObject *__pyx_v_alt = NULL; +  PyObject *__pyx_v_pathlen = NULL; +  PyObject *__pyx_v_spanlen = NULL; +  PyObject *__pyx_v_ni = NULL; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("advance (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  Py_ssize_t __pyx_t_2; +  PyObject *(*__pyx_t_3)(PyObject *); +  PyObject *__pyx_t_4 = NULL; +  PyObject *__pyx_t_5 = NULL; +  PyObject *__pyx_t_6 = NULL; +  PyObject *__pyx_t_7 = NULL; +  PyObject *(*__pyx_t_8)(PyObject *); +  PyObject *__pyx_t_9 = NULL; +  PyObject *__pyx_t_10 = NULL; +  PyObject *__pyx_t_11 = NULL; +  int __pyx_t_12; +  Py_ssize_t __pyx_t_13; +  int __pyx_t_14; +  int __pyx_t_15; +  unsigned int __pyx_t_16; +  int __pyx_t_17; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__frontier,&__pyx_n_s__res,&__pyx_n_s__fwords,0}; +  __Pyx_RefNannySetupContext("advance");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__frontier,&__pyx_n_s__res,&__pyx_n_s__fwords,0};      PyObject* values[3] = {0,0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); @@ -41933,23 +39928,26 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_13advance(PyObject *__p          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__frontier)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__frontier); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__res)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__res); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("advance", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2: -        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fwords)) != 0)) kw_args--; +        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fwords); +        if (likely(values[2])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("advance", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 843; __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 = 843; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "advance") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -41970,51 +39968,6 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_13advance(PyObject *__p    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), __pyx_v_frontier, __pyx_v_res, __pyx_v_fwords); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":843 - *         return result - *  - *     def advance(self, frontier, res, fwords):             # <<<<<<<<<<<<<< - *         cdef unsigned na - *         nf = [] - */ - -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_frontier, PyObject *__pyx_v_res, PyObject *__pyx_v_fwords) { -  unsigned int __pyx_v_na; -  PyObject *__pyx_v_nf = NULL; -  PyObject *__pyx_v_toskip = NULL; -  PyObject *__pyx_v_i = NULL; -  PyObject *__pyx_v_alt = NULL; -  PyObject *__pyx_v_pathlen = NULL; -  PyObject *__pyx_v_spanlen = NULL; -  PyObject *__pyx_v_ni = NULL; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  Py_ssize_t __pyx_t_2; -  PyObject *(*__pyx_t_3)(PyObject *); -  PyObject *__pyx_t_4 = NULL; -  PyObject *__pyx_t_5 = NULL; -  PyObject *__pyx_t_6 = NULL; -  PyObject *__pyx_t_7 = NULL; -  PyObject *(*__pyx_t_8)(PyObject *); -  PyObject *__pyx_t_9 = NULL; -  PyObject *__pyx_t_10 = NULL; -  PyObject *__pyx_t_11 = NULL; -  int __pyx_t_12; -  Py_ssize_t __pyx_t_13; -  int __pyx_t_14; -  int __pyx_t_15; -  unsigned int __pyx_t_16; -  int __pyx_t_17; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("advance", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":845   *     def advance(self, frontier, res, fwords): @@ -42024,7 +39977,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_   *             spanlen = fwords[i][alt][2]   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_nf = __pyx_t_1;    __pyx_t_1 = 0; @@ -42044,20 +39997,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) { +    if (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 = 846; __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 = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; +    } else if (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 = 846; __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 = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1);        if (unlikely(!__pyx_t_4)) { @@ -42071,74 +40016,66 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_      }      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {        PyObject* sequence = __pyx_t_4; -      #if CYTHON_COMPILING_IN_CPYTHON -      Py_ssize_t size = Py_SIZE(sequence); -      #else -      Py_ssize_t size = PySequence_Size(sequence); -      #endif -      if (unlikely(size != 2)) { -        if (size > 2) __Pyx_RaiseTooManyValuesError(2); -        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      } -      #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { +        if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +          if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        }          __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);           __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);         } else { +        if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +          if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        }          __pyx_t_5 = PyList_GET_ITEM(sequence, 0);           __pyx_t_6 = PyList_GET_ITEM(sequence, 1);         }        __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 = 846; __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 = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    } else -    { +    } 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 = 846; __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; -      index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; +      index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed;        __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; +      index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_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 = 846; __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; -      __pyx_L5_unpacking_failed:; +      goto __pyx_L9_unpacking_done; +      __pyx_L8_unpacking_failed:;        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -      __pyx_t_8 = NULL; -      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_L6_unpacking_done:; +      __pyx_L9_unpacking_done:;      }      __Pyx_XDECREF(__pyx_v_toskip);      __pyx_v_toskip = __pyx_t_5;      __pyx_t_5 = 0;      if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {        PyObject* sequence = __pyx_t_6; -      #if CYTHON_COMPILING_IN_CPYTHON -      Py_ssize_t size = Py_SIZE(sequence); -      #else -      Py_ssize_t size = PySequence_Size(sequence); -      #endif -      if (unlikely(size != 3)) { -        if (size > 3) __Pyx_RaiseTooManyValuesError(3); -        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      } -      #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { +        if (unlikely(PyTuple_GET_SIZE(sequence) != 3)) { +          if (PyTuple_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3); +          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        }          __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0);           __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1);           __pyx_t_10 = PyTuple_GET_ITEM(sequence, 2);         } else { +        if (unlikely(PyList_GET_SIZE(sequence) != 3)) { +          if (PyList_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3); +          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        }          __pyx_t_7 = PyList_GET_ITEM(sequence, 0);           __pyx_t_9 = PyList_GET_ITEM(sequence, 1);           __pyx_t_10 = PyList_GET_ITEM(sequence, 2);  @@ -42146,35 +40083,28 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_        __Pyx_INCREF(__pyx_t_7);        __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 = 846; __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 = 846; __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 = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    } else -    { +    } 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 = 846; __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; -      index = 0; __pyx_t_7 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed; +      index = 0; __pyx_t_7 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_7)) goto __pyx_L10_unpacking_failed;        __Pyx_GOTREF(__pyx_t_7); -      index = 1; __pyx_t_9 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_9)) goto __pyx_L7_unpacking_failed; +      index = 1; __pyx_t_9 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_9)) goto __pyx_L10_unpacking_failed;        __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; +      index = 2; __pyx_t_10 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L10_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 = 846; __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; -      __pyx_L7_unpacking_failed:; +      goto __pyx_L11_unpacking_done; +      __pyx_L10_unpacking_failed:;        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; -      __pyx_t_8 = NULL; -      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);        {__pyx_filename = __pyx_f[8]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_L8_unpacking_done:; +      __pyx_L11_unpacking_done:;      }      __Pyx_XDECREF(__pyx_v_i);      __pyx_v_i = __pyx_t_7; @@ -42212,7 +40142,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_   *                 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 = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_v_toskip, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_4);      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      if (__pyx_t_12) { @@ -42225,7 +40156,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_   *             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 = 849; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_4); +      __Pyx_GOTREF(((PyObject *)__pyx_t_4));        __Pyx_INCREF(__pyx_v_i);        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_i);        __Pyx_GIVEREF(__pyx_v_i); @@ -42239,9 +40170,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_        __Pyx_GOTREF(__pyx_t_6);        __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -      goto __pyx_L9; +      goto __pyx_L12;      } -    __pyx_L9:; +    __pyx_L12:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":850   *             if (toskip == 0): @@ -42266,16 +40197,18 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_      __pyx_t_13 = PyObject_Length(__pyx_v_fwords); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_13); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_4 = PyObject_RichCompare(__pyx_v_ni, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_4 = PyObject_RichCompare(__pyx_v_ni, __pyx_t_6, Py_LT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_4);      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      if (__pyx_t_12) {        __pyx_t_4 = PyNumber_Add(__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4); -      __pyx_t_6 = PyInt_FromLong(__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_initial_size); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_6); -      __pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_t_6, Py_LT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_5);        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -42307,6 +40240,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_   *         if (len(nf) > 0):   *             return self.advance(nf, res, fwords)   */ +        if (unlikely(((PyObject *)__pyx_v_nf) == Py_None)) { +          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 853; __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 = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_5);          __pyx_t_6 = PyLong_FromUnsignedLong(__pyx_v_na); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -42314,7 +40250,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_          __pyx_t_4 = PyNumber_Add(__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 853; __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 = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_10); +        __Pyx_GOTREF(((PyObject *)__pyx_t_10));          __Pyx_INCREF(__pyx_v_ni);          PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_ni);          __Pyx_GIVEREF(__pyx_v_ni); @@ -42325,7 +40261,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_          __pyx_t_6 = 0;          __pyx_t_4 = 0;          __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_4); +        __Pyx_GOTREF(((PyObject *)__pyx_t_4));          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);          __Pyx_GIVEREF(__pyx_t_5);          PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_t_10)); @@ -42335,9 +40271,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_          __pyx_t_17 = PyList_Append(__pyx_v_nf, ((PyObject *)__pyx_t_4)); if (unlikely(__pyx_t_17 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;        } -      goto __pyx_L10; +      goto __pyx_L13;      } -    __pyx_L10:; +    __pyx_L13:;    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -42348,7 +40284,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_   *             return self.advance(nf, res, fwords)   *         else:   */ -  __pyx_t_2 = PyList_GET_SIZE(((PyObject *)__pyx_v_nf)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (unlikely(((PyObject *)__pyx_v_nf) == Py_None)) { +    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +  } +  __pyx_t_2 = PyList_GET_SIZE(((PyObject *)__pyx_v_nf));     __pyx_t_15 = (__pyx_t_2 > 0);    if (__pyx_t_15) { @@ -42360,10 +40299,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_   *             return res   */      __Pyx_XDECREF(__pyx_r); -    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__advance); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__advance); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 855; __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 = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      __Pyx_INCREF(((PyObject *)__pyx_v_nf));      PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_nf));      __Pyx_GIVEREF(((PyObject *)__pyx_v_nf)); @@ -42380,7 +40319,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_      __pyx_r = __pyx_t_10;      __pyx_t_10 = 0;      goto __pyx_L0; -    goto __pyx_L13; +    goto __pyx_L16;    }    /*else*/ { @@ -42396,7 +40335,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_      __pyx_r = __pyx_v_res;      goto __pyx_L0;    } -  __pyx_L13:; +  __pyx_L16:;    __pyx_r = Py_None; __Pyx_INCREF(Py_None);    goto __pyx_L0; @@ -42424,9 +40363,16 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_12advance(struct __pyx_    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_15get_all_nodes_isteps_away(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_15get_all_nodes_isteps_away(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":859 + *             return res + *  + *     def get_all_nodes_isteps_away(self, skip, i, spanlen, pathlen, fwords, next_states, reachable_buffer):             # <<<<<<<<<<<<<< + *         cdef unsigned alt_it + *         frontier = [] + */ + +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_7get_all_nodes_isteps_away(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_7get_all_nodes_isteps_away(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_skip = 0;    PyObject *__pyx_v_i = 0;    PyObject *__pyx_v_spanlen = 0; @@ -42434,16 +40380,39 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_15get_all_nodes_isteps_    PyObject *__pyx_v_fwords = 0;    PyObject *__pyx_v_next_states = 0;    PyObject *__pyx_v_reachable_buffer = 0; -  PyObject *__pyx_r = 0; +  PyObject *__pyx_v_frontier = NULL; +  PyObject *__pyx_v_key = NULL; +  PyObject *__pyx_v_reachable = NULL; +  PyObject *__pyx_v_nextreachable = NULL; +  PyObject *__pyx_v_next_id = NULL; +  PyObject *__pyx_v_jump = NULL; +  Py_ssize_t __pyx_v_alt_id; +  PyObject *__pyx_v_newel = NULL; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_all_nodes_isteps_away (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  PyObject *__pyx_t_2 = NULL; +  Py_ssize_t __pyx_t_3; +  PyObject *__pyx_t_4 = NULL; +  int __pyx_t_5; +  PyObject *(*__pyx_t_6)(PyObject *); +  Py_ssize_t __pyx_t_7; +  PyObject *(*__pyx_t_8)(PyObject *); +  PyObject *__pyx_t_9 = NULL; +  PyObject *__pyx_t_10 = NULL; +  Py_ssize_t __pyx_t_11; +  Py_ssize_t __pyx_t_12; +  int __pyx_t_13; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__skip,&__pyx_n_s__i,&__pyx_n_s__spanlen,&__pyx_n_s__pathlen,&__pyx_n_s__fwords,&__pyx_n_s__next_states,&__pyx_n_s__reachable_buffer,0}; +  __Pyx_RefNannySetupContext("get_all_nodes_isteps_away");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__skip,&__pyx_n_s__i,&__pyx_n_s__spanlen,&__pyx_n_s__pathlen,&__pyx_n_s__fwords,&__pyx_n_s__next_states,&__pyx_n_s__reachable_buffer,0};      PyObject* values[7] = {0,0,0,0,0,0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);          case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);          case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); @@ -42455,43 +40424,50 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_15get_all_nodes_isteps_          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__skip)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__skip); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2: -        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__spanlen)) != 0)) kw_args--; +        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__spanlen); +        if (likely(values[2])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  3: -        if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pathlen)) != 0)) kw_args--; +        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pathlen); +        if (likely(values[3])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 3); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  4: -        if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fwords)) != 0)) kw_args--; +        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fwords); +        if (likely(values[4])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 4); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 859; __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--; +        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__next_states); +        if (likely(values[5])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 5); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 859; __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--; +        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__reachable_buffer); +        if (likely(values[6])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("get_all_nodes_isteps_away", 1, 7, 7, 6); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 859; __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 = 859; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "get_all_nodes_isteps_away") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {        goto __pyx_L5_argtuple_error; @@ -42520,48 +40496,6 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_15get_all_nodes_isteps_    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_away(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), __pyx_v_skip, __pyx_v_i, __pyx_v_spanlen, __pyx_v_pathlen, __pyx_v_fwords, __pyx_v_next_states, __pyx_v_reachable_buffer); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":859 - *             return res - *  - *     def get_all_nodes_isteps_away(self, skip, i, spanlen, pathlen, fwords, next_states, reachable_buffer):             # <<<<<<<<<<<<<< - *         cdef unsigned alt_it - *         frontier = [] - */ - -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_away(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_skip, PyObject *__pyx_v_i, PyObject *__pyx_v_spanlen, PyObject *__pyx_v_pathlen, PyObject *__pyx_v_fwords, PyObject *__pyx_v_next_states, PyObject *__pyx_v_reachable_buffer) { -  PyObject *__pyx_v_frontier = NULL; -  PyObject *__pyx_v_key = NULL; -  PyObject *__pyx_v_reachable = NULL; -  PyObject *__pyx_v_nextreachable = NULL; -  PyObject *__pyx_v_next_id = NULL; -  PyObject *__pyx_v_jump = NULL; -  PyObject *__pyx_v_alt_id = NULL; -  PyObject *__pyx_v_newel = NULL; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  PyObject *__pyx_t_2 = NULL; -  Py_ssize_t __pyx_t_3; -  PyObject *__pyx_t_4 = NULL; -  int __pyx_t_5; -  PyObject *(*__pyx_t_6)(PyObject *); -  Py_ssize_t __pyx_t_7; -  PyObject *(*__pyx_t_8)(PyObject *); -  PyObject *__pyx_t_9 = NULL; -  PyObject *__pyx_t_10 = NULL; -  Py_ssize_t __pyx_t_11; -  PyObject *(*__pyx_t_12)(PyObject *); -  PyObject *__pyx_t_13 = NULL; -  int __pyx_t_14; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_all_nodes_isteps_away", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":861   *     def get_all_nodes_isteps_away(self, skip, i, spanlen, pathlen, fwords, next_states, reachable_buffer): @@ -42571,7 +40505,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   *             return frontier   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_frontier = __pyx_t_1;    __pyx_t_1 = 0; @@ -42590,7 +40524,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_    __pyx_t_3 = PyObject_Length(__pyx_v_next_states); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 862; __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 = 862; __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 = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_GE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 862; __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_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -42608,9 +40543,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_      __Pyx_INCREF(((PyObject *)__pyx_v_frontier));      __pyx_r = ((PyObject *)__pyx_v_frontier);      goto __pyx_L0; -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":864   *         if (i+spanlen+skip >= len(next_states)): @@ -42620,7 +40555,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   *         if (key in reachable_buffer):   */    __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_4); +  __Pyx_GOTREF(((PyObject *)__pyx_t_4));    __Pyx_INCREF(__pyx_v_i);    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_i);    __Pyx_GIVEREF(__pyx_v_i); @@ -42641,7 +40576,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   *             reachable = reachable_buffer[key]   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_reachable = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0; @@ -42652,7 +40587,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   *             reachable = reachable_buffer[key]   *         else:   */ -  __pyx_t_5 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_v_key), __pyx_v_reachable_buffer, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_5 = ((PySequence_Contains(__pyx_v_reachable_buffer, ((PyObject *)__pyx_v_key)))); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__pyx_t_5) {      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":867 @@ -42667,7 +40602,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_      __Pyx_DECREF(__pyx_v_reachable);      __pyx_v_reachable = __pyx_t_1;      __pyx_t_1 = 0; -    goto __pyx_L4; +    goto __pyx_L7;    }    /*else*/ { @@ -42678,10 +40613,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   *             reachable_buffer[key] = reachable   *         for nextreachable in reachable:   */ -    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__reachable); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__reachable); 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);      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_4); +    __Pyx_GOTREF(((PyObject *)__pyx_t_4));      __Pyx_INCREF(__pyx_v_fwords);      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_fwords);      __Pyx_GIVEREF(__pyx_v_fwords); @@ -42708,7 +40643,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   */      if (PyObject_SetItem(__pyx_v_reachable_buffer, ((PyObject *)__pyx_v_key), __pyx_v_reachable) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  __pyx_L4:; +  __pyx_L7:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":871   *             reachable = self.reachable(fwords, i, spanlen) @@ -42726,20 +40661,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_      __pyx_t_6 = Py_TYPE(__pyx_t_2)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_6 && PyList_CheckExact(__pyx_t_2)) { +    if (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 = 871; __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 = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_6 && PyTuple_CheckExact(__pyx_t_2)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; +    } else if (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 = 871; __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 = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++;      } else {        __pyx_t_4 = __pyx_t_6(__pyx_t_2);        if (unlikely(!__pyx_t_4)) { @@ -42774,20 +40701,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_      }      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      for (;;) { -      if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_1)) { +      if (PyList_CheckExact(__pyx_t_1)) {          if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; -        #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #else -        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #endif -      } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_1)) { +        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; +      } else if (PyTuple_CheckExact(__pyx_t_1)) {          if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -        #if CYTHON_COMPILING_IN_CPYTHON -        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #else -        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #endif +        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++;        } else {          __pyx_t_4 = __pyx_t_8(__pyx_t_1);          if (unlikely(!__pyx_t_4)) { @@ -42810,10 +40729,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   *                 if jump < skip:   *                     continue   */ -      __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__shortest); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 873; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shortest); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_4);        __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 873; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_9); +      __Pyx_GOTREF(((PyObject *)__pyx_t_9));        __Pyx_INCREF(__pyx_v_fwords);        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_fwords);        __Pyx_GIVEREF(__pyx_v_fwords); @@ -42838,7 +40757,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   *                     continue   *                 if pathlen+jump <= self.max_initial_size:   */ -      __pyx_t_10 = PyObject_RichCompare(__pyx_v_jump, __pyx_v_skip, Py_LT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_10 = PyObject_RichCompare(__pyx_v_jump, __pyx_v_skip, Py_LT); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_10);        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;        if (__pyx_t_5) { @@ -42850,10 +40770,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   *                 if pathlen+jump <= self.max_initial_size:   *                     for alt_id in range(len(fwords[next_id])):   */ -        goto __pyx_L7_continue; -        goto __pyx_L9; +        goto __pyx_L10_continue; +        goto __pyx_L12;        } -      __pyx_L9:; +      __pyx_L12:;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":876   *                 if jump < skip: @@ -42864,9 +40784,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   */        __pyx_t_10 = PyNumber_Add(__pyx_v_pathlen, __pyx_v_jump); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_10); -      __pyx_t_9 = PyInt_FromLong(__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_9 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_initial_size); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_9); -      __pyx_t_4 = PyObject_RichCompare(__pyx_t_10, __pyx_t_9, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_4 = PyObject_RichCompare(__pyx_t_10, __pyx_t_9, Py_LE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_4);        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -42884,54 +40805,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_          __Pyx_GOTREF(__pyx_t_4);          __pyx_t_11 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -        __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_11); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_4); -        __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_9); -        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); -        __Pyx_GIVEREF(__pyx_t_4); -        __pyx_t_4 = 0; -        __pyx_t_4 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_4); -        __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; -        if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) { -          __pyx_t_9 = __pyx_t_4; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0; -          __pyx_t_12 = NULL; -        } else { -          __pyx_t_11 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_9); -          __pyx_t_12 = Py_TYPE(__pyx_t_9)->tp_iternext; -        } -        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -        for (;;) { -          if (!__pyx_t_12 && PyList_CheckExact(__pyx_t_9)) { -            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break; -            #if CYTHON_COMPILING_IN_CPYTHON -            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #else -            __pyx_t_4 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #endif -          } else if (!__pyx_t_12 && PyTuple_CheckExact(__pyx_t_9)) { -            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_9)) break; -            #if CYTHON_COMPILING_IN_CPYTHON -            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #else -            __pyx_t_4 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #endif -          } else { -            __pyx_t_4 = __pyx_t_12(__pyx_t_9); -            if (unlikely(!__pyx_t_4)) { -              if (PyErr_Occurred()) { -                if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -                else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              } -              break; -            } -            __Pyx_GOTREF(__pyx_t_4); -          } -          __Pyx_XDECREF(__pyx_v_alt_id); -          __pyx_v_alt_id = __pyx_t_4; -          __pyx_t_4 = 0; +        for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { +          __pyx_v_alt_id = __pyx_t_12;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":878   *                 if pathlen+jump <= self.max_initial_size: @@ -42942,19 +40817,20 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   */            __pyx_t_4 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_next_id); if (!__pyx_t_4) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_4); -          __pyx_t_10 = PyObject_GetItem(__pyx_t_4, __pyx_v_alt_id); if (!__pyx_t_10) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_10); +          __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_4, __pyx_v_alt_id, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_9) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_9);            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_10, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_9, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_4); -          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          __pyx_t_10 = PyInt_FromLong(__pyx_v_3_sa_EPSILON); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +          __pyx_t_9 = PyInt_FromLong(__pyx_v_3_sa_EPSILON); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_9); +          __pyx_t_10 = PyObject_RichCompare(__pyx_t_4, __pyx_t_9, Py_NE); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10); -          __pyx_t_13 = PyObject_RichCompare(__pyx_t_4, __pyx_t_10, Py_NE); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;            if (__pyx_t_5) {              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":879 @@ -42964,22 +40840,24 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   *                             if newel not in frontier:   *                                 frontier.append((next_id,alt_id,pathlen+jump))   */ -            __pyx_t_13 = PyNumber_Add(__pyx_v_pathlen, __pyx_v_jump); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_13); -            __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = PyInt_FromSsize_t(__pyx_v_alt_id); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10); +            __pyx_t_9 = PyNumber_Add(__pyx_v_pathlen, __pyx_v_jump); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __Pyx_GOTREF(__pyx_t_9); +            __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __Pyx_GOTREF(((PyObject *)__pyx_t_4));              __Pyx_INCREF(__pyx_v_next_id); -            PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_next_id); +            PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_next_id);              __Pyx_GIVEREF(__pyx_v_next_id); -            __Pyx_INCREF(__pyx_v_alt_id); -            PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_alt_id); -            __Pyx_GIVEREF(__pyx_v_alt_id); -            PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_13); -            __Pyx_GIVEREF(__pyx_t_13); -            __pyx_t_13 = 0; -            __Pyx_XDECREF(((PyObject *)__pyx_v_newel)); -            __pyx_v_newel = __pyx_t_10; +            PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10); +            __Pyx_GIVEREF(__pyx_t_10); +            PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_9); +            __Pyx_GIVEREF(__pyx_t_9);              __pyx_t_10 = 0; +            __pyx_t_9 = 0; +            __Pyx_XDECREF(((PyObject *)__pyx_v_newel)); +            __pyx_v_newel = __pyx_t_4; +            __pyx_t_4 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":880   *                         if (fwords[next_id][alt_id][0] != EPSILON): @@ -42988,7 +40866,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   *                                 frontier.append((next_id,alt_id,pathlen+jump))   *         return frontier   */ -            __pyx_t_5 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_v_newel), ((PyObject *)__pyx_v_frontier), Py_NE)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 880; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_5 = (__Pyx_NegateNonNeg(PySequence_Contains(((PyObject *)__pyx_v_frontier), ((PyObject *)__pyx_v_newel)))); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              if (__pyx_t_5) {                /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":881 @@ -42998,33 +40876,37 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_   *         return frontier   *    */ -              __pyx_t_10 = PyNumber_Add(__pyx_v_pathlen, __pyx_v_jump); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __Pyx_GOTREF(__pyx_t_10); -              __pyx_t_13 = PyTuple_New(3); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __Pyx_GOTREF(__pyx_t_13); +              if (unlikely(((PyObject *)__pyx_v_frontier) == Py_None)) { +                PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 881; __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 = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __Pyx_GOTREF(__pyx_t_4); +              __pyx_t_9 = PyNumber_Add(__pyx_v_pathlen, __pyx_v_jump); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __Pyx_GOTREF(__pyx_t_9); +              __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __Pyx_GOTREF(((PyObject *)__pyx_t_10));                __Pyx_INCREF(__pyx_v_next_id); -              PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_next_id); +              PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_next_id);                __Pyx_GIVEREF(__pyx_v_next_id); -              __Pyx_INCREF(__pyx_v_alt_id); -              PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_alt_id); -              __Pyx_GIVEREF(__pyx_v_alt_id); -              PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_10); -              __Pyx_GIVEREF(__pyx_t_10); -              __pyx_t_10 = 0; -              __pyx_t_14 = PyList_Append(__pyx_v_frontier, ((PyObject *)__pyx_t_13)); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; -              goto __pyx_L14; +              PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_4); +              __Pyx_GIVEREF(__pyx_t_4); +              PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_9); +              __Pyx_GIVEREF(__pyx_t_9); +              __pyx_t_4 = 0; +              __pyx_t_9 = 0; +              __pyx_t_13 = PyList_Append(__pyx_v_frontier, ((PyObject *)__pyx_t_10)); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; +              goto __pyx_L17;              } -            __pyx_L14:; -            goto __pyx_L13; +            __pyx_L17:; +            goto __pyx_L16;            } -          __pyx_L13:; +          __pyx_L16:;          } -        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; -        goto __pyx_L10; +        goto __pyx_L13;        } -      __pyx_L10:; -      __pyx_L7_continue:; +      __pyx_L13:; +      __pyx_L10_continue:;      }      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    } @@ -43050,7 +40932,6 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_    __Pyx_XDECREF(__pyx_t_4);    __Pyx_XDECREF(__pyx_t_9);    __Pyx_XDECREF(__pyx_t_10); -  __Pyx_XDECREF(__pyx_t_13);    __Pyx_AddTraceback("_sa.HieroCachingRuleFactory.get_all_nodes_isteps_away", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL;    __pyx_L0:; @@ -43060,29 +40941,50 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_14get_all_nodes_isteps_    __Pyx_XDECREF(__pyx_v_nextreachable);    __Pyx_XDECREF(__pyx_v_next_id);    __Pyx_XDECREF(__pyx_v_jump); -  __Pyx_XDECREF(__pyx_v_alt_id);    __Pyx_XDECREF(__pyx_v_newel);    __Pyx_XGIVEREF(__pyx_r);    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_17reachable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_17reachable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":884 + *         return frontier + *  + *     def reachable(self, fwords, ifrom, dist):             # <<<<<<<<<<<<<< + *         ret = [] + *         if (ifrom >= len(fwords)): + */ + +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8reachable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_8reachable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_fwords = 0;    PyObject *__pyx_v_ifrom = 0;    PyObject *__pyx_v_dist = 0; -  PyObject *__pyx_r = 0; +  PyObject *__pyx_v_ret = NULL; +  Py_ssize_t __pyx_v_alt_id; +  PyObject *__pyx_v_ifromchild = NULL; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("reachable (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  Py_ssize_t __pyx_t_2; +  PyObject *__pyx_t_3 = NULL; +  int __pyx_t_4; +  Py_ssize_t __pyx_t_5; +  PyObject *__pyx_t_6 = NULL; +  PyObject *__pyx_t_7 = NULL; +  int __pyx_t_8; +  Py_ssize_t __pyx_t_9; +  PyObject *(*__pyx_t_10)(PyObject *); +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fwords,&__pyx_n_s__ifrom,&__pyx_n_s__dist,0}; +  __Pyx_RefNannySetupContext("reachable");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fwords,&__pyx_n_s__ifrom,&__pyx_n_s__dist,0};      PyObject* values[3] = {0,0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); @@ -43090,23 +40992,26 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_17reachable(PyObject *_          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fwords)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fwords); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ifrom)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ifrom); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("reachable", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2: -        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dist)) != 0)) kw_args--; +        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dist); +        if (likely(values[2])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("reachable", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 884; __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 = 884; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "reachable") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -43127,40 +41032,6 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_17reachable(PyObject *_    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), __pyx_v_fwords, __pyx_v_ifrom, __pyx_v_dist); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":884 - *         return frontier - *  - *     def reachable(self, fwords, ifrom, dist):             # <<<<<<<<<<<<<< - *         ret = [] - *         if (ifrom >= len(fwords)): - */ - -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_fwords, PyObject *__pyx_v_ifrom, PyObject *__pyx_v_dist) { -  PyObject *__pyx_v_ret = NULL; -  PyObject *__pyx_v_alt_id = NULL; -  PyObject *__pyx_v_ifromchild = NULL; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  Py_ssize_t __pyx_t_2; -  PyObject *__pyx_t_3 = NULL; -  int __pyx_t_4; -  PyObject *(*__pyx_t_5)(PyObject *); -  PyObject *__pyx_t_6 = NULL; -  PyObject *__pyx_t_7 = NULL; -  PyObject *__pyx_t_8 = NULL; -  int __pyx_t_9; -  Py_ssize_t __pyx_t_10; -  PyObject *(*__pyx_t_11)(PyObject *); -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("reachable", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":885   *  @@ -43170,7 +41041,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py   *             return ret   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_ret = __pyx_t_1;    __pyx_t_1 = 0; @@ -43184,7 +41055,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py    __pyx_t_2 = PyObject_Length(__pyx_v_fwords); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 886; __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 = 886; __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 = 886; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyObject_RichCompare(__pyx_v_ifrom, __pyx_t_1, Py_GE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 886; __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_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -43201,9 +41073,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py      __Pyx_INCREF(((PyObject *)__pyx_v_ret));      __pyx_r = ((PyObject *)__pyx_v_ret);      goto __pyx_L0; -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":888   *         if (ifrom >= len(fwords)): @@ -43216,54 +41088,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py    __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 = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 888; __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 = 888; __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); -  __pyx_t_3 = 0; -  __pyx_t_3 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); -  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; -  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) { -    __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -    __pyx_t_5 = NULL; -  } else { -    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_1); -    __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; -  } -  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  for (;;) { -    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 = 888; __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 = 888; __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 = 888; __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 = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else { -      __pyx_t_3 = __pyx_t_5(__pyx_t_1); -      if (unlikely(!__pyx_t_3)) { -        if (PyErr_Occurred()) { -          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); -          else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        } -        break; -      } -      __Pyx_GOTREF(__pyx_t_3); -    } -    __Pyx_XDECREF(__pyx_v_alt_id); -    __pyx_v_alt_id = __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;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":889   *             return ret @@ -43274,19 +41100,20 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py   */      __pyx_t_3 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (!__pyx_t_3) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __pyx_t_6 = PyObject_GetItem(__pyx_t_3, __pyx_v_alt_id); if (!__pyx_t_6) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_6); +    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_alt_id, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_1) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __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_6, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3); -    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; -    __pyx_t_6 = PyInt_FromLong(__pyx_v_3_sa_EPSILON); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +    __pyx_t_1 = PyInt_FromLong(__pyx_v_3_sa_EPSILON); 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_t_6 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_6); -    __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 889; __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 = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __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 = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;      if (__pyx_t_4) {        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":890 @@ -43296,47 +41123,47 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py   *             else:   *                 if (dist==0):   */ -      __pyx_t_7 = PyObject_GetAttr(((PyObject *)__pyx_v_ret), __pyx_n_s__extend); 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_6 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__reachable); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_6 = PyObject_GetAttr(((PyObject *)__pyx_v_ret), __pyx_n_s__extend); 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); +      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__reachable); 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 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (!__pyx_t_3) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __pyx_t_8 = PyObject_GetItem(__pyx_t_3, __pyx_v_alt_id); if (!__pyx_t_8) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_8); +      __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_alt_id, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__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_3); __pyx_t_3 = 0; -      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_8, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_7, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_3); -      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      __pyx_t_8 = PyNumber_Add(__pyx_v_ifrom, __pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_8); +      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +      __pyx_t_7 = PyNumber_Add(__pyx_v_ifrom, __pyx_t_3); 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_3); __pyx_t_3 = 0;        __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_3); +      __Pyx_GOTREF(((PyObject *)__pyx_t_3));        __Pyx_INCREF(__pyx_v_fwords);        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_fwords);        __Pyx_GIVEREF(__pyx_v_fwords); -      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_8); -      __Pyx_GIVEREF(__pyx_t_8); +      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7); +      __Pyx_GIVEREF(__pyx_t_7);        __Pyx_INCREF(__pyx_v_dist);        PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_dist);        __Pyx_GIVEREF(__pyx_v_dist); -      __pyx_t_8 = 0; -      __pyx_t_8 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_8); -      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +      __pyx_t_7 = 0; +      __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); 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_1); __pyx_t_1 = 0;        __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[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_3); -      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_8); -      __Pyx_GIVEREF(__pyx_t_8); -      __pyx_t_8 = 0; -      __pyx_t_8 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_8); -      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +      __Pyx_GOTREF(((PyObject *)__pyx_t_3)); +      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7); +      __Pyx_GIVEREF(__pyx_t_7); +      __pyx_t_7 = 0; +      __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_3), NULL); 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_6); __pyx_t_6 = 0;        __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; -      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -      goto __pyx_L6; +      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +      goto __pyx_L9;      }      /*else*/ { @@ -43347,9 +41174,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py   *                     if (ifrom not in ret):   *                         ret.append(ifrom)   */ -      __pyx_t_8 = PyObject_RichCompare(__pyx_v_dist, __pyx_int_0, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +      __pyx_t_7 = PyObject_RichCompare(__pyx_v_dist, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_7); +      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;        if (__pyx_t_4) {          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":893 @@ -43359,7 +41187,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py   *                         ret.append(ifrom)   *                 else:   */ -        __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_v_ifrom, ((PyObject *)__pyx_v_ret), Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_4 = (__Pyx_NegateNonNeg(PySequence_Contains(((PyObject *)__pyx_v_ret), __pyx_v_ifrom))); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          if (__pyx_t_4) {            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":894 @@ -43369,11 +41197,14 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py   *                 else:   *                     for ifromchild in self.reachable(fwords,ifrom+fwords[ifrom][alt_id][2],dist-1):   */ -          __pyx_t_9 = PyList_Append(__pyx_v_ret, __pyx_v_ifrom); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          goto __pyx_L8; +          if (unlikely(((PyObject *)__pyx_v_ret) == Py_None)) { +            PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +          } +          __pyx_t_8 = PyList_Append(__pyx_v_ret, __pyx_v_ifrom); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          goto __pyx_L11;          } -        __pyx_L8:; -        goto __pyx_L7; +        __pyx_L11:; +        goto __pyx_L10;        }        /*else*/ { @@ -43384,62 +41215,54 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py   *                         if (ifromchild not in ret):   *                             ret.append(ifromchild)   */ -        __pyx_t_8 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__reachable); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_8); +        __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__reachable); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_7);          __pyx_t_3 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (!__pyx_t_3) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3); -        __pyx_t_7 = PyObject_GetItem(__pyx_t_3, __pyx_v_alt_id); if (!__pyx_t_7) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_7); +        __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_alt_id, sizeof(Py_ssize_t), PyInt_FromSsize_t); if (!__pyx_t_6) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __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_GetItemInt(__pyx_t_7, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_6, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3); -        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -        __pyx_t_7 = PyNumber_Add(__pyx_v_ifrom, __pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_7); +        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +        __pyx_t_6 = PyNumber_Add(__pyx_v_ifrom, __pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __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_v_dist, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __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 = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_6); +        __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(((PyObject *)__pyx_t_1));          __Pyx_INCREF(__pyx_v_fwords); -        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_fwords); +        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_fwords);          __Pyx_GIVEREF(__pyx_v_fwords); -        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); -        __Pyx_GIVEREF(__pyx_t_7); -        PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); +        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6); +        __Pyx_GIVEREF(__pyx_t_6); +        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_3);          __Pyx_GIVEREF(__pyx_t_3); -        __pyx_t_7 = 0; +        __pyx_t_6 = 0;          __pyx_t_3 = 0; -        __pyx_t_3 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_3 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3); -        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -        __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; +        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +        __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;          if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) { -          __pyx_t_6 = __pyx_t_3; __Pyx_INCREF(__pyx_t_6); __pyx_t_10 = 0; -          __pyx_t_11 = NULL; +          __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0; +          __pyx_t_10 = NULL;          } else { -          __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_6); -          __pyx_t_11 = Py_TYPE(__pyx_t_6)->tp_iternext; +          __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_1); +          __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext;          }          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;          for (;;) { -          if (!__pyx_t_11 && PyList_CheckExact(__pyx_t_6)) { -            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_6)) break; -            #if CYTHON_COMPILING_IN_CPYTHON -            __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #else -            __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #endif -          } else if (!__pyx_t_11 && PyTuple_CheckExact(__pyx_t_6)) { -            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_6)) break; -            #if CYTHON_COMPILING_IN_CPYTHON -            __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #else -            __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            #endif +          if (PyList_CheckExact(__pyx_t_1)) { +            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break; +            __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; +          } else if (PyTuple_CheckExact(__pyx_t_1)) { +            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +            __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++;            } else { -            __pyx_t_3 = __pyx_t_11(__pyx_t_6); +            __pyx_t_3 = __pyx_t_10(__pyx_t_1);              if (unlikely(!__pyx_t_3)) {                if (PyErr_Occurred()) {                  if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); @@ -43460,7 +41283,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py   *                             ret.append(ifromchild)   *    */ -          __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_v_ifromchild, ((PyObject *)__pyx_v_ret), Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_4 = (__Pyx_NegateNonNeg(PySequence_Contains(((PyObject *)__pyx_v_ret), __pyx_v_ifromchild))); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            if (__pyx_t_4) {              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":898 @@ -43470,18 +41293,20 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py   *    *         return ret   */ -            __pyx_t_9 = PyList_Append(__pyx_v_ret, __pyx_v_ifromchild); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            goto __pyx_L11; +            if (unlikely(((PyObject *)__pyx_v_ret) == Py_None)) { +              PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +            } +            __pyx_t_8 = PyList_Append(__pyx_v_ret, __pyx_v_ifromchild); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            goto __pyx_L14;            } -          __pyx_L11:; +          __pyx_L14:;          } -        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;        } -      __pyx_L7:; +      __pyx_L10:;      } -    __pyx_L6:; +    __pyx_L9:;    } -  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":900   *                             ret.append(ifromchild) @@ -43502,34 +41327,50 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_16reachable(struct __py    __Pyx_XDECREF(__pyx_t_3);    __Pyx_XDECREF(__pyx_t_6);    __Pyx_XDECREF(__pyx_t_7); -  __Pyx_XDECREF(__pyx_t_8);    __Pyx_AddTraceback("_sa.HieroCachingRuleFactory.reachable", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL;    __pyx_L0:;    __Pyx_XDECREF(__pyx_v_ret); -  __Pyx_XDECREF(__pyx_v_alt_id);    __Pyx_XDECREF(__pyx_v_ifromchild);    __Pyx_XGIVEREF(__pyx_r);    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_19shortest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_19shortest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":902 + *         return ret + *  + *     def shortest(self, fwords, ifrom, ito):             # <<<<<<<<<<<<<< + *         cdef unsigned alt_id + *         min = 1000 + */ + +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_9shortest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_9shortest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v_fwords = 0;    PyObject *__pyx_v_ifrom = 0;    PyObject *__pyx_v_ito = 0; -  PyObject *__pyx_r = 0; +  unsigned int __pyx_v_alt_id; +  PyObject *__pyx_v_min = NULL; +  PyObject *__pyx_v_currmin = NULL; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("shortest (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  int __pyx_t_2; +  Py_ssize_t __pyx_t_3; +  unsigned int __pyx_t_4; +  PyObject *__pyx_t_5 = NULL; +  PyObject *__pyx_t_6 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fwords,&__pyx_n_s__ifrom,&__pyx_n_s__ito,0}; +  __Pyx_RefNannySetupContext("shortest");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fwords,&__pyx_n_s__ifrom,&__pyx_n_s__ito,0};      PyObject* values[3] = {0,0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); @@ -43537,23 +41378,26 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_19shortest(PyObject *__          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fwords)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fwords); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ifrom)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ifrom); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("shortest", 1, 3, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 902; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }          case  2: -        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ito)) != 0)) kw_args--; +        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ito); +        if (likely(values[2])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("shortest", 1, 3, 3, 2); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 902; __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 = 902; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "shortest") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 902; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {        goto __pyx_L5_argtuple_error; @@ -43574,35 +41418,6 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_19shortest(PyObject *__    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), __pyx_v_fwords, __pyx_v_ifrom, __pyx_v_ito); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":902 - *         return ret - *  - *     def shortest(self, fwords, ifrom, ito):             # <<<<<<<<<<<<<< - *         cdef unsigned alt_id - *         min = 1000 - */ - -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_fwords, PyObject *__pyx_v_ifrom, PyObject *__pyx_v_ito) { -  unsigned int __pyx_v_alt_id; -  PyObject *__pyx_v_min = NULL; -  PyObject *__pyx_v_currmin = NULL; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  int __pyx_t_2; -  Py_ssize_t __pyx_t_3; -  unsigned int __pyx_t_4; -  PyObject *__pyx_t_5 = NULL; -  PyObject *__pyx_t_6 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("shortest", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":904   *     def shortest(self, fwords, ifrom, ito): @@ -43621,7 +41436,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx   *             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 = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_RichCompare(__pyx_v_ifrom, __pyx_v_ito, Py_GT); 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_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_2) { @@ -43637,9 +41453,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx      __Pyx_INCREF(__pyx_v_min);      __pyx_r = __pyx_v_min;      goto __pyx_L0; -    goto __pyx_L3; +    goto __pyx_L6;    } -  __pyx_L3:; +  __pyx_L6:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":907   *         if (ifrom > ito): @@ -43648,7 +41464,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx   *             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 = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_RichCompare(__pyx_v_ifrom, __pyx_v_ito, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 907; __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 = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;    if (__pyx_t_2) { @@ -43664,9 +41481,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx      __Pyx_INCREF(__pyx_int_0);      __pyx_r = __pyx_int_0;      goto __pyx_L0; -    goto __pyx_L4; +    goto __pyx_L7;    } -  __pyx_L4:; +  __pyx_L7:;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":909   *         if (ifrom == ito): @@ -43689,7 +41506,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx   *             if (fwords[ifrom][alt_id][0] != EPSILON):   *                 currmin += 1   */ -    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__shortest); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shortest); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_5 = PyObject_GetItem(__pyx_v_fwords, __pyx_v_ifrom); if (!__pyx_t_5) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); @@ -43703,7 +41520,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx      __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 = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_5); +    __Pyx_GOTREF(((PyObject *)__pyx_t_5));      __Pyx_INCREF(__pyx_v_fwords);      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_fwords);      __Pyx_GIVEREF(__pyx_v_fwords); @@ -43738,7 +41555,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;      __pyx_t_5 = PyInt_FromLong(__pyx_v_3_sa_EPSILON); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 911; __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 = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_NE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_1);      __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 = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -43757,9 +41575,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx        __Pyx_DECREF(__pyx_v_currmin);        __pyx_v_currmin = __pyx_t_1;        __pyx_t_1 = 0; -      goto __pyx_L7; +      goto __pyx_L10;      } -    __pyx_L7:; +    __pyx_L10:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":913   *             if (fwords[ifrom][alt_id][0] != EPSILON): @@ -43768,7 +41586,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx   *                 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 = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_currmin, __pyx_v_min, Py_LT); 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_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      if (__pyx_t_2) { @@ -43783,9 +41602,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx        __Pyx_INCREF(__pyx_v_currmin);        __Pyx_DECREF(__pyx_v_min);        __pyx_v_min = __pyx_v_currmin; -      goto __pyx_L8; +      goto __pyx_L11;      } -    __pyx_L8:; +    __pyx_L11:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":915 @@ -43816,23 +41635,49 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_18shortest(struct __pyx    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_21get_next_states(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_21get_next_states(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":917 + *         return min + *  + *     def get_next_states(self, _columns, curr_idx, min_dist=2):             # <<<<<<<<<<<<<< + *         result = [] + *         candidate = [[curr_idx,0]] + */ + +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_10get_next_states(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_10get_next_states(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    PyObject *__pyx_v__columns = 0;    PyObject *__pyx_v_curr_idx = 0;    PyObject *__pyx_v_min_dist = 0; -  PyObject *__pyx_r = 0; +  PyObject *__pyx_v_result = NULL; +  PyObject *__pyx_v_candidate = NULL; +  PyObject *__pyx_v_curr = NULL; +  PyObject *__pyx_v_curr_col = NULL; +  PyObject *__pyx_v_alt = NULL; +  PyObject *__pyx_v_next_id = NULL; +  PyObject *__pyx_v_jump = NULL; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("get_next_states (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  PyObject *__pyx_t_2 = NULL; +  Py_ssize_t __pyx_t_3; +  int __pyx_t_4; +  PyObject *__pyx_t_5 = NULL; +  int __pyx_t_6; +  int __pyx_t_7; +  int __pyx_t_8; +  PyObject *(*__pyx_t_9)(PyObject *); +  PyObject *__pyx_t_10 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___columns,&__pyx_n_s__curr_idx,&__pyx_n_s__min_dist,0}; +  __Pyx_RefNannySetupContext("get_next_states");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___columns,&__pyx_n_s__curr_idx,&__pyx_n_s__min_dist,0};      PyObject* values[3] = {0,0,0};      values[2] = ((PyObject *)__pyx_int_2);      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); @@ -43840,12 +41685,14 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_21get_next_states(PyObj          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s___columns)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s___columns); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__curr_idx)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__curr_idx); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("get_next_states", 0, 2, 3, 1); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          } @@ -43856,7 +41703,7 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_21get_next_states(PyObj          }        }        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 = 917; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "get_next_states") < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else {        switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -43879,43 +41726,6 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_21get_next_states(PyObj    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), __pyx_v__columns, __pyx_v_curr_idx, __pyx_v_min_dist); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":917 - *         return min - *  - *     def get_next_states(self, _columns, curr_idx, min_dist=2):             # <<<<<<<<<<<<<< - *         result = [] - *         candidate = [[curr_idx,0]] - */ - -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v__columns, PyObject *__pyx_v_curr_idx, PyObject *__pyx_v_min_dist) { -  PyObject *__pyx_v_result = NULL; -  PyObject *__pyx_v_candidate = NULL; -  PyObject *__pyx_v_curr = NULL; -  PyObject *__pyx_v_curr_col = NULL; -  PyObject *__pyx_v_alt = NULL; -  PyObject *__pyx_v_next_id = NULL; -  PyObject *__pyx_v_jump = NULL; -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  PyObject *__pyx_t_2 = NULL; -  Py_ssize_t __pyx_t_3; -  int __pyx_t_4; -  PyObject *__pyx_t_5 = NULL; -  int __pyx_t_6; -  int __pyx_t_7; -  int __pyx_t_8; -  PyObject *(*__pyx_t_9)(PyObject *); -  PyObject *__pyx_t_10 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("get_next_states", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":918   *  @@ -43925,7 +41735,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc   *    */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_result = __pyx_t_1;    __pyx_t_1 = 0; @@ -43937,7 +41747,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc   *         while len(candidate) > 0:   */    __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_INCREF(__pyx_v_curr_idx);    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_curr_idx);    __Pyx_GIVEREF(__pyx_v_curr_idx); @@ -43945,7 +41755,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc    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 = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));    __Pyx_GIVEREF(((PyObject *)__pyx_t_1));    __pyx_t_1 = 0; @@ -43960,7 +41770,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc   *             if curr[0] >= len(_columns):   */    while (1) { -    __pyx_t_3 = PyList_GET_SIZE(((PyObject *)__pyx_v_candidate)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(((PyObject *)__pyx_v_candidate) == Py_None)) { +      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    } +    __pyx_t_3 = PyList_GET_SIZE(((PyObject *)__pyx_v_candidate));       __pyx_t_4 = (__pyx_t_3 > 0);      if (!__pyx_t_4) break; @@ -43989,7 +41802,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc      __pyx_t_3 = PyObject_Length(__pyx_v__columns); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 923; __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 = 923; __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 = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_GE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 923; __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_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 = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -44003,10 +41817,10 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc   *             if curr[0] not in result and min_dist <= curr[1] <= self.max_initial_size:   *                 result.append(curr[0]);   */ -      goto __pyx_L3_continue; -      goto __pyx_L5; +      goto __pyx_L6_continue; +      goto __pyx_L8;      } -    __pyx_L5:; +    __pyx_L8:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":925   *             if curr[0] >= len(_columns): @@ -44017,17 +41831,19 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc   */      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_curr, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_5); -    __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_t_5, ((PyObject *)__pyx_v_result), Py_NE)); 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_NegateNonNeg(PySequence_Contains(((PyObject *)__pyx_v_result), __pyx_t_5))); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __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, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __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 = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_v_min_dist, __pyx_t_5, Py_LE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_1);        if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {          __Pyx_DECREF(__pyx_t_1); -        __pyx_t_2 = PyInt_FromLong(__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_initial_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __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 = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_t_2, Py_LE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 925; __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_5); __pyx_t_5 = 0; @@ -44046,13 +41862,16 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc   *             curr_col = _columns[curr[0]]   *             for alt in curr_col:   */ +      if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) { +        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +      }        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_1);        __pyx_t_8 = PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -      goto __pyx_L6; +      goto __pyx_L9;      } -    __pyx_L6:; +    __pyx_L9:;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":927   *             if curr[0] not in result and min_dist <= curr[1] <= self.max_initial_size: @@ -44086,20 +41905,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc        __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext;      }      for (;;) { -      if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_5)) { +      if (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 = 928; __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 = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #endif -      } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_5)) { +        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; +      } else if (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 = 928; __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 = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        #endif +        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;        } else {          __pyx_t_1 = __pyx_t_9(__pyx_t_5);          if (unlikely(!__pyx_t_1)) { @@ -44156,7 +41967,8 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc        __Pyx_GOTREF(__pyx_t_10);        __pyx_t_2 = PyInt_FromLong(__pyx_v_3_sa_EPSILON); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 931; __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 = 931; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_t_10, __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 931; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_1);        __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 = 931; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -44173,9 +41985,9 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc          __Pyx_INCREF(__pyx_int_0);          __Pyx_DECREF(__pyx_v_jump);          __pyx_v_jump = __pyx_int_0; -        goto __pyx_L9; +        goto __pyx_L12;        } -      __pyx_L9:; +      __pyx_L12:;        /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":933   *                 if (alt[0] == EPSILON): @@ -44184,19 +41996,21 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc   *                     candidate.append([next_id,curr[1]+jump])   *         return sorted(result);   */ -      __pyx_t_7 = (__Pyx_PySequence_Contains(__pyx_v_next_id, ((PyObject *)__pyx_v_result), Py_NE)); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = (__Pyx_NegateNonNeg(PySequence_Contains(((PyObject *)__pyx_v_result), __pyx_v_next_id))); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        if (__pyx_t_7) {          __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 1, sizeof(long), PyInt_FromLong); if (!__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_2 = PyNumber_Add(__pyx_t_1, __pyx_v_jump); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __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 = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_1 = PyObject_RichCompare(__pyx_v_min_dist, __pyx_t_2, Py_LE); 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);          if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {            __Pyx_DECREF(__pyx_t_1); -          __pyx_t_10 = PyInt_FromLong((__pyx_v_self->max_initial_size + 1)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = PyInt_FromLong((((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self)->max_initial_size + 1)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 933; __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 = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_10, Py_LE); 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_DECREF(__pyx_t_10); __pyx_t_10 = 0;          }          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -44215,13 +42029,16 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc   *         return sorted(result);   *    */ +        if (unlikely(((PyObject *)__pyx_v_candidate) == Py_None)) { +          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +        }          __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_curr, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __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 = 934; __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 = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_1); +        __Pyx_GOTREF(((PyObject *)__pyx_t_1));          __Pyx_INCREF(__pyx_v_next_id);          PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_next_id);          __Pyx_GIVEREF(__pyx_v_next_id); @@ -44230,12 +42047,12 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc          __pyx_t_2 = 0;          __pyx_t_8 = PyList_Append(__pyx_v_candidate, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; -        goto __pyx_L10; +        goto __pyx_L13;        } -      __pyx_L10:; +      __pyx_L13:;      }      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; -    __pyx_L3_continue:; +    __pyx_L6_continue:;    }    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":935 @@ -44247,7 +42064,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc   */    __Pyx_XDECREF(__pyx_r);    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 935; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_5); +  __Pyx_GOTREF(((PyObject *)__pyx_t_5));    __Pyx_INCREF(((PyObject *)__pyx_v_result));    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));    __Pyx_GIVEREF(((PyObject *)__pyx_v_result)); @@ -44279,43 +42096,7 @@ static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_20get_next_states(struc    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ - -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_23input(PyObject *__pyx_v_self, PyObject *__pyx_v_fwords); /*proto*/ -static char __pyx_doc_3_sa_23HieroCachingRuleFactory_22input[] = "When this function is called on the RuleFactory,\n        it looks up all of the rules that can be used to translate\n        the input sentence"; -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_23input(PyObject *__pyx_v_self, PyObject *__pyx_v_fwords) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("input (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_23HieroCachingRuleFactory_22input(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_v_self), ((PyObject *)__pyx_v_fwords)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_5input_lambda1(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyMethodDef __pyx_mdef_3_sa_23HieroCachingRuleFactory_5input_lambda1 = {__Pyx_NAMESTR("lambda1"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_5input_lambda1, METH_NOARGS, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_5input_lambda1(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("lambda1 (wrapper)", 0); -  __pyx_r = __pyx_lambda_funcdef_lambda1(__pyx_self); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_5input_7lambda1_lambda2(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyMethodDef __pyx_mdef_3_sa_23HieroCachingRuleFactory_5input_7lambda1_lambda2 = {__Pyx_NAMESTR("lambda2"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_5input_7lambda1_lambda2, METH_NOARGS, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_5input_7lambda1_lambda2(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("lambda2 (wrapper)", 0); -  __pyx_r = __pyx_lambda_funcdef_lambda2(__pyx_self); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} +static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_12generator4(struct __pyx_obj_3_sa___pyx_scope_struct_8_input *__pyx_cur_scope, PyObject *__pyx_sent_value); /* proto */  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1097   *                         if len(extracts) > 0: @@ -44325,7 +42106,9 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_5input_7lambda1_lambda2   *                                 fcount[f] += count   */ -static PyObject *__pyx_lambda_funcdef_lambda2(CYTHON_UNUSED PyObject *__pyx_self) { +static PyObject *__pyx_lambda_funcdef_lambda2(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyMethodDef __pyx_lambda_methdef_lambda2 = {__Pyx_NAMESTR("lambda2"), (PyCFunction)__pyx_lambda_funcdef_lambda2, METH_NOARGS, __Pyx_DOCSTR(0)}; +static PyObject *__pyx_lambda_funcdef_lambda2(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -44334,12 +42117,13 @@ static PyObject *__pyx_lambda_funcdef_lambda2(CYTHON_UNUSED PyObject *__pyx_self    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("lambda2", 0); +  __Pyx_RefNannySetupContext("lambda2"); +  __pyx_self = __pyx_self;    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1097; __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 = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__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)))); @@ -44357,7 +42141,7 @@ static PyObject *__pyx_lambda_funcdef_lambda2(CYTHON_UNUSED PyObject *__pyx_self    __Pyx_XDECREF(__pyx_t_1);    __Pyx_XDECREF(__pyx_t_2);    __Pyx_XDECREF(__pyx_t_3); -  __Pyx_AddTraceback("_sa.HieroCachingRuleFactory.input.lambda1.lambda2", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_AddTraceback("_sa.input.lambda1.lambda2", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL;    __pyx_L0:;    __Pyx_XGIVEREF(__pyx_r); @@ -44365,7 +42149,9 @@ static PyObject *__pyx_lambda_funcdef_lambda2(CYTHON_UNUSED PyObject *__pyx_self    return __pyx_r;  } -static PyObject *__pyx_lambda_funcdef_lambda1(CYTHON_UNUSED PyObject *__pyx_self) { +static PyObject *__pyx_lambda_funcdef_lambda1(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyMethodDef __pyx_lambda_methdef_lambda1 = {__Pyx_NAMESTR("lambda1"), (PyCFunction)__pyx_lambda_funcdef_lambda1, METH_NOARGS, __Pyx_DOCSTR(0)}; +static PyObject *__pyx_lambda_funcdef_lambda1(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -44374,14 +42160,15 @@ static PyObject *__pyx_lambda_funcdef_lambda1(CYTHON_UNUSED PyObject *__pyx_self    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("lambda1", 0); +  __Pyx_RefNannySetupContext("lambda1"); +  __pyx_self = __pyx_self;    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__defaultdict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_3_sa_23HieroCachingRuleFactory_5input_7lambda1_lambda2, 0, NULL, __pyx_n_s___sa, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_lambda_methdef_lambda2, NULL, __pyx_n_s___sa); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1097; __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 = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    __pyx_t_2 = 0; @@ -44399,7 +42186,7 @@ static PyObject *__pyx_lambda_funcdef_lambda1(CYTHON_UNUSED PyObject *__pyx_self    __Pyx_XDECREF(__pyx_t_1);    __Pyx_XDECREF(__pyx_t_2);    __Pyx_XDECREF(__pyx_t_3); -  __Pyx_AddTraceback("_sa.HieroCachingRuleFactory.input.lambda1", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_AddTraceback("_sa.input.lambda1", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL;    __pyx_L0:;    __Pyx_XGIVEREF(__pyx_r); @@ -44407,18 +42194,6 @@ static PyObject *__pyx_lambda_funcdef_lambda1(CYTHON_UNUSED PyObject *__pyx_self    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_5input_1lambda3(PyObject *__pyx_self, PyObject *__pyx_v_x); /*proto*/ -static PyMethodDef __pyx_mdef_3_sa_23HieroCachingRuleFactory_5input_1lambda3 = {__Pyx_NAMESTR("lambda3"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_5input_1lambda3, METH_O, __Pyx_DOCSTR(0)}; -static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_5input_1lambda3(PyObject *__pyx_self, PyObject *__pyx_v_x) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("lambda3 (wrapper)", 0); -  __pyx_r = __pyx_lambda_funcdef_lambda3(__pyx_self, ((PyObject *)__pyx_v_x)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1103   *                             for f, elist in fphrases.iteritems():   *                                 for e, alslist in elist.iteritems(): @@ -44427,7 +42202,9 @@ static PyObject *__pyx_pw_3_sa_23HieroCachingRuleFactory_5input_1lambda3(PyObjec   *                                     # count = len(locs) # Should be?   */ -static PyObject *__pyx_lambda_funcdef_lambda3(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x) { +static PyObject *__pyx_lambda_funcdef_lambda3(PyObject *__pyx_self, PyObject *__pyx_v_x); /*proto*/ +static PyMethodDef __pyx_lambda_methdef_lambda3 = {__Pyx_NAMESTR("lambda3"), (PyCFunction)__pyx_lambda_funcdef_lambda3, METH_O, __Pyx_DOCSTR(0)}; +static PyObject *__pyx_lambda_funcdef_lambda3(PyObject *__pyx_self, PyObject *__pyx_v_x) {    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -44435,7 +42212,8 @@ static PyObject *__pyx_lambda_funcdef_lambda3(CYTHON_UNUSED PyObject *__pyx_self    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("lambda3", 0); +  __Pyx_RefNannySetupContext("lambda3"); +  __pyx_self = __pyx_self;    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); @@ -44451,7 +42229,7 @@ static PyObject *__pyx_lambda_funcdef_lambda3(CYTHON_UNUSED PyObject *__pyx_self    goto __pyx_L0;    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1); -  __Pyx_AddTraceback("_sa.HieroCachingRuleFactory.input.lambda3", __pyx_clineno, __pyx_lineno, __pyx_filename); +  __Pyx_AddTraceback("_sa.input.lambda3", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = NULL;    __pyx_L0:;    __Pyx_XGIVEREF(__pyx_r); @@ -44467,48 +42245,40 @@ static PyObject *__pyx_lambda_funcdef_lambda3(CYTHON_UNUSED PyObject *__pyx_self   *         it looks up all of the rules that can be used to translate   */ -static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_22input(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, PyObject *__pyx_v_fwords) { +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_11input(PyObject *__pyx_v_self, PyObject *__pyx_v_fwords); /*proto*/ +static char __pyx_doc_3_sa_23HieroCachingRuleFactory_11input[] = "When this function is called on the RuleFactory,\n        it looks up all of the rules that can be used to translate\n        the input sentence"; +static PyObject *__pyx_pf_3_sa_23HieroCachingRuleFactory_11input(PyObject *__pyx_v_self, PyObject *__pyx_v_fwords) {    struct __pyx_obj_3_sa___pyx_scope_struct_8_input *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("input", 0); +  __Pyx_RefNannySetupContext("input");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_8_input *)__pyx_ptype_3_sa___pyx_scope_struct_8_input->tp_new(__pyx_ptype_3_sa___pyx_scope_struct_8_input, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL;    }    __Pyx_GOTREF(__pyx_cur_scope); +  __Pyx_INCREF(__pyx_v_self);    __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_INCREF(__pyx_v_fwords);    __pyx_cur_scope->__pyx_v_fwords = __pyx_v_fwords; -  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_fwords); +  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_fwords); -  { -    __pyx_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 937; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_DECREF(__pyx_cur_scope); -    __Pyx_RefNannyFinishContext(); -    return (PyObject *) gen; -  } +  __pyx_cur_scope->__pyx_base.resume_label = 0; +  __pyx_cur_scope->__pyx_base.body = (__pyx_generator_body_t) __pyx_gb_3_sa_23HieroCachingRuleFactory_12generator4; +  __Pyx_GIVEREF(__pyx_cur_scope); +  __Pyx_RefNannyFinishContext(); +  return (PyObject *) __pyx_cur_scope;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); -  goto __pyx_L0; -  __pyx_L1_error:; -  __Pyx_AddTraceback("_sa.HieroCachingRuleFactory.input", __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_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_12generator4(struct __pyx_obj_3_sa___pyx_scope_struct_8_input *__pyx_cur_scope, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_3_sa___pyx_scope_struct_8_input *__pyx_cur_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct_8_input *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    Py_ssize_t __pyx_t_1;    PyObject *__pyx_t_2 = NULL; @@ -44532,16 +42302,15 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene    PyObject *(*__pyx_t_20)(PyObject *);    float __pyx_t_21;    Py_ssize_t __pyx_t_22; -  Py_ssize_t __pyx_t_23; +  PyObject *(*__pyx_t_23)(PyObject *);    Py_ssize_t __pyx_t_24; -  Py_ssize_t __pyx_t_25; +  int __pyx_t_25;    int __pyx_t_26; -  int __pyx_t_27;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("None", 0); -  switch (__pyx_generator->resume_label) { +  __Pyx_RefNannySetupContext("None"); +  switch (__pyx_cur_scope->__pyx_base.resume_label) {      case 0: goto __pyx_L3_first_run; -    case 1: goto __pyx_L60_resume_from_yield; +    case 1: goto __pyx_L64_resume_from_yield;      default: /* CPython raises the right error here */      __Pyx_RefNannyFinishContext();      return NULL; @@ -44575,7 +42344,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *         nodes_isteps_away_buffer = {}   *         hit = 0   */ -  __pyx_cur_scope->__pyx_v_self->extract_time = 0.0; +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->extract_time = 0.0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":951   *         start_time = monitor_cpu() @@ -44625,13 +42394,13 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene    __Pyx_GOTREF(__pyx_t_3);    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__phrase_location), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 956; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 956; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_3 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 956; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __Pyx_GIVEREF(__pyx_t_3); -  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->rules->root); -  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->rules->root); -  __pyx_cur_scope->__pyx_v_self->rules->root = __pyx_t_3; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root); +  ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root = __pyx_t_3;    __pyx_t_3 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":958 @@ -44642,7 +42411,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *             for alt in range(0, len(fwords[i])):   */    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 958; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));    __pyx_cur_scope->__pyx_v_frontier = __pyx_t_3;    __pyx_t_3 = 0; @@ -44689,7 +42458,8 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __pyx_t_2 = PyInt_FromLong(__pyx_v_3_sa_EPSILON); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_NE); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_7);        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -44703,6 +42473,9 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *    *         xroot = None   */ +        if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_frontier) == Py_None)) { +          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +        }          __pyx_t_7 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_7);          __pyx_t_2 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -44712,7 +42485,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene          __pyx_t_9 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_9);          __pyx_t_10 = PyTuple_New(7); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_10); +        __Pyx_GOTREF(((PyObject *)__pyx_t_10));          PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7);          __Pyx_GIVEREF(__pyx_t_7);          PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_2); @@ -44722,9 +42495,9 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene          __Pyx_INCREF(__pyx_int_0);          PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_int_0);          __Pyx_GIVEREF(__pyx_int_0); -        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self->rules->root); -        PyTuple_SET_ITEM(__pyx_t_10, 4, __pyx_cur_scope->__pyx_v_self->rules->root); -        __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self->rules->root); +        __Pyx_INCREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root); +        PyTuple_SET_ITEM(__pyx_t_10, 4, ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root); +        __Pyx_GIVEREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root);          __Pyx_INCREF(((PyObject *)__pyx_empty_tuple));          PyTuple_SET_ITEM(__pyx_t_10, 5, ((PyObject *)__pyx_empty_tuple));          __Pyx_GIVEREF(((PyObject *)__pyx_empty_tuple)); @@ -44760,7 +42533,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *         if x1 in self.rules.root.children:   *             xroot = self.rules.root.children[x1]   */ -  __pyx_cur_scope->__pyx_v_x1 = __pyx_f_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, 1); +  __pyx_cur_scope->__pyx_v_x1 = __pyx_f_3_sa_sym_setindex(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->category, 1);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":966   *         xroot = None @@ -44771,9 +42544,9 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   */    __pyx_t_10 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_x1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_10); -  __pyx_t_9 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self->rules->root, __pyx_n_s__children); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_9 = PyObject_GetAttr(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root, __pyx_n_s__children); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_9); -  __pyx_t_8 = (__Pyx_PySequence_Contains(__pyx_t_10, __pyx_t_9, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_8 = ((PySequence_Contains(__pyx_t_9, __pyx_t_10))); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;    if (__pyx_t_8) { @@ -44785,7 +42558,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *         else:   *             xroot = ExtendedTrieNode(suffix_link=self.rules.root, phrase_location=PhraseLocation())   */ -    __pyx_t_9 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self->rules->root, __pyx_n_s__children); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = PyObject_GetAttr(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root, __pyx_n_s__children); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_9);      __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_9, __pyx_cur_scope->__pyx_v_x1, sizeof(int), PyInt_FromLong); if (!__pyx_t_10) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_10); @@ -44808,12 +42581,12 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   */      __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_10)); -    if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__suffix_link), __pyx_cur_scope->__pyx_v_self->rules->root) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__suffix_link), ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_PhraseLocation)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_9);      if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__phrase_location), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; -    __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_9);      __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_xroot); @@ -44829,7 +42602,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *    *         for i in range(self.min_gap_size, len(fwords)):   */ -    __pyx_t_9 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self->rules->root, __pyx_n_s__children); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_9 = PyObject_GetAttr(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root, __pyx_n_s__children); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_9);      if (__Pyx_SetItemInt(__pyx_t_9, __pyx_cur_scope->__pyx_v_x1, __pyx_cur_scope->__pyx_v_xroot, sizeof(int), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -44844,7 +42617,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                 if fwords[i][alt][0] != EPSILON:   */    __pyx_t_1 = PyObject_Length(__pyx_cur_scope->__pyx_v_fwords); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  for (__pyx_t_4 = __pyx_cur_scope->__pyx_v_self->min_gap_size; __pyx_t_4 < __pyx_t_1; __pyx_t_4+=1) { +  for (__pyx_t_4 = ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->min_gap_size; __pyx_t_4 < __pyx_t_1; __pyx_t_4+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_4;      /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":973 @@ -44878,7 +42651,8 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;        __pyx_t_10 = PyInt_FromLong(__pyx_v_3_sa_EPSILON); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_10); -      __pyx_t_3 = PyObject_RichCompare(__pyx_t_9, __pyx_t_10, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_3 = PyObject_RichCompare(__pyx_t_9, __pyx_t_10, Py_NE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_3);        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;        __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -44892,25 +42666,28 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *    *         next_states = []   */ -        __pyx_t_3 = PyInt_FromLong((__pyx_cur_scope->__pyx_v_i - __pyx_cur_scope->__pyx_v_self->min_gap_size)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_frontier) == Py_None)) { +          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +        } +        __pyx_t_3 = PyInt_FromLong((__pyx_cur_scope->__pyx_v_i - ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->min_gap_size)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_3);          __pyx_t_10 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_10);          __pyx_t_9 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_alt); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_9); -        __pyx_t_2 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->min_gap_size); 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_7 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_x1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_7);          __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_12); +        __Pyx_GOTREF(((PyObject *)__pyx_t_12));          PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_7);          __Pyx_GIVEREF(__pyx_t_7);          __pyx_t_7 = 0;          __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_7);          __pyx_t_13 = PyTuple_New(7); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_13); +        __Pyx_GOTREF(((PyObject *)__pyx_t_13));          PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_3);          __Pyx_GIVEREF(__pyx_t_3);          PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_10); @@ -44948,7 +42725,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *             next_states.append(self.get_next_states(fwords,i,self.min_gap_size))   */    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_13); +  __Pyx_GOTREF(((PyObject *)__pyx_t_13));    __Pyx_GIVEREF(((PyObject *)__pyx_t_13));    __pyx_cur_scope->__pyx_v_next_states = __pyx_t_13;    __pyx_t_13 = 0; @@ -44971,14 +42748,17 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *    *         while len(frontier) > 0:   */ -    __pyx_t_13 = PyObject_GetAttr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s__get_next_states); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_next_states) == Py_None)) { +      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    } +    __pyx_t_13 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__get_next_states); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_13);      __pyx_t_7 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_7); -    __pyx_t_12 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_12 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->min_gap_size); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_12);      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_2); +    __Pyx_GOTREF(((PyObject *)__pyx_t_2));      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_fwords);      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_fwords);      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_fwords); @@ -45004,7 +42784,10 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *             for k, i, alt, pathlen, node, prefix, is_shadow_path in frontier:   */    while (1) { -    __pyx_t_1 = PyList_GET_SIZE(((PyObject *)__pyx_cur_scope->__pyx_v_frontier)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_frontier) == Py_None)) { +      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    } +    __pyx_t_1 = PyList_GET_SIZE(((PyObject *)__pyx_cur_scope->__pyx_v_frontier));       __pyx_t_8 = (__pyx_t_1 > 0);      if (!__pyx_t_8) break; @@ -45016,7 +42799,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                 word_id = fwords[i][alt][0]   */      __pyx_t_12 = PyList_New(0); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_12); +    __Pyx_GOTREF(((PyObject *)__pyx_t_12));      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_new_frontier));      __Pyx_XDECREF(((PyObject *)__pyx_cur_scope->__pyx_v_new_frontier));      __Pyx_GIVEREF(((PyObject *)__pyx_t_12)); @@ -45030,28 +42813,21 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                 word_id = fwords[i][alt][0]   *                 spanlen = fwords[i][alt][2]   */ +    if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_frontier) == Py_None)) { +      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    }      __pyx_t_12 = ((PyObject *)__pyx_cur_scope->__pyx_v_frontier); __Pyx_INCREF(__pyx_t_12); __pyx_t_1 = 0;      for (;;) {        if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_12)) break; -      #if CYTHON_COMPILING_IN_CPYTHON -      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_1); __Pyx_INCREF(__pyx_t_2); __pyx_t_1++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #else -      __pyx_t_2 = PySequence_ITEM(__pyx_t_12, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_1); __Pyx_INCREF(__pyx_t_2); __pyx_t_1++;        if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {          PyObject* sequence = __pyx_t_2; -        #if CYTHON_COMPILING_IN_CPYTHON -        Py_ssize_t size = Py_SIZE(sequence); -        #else -        Py_ssize_t size = PySequence_Size(sequence); -        #endif -        if (unlikely(size != 7)) { -          if (size > 7) __Pyx_RaiseTooManyValuesError(7); -          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        } -        #if CYTHON_COMPILING_IN_CPYTHON          if (likely(PyTuple_CheckExact(sequence))) { +          if (unlikely(PyTuple_GET_SIZE(sequence) != 7)) { +            if (PyTuple_GET_SIZE(sequence) > 7) __Pyx_RaiseTooManyValuesError(7); +            else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +            {__pyx_filename = __pyx_f[8]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          }            __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0);             __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1);             __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2);  @@ -45060,6 +42836,11 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene            __pyx_t_14 = PyTuple_GET_ITEM(sequence, 5);             __pyx_t_15 = PyTuple_GET_ITEM(sequence, 6);           } else { +          if (unlikely(PyList_GET_SIZE(sequence) != 7)) { +            if (PyList_GET_SIZE(sequence) > 7) __Pyx_RaiseTooManyValuesError(7); +            else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +            {__pyx_filename = __pyx_f[8]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          }            __pyx_t_13 = PyList_GET_ITEM(sequence, 0);             __pyx_t_7 = PyList_GET_ITEM(sequence, 1);             __pyx_t_9 = PyList_GET_ITEM(sequence, 2);  @@ -45075,36 +42856,34 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene          __Pyx_INCREF(__pyx_t_3);          __Pyx_INCREF(__pyx_t_14);          __Pyx_INCREF(__pyx_t_15); -        #else -        Py_ssize_t i; -        PyObject** temps[7] = {&__pyx_t_13,&__pyx_t_7,&__pyx_t_9,&__pyx_t_10,&__pyx_t_3,&__pyx_t_14,&__pyx_t_15}; -        for (i=0; i < 7; i++) { -          PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          *(temps[i]) = item; -        } -        #endif          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -      } else -      { +      } else {          Py_ssize_t index = -1; -        PyObject** temps[7] = {&__pyx_t_13,&__pyx_t_7,&__pyx_t_9,&__pyx_t_10,&__pyx_t_3,&__pyx_t_14,&__pyx_t_15};          __pyx_t_16 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_16);          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;          __pyx_t_17 = Py_TYPE(__pyx_t_16)->tp_iternext; -        for (index=0; index < 7; index++) { -          PyObject* item = __pyx_t_17(__pyx_t_16); if (unlikely(!item)) goto __pyx_L21_unpacking_failed; -          __Pyx_GOTREF(item); -          *(temps[index]) = item; -        } +        index = 0; __pyx_t_13 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_13)) goto __pyx_L21_unpacking_failed; +        __Pyx_GOTREF(__pyx_t_13); +        index = 1; __pyx_t_7 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_7)) goto __pyx_L21_unpacking_failed; +        __Pyx_GOTREF(__pyx_t_7); +        index = 2; __pyx_t_9 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_9)) goto __pyx_L21_unpacking_failed; +        __Pyx_GOTREF(__pyx_t_9); +        index = 3; __pyx_t_10 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_10)) goto __pyx_L21_unpacking_failed; +        __Pyx_GOTREF(__pyx_t_10); +        index = 4; __pyx_t_3 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_3)) goto __pyx_L21_unpacking_failed; +        __Pyx_GOTREF(__pyx_t_3); +        index = 5; __pyx_t_14 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_14)) goto __pyx_L21_unpacking_failed; +        __Pyx_GOTREF(__pyx_t_14); +        index = 6; __pyx_t_15 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_15)) goto __pyx_L21_unpacking_failed; +        __Pyx_GOTREF(__pyx_t_15);          if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_16), 7) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __pyx_t_17 = NULL;          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;          goto __pyx_L22_unpacking_done;          __pyx_L21_unpacking_failed:;          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; -        __pyx_t_17 = NULL; -        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +        if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +        if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);          {__pyx_filename = __pyx_f[8]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __pyx_L22_unpacking_done:;        } @@ -45189,7 +42968,8 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   */        __pyx_t_2 = PyInt_FromLong(__pyx_v_3_sa_EPSILON); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_2); -      __pyx_t_15 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_word_id, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 987; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_15 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_word_id, __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 987; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_15);        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;        __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; @@ -45210,7 +42990,8 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene          __pyx_t_5 = PyObject_Length(__pyx_cur_scope->__pyx_v_fwords); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __pyx_t_15 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_15); -        __pyx_t_14 = PyObject_RichCompare(__pyx_t_2, __pyx_t_15, Py_GE); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_14 = PyObject_RichCompare(__pyx_t_2, __pyx_t_15, Py_GE); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_14);          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;          __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -45256,6 +43037,9 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                     continue   *    */ +          if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_frontier) == Py_None)) { +            PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +          }            __pyx_t_14 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_14);            __pyx_t_15 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -45266,7 +43050,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene            __pyx_t_15 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_nualt); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_15);            __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); +          __Pyx_GOTREF(((PyObject *)__pyx_t_3));            PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14);            __Pyx_GIVEREF(__pyx_t_14);            PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); @@ -45312,7 +43096,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                 arity = hiero_phrase.arity()   */        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_3); +      __Pyx_GOTREF(((PyObject *)__pyx_t_3));        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_word_id);        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_word_id);        __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_word_id); @@ -45333,7 +43117,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *    */        __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 996; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_15); +      __Pyx_GOTREF(((PyObject *)__pyx_t_15));        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_phrase);        PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_cur_scope->__pyx_v_phrase);        __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_phrase); @@ -45380,7 +43164,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   */        __pyx_t_15 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s__children); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_15); -      __pyx_t_8 = (__Pyx_PySequence_Contains(__pyx_cur_scope->__pyx_v_word_id, __pyx_t_15, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_8 = ((PySequence_Contains(__pyx_t_15, __pyx_cur_scope->__pyx_v_word_id))); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;        if (__pyx_t_8) { @@ -45472,7 +43256,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene            __pyx_t_3 = PyObject_GetAttr(__pyx_t_15, __pyx_n_s__children); 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_DECREF(__pyx_t_15); __pyx_t_15 = 0; -          __pyx_t_8 = (__Pyx_PySequence_Contains(__pyx_cur_scope->__pyx_v_word_id, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_8 = ((PySequence_Contains(__pyx_t_3, __pyx_cur_scope->__pyx_v_word_id))); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;            if (__pyx_t_8) { @@ -45633,7 +43417,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         if arity > 0:   */            if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__phrase), ((PyObject *)__pyx_cur_scope->__pyx_v_hiero_phrase)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_2 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_2);            __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_new_node); @@ -45670,7 +43454,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene              __pyx_t_2 = PyObject_GetItem(__pyx_t_3, __pyx_cur_scope->__pyx_v_word_id); if (!__pyx_t_2) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1035; __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 *)((struct __pyx_vtabstruct_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_2, __pyx_cur_scope->__pyx_v_hiero_phrase)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_3_sa_HieroCachingRuleFactory *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->__pyx_vtab)->intersect(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_node, __pyx_t_2, __pyx_cur_scope->__pyx_v_hiero_phrase)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_3);              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;              __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_phrase_location)); @@ -45705,7 +43489,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                             if sa_range is not None:   *                                 phrase_location = PhraseLocation(sa_low=sa_range[0], sa_high=sa_range[1])   */ -            __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_cur_scope->__pyx_v_self->fsa), __pyx_n_s__lookup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_3 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->fsa), __pyx_n_s__lookup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_3);              __pyx_t_2 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_phrase, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_2); @@ -45721,7 +43505,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene              __pyx_t_10 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_phrase_location->sa_high); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10);              __pyx_t_9 = PyTuple_New(4); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_9); +            __Pyx_GOTREF(((PyObject *)__pyx_t_9));              PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_t_2));              __Pyx_GIVEREF(((PyObject *)__pyx_t_2));              PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_15); @@ -45771,7 +43555,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene                __Pyx_GOTREF(__pyx_t_9);                if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__sa_high), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; -              __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_PhraseLocation)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_9 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_PhraseLocation)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_9);                __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;                __Pyx_GOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_phrase_location)); @@ -45841,11 +43625,11 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         if node.suffix_link is not None:   *                             suffix_link = node.suffix_link.children[word_id]   */ -          __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self->rules->root); +          __Pyx_INCREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root);            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_suffix_link);            __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_suffix_link); -          __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self->rules->root); -          __pyx_cur_scope->__pyx_v_suffix_link = __pyx_cur_scope->__pyx_v_self->rules->root; +          __Pyx_GIVEREF(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root); +          __pyx_cur_scope->__pyx_v_suffix_link = ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->rules->root;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1051   *                         # Search succeeded @@ -45912,7 +43696,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                     node = new_node   */            if (PyDict_SetItem(__pyx_t_9, ((PyObject *)__pyx_n_s__phrase), ((PyObject *)__pyx_cur_scope->__pyx_v_hiero_phrase)) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __pyx_t_10 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10);            __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_new_node); @@ -45955,7 +43739,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         xcat_index = arity+1   *                         xcat = sym_setindex(self.category, xcat_index)   */ -        __pyx_t_8 = (__pyx_cur_scope->__pyx_v_arity < __pyx_cur_scope->__pyx_v_self->max_nonterminals); +        __pyx_t_8 = (__pyx_cur_scope->__pyx_v_arity < ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->max_nonterminals);          if (__pyx_t_8) {            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1063 @@ -45981,7 +43765,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         if is_shadow_path:   */            __pyx_t_18 = __Pyx_PyInt_AsInt(__pyx_cur_scope->__pyx_v_xcat_index); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __pyx_cur_scope->__pyx_v_xcat = __pyx_f_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, __pyx_t_18); +          __pyx_cur_scope->__pyx_v_xcat = __pyx_f_3_sa_sym_setindex(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->category, __pyx_t_18);            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1065   *                         xcat_index = arity+1 @@ -46032,7 +43816,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                                 suffix_link=node.suffix_link.children[suffix_link_xcat],   */            __pyx_t_18 = __Pyx_PyInt_AsInt(__pyx_cur_scope->__pyx_v_suffix_link_xcat_index); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1068; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __pyx_cur_scope->__pyx_v_suffix_link_xcat = __pyx_f_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, __pyx_t_18); +          __pyx_cur_scope->__pyx_v_suffix_link_xcat = __pyx_f_3_sa_sym_setindex(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->category, __pyx_t_18);            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1069   *                             suffix_link_xcat_index = xcat_index-1 @@ -46076,7 +43860,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene            __pyx_t_9 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_xcat); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_9);            __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); +          __Pyx_GOTREF(((PyObject *)__pyx_t_3));            PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9);            __Pyx_GIVEREF(__pyx_t_9);            __pyx_t_9 = 0; @@ -46084,7 +43868,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene            __Pyx_GOTREF(__pyx_t_9);            __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[8]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); +          __Pyx_GOTREF(((PyObject *)__pyx_t_3));            PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9);            __Pyx_GIVEREF(__pyx_t_9);            __pyx_t_9 = 0; @@ -46093,7 +43877,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene            __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;            if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__phrase), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; -          __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1069; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_9 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_ExtendedTrieNode)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_9);            __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; @@ -46131,12 +43915,12 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         num_subpatterns = (<PhraseLocation> node.phrase_location).num_subpatterns   *                         chunklen = IntList(initial_len=num_subpatterns)   */ -          __pyx_t_9 = PyObject_GetAttr(((PyObject *)__pyx_cur_scope->__pyx_v_self->sampler), __pyx_n_s__sample); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1075; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_9 = PyObject_GetAttr(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->sampler), __pyx_n_s__sample); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1075; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_9);            __pyx_t_10 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s__phrase_location); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1075; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10);            __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1075; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); +          __Pyx_GOTREF(((PyObject *)__pyx_t_3));            PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10);            __Pyx_GIVEREF(__pyx_t_10);            __pyx_t_10 = 0; @@ -46176,7 +43960,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene            __Pyx_GOTREF(__pyx_t_3);            if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__initial_len), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -          __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_3 = PyEval_CallObjectWithKeywords(((PyObject *)((PyObject*)__pyx_ptype_3_sa_IntList)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_3);            __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;            __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_chunklen)); @@ -46213,7 +43997,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         extract_start = monitor_cpu()   */            __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); +          __Pyx_GOTREF(((PyObject *)__pyx_t_3));            __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_extracts));            __Pyx_XDECREF(((PyObject *)__pyx_cur_scope->__pyx_v_extracts));            __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); @@ -46263,7 +44047,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                             assign_matching(&matching, sample.arr, j, num_subpatterns, self.fda.sent_id.arr)   */              __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_3); +            __Pyx_GOTREF(((PyObject *)__pyx_t_3));              __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_extract);              __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_extract);              __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); @@ -46277,7 +44061,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                             loc = tuple(sample[j:j+num_subpatterns])   *                             extract = self.extract(hiero_phrase, &matching, chunklen.arr, num_subpatterns)   */ -            __pyx_f_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); +            __pyx_f_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, ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->fda->sent_id->arr);              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1087   *  @@ -46289,7 +44073,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene              __pyx_t_3 = __Pyx_PySequence_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)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_3);              __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_10); +            __Pyx_GOTREF(((PyObject *)__pyx_t_10));              PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3);              __Pyx_GIVEREF(__pyx_t_3);              __pyx_t_3 = 0; @@ -46309,7 +44093,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                             extracts.extend([(e, loc) for e in extract])   *                             j = j + num_subpatterns   */ -            __pyx_t_3 = ((struct __pyx_vtabstruct_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_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1088; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_3 = ((struct __pyx_vtabstruct_3_sa_HieroCachingRuleFactory *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->__pyx_vtab)->extract(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__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_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_3);              __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_extract);              __Pyx_DECREF(__pyx_cur_scope->__pyx_v_extract); @@ -46327,7 +44111,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene              __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_cur_scope->__pyx_v_extracts), __pyx_n_s__extend); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_3);              __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_10); +            __Pyx_GOTREF(((PyObject *)__pyx_t_10));              if (PyList_CheckExact(__pyx_cur_scope->__pyx_v_extract) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_extract)) {                __pyx_t_9 = __pyx_cur_scope->__pyx_v_extract; __Pyx_INCREF(__pyx_t_9); __pyx_t_5 = 0;                __pyx_t_20 = NULL; @@ -46337,20 +44121,12 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene                __pyx_t_20 = Py_TYPE(__pyx_t_9)->tp_iternext;              }              for (;;) { -              if (!__pyx_t_20 && PyList_CheckExact(__pyx_t_9)) { +              if (PyList_CheckExact(__pyx_t_9)) {                  if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_9)) break; -                #if CYTHON_COMPILING_IN_CPYTHON -                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_5); __Pyx_INCREF(__pyx_t_14); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                #else -                __pyx_t_14 = PySequence_ITEM(__pyx_t_9, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                #endif -              } else if (!__pyx_t_20 && PyTuple_CheckExact(__pyx_t_9)) { +                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_5); __Pyx_INCREF(__pyx_t_14); __pyx_t_5++; +              } else if (PyTuple_CheckExact(__pyx_t_9)) {                  if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_9)) break; -                #if CYTHON_COMPILING_IN_CPYTHON -                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_5); __Pyx_INCREF(__pyx_t_14); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                #else -                __pyx_t_14 = PySequence_ITEM(__pyx_t_9, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                #endif +                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_5); __Pyx_INCREF(__pyx_t_14); __pyx_t_5++;                } else {                  __pyx_t_14 = __pyx_t_20(__pyx_t_9);                  if (unlikely(!__pyx_t_14)) { @@ -46368,19 +44144,19 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene                __pyx_cur_scope->__pyx_v_e = __pyx_t_14;                __pyx_t_14 = 0;                __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __Pyx_GOTREF(__pyx_t_14); +              __Pyx_GOTREF(((PyObject *)__pyx_t_14));                __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e);                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_cur_scope->__pyx_v_e);                __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_e);                __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loc);                PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_cur_scope->__pyx_v_loc);                __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loc); -              if (unlikely(__Pyx_PyList_Append(__pyx_t_10, (PyObject*)__pyx_t_14))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              if (unlikely(PyList_Append(__pyx_t_10, (PyObject*)__pyx_t_14))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;              }              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;              __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_9); +            __Pyx_GOTREF(((PyObject *)__pyx_t_9));              __Pyx_INCREF(((PyObject *)__pyx_t_10));              PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_t_10));              __Pyx_GIVEREF(((PyObject *)__pyx_t_10)); @@ -46440,7 +44216,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         if len(extracts) > 0:   *                             fcount = Counter()   */ -          __pyx_t_10 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->extract_time); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = PyFloat_FromDouble(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->extract_time); 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_9 = PyNumber_Add(__pyx_t_10, __pyx_cur_scope->__pyx_v_extract_stop); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_9); @@ -46448,9 +44224,9 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene            __pyx_t_10 = PyNumber_Subtract(__pyx_t_9, __pyx_cur_scope->__pyx_v_extract_start); 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_DECREF(__pyx_t_9); __pyx_t_9 = 0; -          __pyx_t_21 = __pyx_PyFloat_AsFloat(__pyx_t_10); if (unlikely((__pyx_t_21 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_21 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_21 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          __pyx_cur_scope->__pyx_v_self->extract_time = __pyx_t_21; +          ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->extract_time = __pyx_t_21;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1095   *                         extract_stop = monitor_cpu() @@ -46459,7 +44235,10 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                             fcount = Counter()   *                             fphrases = defaultdict(lambda: defaultdict(lambda: defaultdict(list)))   */ -          __pyx_t_5 = PyList_GET_SIZE(((PyObject *)__pyx_cur_scope->__pyx_v_extracts)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1095; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_extracts) == Py_None)) { +            PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +          } +          __pyx_t_5 = PyList_GET_SIZE(((PyObject *)__pyx_cur_scope->__pyx_v_extracts));             __pyx_t_19 = (__pyx_t_5 > 0);            if (__pyx_t_19) { @@ -46490,10 +44269,10 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   */              __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__defaultdict); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_9); -            __pyx_t_10 = __Pyx_CyFunction_NewEx(&__pyx_mdef_3_sa_23HieroCachingRuleFactory_5input_lambda1, 0, NULL, __pyx_n_s___sa, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_lambda_methdef_lambda1, NULL, __pyx_n_s___sa); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10);              __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_3); +            __Pyx_GOTREF(((PyObject *)__pyx_t_3));              PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10);              __Pyx_GIVEREF(__pyx_t_10);              __pyx_t_10 = 0; @@ -46514,43 +44293,36 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                                 fcount[f] += count   *                                 fphrases[f][e][als].append(loc)   */ +            if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_extracts) == Py_None)) { +              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +            }              __pyx_t_10 = ((PyObject *)__pyx_cur_scope->__pyx_v_extracts); __Pyx_INCREF(__pyx_t_10); __pyx_t_5 = 0;              for (;;) {                if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_10)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_3 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              #else -              __pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              #endif +              __pyx_t_3 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++;                if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {                  PyObject* sequence = __pyx_t_3; -                #if CYTHON_COMPILING_IN_CPYTHON -                Py_ssize_t size = Py_SIZE(sequence); -                #else -                Py_ssize_t size = PySequence_Size(sequence); -                #endif -                if (unlikely(size != 2)) { -                  if (size > 2) __Pyx_RaiseTooManyValuesError(2); -                  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                } -                #if CYTHON_COMPILING_IN_CPYTHON                  if (likely(PyTuple_CheckExact(sequence))) { +                  if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +                    if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                    else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  }                    __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0);                     __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1);                   } else { +                  if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +                    if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                    else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  }                    __pyx_t_9 = PyList_GET_ITEM(sequence, 0);                     __pyx_t_14 = PyList_GET_ITEM(sequence, 1);                   }                  __Pyx_INCREF(__pyx_t_9);                  __Pyx_INCREF(__pyx_t_14); -                #else -                __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __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 = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                #endif                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -              } else -              { +              } else {                  Py_ssize_t index = -1;                  __pyx_t_15 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15); @@ -46561,35 +44333,33 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene                  index = 1; __pyx_t_14 = __pyx_t_17(__pyx_t_15); if (unlikely(!__pyx_t_14)) goto __pyx_L50_unpacking_failed;                  __Pyx_GOTREF(__pyx_t_14);                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_15), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __pyx_t_17 = NULL;                  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                  goto __pyx_L51_unpacking_done;                  __pyx_L50_unpacking_failed:;                  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -                __pyx_t_17 = NULL; -                if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +                if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +                if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __pyx_L51_unpacking_done:;                }                if ((likely(PyTuple_CheckExact(__pyx_t_9))) || (PyList_CheckExact(__pyx_t_9))) {                  PyObject* sequence = __pyx_t_9; -                #if CYTHON_COMPILING_IN_CPYTHON -                Py_ssize_t size = Py_SIZE(sequence); -                #else -                Py_ssize_t size = PySequence_Size(sequence); -                #endif -                if (unlikely(size != 4)) { -                  if (size > 4) __Pyx_RaiseTooManyValuesError(4); -                  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                } -                #if CYTHON_COMPILING_IN_CPYTHON                  if (likely(PyTuple_CheckExact(sequence))) { +                  if (unlikely(PyTuple_GET_SIZE(sequence) != 4)) { +                    if (PyTuple_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4); +                    else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  }                    __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0);                     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);                     __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2);                     __pyx_t_13 = PyTuple_GET_ITEM(sequence, 3);                   } else { +                  if (unlikely(PyList_GET_SIZE(sequence) != 4)) { +                    if (PyList_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4); +                    else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  }                    __pyx_t_15 = PyList_GET_ITEM(sequence, 0);                     __pyx_t_2 = PyList_GET_ITEM(sequence, 1);                     __pyx_t_7 = PyList_GET_ITEM(sequence, 2);  @@ -46599,36 +44369,28 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene                  __Pyx_INCREF(__pyx_t_2);                  __Pyx_INCREF(__pyx_t_7);                  __Pyx_INCREF(__pyx_t_13); -                #else -                Py_ssize_t i; -                PyObject** temps[4] = {&__pyx_t_15,&__pyx_t_2,&__pyx_t_7,&__pyx_t_13}; -                for (i=0; i < 4; i++) { -                  PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  *(temps[i]) = item; -                } -                #endif                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; -              } else -              { +              } else {                  Py_ssize_t index = -1; -                PyObject** temps[4] = {&__pyx_t_15,&__pyx_t_2,&__pyx_t_7,&__pyx_t_13};                  __pyx_t_16 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_16);                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;                  __pyx_t_17 = Py_TYPE(__pyx_t_16)->tp_iternext; -                for (index=0; index < 4; index++) { -                  PyObject* item = __pyx_t_17(__pyx_t_16); if (unlikely(!item)) goto __pyx_L52_unpacking_failed; -                  __Pyx_GOTREF(item); -                  *(temps[index]) = item; -                } +                index = 0; __pyx_t_15 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_15)) goto __pyx_L52_unpacking_failed; +                __Pyx_GOTREF(__pyx_t_15); +                index = 1; __pyx_t_2 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_2)) goto __pyx_L52_unpacking_failed; +                __Pyx_GOTREF(__pyx_t_2); +                index = 2; __pyx_t_7 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_7)) goto __pyx_L52_unpacking_failed; +                __Pyx_GOTREF(__pyx_t_7); +                index = 3; __pyx_t_13 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_13)) goto __pyx_L52_unpacking_failed; +                __Pyx_GOTREF(__pyx_t_13);                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_16), 4) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __pyx_t_17 = NULL;                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;                  goto __pyx_L53_unpacking_done;                  __pyx_L52_unpacking_failed:;                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; -                __pyx_t_17 = NULL; -                if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +                if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +                if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __pyx_L53_unpacking_done:;                } @@ -46705,32 +44467,90 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                                 for e, alslist in elist.iteritems():   *                                     alignment, max_locs = max(alslist.iteritems(), key=lambda x: len(x[1]))   */ -            __pyx_t_5 = 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 = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            } -            __pyx_t_9 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_fphrases, 0, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_22), (&__pyx_t_18)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_10 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_fphrases, __pyx_n_s__iteritems); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __Pyx_GOTREF(__pyx_t_10); +            __pyx_t_9 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_9); -            __Pyx_XDECREF(__pyx_t_10); -            __pyx_t_10 = __pyx_t_9; -            __pyx_t_9 = 0; -            while (1) { -              __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_10, __pyx_t_22, &__pyx_t_5, &__pyx_t_9, &__pyx_t_3, NULL, __pyx_t_18); -              if (unlikely(__pyx_t_6 == 0)) break; -              if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __Pyx_GOTREF(__pyx_t_9); -              __Pyx_GOTREF(__pyx_t_3); +            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +            if (PyList_CheckExact(__pyx_t_9) || PyTuple_CheckExact(__pyx_t_9)) { +              __pyx_t_10 = __pyx_t_9; __Pyx_INCREF(__pyx_t_10); __pyx_t_5 = 0; +              __pyx_t_20 = NULL; +            } else { +              __pyx_t_5 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __Pyx_GOTREF(__pyx_t_10); +              __pyx_t_20 = Py_TYPE(__pyx_t_10)->tp_iternext; +            } +            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +            for (;;) { +              if (PyList_CheckExact(__pyx_t_10)) { +                if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_10)) break; +                __pyx_t_9 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_5); __Pyx_INCREF(__pyx_t_9); __pyx_t_5++; +              } else if (PyTuple_CheckExact(__pyx_t_10)) { +                if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_10)) break; +                __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_5); __Pyx_INCREF(__pyx_t_9); __pyx_t_5++; +              } else { +                __pyx_t_9 = __pyx_t_20(__pyx_t_10); +                if (unlikely(!__pyx_t_9)) { +                  if (PyErr_Occurred()) { +                    if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); +                    else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  } +                  break; +                } +                __Pyx_GOTREF(__pyx_t_9); +              } +              if ((likely(PyTuple_CheckExact(__pyx_t_9))) || (PyList_CheckExact(__pyx_t_9))) { +                PyObject* sequence = __pyx_t_9; +                if (likely(PyTuple_CheckExact(sequence))) { +                  if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +                    if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                    else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  } +                  __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);  +                  __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1);  +                } else { +                  if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +                    if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                    else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  } +                  __pyx_t_3 = PyList_GET_ITEM(sequence, 0);  +                  __pyx_t_14 = PyList_GET_ITEM(sequence, 1);  +                } +                __Pyx_INCREF(__pyx_t_3); +                __Pyx_INCREF(__pyx_t_14); +                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +              } else { +                Py_ssize_t index = -1; +                __pyx_t_13 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(__pyx_t_13); +                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +                __pyx_t_17 = Py_TYPE(__pyx_t_13)->tp_iternext; +                index = 0; __pyx_t_3 = __pyx_t_17(__pyx_t_13); if (unlikely(!__pyx_t_3)) goto __pyx_L56_unpacking_failed; +                __Pyx_GOTREF(__pyx_t_3); +                index = 1; __pyx_t_14 = __pyx_t_17(__pyx_t_13); if (unlikely(!__pyx_t_14)) goto __pyx_L56_unpacking_failed; +                __Pyx_GOTREF(__pyx_t_14); +                if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_13), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +                goto __pyx_L57_unpacking_done; +                __pyx_L56_unpacking_failed:; +                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +                if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +                if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); +                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_L57_unpacking_done:; +              }                __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_f);                __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_f); -              __Pyx_GIVEREF(__pyx_t_9); -              __pyx_cur_scope->__pyx_v_f = __pyx_t_9; -              __pyx_t_9 = 0; -              __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_elist); -              __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_elist);                __Pyx_GIVEREF(__pyx_t_3); -              __pyx_cur_scope->__pyx_v_elist = __pyx_t_3; +              __pyx_cur_scope->__pyx_v_f = __pyx_t_3;                __pyx_t_3 = 0; +              __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_elist); +              __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_elist); +              __Pyx_GIVEREF(__pyx_t_14); +              __pyx_cur_scope->__pyx_v_elist = __pyx_t_14; +              __pyx_t_14 = 0;                /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1102   *                                 fphrases[f][e][als].append(loc) @@ -46739,32 +44559,90 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                                     alignment, max_locs = max(alslist.iteritems(), key=lambda x: len(x[1]))   *                                     locs = tuple(itertools.chain(alslist.itervalues()))   */ -              __pyx_t_23 = 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 = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              } -              __pyx_t_9 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_elist, 0, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_24), (&__pyx_t_6)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_9 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_elist, __pyx_n_s__iteritems); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_9); -              __Pyx_XDECREF(__pyx_t_3); -              __pyx_t_3 = __pyx_t_9; -              __pyx_t_9 = 0; -              while (1) { -                __pyx_t_4 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_24, &__pyx_t_23, &__pyx_t_9, &__pyx_t_14, NULL, __pyx_t_6); -                if (unlikely(__pyx_t_4 == 0)) break; -                if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __pyx_t_14 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +              __Pyx_GOTREF(__pyx_t_14); +              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +              if (PyList_CheckExact(__pyx_t_14) || PyTuple_CheckExact(__pyx_t_14)) { +                __pyx_t_9 = __pyx_t_14; __Pyx_INCREF(__pyx_t_9); __pyx_t_22 = 0; +                __pyx_t_23 = NULL; +              } else { +                __pyx_t_22 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_9); -                __Pyx_GOTREF(__pyx_t_14); +                __pyx_t_23 = Py_TYPE(__pyx_t_9)->tp_iternext; +              } +              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; +              for (;;) { +                if (PyList_CheckExact(__pyx_t_9)) { +                  if (__pyx_t_22 >= PyList_GET_SIZE(__pyx_t_9)) break; +                  __pyx_t_14 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_22); __Pyx_INCREF(__pyx_t_14); __pyx_t_22++; +                } else if (PyTuple_CheckExact(__pyx_t_9)) { +                  if (__pyx_t_22 >= PyTuple_GET_SIZE(__pyx_t_9)) break; +                  __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_22); __Pyx_INCREF(__pyx_t_14); __pyx_t_22++; +                } else { +                  __pyx_t_14 = __pyx_t_23(__pyx_t_9); +                  if (unlikely(!__pyx_t_14)) { +                    if (PyErr_Occurred()) { +                      if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); +                      else {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    } +                    break; +                  } +                  __Pyx_GOTREF(__pyx_t_14); +                } +                if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) { +                  PyObject* sequence = __pyx_t_14; +                  if (likely(PyTuple_CheckExact(sequence))) { +                    if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +                      if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                      else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    } +                    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);  +                    __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1);  +                  } else { +                    if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +                      if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                      else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    } +                    __pyx_t_3 = PyList_GET_ITEM(sequence, 0);  +                    __pyx_t_13 = PyList_GET_ITEM(sequence, 1);  +                  } +                  __Pyx_INCREF(__pyx_t_3); +                  __Pyx_INCREF(__pyx_t_13); +                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; +                } else { +                  Py_ssize_t index = -1; +                  __pyx_t_7 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __Pyx_GOTREF(__pyx_t_7); +                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; +                  __pyx_t_17 = Py_TYPE(__pyx_t_7)->tp_iternext; +                  index = 0; __pyx_t_3 = __pyx_t_17(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L60_unpacking_failed; +                  __Pyx_GOTREF(__pyx_t_3); +                  index = 1; __pyx_t_13 = __pyx_t_17(__pyx_t_7); if (unlikely(!__pyx_t_13)) goto __pyx_L60_unpacking_failed; +                  __Pyx_GOTREF(__pyx_t_13); +                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +                  goto __pyx_L61_unpacking_done; +                  __pyx_L60_unpacking_failed:; +                  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +                  if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +                  if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                  __pyx_L61_unpacking_done:; +                }                  __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_e);                  __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_e); -                __Pyx_GIVEREF(__pyx_t_9); -                __pyx_cur_scope->__pyx_v_e = __pyx_t_9; -                __pyx_t_9 = 0; +                __Pyx_GIVEREF(__pyx_t_3); +                __pyx_cur_scope->__pyx_v_e = __pyx_t_3; +                __pyx_t_3 = 0;                  __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_alslist);                  __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_alslist); -                __Pyx_GIVEREF(__pyx_t_14); -                __pyx_cur_scope->__pyx_v_alslist = __pyx_t_14; -                __pyx_t_14 = 0; +                __Pyx_GIVEREF(__pyx_t_13); +                __pyx_cur_scope->__pyx_v_alslist = __pyx_t_13; +                __pyx_t_13 = 0;                  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1103   *                             for f, elist in fphrases.iteritems(): @@ -46775,78 +44653,71 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   */                  __pyx_t_14 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_alslist, __pyx_n_s__iteritems); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_14); -                __pyx_t_9 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_9); +                __pyx_t_13 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(__pyx_t_13);                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;                  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_14); -                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_9); -                __Pyx_GIVEREF(__pyx_t_9); -                __pyx_t_9 = 0; -                __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(((PyObject *)__pyx_t_9)); -                __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_3_sa_23HieroCachingRuleFactory_5input_1lambda3, 0, NULL, __pyx_n_s___sa, NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_13); -                if (PyDict_SetItem(__pyx_t_9, ((PyObject *)__pyx_n_s__key), __pyx_t_13) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -                __pyx_t_13 = PyObject_Call(__pyx_builtin_max, ((PyObject *)__pyx_t_14), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_13); +                __Pyx_GOTREF(((PyObject *)__pyx_t_14)); +                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13); +                __Pyx_GIVEREF(__pyx_t_13); +                __pyx_t_13 = 0; +                __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(((PyObject *)__pyx_t_13)); +                __pyx_t_3 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_lambda_methdef_lambda3, NULL, __pyx_n_s___sa); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(__pyx_t_3); +                if (PyDict_SetItem(__pyx_t_13, ((PyObject *)__pyx_n_s__key), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +                __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_builtin_max, ((PyObject *)__pyx_t_14), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(__pyx_t_3);                  __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0; -                __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; -                if ((likely(PyTuple_CheckExact(__pyx_t_13))) || (PyList_CheckExact(__pyx_t_13))) { -                  PyObject* sequence = __pyx_t_13; -                  #if CYTHON_COMPILING_IN_CPYTHON -                  Py_ssize_t size = Py_SIZE(sequence); -                  #else -                  Py_ssize_t size = PySequence_Size(sequence); -                  #endif -                  if (unlikely(size != 2)) { -                    if (size > 2) __Pyx_RaiseTooManyValuesError(2); -                    else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  } -                  #if CYTHON_COMPILING_IN_CPYTHON +                __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; +                if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { +                  PyObject* sequence = __pyx_t_3;                    if (likely(PyTuple_CheckExact(sequence))) { -                    __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0);  +                    if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +                      if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                      else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    } +                    __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0);                       __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1);                     } else { -                    __pyx_t_9 = PyList_GET_ITEM(sequence, 0);  +                    if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +                      if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                      else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    } +                    __pyx_t_13 = PyList_GET_ITEM(sequence, 0);                       __pyx_t_14 = PyList_GET_ITEM(sequence, 1);                     } -                  __Pyx_INCREF(__pyx_t_9); +                  __Pyx_INCREF(__pyx_t_13);                    __Pyx_INCREF(__pyx_t_14); -                  #else -                  __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __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 = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #endif -                  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -                } else -                { +                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +                } else {                    Py_ssize_t index = -1; -                  __pyx_t_7 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __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 = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_7); -                  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;                    __pyx_t_17 = Py_TYPE(__pyx_t_7)->tp_iternext; -                  index = 0; __pyx_t_9 = __pyx_t_17(__pyx_t_7); if (unlikely(!__pyx_t_9)) goto __pyx_L58_unpacking_failed; -                  __Pyx_GOTREF(__pyx_t_9); -                  index = 1; __pyx_t_14 = __pyx_t_17(__pyx_t_7); if (unlikely(!__pyx_t_14)) goto __pyx_L58_unpacking_failed; +                  index = 0; __pyx_t_13 = __pyx_t_17(__pyx_t_7); if (unlikely(!__pyx_t_13)) goto __pyx_L62_unpacking_failed; +                  __Pyx_GOTREF(__pyx_t_13); +                  index = 1; __pyx_t_14 = __pyx_t_17(__pyx_t_7); if (unlikely(!__pyx_t_14)) goto __pyx_L62_unpacking_failed;                    __Pyx_GOTREF(__pyx_t_14);                    if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  __pyx_t_17 = NULL;                    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -                  goto __pyx_L59_unpacking_done; -                  __pyx_L58_unpacking_failed:; +                  goto __pyx_L63_unpacking_done; +                  __pyx_L62_unpacking_failed:;                    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -                  __pyx_t_17 = NULL; -                  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +                  if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +                  if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  __pyx_L59_unpacking_done:; +                  __pyx_L63_unpacking_done:;                  }                  __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_alignment);                  __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_alignment); -                __Pyx_GIVEREF(__pyx_t_9); -                __pyx_cur_scope->__pyx_v_alignment = __pyx_t_9; -                __pyx_t_9 = 0; +                __Pyx_GIVEREF(__pyx_t_13); +                __pyx_cur_scope->__pyx_v_alignment = __pyx_t_13; +                __pyx_t_13 = 0;                  __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_max_locs);                  __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_max_locs);                  __Pyx_GIVEREF(__pyx_t_14); @@ -46860,38 +44731,38 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                                     # count = len(locs) # Should be?   *                                     count = len(max_locs) # Was   */ -                __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__itertools); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_13); -                __pyx_t_14 = PyObject_GetAttr(__pyx_t_13, __pyx_n_s__chain); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__itertools); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(__pyx_t_3); +                __pyx_t_14 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__chain); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_14); -                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -                __pyx_t_13 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_alslist, __pyx_n_s__itervalues); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +                __pyx_t_3 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_alslist, __pyx_n_s__itervalues); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(__pyx_t_3); +                __pyx_t_13 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_13); -                __pyx_t_9 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_9); -                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; -                __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +                __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(((PyObject *)__pyx_t_3)); +                PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_13); +                __Pyx_GIVEREF(__pyx_t_13); +                __pyx_t_13 = 0; +                __pyx_t_13 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_13); -                PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_9); -                __Pyx_GIVEREF(__pyx_t_9); -                __pyx_t_9 = 0; -                __pyx_t_9 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_9);                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -                __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; -                __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __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[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(((PyObject *)__pyx_t_3)); +                PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_13); +                __Pyx_GIVEREF(__pyx_t_13); +                __pyx_t_13 = 0; +                __pyx_t_13 = PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_13); -                PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_9); -                __Pyx_GIVEREF(__pyx_t_9); -                __pyx_t_9 = 0; -                __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_9); -                __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; +                __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;                  __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_locs));                  __Pyx_XDECREF(((PyObject *)__pyx_cur_scope->__pyx_v_locs)); -                __Pyx_GIVEREF(__pyx_t_9); -                __pyx_cur_scope->__pyx_v_locs = ((PyObject*)__pyx_t_9); -                __pyx_t_9 = 0; +                __Pyx_GIVEREF(__pyx_t_13); +                __pyx_cur_scope->__pyx_v_locs = ((PyObject*)__pyx_t_13); +                __pyx_t_13 = 0;                  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1106   *                                     locs = tuple(itertools.chain(alslist.itervalues())) @@ -46900,14 +44771,14 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                                     scores = self.scorer.score(FeatureContext(   *                                                f, e, count, fcount[f], num_samples,   */ -                __pyx_t_25 = PyObject_Length(__pyx_cur_scope->__pyx_v_max_locs); if (unlikely(__pyx_t_25 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __pyx_t_9 = PyInt_FromSsize_t(__pyx_t_25); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_9); +                __pyx_t_24 = PyObject_Length(__pyx_cur_scope->__pyx_v_max_locs); if (unlikely(__pyx_t_24 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_13 = PyInt_FromSsize_t(__pyx_t_24); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(__pyx_t_13);                  __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_count);                  __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_count); -                __Pyx_GIVEREF(__pyx_t_9); -                __pyx_cur_scope->__pyx_v_count = __pyx_t_9; -                __pyx_t_9 = 0; +                __Pyx_GIVEREF(__pyx_t_13); +                __pyx_cur_scope->__pyx_v_count = __pyx_t_13; +                __pyx_t_13 = 0;                  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1107   *                                     # count = len(locs) # Should be? @@ -46916,8 +44787,8 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                                                f, e, count, fcount[f], num_samples,   *                                                (k,i+spanlen), locs, fwords, self.fda, self.eda   */ -                __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__FeatureContext); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_9); +                __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__FeatureContext); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(__pyx_t_13);                  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1108   *                                     count = len(max_locs) # Was @@ -46926,8 +44797,8 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                                                (k,i+spanlen), locs, fwords, self.fda, self.eda   *                                                ))   */ -                __pyx_t_13 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fcount, __pyx_cur_scope->__pyx_v_f); if (!__pyx_t_13) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_13); +                __pyx_t_3 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fcount, __pyx_cur_scope->__pyx_v_f); if (!__pyx_t_3) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __Pyx_GOTREF(__pyx_t_3);                  __pyx_t_14 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_num_samples); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_14); @@ -46946,7 +44817,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene                  __Pyx_GOTREF(__pyx_t_15);                  __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 = 1109; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_2); +                __Pyx_GOTREF(((PyObject *)__pyx_t_2));                  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7);                  __Pyx_GIVEREF(__pyx_t_7);                  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_15); @@ -46954,7 +44825,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene                  __pyx_t_7 = 0;                  __pyx_t_15 = 0;                  __pyx_t_15 = PyTuple_New(10); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_15); +                __Pyx_GOTREF(((PyObject *)__pyx_t_15));                  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f);                  PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_cur_scope->__pyx_v_f);                  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_f); @@ -46964,8 +44835,8 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene                  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_count);                  PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_cur_scope->__pyx_v_count);                  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_count); -                PyTuple_SET_ITEM(__pyx_t_15, 3, __pyx_t_13); -                __Pyx_GIVEREF(__pyx_t_13); +                PyTuple_SET_ITEM(__pyx_t_15, 3, __pyx_t_3); +                __Pyx_GIVEREF(__pyx_t_3);                  PyTuple_SET_ITEM(__pyx_t_15, 4, __pyx_t_14);                  __Pyx_GIVEREF(__pyx_t_14);                  PyTuple_SET_ITEM(__pyx_t_15, 5, ((PyObject *)__pyx_t_2)); @@ -46976,20 +44847,20 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene                  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_fwords);                  PyTuple_SET_ITEM(__pyx_t_15, 7, __pyx_cur_scope->__pyx_v_fwords);                  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_fwords); -                __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self->fda)); -                PyTuple_SET_ITEM(__pyx_t_15, 8, ((PyObject *)__pyx_cur_scope->__pyx_v_self->fda)); -                __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self->fda)); -                __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self->eda)); -                PyTuple_SET_ITEM(__pyx_t_15, 9, ((PyObject *)__pyx_cur_scope->__pyx_v_self->eda)); -                __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self->eda)); -                __pyx_t_13 = 0; +                __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->fda)); +                PyTuple_SET_ITEM(__pyx_t_15, 8, ((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->fda)); +                __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->fda)); +                __Pyx_INCREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->eda)); +                PyTuple_SET_ITEM(__pyx_t_15, 9, ((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->eda)); +                __Pyx_GIVEREF(((PyObject *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->eda)); +                __pyx_t_3 = 0;                  __pyx_t_14 = 0;                  __pyx_t_2 = 0; -                __pyx_t_2 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_15), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_2 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_t_15), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_2); -                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;                  __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0; -                __pyx_t_15 = ((PyObject *)((struct __pyx_vtabstruct_3_sa_Scorer *)__pyx_cur_scope->__pyx_v_self->scorer->__pyx_vtab)->score(__pyx_cur_scope->__pyx_v_self->scorer, __pyx_t_2)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_15 = ((PyObject *)((struct __pyx_vtabstruct_3_sa_Scorer *)((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->scorer->__pyx_vtab)->score(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->scorer, __pyx_t_2)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15);                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;                  __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_scores)); @@ -47005,10 +44876,10 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *    *                 if len(phrase) < self.max_length and i+spanlen < len(fwords) and pathlen+1 <= self.max_initial_size:   */ -                __pyx_t_15 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_self->category); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1111; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                __pyx_t_15 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->category); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_15);                  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1111; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_2); +                __Pyx_GOTREF(((PyObject *)__pyx_t_2));                  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_15);                  __Pyx_GIVEREF(__pyx_t_15);                  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f); @@ -47030,43 +44901,39 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene                  __pyx_r = __pyx_t_15;                  __pyx_t_15 = 0;                  __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; -                __Pyx_XGIVEREF(__pyx_t_3); -                __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; -                __pyx_cur_scope->__pyx_t_2 = __pyx_t_5; -                __pyx_cur_scope->__pyx_t_3 = __pyx_t_6; +                __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; +                __Pyx_XGIVEREF(__pyx_t_9); +                __pyx_cur_scope->__pyx_t_2 = __pyx_t_9;                  __Pyx_XGIVEREF(__pyx_t_10); -                __pyx_cur_scope->__pyx_t_4 = __pyx_t_10; +                __pyx_cur_scope->__pyx_t_3 = __pyx_t_10;                  __Pyx_XGIVEREF(__pyx_t_12); -                __pyx_cur_scope->__pyx_t_5 = __pyx_t_12; -                __pyx_cur_scope->__pyx_t_6 = __pyx_t_18; -                __pyx_cur_scope->__pyx_t_7 = __pyx_t_22; -                __pyx_cur_scope->__pyx_t_8 = __pyx_t_23; -                __pyx_cur_scope->__pyx_t_9 = __pyx_t_24; +                __pyx_cur_scope->__pyx_t_4 = __pyx_t_12; +                __pyx_cur_scope->__pyx_t_5 = __pyx_t_20; +                __pyx_cur_scope->__pyx_t_6 = __pyx_t_22; +                __pyx_cur_scope->__pyx_t_7 = __pyx_t_23;                  __Pyx_XGIVEREF(__pyx_r);                  __Pyx_RefNannyFinishContext();                  /* return from generator, yielding value */ -                __pyx_generator->resume_label = 1; +                __pyx_cur_scope->__pyx_base.resume_label = 1;                  return __pyx_r; -                __pyx_L60_resume_from_yield:; +                __pyx_L64_resume_from_yield:;                  __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; -                __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; -                __pyx_cur_scope->__pyx_t_1 = 0; -                __Pyx_XGOTREF(__pyx_t_3); -                __pyx_t_5 = __pyx_cur_scope->__pyx_t_2; -                __pyx_t_6 = __pyx_cur_scope->__pyx_t_3; -                __pyx_t_10 = __pyx_cur_scope->__pyx_t_4; -                __pyx_cur_scope->__pyx_t_4 = 0; +                __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; +                __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; +                __pyx_cur_scope->__pyx_t_2 = 0; +                __Pyx_XGOTREF(__pyx_t_9); +                __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; +                __pyx_cur_scope->__pyx_t_3 = 0;                  __Pyx_XGOTREF(__pyx_t_10); -                __pyx_t_12 = __pyx_cur_scope->__pyx_t_5; -                __pyx_cur_scope->__pyx_t_5 = 0; +                __pyx_t_12 = __pyx_cur_scope->__pyx_t_4; +                __pyx_cur_scope->__pyx_t_4 = 0;                  __Pyx_XGOTREF(__pyx_t_12); -                __pyx_t_18 = __pyx_cur_scope->__pyx_t_6; -                __pyx_t_22 = __pyx_cur_scope->__pyx_t_7; -                __pyx_t_23 = __pyx_cur_scope->__pyx_t_8; -                __pyx_t_24 = __pyx_cur_scope->__pyx_t_9; +                __pyx_t_20 = __pyx_cur_scope->__pyx_t_5; +                __pyx_t_22 = __pyx_cur_scope->__pyx_t_6; +                __pyx_t_23 = __pyx_cur_scope->__pyx_t_7;                  if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                } -              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;              }              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;              goto __pyx_L47; @@ -47086,37 +44953,39 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                     for alt_id in range(len(fwords[i+spanlen])):   *                         new_frontier.append((k, i+spanlen, alt_id, pathlen + 1, node, phrase, is_shadow_path))   */ -      __pyx_t_22 = PyObject_Length(__pyx_cur_scope->__pyx_v_phrase); if (unlikely(__pyx_t_22 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_19 = (__pyx_t_22 < __pyx_cur_scope->__pyx_v_self->max_length); +      __pyx_t_5 = PyObject_Length(__pyx_cur_scope->__pyx_v_phrase); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_19 = (__pyx_t_5 < ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->max_length);        if (__pyx_t_19) {          __pyx_t_10 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_10); -        __pyx_t_3 = PyNumber_Add(__pyx_t_10, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_3); +        __pyx_t_9 = PyNumber_Add(__pyx_t_10, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_9);          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -        __pyx_t_22 = PyObject_Length(__pyx_cur_scope->__pyx_v_fwords); if (unlikely(__pyx_t_22 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __pyx_t_10 = PyInt_FromSsize_t(__pyx_t_22); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_5 = PyObject_Length(__pyx_cur_scope->__pyx_v_fwords); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_10 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_10); -        __pyx_t_15 = PyObject_RichCompare(__pyx_t_3, __pyx_t_10, Py_LT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +        __pyx_t_15 = PyObject_RichCompare(__pyx_t_9, __pyx_t_10, Py_LT); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_15); +        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;          __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;          if (__pyx_t_8) {            __pyx_t_15 = PyNumber_Add(__pyx_cur_scope->__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_15); -          __pyx_t_10 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_self->max_initial_size); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_10 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->max_initial_size); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10); -          __pyx_t_3 = PyObject_RichCompare(__pyx_t_15, __pyx_t_10, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_9 = PyObject_RichCompare(__pyx_t_15, __pyx_t_10, Py_LE); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_9);            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -          __pyx_t_26 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_26 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -          __pyx_t_27 = __pyx_t_26; +          __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_25 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +          __pyx_t_26 = __pyx_t_25;          } else { -          __pyx_t_27 = __pyx_t_8; +          __pyx_t_26 = __pyx_t_8;          } -        __pyx_t_8 = __pyx_t_27; +        __pyx_t_8 = __pyx_t_26;        } else {          __pyx_t_8 = __pyx_t_19;        } @@ -47129,17 +44998,17 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         new_frontier.append((k, i+spanlen, alt_id, pathlen + 1, node, phrase, is_shadow_path))   *                     num_subpatterns = arity   */ -        __pyx_t_3 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_3); -        __pyx_t_10 = PyNumber_Add(__pyx_t_3, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_9 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_9); +        __pyx_t_10 = PyNumber_Add(__pyx_t_9, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_10); -        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        __pyx_t_3 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fwords, __pyx_t_10); if (!__pyx_t_3) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_3); +        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +        __pyx_t_9 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_fwords, __pyx_t_10); if (!__pyx_t_9) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_GOTREF(__pyx_t_9);          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -        __pyx_t_22 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_22 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -        for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_22; __pyx_t_18+=1) { +        __pyx_t_5 = PyObject_Length(__pyx_t_9); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +        for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_5; __pyx_t_18+=1) {            __pyx_cur_scope->__pyx_v_alt_id = __pyx_t_18;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1115 @@ -47149,8 +45018,11 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                     num_subpatterns = arity   *                     if not is_shadow_path:   */ -          __pyx_t_3 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_3); +          if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_new_frontier) == Py_None)) { +            PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +          } +          __pyx_t_9 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_9);            __pyx_t_10 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_10);            __pyx_t_15 = PyNumber_Add(__pyx_t_10, __pyx_cur_scope->__pyx_v_spanlen); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -47160,31 +45032,31 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene            __Pyx_GOTREF(__pyx_t_10);            __pyx_t_2 = PyNumber_Add(__pyx_cur_scope->__pyx_v_pathlen, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_2); -          __pyx_t_9 = PyTuple_New(7); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_9); -          PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); -          __Pyx_GIVEREF(__pyx_t_3); -          PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_15); +          __pyx_t_13 = PyTuple_New(7); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_13)); +          PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_9); +          __Pyx_GIVEREF(__pyx_t_9); +          PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_15);            __Pyx_GIVEREF(__pyx_t_15); -          PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_10); +          PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_10);            __Pyx_GIVEREF(__pyx_t_10); -          PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_t_2); +          PyTuple_SET_ITEM(__pyx_t_13, 3, __pyx_t_2);            __Pyx_GIVEREF(__pyx_t_2);            __Pyx_INCREF(__pyx_cur_scope->__pyx_v_node); -          PyTuple_SET_ITEM(__pyx_t_9, 4, __pyx_cur_scope->__pyx_v_node); +          PyTuple_SET_ITEM(__pyx_t_13, 4, __pyx_cur_scope->__pyx_v_node);            __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_node);            __Pyx_INCREF(__pyx_cur_scope->__pyx_v_phrase); -          PyTuple_SET_ITEM(__pyx_t_9, 5, __pyx_cur_scope->__pyx_v_phrase); +          PyTuple_SET_ITEM(__pyx_t_13, 5, __pyx_cur_scope->__pyx_v_phrase);            __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_phrase);            __Pyx_INCREF(__pyx_cur_scope->__pyx_v_is_shadow_path); -          PyTuple_SET_ITEM(__pyx_t_9, 6, __pyx_cur_scope->__pyx_v_is_shadow_path); +          PyTuple_SET_ITEM(__pyx_t_13, 6, __pyx_cur_scope->__pyx_v_is_shadow_path);            __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_is_shadow_path); -          __pyx_t_3 = 0; +          __pyx_t_9 = 0;            __pyx_t_15 = 0;            __pyx_t_10 = 0;            __pyx_t_2 = 0; -          __pyx_t_11 = PyList_Append(__pyx_cur_scope->__pyx_v_new_frontier, ((PyObject *)__pyx_t_9)); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; +          __pyx_t_11 = PyList_Append(__pyx_cur_scope->__pyx_v_new_frontier, ((PyObject *)__pyx_t_13)); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;          }          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1116 @@ -47215,9 +45087,9 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         xcat = sym_setindex(self.category, arity+1)   */            __pyx_cur_scope->__pyx_v_num_subpatterns = (__pyx_cur_scope->__pyx_v_num_subpatterns + 1); -          goto __pyx_L64; +          goto __pyx_L68;          } -        __pyx_L64:; +        __pyx_L68:;          /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1119   *                     if not is_shadow_path: @@ -47226,17 +45098,17 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         xcat = sym_setindex(self.category, arity+1)   *                         xnode = node.children[xcat]   */ -        __pyx_t_22 = PyObject_Length(__pyx_cur_scope->__pyx_v_phrase); if (unlikely(__pyx_t_22 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __pyx_t_19 = ((__pyx_t_22 + 1) < __pyx_cur_scope->__pyx_v_self->max_length); +        __pyx_t_5 = PyObject_Length(__pyx_cur_scope->__pyx_v_phrase); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        __pyx_t_19 = ((__pyx_t_5 + 1) < ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->max_length);          if (__pyx_t_19) { -          __pyx_t_8 = (__pyx_cur_scope->__pyx_v_arity < __pyx_cur_scope->__pyx_v_self->max_nonterminals); +          __pyx_t_8 = (__pyx_cur_scope->__pyx_v_arity < ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->max_nonterminals);            if (__pyx_t_8) { -            __pyx_t_27 = (__pyx_cur_scope->__pyx_v_num_subpatterns < __pyx_cur_scope->__pyx_v_self->max_chunks); -            __pyx_t_26 = __pyx_t_27; +            __pyx_t_26 = (__pyx_cur_scope->__pyx_v_num_subpatterns < ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->max_chunks); +            __pyx_t_25 = __pyx_t_26;            } else { -            __pyx_t_26 = __pyx_t_8; +            __pyx_t_25 = __pyx_t_8;            } -          __pyx_t_8 = __pyx_t_26; +          __pyx_t_8 = __pyx_t_25;          } else {            __pyx_t_8 = __pyx_t_19;          } @@ -47249,7 +45121,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         xnode = node.children[xcat]   *                         # I put spanlen=1 below   */ -          __pyx_cur_scope->__pyx_v_xcat = __pyx_f_3_sa_sym_setindex(__pyx_cur_scope->__pyx_v_self->category, (__pyx_cur_scope->__pyx_v_arity + 1)); +          __pyx_cur_scope->__pyx_v_xcat = __pyx_f_3_sa_sym_setindex(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->category, (__pyx_cur_scope->__pyx_v_arity + 1));            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1121   *                     if len(phrase)+1 < self.max_length and arity < self.max_nonterminals and num_subpatterns < self.max_chunks: @@ -47258,11 +45130,11 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         # I put spanlen=1 below   *                         key = tuple([self.min_gap_size, i, 1, pathlen])   */ -          __pyx_t_9 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s__children); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_9); -          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_9, __pyx_cur_scope->__pyx_v_xcat, sizeof(int), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_13 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_node, __pyx_n_s__children); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_13); +          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_13, __pyx_cur_scope->__pyx_v_xcat, sizeof(int), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_2); -          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_xnode);            __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_xnode);            __Pyx_GIVEREF(__pyx_t_2); @@ -47276,16 +45148,16 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         frontier_nodes = []   *                         if (key in nodes_isteps_away_buffer):   */ -          __pyx_t_2 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->min_gap_size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            __Pyx_GOTREF(__pyx_t_2); -          __pyx_t_9 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_9); +          __pyx_t_13 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(__pyx_t_13);            __pyx_t_10 = PyList_New(4); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_10); +          __Pyx_GOTREF(((PyObject *)__pyx_t_10));            PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_2);            __Pyx_GIVEREF(__pyx_t_2); -          PyList_SET_ITEM(__pyx_t_10, 1, __pyx_t_9); -          __Pyx_GIVEREF(__pyx_t_9); +          PyList_SET_ITEM(__pyx_t_10, 1, __pyx_t_13); +          __Pyx_GIVEREF(__pyx_t_13);            __Pyx_INCREF(__pyx_int_1);            PyList_SET_ITEM(__pyx_t_10, 2, __pyx_int_1);            __Pyx_GIVEREF(__pyx_int_1); @@ -47293,15 +45165,15 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene            PyList_SET_ITEM(__pyx_t_10, 3, __pyx_cur_scope->__pyx_v_pathlen);            __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_pathlen);            __pyx_t_2 = 0; -          __pyx_t_9 = 0; -          __pyx_t_9 = ((PyObject *)PyList_AsTuple(__pyx_t_10)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(((PyObject *)__pyx_t_9)); +          __pyx_t_13 = 0; +          __pyx_t_13 = ((PyObject *)PyList_AsTuple(__pyx_t_10)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_13));            __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;            __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_key));            __Pyx_XDECREF(((PyObject *)__pyx_cur_scope->__pyx_v_key)); -          __Pyx_GIVEREF(((PyObject *)__pyx_t_9)); -          __pyx_cur_scope->__pyx_v_key = __pyx_t_9; -          __pyx_t_9 = 0; +          __Pyx_GIVEREF(((PyObject *)__pyx_t_13)); +          __pyx_cur_scope->__pyx_v_key = __pyx_t_13; +          __pyx_t_13 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1124   *                         # I put spanlen=1 below @@ -47310,13 +45182,13 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         if (key in nodes_isteps_away_buffer):   *                             frontier_nodes = nodes_isteps_away_buffer[key]   */ -          __pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -          __Pyx_GOTREF(__pyx_t_9); +          __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          __Pyx_GOTREF(((PyObject *)__pyx_t_13));            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_frontier_nodes);            __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_frontier_nodes); -          __Pyx_GIVEREF(((PyObject *)__pyx_t_9)); -          __pyx_cur_scope->__pyx_v_frontier_nodes = ((PyObject *)__pyx_t_9); -          __pyx_t_9 = 0; +          __Pyx_GIVEREF(((PyObject *)__pyx_t_13)); +          __pyx_cur_scope->__pyx_v_frontier_nodes = ((PyObject *)__pyx_t_13); +          __pyx_t_13 = 0;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1125   *                         key = tuple([self.min_gap_size, i, 1, pathlen]) @@ -47325,7 +45197,10 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                             frontier_nodes = nodes_isteps_away_buffer[key]   *                         else:   */ -          __pyx_t_8 = (__Pyx_PyDict_Contains(((PyObject *)__pyx_cur_scope->__pyx_v_key), ((PyObject *)__pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer), Py_EQ)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1125; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +          if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer) == Py_None)) { +            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +          } +          __pyx_t_8 = ((PyDict_Contains(((PyObject *)__pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer), ((PyObject *)__pyx_cur_scope->__pyx_v_key)))); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            if (__pyx_t_8) {              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1126 @@ -47335,14 +45210,14 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         else:   *                             frontier_nodes = self.get_all_nodes_isteps_away(self.min_gap_size, i, 1, pathlen, fwords, next_states, reachable_buffer)   */ -            __pyx_t_9 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer), ((PyObject *)__pyx_cur_scope->__pyx_v_key)); if (!__pyx_t_9) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_9); +            __pyx_t_13 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer), ((PyObject *)__pyx_cur_scope->__pyx_v_key)); if (!__pyx_t_13) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __Pyx_GOTREF(__pyx_t_13);              __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_frontier_nodes);              __Pyx_DECREF(__pyx_cur_scope->__pyx_v_frontier_nodes); -            __Pyx_GIVEREF(__pyx_t_9); -            __pyx_cur_scope->__pyx_v_frontier_nodes = __pyx_t_9; -            __pyx_t_9 = 0; -            goto __pyx_L66; +            __Pyx_GIVEREF(__pyx_t_13); +            __pyx_cur_scope->__pyx_v_frontier_nodes = __pyx_t_13; +            __pyx_t_13 = 0; +            goto __pyx_L70;            }            /*else*/ { @@ -47353,14 +45228,14 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                             nodes_isteps_away_buffer[key] = frontier_nodes   *    */ -            __pyx_t_9 = PyObject_GetAttr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_124); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_9); -            __pyx_t_10 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_self->min_gap_size); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_13 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_124); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __Pyx_GOTREF(__pyx_t_13); +            __pyx_t_10 = PyInt_FromLong(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->min_gap_size); 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_2 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_2);              __pyx_t_15 = PyTuple_New(7); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_15); +            __Pyx_GOTREF(((PyObject *)__pyx_t_15));              PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_10);              __Pyx_GIVEREF(__pyx_t_10);              PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_2); @@ -47382,9 +45257,9 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene              __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_reachable_buffer));              __pyx_t_10 = 0;              __pyx_t_2 = 0; -            __pyx_t_2 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_15), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_2 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_t_15), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_2); -            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;              __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;              __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_frontier_nodes);              __Pyx_DECREF(__pyx_cur_scope->__pyx_v_frontier_nodes); @@ -47401,7 +45276,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   */              if (PyDict_SetItem(((PyObject *)__pyx_cur_scope->__pyx_v_nodes_isteps_away_buffer), ((PyObject *)__pyx_cur_scope->__pyx_v_key), __pyx_cur_scope->__pyx_v_frontier_nodes) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}            } -          __pyx_L66:; +          __pyx_L70:;            /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1131   *                             nodes_isteps_away_buffer[key] = frontier_nodes @@ -47411,28 +45286,20 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *             frontier = new_frontier   */            if (PyList_CheckExact(__pyx_cur_scope->__pyx_v_frontier_nodes) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_frontier_nodes)) { -            __pyx_t_2 = __pyx_cur_scope->__pyx_v_frontier_nodes; __Pyx_INCREF(__pyx_t_2); __pyx_t_22 = 0; +            __pyx_t_2 = __pyx_cur_scope->__pyx_v_frontier_nodes; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0;              __pyx_t_20 = NULL;            } else { -            __pyx_t_22 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_frontier_nodes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_frontier_nodes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_2);              __pyx_t_20 = Py_TYPE(__pyx_t_2)->tp_iternext;            }            for (;;) { -            if (!__pyx_t_20 && PyList_CheckExact(__pyx_t_2)) { -              if (__pyx_t_22 >= PyList_GET_SIZE(__pyx_t_2)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_15 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_22); __Pyx_INCREF(__pyx_t_15); __pyx_t_22++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              #else -              __pyx_t_15 = PySequence_ITEM(__pyx_t_2, __pyx_t_22); __pyx_t_22++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              #endif -            } else if (!__pyx_t_20 && PyTuple_CheckExact(__pyx_t_2)) { -              if (__pyx_t_22 >= PyTuple_GET_SIZE(__pyx_t_2)) break; -              #if CYTHON_COMPILING_IN_CPYTHON -              __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_22); __Pyx_INCREF(__pyx_t_15); __pyx_t_22++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              #else -              __pyx_t_15 = PySequence_ITEM(__pyx_t_2, __pyx_t_22); __pyx_t_22++; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              #endif +            if (PyList_CheckExact(__pyx_t_2)) { +              if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_15 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_15); __pyx_t_5++; +            } else if (PyTuple_CheckExact(__pyx_t_2)) { +              if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +              __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_15); __pyx_t_5++;              } else {                __pyx_t_15 = __pyx_t_20(__pyx_t_2);                if (unlikely(!__pyx_t_15)) { @@ -47446,70 +45313,62 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene              }              if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) {                PyObject* sequence = __pyx_t_15; -              #if CYTHON_COMPILING_IN_CPYTHON -              Py_ssize_t size = Py_SIZE(sequence); -              #else -              Py_ssize_t size = PySequence_Size(sequence); -              #endif -              if (unlikely(size != 3)) { -                if (size > 3) __Pyx_RaiseTooManyValuesError(3); -                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              } -              #if CYTHON_COMPILING_IN_CPYTHON                if (likely(PyTuple_CheckExact(sequence))) { -                __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0);  +                if (unlikely(PyTuple_GET_SIZE(sequence) != 3)) { +                  if (PyTuple_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3); +                  else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                } +                __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0);                   __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1);  -                __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2);  +                __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2);                 } else { -                __pyx_t_9 = PyList_GET_ITEM(sequence, 0);  +                if (unlikely(PyList_GET_SIZE(sequence) != 3)) { +                  if (PyList_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3); +                  else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                } +                __pyx_t_13 = PyList_GET_ITEM(sequence, 0);                   __pyx_t_10 = PyList_GET_ITEM(sequence, 1);  -                __pyx_t_3 = PyList_GET_ITEM(sequence, 2);  +                __pyx_t_9 = PyList_GET_ITEM(sequence, 2);                 } -              __Pyx_INCREF(__pyx_t_9); +              __Pyx_INCREF(__pyx_t_13);                __Pyx_INCREF(__pyx_t_10); -              __Pyx_INCREF(__pyx_t_3); -              #else -              __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __pyx_t_3 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              #endif +              __Pyx_INCREF(__pyx_t_9);                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -            } else -            { +            } else {                Py_ssize_t index = -1;                __pyx_t_14 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14);                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;                __pyx_t_17 = Py_TYPE(__pyx_t_14)->tp_iternext; -              index = 0; __pyx_t_9 = __pyx_t_17(__pyx_t_14); if (unlikely(!__pyx_t_9)) goto __pyx_L69_unpacking_failed; -              __Pyx_GOTREF(__pyx_t_9); -              index = 1; __pyx_t_10 = __pyx_t_17(__pyx_t_14); if (unlikely(!__pyx_t_10)) goto __pyx_L69_unpacking_failed; +              index = 0; __pyx_t_13 = __pyx_t_17(__pyx_t_14); if (unlikely(!__pyx_t_13)) goto __pyx_L73_unpacking_failed; +              __Pyx_GOTREF(__pyx_t_13); +              index = 1; __pyx_t_10 = __pyx_t_17(__pyx_t_14); if (unlikely(!__pyx_t_10)) goto __pyx_L73_unpacking_failed;                __Pyx_GOTREF(__pyx_t_10); -              index = 2; __pyx_t_3 = __pyx_t_17(__pyx_t_14); if (unlikely(!__pyx_t_3)) goto __pyx_L69_unpacking_failed; -              __Pyx_GOTREF(__pyx_t_3); +              index = 2; __pyx_t_9 = __pyx_t_17(__pyx_t_14); if (unlikely(!__pyx_t_9)) goto __pyx_L73_unpacking_failed; +              __Pyx_GOTREF(__pyx_t_9);                if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_14), 3) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __pyx_t_17 = NULL;                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -              goto __pyx_L70_unpacking_done; -              __pyx_L69_unpacking_failed:; +              goto __pyx_L74_unpacking_done; +              __pyx_L73_unpacking_failed:;                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -              __pyx_t_17 = NULL; -              if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +              if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +              if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __pyx_L70_unpacking_done:; +              __pyx_L74_unpacking_done:;              } -            __pyx_t_18 = __Pyx_PyInt_AsInt(__pyx_t_9); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +            __pyx_t_18 = __Pyx_PyInt_AsInt(__pyx_t_13); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;              __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_t_10); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;              __pyx_cur_scope->__pyx_v_i = __pyx_t_18;              __pyx_cur_scope->__pyx_v_alt = __pyx_t_6;              __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_pathlen);              __Pyx_DECREF(__pyx_cur_scope->__pyx_v_pathlen); -            __Pyx_GIVEREF(__pyx_t_3); -            __pyx_cur_scope->__pyx_v_pathlen = __pyx_t_3; -            __pyx_t_3 = 0; +            __Pyx_GIVEREF(__pyx_t_9); +            __pyx_cur_scope->__pyx_v_pathlen = __pyx_t_9; +            __pyx_t_9 = 0;              /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1132   *  @@ -47518,28 +45377,31 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *             frontier = new_frontier   *    */ +            if (unlikely(((PyObject *)__pyx_cur_scope->__pyx_v_new_frontier) == Py_None)) { +              PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +            }              __pyx_t_15 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_15); -            __pyx_t_3 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_3); +            __pyx_t_9 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __Pyx_GOTREF(__pyx_t_9);              __pyx_t_10 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_alt); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_10); -            __pyx_t_9 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_xcat); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_9); +            __pyx_t_13 = PyInt_FromLong(__pyx_cur_scope->__pyx_v_xcat); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __Pyx_GOTREF(__pyx_t_13);              __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_14); -            PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_9); -            __Pyx_GIVEREF(__pyx_t_9); -            __pyx_t_9 = 0; -            __pyx_t_9 = PyNumber_Add(__pyx_cur_scope->__pyx_v_phrase, ((PyObject *)__pyx_t_14)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_9); +            __Pyx_GOTREF(((PyObject *)__pyx_t_14)); +            PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13); +            __Pyx_GIVEREF(__pyx_t_13); +            __pyx_t_13 = 0; +            __pyx_t_13 = PyNumber_Add(__pyx_cur_scope->__pyx_v_phrase, ((PyObject *)__pyx_t_14)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +            __Pyx_GOTREF(__pyx_t_13);              __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;              __pyx_t_14 = PyTuple_New(7); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_14); +            __Pyx_GOTREF(((PyObject *)__pyx_t_14));              PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15);              __Pyx_GIVEREF(__pyx_t_15); -            PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_3); -            __Pyx_GIVEREF(__pyx_t_3); +            PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_9); +            __Pyx_GIVEREF(__pyx_t_9);              PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_10);              __Pyx_GIVEREF(__pyx_t_10);              __Pyx_INCREF(__pyx_cur_scope->__pyx_v_pathlen); @@ -47548,25 +45410,25 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene              __Pyx_INCREF(__pyx_cur_scope->__pyx_v_xnode);              PyTuple_SET_ITEM(__pyx_t_14, 4, __pyx_cur_scope->__pyx_v_xnode);              __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_xnode); -            PyTuple_SET_ITEM(__pyx_t_14, 5, __pyx_t_9); -            __Pyx_GIVEREF(__pyx_t_9); +            PyTuple_SET_ITEM(__pyx_t_14, 5, __pyx_t_13); +            __Pyx_GIVEREF(__pyx_t_13);              __Pyx_INCREF(__pyx_cur_scope->__pyx_v_is_shadow_path);              PyTuple_SET_ITEM(__pyx_t_14, 6, __pyx_cur_scope->__pyx_v_is_shadow_path);              __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_is_shadow_path);              __pyx_t_15 = 0; -            __pyx_t_3 = 0; -            __pyx_t_10 = 0;              __pyx_t_9 = 0; +            __pyx_t_10 = 0; +            __pyx_t_13 = 0;              __pyx_t_11 = PyList_Append(__pyx_cur_scope->__pyx_v_new_frontier, ((PyObject *)__pyx_t_14)); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;            }            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -          goto __pyx_L65; +          goto __pyx_L69;          } -        __pyx_L65:; -        goto __pyx_L61; +        __pyx_L69:; +        goto __pyx_L65;        } -      __pyx_L61:; +      __pyx_L65:;        __pyx_L19_continue:;      }      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; @@ -47616,7 +45478,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene    __Pyx_GOTREF(__pyx_t_14);    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;    __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_12); +  __Pyx_GOTREF(((PyObject *)__pyx_t_12));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_125));    PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_kp_s_125));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_125)); @@ -47658,10 +45520,10 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene    __pyx_t_12 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__info); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_12);    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -  __pyx_t_14 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->extract_time); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_14 = PyFloat_FromDouble(((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)__pyx_cur_scope->__pyx_v_self)->extract_time); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_14);    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_126));    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_126));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_126)); @@ -47673,7 +45535,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -  PyErr_SetNone(PyExc_StopIteration); +  PyErr_SetNone(PyExc_StopIteration); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    goto __pyx_L0;    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_2); @@ -47689,8 +45551,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene    __Pyx_AddTraceback("input", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_L0:;    __Pyx_XDECREF(__pyx_r); -  __pyx_generator->resume_label = -1; -  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __pyx_cur_scope->__pyx_base.resume_label = -1;    __Pyx_RefNannyFinishContext();    return NULL;  } @@ -47703,7 +45564,7 @@ static PyObject *__pyx_gb_3_sa_23HieroCachingRuleFactory_24generator4(__pyx_Gene   *                         int* f_links_low, int* f_links_high,   */ -static int __pyx_f_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, int __pyx_v_f_low, PyObject *__pyx_v_f_high, int *__pyx_v_f_links_low, int *__pyx_v_f_links_high, int *__pyx_v_e_links_low, int *__pyx_v_e_links_high, int __pyx_v_e_in_low, int __pyx_v_e_in_high, int *__pyx_v_e_low, int *__pyx_v_e_high, int *__pyx_v_f_back_low, int *__pyx_v_f_back_high, int __pyx_v_f_sent_len, int __pyx_v_e_sent_len, int __pyx_v_max_f_len, int __pyx_v_max_e_len, int __pyx_v_min_fx_size, int __pyx_v_min_ex_size, int __pyx_v_max_new_x, int __pyx_v_allow_low_x, int __pyx_v_allow_high_x, int __pyx_v_allow_arbitrary_x, CYTHON_UNUSED int __pyx_v_write_log) { +static int __pyx_f_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, int __pyx_v_f_low, PyObject *__pyx_v_f_high, int *__pyx_v_f_links_low, int *__pyx_v_f_links_high, int *__pyx_v_e_links_low, int *__pyx_v_e_links_high, int __pyx_v_e_in_low, int __pyx_v_e_in_high, int *__pyx_v_e_low, int *__pyx_v_e_high, int *__pyx_v_f_back_low, int *__pyx_v_f_back_high, int __pyx_v_f_sent_len, int __pyx_v_e_sent_len, int __pyx_v_max_f_len, int __pyx_v_max_e_len, int __pyx_v_min_fx_size, int __pyx_v_min_ex_size, int __pyx_v_max_new_x, int __pyx_v_allow_low_x, int __pyx_v_allow_high_x, int __pyx_v_allow_arbitrary_x, int __pyx_v_write_log) {    int __pyx_v_e_low_prev;    int __pyx_v_e_high_prev;    int __pyx_v_f_low_prev; @@ -47723,7 +45584,7 @@ static int __pyx_f_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct __pyx_obj    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("find_fixpoint", 0); +  __Pyx_RefNannySetupContext("find_fixpoint");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1156   *         cdef int e_low_prev, e_high_prev, f_low_prev, f_high_prev, new_x, new_low_x, new_high_x @@ -48080,7 +45941,8 @@ static int __pyx_f_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct __pyx_obj   */      __pyx_t_2 = PyInt_FromLong((__pyx_v_f_back_high[0])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1199; __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 = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_v_f_high, Py_LT); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_6);      __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 = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -48191,7 +46053,8 @@ static int __pyx_f_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct __pyx_obj      if (__pyx_t_5) {        __pyx_t_6 = PyInt_FromLong((__pyx_v_f_back_high[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1213; __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 = 1213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_v_f_high, Py_GT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1213; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_2);        __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 = 1213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -48360,7 +46223,8 @@ static int __pyx_f_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct __pyx_obj   */      __pyx_t_2 = PyInt_FromLong((__pyx_v_f_back_high[0])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1234; __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 = 1234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_6 = PyObject_RichCompare(__pyx_v_f_high, __pyx_t_2, Py_NE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_6);      __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 = 1234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -48436,7 +46300,8 @@ static int __pyx_f_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct __pyx_obj        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;        __pyx_t_6 = PyInt_FromLong(__pyx_v_min_fx_size); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1242; __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 = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_LT); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_7);        __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 = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -48666,7 +46531,7 @@ static int __pyx_f_3_sa_23HieroCachingRuleFactory_find_fixpoint(struct __pyx_obj   *         cdef int i   */ -static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_find_projection(CYTHON_UNUSED struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, int __pyx_v_in_low, int __pyx_v_in_high, int *__pyx_v_in_links_low, int *__pyx_v_in_links_high, int *__pyx_v_out_low, int *__pyx_v_out_high) { +static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_find_projection(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, int __pyx_v_in_low, int __pyx_v_in_high, int *__pyx_v_in_links_low, int *__pyx_v_in_links_high, int *__pyx_v_out_low, int *__pyx_v_out_high) {    int __pyx_v_i;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -48674,7 +46539,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_find_projection(CYTHON_U    int __pyx_t_2;    int __pyx_t_3;    int __pyx_t_4; -  __Pyx_RefNannySetupContext("find_projection", 0); +  __Pyx_RefNannySetupContext("find_projection");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1271   *                         int* out_low, int* out_high): @@ -48770,11 +46635,11 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_find_projection(CYTHON_U   *         new_len = arr_len[0] + data_len   */ -static int *__pyx_f_3_sa_23HieroCachingRuleFactory_int_arr_extend(CYTHON_UNUSED struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, int *__pyx_v_arr, int *__pyx_v_arr_len, int *__pyx_v_data, int __pyx_v_data_len) { +static int *__pyx_f_3_sa_23HieroCachingRuleFactory_int_arr_extend(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, int *__pyx_v_arr, int *__pyx_v_arr_len, int *__pyx_v_data, int __pyx_v_data_len) {    int __pyx_v_new_len;    int *__pyx_r;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("int_arr_extend", 0); +  __Pyx_RefNannySetupContext("int_arr_extend");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1281   *     cdef int* int_arr_extend(self, int* arr, int* arr_len, int* data, int data_len): @@ -48836,7 +46701,7 @@ static int *__pyx_f_3_sa_23HieroCachingRuleFactory_int_arr_extend(CYTHON_UNUSED   *                         int sent_id, int e_sent_len, int e_sent_start):   */ -static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract_phrases(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, int __pyx_v_e_low, int __pyx_v_e_high, int *__pyx_v_e_gap_low, int *__pyx_v_e_gap_high, int *__pyx_v_e_links_low, int __pyx_v_num_gaps, CYTHON_UNUSED int __pyx_v_f_low, CYTHON_UNUSED int __pyx_v_f_high, CYTHON_UNUSED int *__pyx_v_f_gap_low, CYTHON_UNUSED int *__pyx_v_f_gap_high, CYTHON_UNUSED int *__pyx_v_f_links_low, CYTHON_UNUSED int __pyx_v_sent_id, int __pyx_v_e_sent_len, int __pyx_v_e_sent_start) { +static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract_phrases(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, int __pyx_v_e_low, int __pyx_v_e_high, int *__pyx_v_e_gap_low, int *__pyx_v_e_gap_high, int *__pyx_v_e_links_low, int __pyx_v_num_gaps, int __pyx_v_f_low, int __pyx_v_f_high, int *__pyx_v_f_gap_low, int *__pyx_v_f_gap_high, int *__pyx_v_f_links_low, int __pyx_v_sent_id, int __pyx_v_e_sent_len, int __pyx_v_e_sent_start) {    int __pyx_v_i;    int __pyx_v_j;    int __pyx_v_k; @@ -48872,7 +46737,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract_phrases(struct _    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("extract_phrases", 0); +  __Pyx_RefNannySetupContext("extract_phrases");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1296   *         cdef result @@ -48882,7 +46747,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract_phrases(struct _   *         e_gaps1 = <int*> malloc(0)   */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_result = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0; @@ -49600,7 +47465,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract_phrases(struct _   *                 if e_gaps1[i+2*j] < e_gaps1[i+(2*j)+1]:   */      __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1373; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_1); +    __Pyx_GOTREF(((PyObject *)__pyx_t_1));      __Pyx_XDECREF(((PyObject *)__pyx_v_indexes));      __pyx_v_indexes = __pyx_t_1;      __pyx_t_1 = 0; @@ -49654,6 +47519,9 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract_phrases(struct _   *                     ephr_arr._append(self.eid2symid[self.eda.data.arr[e_sent_start+k]])   *                 if j < num_gaps:   */ +        if (unlikely(((PyObject *)__pyx_v_indexes) == Py_None)) { +          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +        }          __pyx_t_1 = PyInt_FromLong(__pyx_v_k); 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_t_10 = PyList_Append(__pyx_v_indexes, __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1378; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -49691,6 +47559,9 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract_phrases(struct _   *                     ephr_arr._append(sym_setindex(self.category, e_gap_order[j]+1))   *             i = i + step   */ +        if (unlikely(((PyObject *)__pyx_v_indexes) == Py_None)) { +          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +        }          __pyx_t_1 = PyInt_FromLong(__pyx_f_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 = 1381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_1);          __pyx_t_10 = PyList_Append(__pyx_v_indexes, __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1381; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -49742,7 +47613,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract_phrases(struct _   *         free(e_gaps1)   */        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_1); +      __Pyx_GOTREF(((PyObject *)__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)); @@ -49750,7 +47621,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract_phrases(struct _        __Pyx_GOTREF(__pyx_t_11);        __Pyx_DECREF(((PyObject *)__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 = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __Pyx_GOTREF(__pyx_t_1); +      __Pyx_GOTREF(((PyObject *)__pyx_t_1));        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_11);        __Pyx_GIVEREF(__pyx_t_11);        __Pyx_INCREF(((PyObject *)__pyx_v_indexes)); @@ -49820,7 +47691,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract_phrases(struct _   *         cdef IntList ret = IntList()   */ -static struct __pyx_obj_3_sa_IntList *__pyx_f_3_sa_23HieroCachingRuleFactory_create_alignments(CYTHON_UNUSED struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, int *__pyx_v_sent_links, int __pyx_v_num_links, PyObject *__pyx_v_findexes, PyObject *__pyx_v_eindexes) { +static struct __pyx_obj_3_sa_IntList *__pyx_f_3_sa_23HieroCachingRuleFactory_create_alignments(struct __pyx_obj_3_sa_HieroCachingRuleFactory *__pyx_v_self, int *__pyx_v_sent_links, int __pyx_v_num_links, PyObject *__pyx_v_findexes, PyObject *__pyx_v_eindexes) {    unsigned int __pyx_v_i;    struct __pyx_obj_3_sa_IntList *__pyx_v_ret = 0;    PyObject *__pyx_v_s = NULL; @@ -49838,7 +47709,7 @@ static struct __pyx_obj_3_sa_IntList *__pyx_f_3_sa_23HieroCachingRuleFactory_cre    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("create_alignments", 0); +  __Pyx_RefNannySetupContext("create_alignments");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1393   *     cdef IntList create_alignments(self, int* sent_links, int num_links, findexes, eindexes): @@ -49883,7 +47754,8 @@ static struct __pyx_obj_3_sa_IntList *__pyx_f_3_sa_23HieroCachingRuleFactory_cre   *                 continue   *             idx = 0   */ -    __pyx_t_1 = PyObject_RichCompare(__pyx_v_s, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_1 = PyObject_RichCompare(__pyx_v_s, __pyx_int_0, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __Pyx_GOTREF(__pyx_t_1);      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;      if (__pyx_t_4) { @@ -49921,7 +47793,8 @@ static struct __pyx_obj_3_sa_IntList *__pyx_f_3_sa_23HieroCachingRuleFactory_cre      while (1) {        __pyx_t_1 = PyInt_FromLong((__pyx_v_num_links * 2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1399; __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 = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_5 = PyObject_RichCompare(__pyx_v_idx, __pyx_t_1, Py_LT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_5);        __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 = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -49937,7 +47810,8 @@ static struct __pyx_obj_3_sa_IntList *__pyx_f_3_sa_23HieroCachingRuleFactory_cre        __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 = 1400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_t_5 = PyInt_FromLong((__pyx_v_sent_links[__pyx_t_6])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_5); -      __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_v_s, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_v_s, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +      __Pyx_GOTREF(__pyx_t_1);        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -49959,7 +47833,7 @@ static struct __pyx_obj_3_sa_IntList *__pyx_f_3_sa_23HieroCachingRuleFactory_cre          __pyx_t_5 = PyInt_FromLong((__pyx_v_sent_links[__pyx_t_6])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}          __Pyx_GOTREF(__pyx_t_5);          __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_7); +        __Pyx_GOTREF(((PyObject *)__pyx_t_7));          PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);          __Pyx_GIVEREF(__pyx_t_5);          __pyx_t_5 = 0; @@ -50077,7 +47951,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj    int __pyx_v_f_sent_end;    int __pyx_v_e_sent_len;    int __pyx_v_f_sent_len; -  CYTHON_UNUSED int __pyx_v_e_word_count; +  int __pyx_v_e_word_count;    int __pyx_v_f_x_low;    int __pyx_v_f_x_high;    int __pyx_v_e_x_low; @@ -50088,7 +47962,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj    PyObject *__pyx_v_phrase_list = 0;    struct __pyx_obj_3_sa_IntList *__pyx_v_fphr_arr = 0;    struct __pyx_obj_3_sa_Phrase *__pyx_v_fphr = 0; -  CYTHON_UNUSED PyObject *__pyx_v_reason_for_failure = 0; +  PyObject *__pyx_v_reason_for_failure = 0;    PyObject *__pyx_v_sofar = NULL;    PyObject *__pyx_v_als = NULL;    PyObject *__pyx_v_al = NULL; @@ -50129,7 +48003,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("extract", 0); +  __Pyx_RefNannySetupContext("extract");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/rulefactory.pxi":1419   *         cdef reason_for_failure @@ -50160,7 +48034,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj   *    */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1421; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __pyx_v_extracts = ((PyObject *)__pyx_t_1);    __pyx_t_1 = 0; @@ -50686,7 +48560,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj   *             al = (matching.arr[x]-f_sent_start,f_links_low[matching.arr[x]-f_sent_start])   */    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1482; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_2); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2));    __pyx_v_als = __pyx_t_2;    __pyx_t_2 = 0; @@ -50713,7 +48587,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj      __pyx_t_1 = PyInt_FromLong((__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 = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_10); +    __Pyx_GOTREF(((PyObject *)__pyx_t_10));      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_2);      __Pyx_GIVEREF(__pyx_t_2);      PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_1); @@ -50731,6 +48605,9 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj   *         # check all source-side alignment constraints   *         met_constraints = 1   */ +    if (unlikely(((PyObject *)__pyx_v_als) == Py_None)) { +      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +    }      __pyx_t_11 = PyList_Append(__pyx_v_als, ((PyObject *)__pyx_v_al)); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } @@ -51497,7 +49374,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj              __pyx_t_1 = PyInt_FromLong((__pyx_v_f_gap_high[(__pyx_v_gap_start + __pyx_v_i)])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1576; __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 = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_2); +            __Pyx_GOTREF(((PyObject *)__pyx_t_2));              PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_10);              __Pyx_GIVEREF(__pyx_t_10);              PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1); @@ -51616,7 +49493,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj          __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s__extend); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1586; __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 = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_2); +        __Pyx_GOTREF(((PyObject *)__pyx_t_2));          __Pyx_INCREF(((PyObject *)__pyx_v_self->findexes1));          PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->findexes1));          __Pyx_GIVEREF(((PyObject *)__pyx_v_self->findexes1)); @@ -51723,7 +49600,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj   *                         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_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1597; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -        __Pyx_GOTREF(__pyx_t_2); +        __Pyx_GOTREF(((PyObject *)__pyx_t_2));          __Pyx_INCREF(((PyObject *)__pyx_v_fphr_arr));          PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_fphr_arr));          __Pyx_GIVEREF(((PyObject *)__pyx_v_fphr_arr)); @@ -51807,7 +49684,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj              __pyx_t_14 = PyInt_FromLong(__pyx_v_e_high); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1606; __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 = 1606; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_15); +            __Pyx_GOTREF(((PyObject *)__pyx_t_15));              PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_10);              __Pyx_GIVEREF(__pyx_t_10);              PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_2); @@ -51845,20 +49722,12 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj              __pyx_t_16 = Py_TYPE(__pyx_t_14)->tp_iternext;            }            for (;;) { -            if (!__pyx_t_16 && PyList_CheckExact(__pyx_t_14)) { +            if (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 = 1607; __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 = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              #endif -            } else if (!__pyx_t_16 && PyTuple_CheckExact(__pyx_t_14)) { +              __pyx_t_15 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; +            } else if (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 = 1607; __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 = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              #endif +              __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++;              } else {                __pyx_t_15 = __pyx_t_16(__pyx_t_14);                if (unlikely(!__pyx_t_15)) { @@ -51872,33 +49741,27 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj              }              if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) {                PyObject* sequence = __pyx_t_15; -              #if CYTHON_COMPILING_IN_CPYTHON -              Py_ssize_t size = Py_SIZE(sequence); -              #else -              Py_ssize_t size = PySequence_Size(sequence); -              #endif -              if (unlikely(size != 2)) { -                if (size > 2) __Pyx_RaiseTooManyValuesError(2); -                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              } -              #if CYTHON_COMPILING_IN_CPYTHON                if (likely(PyTuple_CheckExact(sequence))) { +                if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +                  if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                  else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                }                  __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);                   __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);                 } else { +                if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +                  if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                  else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                  {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                }                  __pyx_t_1 = PyList_GET_ITEM(sequence, 0);                   __pyx_t_2 = PyList_GET_ITEM(sequence, 1);                 }                __Pyx_INCREF(__pyx_t_1);                __Pyx_INCREF(__pyx_t_2); -              #else -              __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              #endif                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -            } else -            { +            } else {                Py_ssize_t index = -1;                __pyx_t_10 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_10); @@ -51909,13 +49772,12 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                index = 1; __pyx_t_2 = __pyx_t_17(__pyx_t_10); if (unlikely(!__pyx_t_2)) goto __pyx_L61_unpacking_failed;                __Pyx_GOTREF(__pyx_t_2);                if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __pyx_t_17 = NULL;                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;                goto __pyx_L62_unpacking_done;                __pyx_L61_unpacking_failed:;                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -              __pyx_t_17 = NULL; -              if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +              if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +              if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);                {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __pyx_L62_unpacking_done:;              } @@ -51952,7 +49814,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj              __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}              __Pyx_GOTREF(__pyx_t_2);              __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1609; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_15); +            __Pyx_GOTREF(((PyObject *)__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)); @@ -51960,7 +49822,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj              __Pyx_GOTREF(__pyx_t_1);              __Pyx_DECREF(((PyObject *)__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 = 1609; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -            __Pyx_GOTREF(__pyx_t_15); +            __Pyx_GOTREF(((PyObject *)__pyx_t_15));              __Pyx_INCREF(((PyObject *)__pyx_v_fphr));              PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_fphr));              __Pyx_GIVEREF(((PyObject *)__pyx_v_fphr)); @@ -52308,7 +50170,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                __pyx_t_14 = PyObject_GetAttr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s__extend); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                __Pyx_GOTREF(__pyx_t_14);                __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1645; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __Pyx_GOTREF(__pyx_t_1); +              __Pyx_GOTREF(((PyObject *)__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)); @@ -52415,7 +50277,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj   *                                                     f_x_low, f_x_high, f_gap_low, f_gap_high, f_links_low, matching.sent_id,   */                __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1655; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __Pyx_GOTREF(__pyx_t_1); +              __Pyx_GOTREF(((PyObject *)__pyx_t_1));                __Pyx_INCREF(((PyObject *)__pyx_v_fphr_arr));                PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_fphr_arr));                __Pyx_GIVEREF(((PyObject *)__pyx_v_fphr_arr)); @@ -52494,20 +50356,12 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  __pyx_t_16 = Py_TYPE(__pyx_t_15)->tp_iternext;                }                for (;;) { -                if (!__pyx_t_16 && PyList_CheckExact(__pyx_t_15)) { +                if (PyList_CheckExact(__pyx_t_15)) {                    if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_15)) break; -                  #if CYTHON_COMPILING_IN_CPYTHON -                  __pyx_t_1 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #else -                  __pyx_t_1 = PySequence_ITEM(__pyx_t_15, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #endif -                } else if (!__pyx_t_16 && PyTuple_CheckExact(__pyx_t_15)) { +                  __pyx_t_1 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; +                } else if (PyTuple_CheckExact(__pyx_t_15)) {                    if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_15)) break; -                  #if CYTHON_COMPILING_IN_CPYTHON -                  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #else -                  __pyx_t_1 = PySequence_ITEM(__pyx_t_15, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #endif +                  __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++;                  } else {                    __pyx_t_1 = __pyx_t_16(__pyx_t_15);                    if (unlikely(!__pyx_t_1)) { @@ -52521,33 +50375,27 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  }                  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {                    PyObject* sequence = __pyx_t_1; -                  #if CYTHON_COMPILING_IN_CPYTHON -                  Py_ssize_t size = Py_SIZE(sequence); -                  #else -                  Py_ssize_t size = PySequence_Size(sequence); -                  #endif -                  if (unlikely(size != 2)) { -                    if (size > 2) __Pyx_RaiseTooManyValuesError(2); -                    else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  } -                  #if CYTHON_COMPILING_IN_CPYTHON                    if (likely(PyTuple_CheckExact(sequence))) { +                    if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +                      if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                      else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    }                      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 0);                       __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);                     } else { +                    if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +                      if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                      else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    }                      __pyx_t_14 = PyList_GET_ITEM(sequence, 0);                       __pyx_t_2 = PyList_GET_ITEM(sequence, 1);                     }                    __Pyx_INCREF(__pyx_t_14);                    __Pyx_INCREF(__pyx_t_2); -                  #else -                  __pyx_t_14 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #endif                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -                } else -                { +                } else {                    Py_ssize_t index = -1;                    __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_10); @@ -52558,13 +50406,12 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                    index = 1; __pyx_t_2 = __pyx_t_17(__pyx_t_10); if (unlikely(!__pyx_t_2)) goto __pyx_L77_unpacking_failed;                    __Pyx_GOTREF(__pyx_t_2);                    if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  __pyx_t_17 = NULL;                    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;                    goto __pyx_L78_unpacking_done;                    __pyx_L77_unpacking_failed:;                    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -                  __pyx_t_17 = NULL; -                  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +                  if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +                  if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __pyx_L78_unpacking_done:;                  } @@ -52601,7 +50448,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1665; __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 = 1665; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_1); +                __Pyx_GOTREF(((PyObject *)__pyx_t_1));                  __Pyx_INCREF(((PyObject *)__pyx_v_als2));                  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_als2));                  __Pyx_GIVEREF(((PyObject *)__pyx_v_als2)); @@ -52609,7 +50456,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  __Pyx_GOTREF(__pyx_t_14);                  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;                  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1665; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_1); +                __Pyx_GOTREF(((PyObject *)__pyx_t_1));                  __Pyx_INCREF(((PyObject *)__pyx_v_fphr));                  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_fphr));                  __Pyx_GIVEREF(((PyObject *)__pyx_v_fphr)); @@ -52935,7 +50782,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                __pyx_t_15 = PyObject_GetAttr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s__extend); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1700; __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 = 1700; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __Pyx_GOTREF(__pyx_t_14); +              __Pyx_GOTREF(((PyObject *)__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)); @@ -53029,7 +50876,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj   *                                                     f_x_low, f_x_high, f_gap_low+gap_start, f_gap_high+gap_start, f_links_low,   */                __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1709; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __Pyx_GOTREF(__pyx_t_14); +              __Pyx_GOTREF(((PyObject *)__pyx_t_14));                __Pyx_INCREF(((PyObject *)__pyx_v_fphr_arr));                PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_fphr_arr));                __Pyx_GIVEREF(((PyObject *)__pyx_v_fphr_arr)); @@ -53108,20 +50955,12 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  __pyx_t_16 = Py_TYPE(__pyx_t_1)->tp_iternext;                }                for (;;) { -                if (!__pyx_t_16 && PyList_CheckExact(__pyx_t_1)) { +                if (PyList_CheckExact(__pyx_t_1)) {                    if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break; -                  #if CYTHON_COMPILING_IN_CPYTHON -                  __pyx_t_14 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_14); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #else -                  __pyx_t_14 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #endif -                } else if (!__pyx_t_16 && PyTuple_CheckExact(__pyx_t_1)) { +                  __pyx_t_14 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_14); __pyx_t_13++; +                } else if (PyTuple_CheckExact(__pyx_t_1)) {                    if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -                  #if CYTHON_COMPILING_IN_CPYTHON -                  __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_14); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #else -                  __pyx_t_14 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #endif +                  __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_14); __pyx_t_13++;                  } else {                    __pyx_t_14 = __pyx_t_16(__pyx_t_1);                    if (unlikely(!__pyx_t_14)) { @@ -53135,33 +50974,27 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  }                  if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) {                    PyObject* sequence = __pyx_t_14; -                  #if CYTHON_COMPILING_IN_CPYTHON -                  Py_ssize_t size = Py_SIZE(sequence); -                  #else -                  Py_ssize_t size = PySequence_Size(sequence); -                  #endif -                  if (unlikely(size != 2)) { -                    if (size > 2) __Pyx_RaiseTooManyValuesError(2); -                    else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  } -                  #if CYTHON_COMPILING_IN_CPYTHON                    if (likely(PyTuple_CheckExact(sequence))) { +                    if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +                      if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                      else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    }                      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0);                       __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);                     } else { +                    if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +                      if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                      else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    }                      __pyx_t_15 = PyList_GET_ITEM(sequence, 0);                       __pyx_t_2 = PyList_GET_ITEM(sequence, 1);                     }                    __Pyx_INCREF(__pyx_t_15);                    __Pyx_INCREF(__pyx_t_2); -                  #else -                  __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #endif                    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; -                } else -                { +                } else {                    Py_ssize_t index = -1;                    __pyx_t_10 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_10); @@ -53172,13 +51005,12 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                    index = 1; __pyx_t_2 = __pyx_t_17(__pyx_t_10); if (unlikely(!__pyx_t_2)) goto __pyx_L92_unpacking_failed;                    __Pyx_GOTREF(__pyx_t_2);                    if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  __pyx_t_17 = NULL;                    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;                    goto __pyx_L93_unpacking_done;                    __pyx_L92_unpacking_failed:;                    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -                  __pyx_t_17 = NULL; -                  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +                  if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +                  if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __pyx_L93_unpacking_done:;                  } @@ -53215,7 +51047,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_2);                  __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_GOTREF(__pyx_t_14); +                __Pyx_GOTREF(((PyObject *)__pyx_t_14));                  __Pyx_INCREF(((PyObject *)__pyx_v_als3));                  PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_als3));                  __Pyx_GIVEREF(((PyObject *)__pyx_v_als3)); @@ -53223,7 +51055,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  __Pyx_GOTREF(__pyx_t_15);                  __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;                  __pyx_t_14 = PyTuple_New(4); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_14); +                __Pyx_GOTREF(((PyObject *)__pyx_t_14));                  __Pyx_INCREF(((PyObject *)__pyx_v_fphr));                  PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_fphr));                  __Pyx_GIVEREF(((PyObject *)__pyx_v_fphr)); @@ -53708,7 +51540,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self->findexes), __pyx_n_s__extend); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1771; __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 = 1771; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __Pyx_GOTREF(__pyx_t_15); +              __Pyx_GOTREF(((PyObject *)__pyx_t_15));                __Pyx_INCREF(((PyObject *)__pyx_v_self->findexes1));                PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_self->findexes1));                __Pyx_GIVEREF(((PyObject *)__pyx_v_self->findexes1)); @@ -53802,7 +51634,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj   *                                                     f_x_low, f_x_high, f_gap_low, f_gap_high, f_links_low,   */                __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1780; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -              __Pyx_GOTREF(__pyx_t_15); +              __Pyx_GOTREF(((PyObject *)__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)); @@ -53881,20 +51713,12 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  __pyx_t_16 = Py_TYPE(__pyx_t_14)->tp_iternext;                }                for (;;) { -                if (!__pyx_t_16 && PyList_CheckExact(__pyx_t_14)) { +                if (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 = 1788; __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 = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #endif -                } else if (!__pyx_t_16 && PyTuple_CheckExact(__pyx_t_14)) { +                  __pyx_t_15 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; +                } else if (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 = 1788; __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 = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #endif +                  __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++;                  } else {                    __pyx_t_15 = __pyx_t_16(__pyx_t_14);                    if (unlikely(!__pyx_t_15)) { @@ -53908,33 +51732,27 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  }                  if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) {                    PyObject* sequence = __pyx_t_15; -                  #if CYTHON_COMPILING_IN_CPYTHON -                  Py_ssize_t size = Py_SIZE(sequence); -                  #else -                  Py_ssize_t size = PySequence_Size(sequence); -                  #endif -                  if (unlikely(size != 2)) { -                    if (size > 2) __Pyx_RaiseTooManyValuesError(2); -                    else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  } -                  #if CYTHON_COMPILING_IN_CPYTHON                    if (likely(PyTuple_CheckExact(sequence))) { +                    if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +                      if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                      else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +                      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    }                      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);                       __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);                     } else { +                    if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +                      if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +                      else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +                      {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +                    }                      __pyx_t_1 = PyList_GET_ITEM(sequence, 0);                       __pyx_t_2 = PyList_GET_ITEM(sequence, 1);                     }                    __Pyx_INCREF(__pyx_t_1);                    __Pyx_INCREF(__pyx_t_2); -                  #else -                  __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  #endif                    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; -                } else -                { +                } else {                    Py_ssize_t index = -1;                    __pyx_t_10 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __Pyx_GOTREF(__pyx_t_10); @@ -53945,13 +51763,12 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                    index = 1; __pyx_t_2 = __pyx_t_17(__pyx_t_10); if (unlikely(!__pyx_t_2)) goto __pyx_L110_unpacking_failed;                    __Pyx_GOTREF(__pyx_t_2);                    if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                  __pyx_t_17 = NULL;                    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;                    goto __pyx_L111_unpacking_done;                    __pyx_L110_unpacking_failed:;                    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; -                  __pyx_t_17 = NULL; -                  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +                  if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +                  if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);                    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                    __pyx_L111_unpacking_done:;                  } @@ -53988,7 +51805,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pair_count); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}                  __Pyx_GOTREF(__pyx_t_2);                  __pyx_t_15 = PyTuple_New(1); 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_GOTREF(((PyObject *)__pyx_t_15));                  __Pyx_INCREF(((PyObject *)__pyx_v_als4));                  PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_als4));                  __Pyx_GIVEREF(((PyObject *)__pyx_v_als4)); @@ -53996,7 +51813,7 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj                  __Pyx_GOTREF(__pyx_t_1);                  __Pyx_DECREF(((PyObject *)__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 = 1790; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -                __Pyx_GOTREF(__pyx_t_15); +                __Pyx_GOTREF(((PyObject *)__pyx_t_15));                  __Pyx_INCREF(((PyObject *)__pyx_v_fphr));                  PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_fphr));                  __Pyx_GIVEREF(((PyObject *)__pyx_v_fphr)); @@ -54168,20 +51985,6 @@ static PyObject *__pyx_f_3_sa_23HieroCachingRuleFactory_extract(struct __pyx_obj    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_13FeatureVector_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_13FeatureVector_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); -  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { -    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} -  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; -  __pyx_r = __pyx_pf_3_sa_13FeatureVector___cinit__(((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":7   *    * cdef class FeatureVector: @@ -54190,7 +51993,8 @@ static int __pyx_pw_3_sa_13FeatureVector_1__cinit__(PyObject *__pyx_v_self, PyOb   *         self.values = FloatList(INITIAL_CAPACITY, INCREMENT)   */ -static int __pyx_pf_3_sa_13FeatureVector___cinit__(struct __pyx_obj_3_sa_FeatureVector *__pyx_v_self) { +static int __pyx_pf_3_sa_13FeatureVector___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_13FeatureVector___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    int __pyx_r;    __Pyx_RefNannyDeclarations    PyObject *__pyx_t_1 = NULL; @@ -54199,7 +52003,10 @@ static int __pyx_pf_3_sa_13FeatureVector___cinit__(struct __pyx_obj_3_sa_Feature    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__cinit__", 0); +  __Pyx_RefNannySetupContext("__cinit__"); +  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { +    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} +  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":8   * cdef class FeatureVector: @@ -54213,7 +52020,7 @@ static int __pyx_pf_3_sa_13FeatureVector___cinit__(struct __pyx_obj_3_sa_Feature    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__INCREMENT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 8; __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[13]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);    __Pyx_GIVEREF(__pyx_t_1);    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); @@ -54224,9 +52031,9 @@ static int __pyx_pf_3_sa_13FeatureVector___cinit__(struct __pyx_obj_3_sa_Feature    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;    __Pyx_GIVEREF(__pyx_t_2); -  __Pyx_GOTREF(__pyx_v_self->names); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->names)); -  __pyx_v_self->names = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_2); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self)->names); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self)->names)); +  ((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self)->names = ((struct __pyx_obj_3_sa_IntList *)__pyx_t_2);    __pyx_t_2 = 0;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":9 @@ -54241,7 +52048,7 @@ static int __pyx_pf_3_sa_13FeatureVector___cinit__(struct __pyx_obj_3_sa_Feature    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__INCREMENT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_3);    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); @@ -54252,9 +52059,9 @@ static int __pyx_pf_3_sa_13FeatureVector___cinit__(struct __pyx_obj_3_sa_Feature    __Pyx_GOTREF(__pyx_t_3);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;    __Pyx_GIVEREF(__pyx_t_3); -  __Pyx_GOTREF(__pyx_v_self->values); -  __Pyx_DECREF(((PyObject *)__pyx_v_self->values)); -  __pyx_v_self->values = ((struct __pyx_obj_3_sa_FloatList *)__pyx_t_3); +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self)->values); +  __Pyx_DECREF(((PyObject *)((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self)->values)); +  ((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self)->values = ((struct __pyx_obj_3_sa_FloatList *)__pyx_t_3);    __pyx_t_3 = 0;    __pyx_r = 0; @@ -54270,39 +52077,52 @@ static int __pyx_pf_3_sa_13FeatureVector___cinit__(struct __pyx_obj_3_sa_Feature    return __pyx_r;  } -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_13FeatureVector_3set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_3_sa_13FeatureVector_3set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":11 + *         self.values = FloatList(INITIAL_CAPACITY, INCREMENT) + *  + *     def set(self, unsigned name, float value):             # <<<<<<<<<<<<<< + *         self.names.append(name) + *         self.values.append(value) + */ + +static PyObject *__pyx_pf_3_sa_13FeatureVector_1set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pf_3_sa_13FeatureVector_1set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {    unsigned int __pyx_v_name;    float __pyx_v_value; -  PyObject *__pyx_r = 0; +  PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("set (wrapper)", 0); +  PyObject *__pyx_t_1 = NULL; +  PyObject *__pyx_t_2 = NULL; +  int __pyx_lineno = 0; +  const char *__pyx_filename = NULL; +  int __pyx_clineno = 0; +  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__name,&__pyx_n_s__value,0}; +  __Pyx_RefNannySetupContext("set");    { -    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__name,&__pyx_n_s__value,0};      PyObject* values[2] = {0,0};      if (unlikely(__pyx_kwds)) {        Py_ssize_t kw_args; -      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);          case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);          case  0: break;          default: goto __pyx_L5_argtuple_error;        }        kw_args = PyDict_Size(__pyx_kwds); -      switch (pos_args) { +      switch (PyTuple_GET_SIZE(__pyx_args)) {          case  0: -        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name)) != 0)) kw_args--; +        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name); +        if (likely(values[0])) kw_args--;          else goto __pyx_L5_argtuple_error;          case  1: -        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value)) != 0)) kw_args--; +        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value); +        if (likely(values[1])) kw_args--;          else {            __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, 1); {__pyx_filename = __pyx_f[13]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}          }        }        if (unlikely(kw_args > 0)) { -        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "set") < 0)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}        }      } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {        goto __pyx_L5_argtuple_error; @@ -54311,7 +52131,7 @@ static PyObject *__pyx_pw_3_sa_13FeatureVector_3set(PyObject *__pyx_v_self, PyOb        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);      }      __pyx_v_name = __Pyx_PyInt_AsUnsignedInt(values[0]); if (unlikely((__pyx_v_name == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;} -    __pyx_v_value = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_value == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;} +    __pyx_v_value = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_value == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}    }    goto __pyx_L4_argument_unpacking_done;    __pyx_L5_argtuple_error:; @@ -54321,28 +52141,6 @@ static PyObject *__pyx_pw_3_sa_13FeatureVector_3set(PyObject *__pyx_v_self, PyOb    __Pyx_RefNannyFinishContext();    return NULL;    __pyx_L4_argument_unpacking_done:; -  __pyx_r = __pyx_pf_3_sa_13FeatureVector_2set(((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self), __pyx_v_name, __pyx_v_value); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} - -/* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":11 - *         self.values = FloatList(INITIAL_CAPACITY, INCREMENT) - *  - *     def set(self, unsigned name, float value):             # <<<<<<<<<<<<<< - *         self.names.append(name) - *         self.values.append(value) - */ - -static PyObject *__pyx_pf_3_sa_13FeatureVector_2set(struct __pyx_obj_3_sa_FeatureVector *__pyx_v_self, unsigned int __pyx_v_name, float __pyx_v_value) { -  PyObject *__pyx_r = NULL; -  __Pyx_RefNannyDeclarations -  PyObject *__pyx_t_1 = NULL; -  PyObject *__pyx_t_2 = NULL; -  int __pyx_lineno = 0; -  const char *__pyx_filename = NULL; -  int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("set", 0);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":12   *  @@ -54353,7 +52151,7 @@ static PyObject *__pyx_pf_3_sa_13FeatureVector_2set(struct __pyx_obj_3_sa_Featur   */    __pyx_t_1 = PyLong_FromUnsignedLong(__pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->names), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self)->names), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 12; __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; @@ -54367,7 +52165,7 @@ static PyObject *__pyx_pf_3_sa_13FeatureVector_2set(struct __pyx_obj_3_sa_Featur   */    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2); -  __pyx_t_1 = __Pyx_PyObject_Append(((PyObject *)__pyx_v_self->values), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = __Pyx_PyObject_Append(((PyObject *)((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self)->values), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 13; __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_1); __pyx_t_1 = 0; @@ -54384,18 +52182,7 @@ static PyObject *__pyx_pf_3_sa_13FeatureVector_2set(struct __pyx_obj_3_sa_Featur    __Pyx_RefNannyFinishContext();    return __pyx_r;  } -static PyObject *__pyx_gb_3_sa_13FeatureVector_6generator5(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ - -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_13FeatureVector_5__iter__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_13FeatureVector_5__iter__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_13FeatureVector_4__iter__(((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} +static PyObject *__pyx_gb_3_sa_13FeatureVector_3generator5(struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *__pyx_cur_scope, PyObject *__pyx_sent_value); /* proto */  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":15   *         self.values.append(value) @@ -54405,45 +52192,36 @@ static PyObject *__pyx_pw_3_sa_13FeatureVector_5__iter__(PyObject *__pyx_v_self)   *         for i in range(self.names.len):   */ -static PyObject *__pyx_pf_3_sa_13FeatureVector_4__iter__(struct __pyx_obj_3_sa_FeatureVector *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_13FeatureVector_2__iter__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_13FeatureVector_2__iter__(PyObject *__pyx_v_self) {    struct __pyx_obj_3_sa___pyx_scope_struct_9___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_RefNannySetupContext("__iter__");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *)__pyx_ptype_3_sa___pyx_scope_struct_9___iter__->tp_new(__pyx_ptype_3_sa___pyx_scope_struct_9___iter__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL;    }    __Pyx_GOTREF(__pyx_cur_scope); +  __Pyx_INCREF(__pyx_v_self);    __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_GeneratorObject *gen = __Pyx_Generator_New((__pyx_generator_body_t) __pyx_gb_3_sa_13FeatureVector_6generator5, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_DECREF(__pyx_cur_scope); -    __Pyx_RefNannyFinishContext(); -    return (PyObject *) gen; -  } +  __pyx_cur_scope->__pyx_base.resume_label = 0; +  __pyx_cur_scope->__pyx_base.body = (__pyx_generator_body_t) __pyx_gb_3_sa_13FeatureVector_3generator5; +  __Pyx_GIVEREF(__pyx_cur_scope); +  __Pyx_RefNannyFinishContext(); +  return (PyObject *) __pyx_cur_scope;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); -  goto __pyx_L0; -  __pyx_L1_error:; -  __Pyx_AddTraceback("_sa.FeatureVector.__iter__", __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_3_sa_13FeatureVector_6generator5(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_3_sa_13FeatureVector_3generator5(struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *__pyx_cur_scope, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *__pyx_cur_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    int __pyx_t_1;    unsigned int __pyx_t_2; @@ -54452,8 +52230,8 @@ static PyObject *__pyx_gb_3_sa_13FeatureVector_6generator5(__pyx_GeneratorObject    PyObject *__pyx_t_5 = NULL;    PyObject *__pyx_t_6 = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("None", 0); -  switch (__pyx_generator->resume_label) { +  __Pyx_RefNannySetupContext("None"); +  switch (__pyx_cur_scope->__pyx_base.resume_label) {      case 0: goto __pyx_L3_first_run;      case 1: goto __pyx_L6_resume_from_yield;      default: /* CPython raises the right error here */ @@ -54470,7 +52248,7 @@ static PyObject *__pyx_gb_3_sa_13FeatureVector_6generator5(__pyx_GeneratorObject   *             yield (FD.word(self.names[i]), self.values[i])   *    */ -  __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->names->len; +  __pyx_t_1 = ((struct __pyx_obj_3_sa_FeatureVector *)__pyx_cur_scope->__pyx_v_self)->names->len;    for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) {      __pyx_cur_scope->__pyx_v_i = __pyx_t_2; @@ -54481,16 +52259,16 @@ static PyObject *__pyx_gb_3_sa_13FeatureVector_6generator5(__pyx_GeneratorObject   *    *     def __str__(self):   */ -    __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_cur_scope->__pyx_v_self->names), __pyx_cur_scope->__pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)((struct __pyx_obj_3_sa_FeatureVector *)__pyx_cur_scope->__pyx_v_self)->names), __pyx_cur_scope->__pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_3);      __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;      __pyx_t_3 = PyBytes_FromString(((struct __pyx_vtabstruct_3_sa_StringMap *)__pyx_v_3_sa_FD->__pyx_vtab)->word(__pyx_v_3_sa_FD, __pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(((PyObject *)__pyx_t_3)); -    __pyx_t_5 = __Pyx_GetItemInt(((PyObject *)__pyx_cur_scope->__pyx_v_self->values), __pyx_cur_scope->__pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_5 = __Pyx_GetItemInt(((PyObject *)((struct __pyx_obj_3_sa_FeatureVector *)__pyx_cur_scope->__pyx_v_self)->values), __pyx_cur_scope->__pyx_v_i, sizeof(unsigned int)+1, PyLong_FromUnsignedLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 18; __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[13]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_6); +    __Pyx_GOTREF(((PyObject *)__pyx_t_6));      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_3));      __Pyx_GIVEREF(((PyObject *)__pyx_t_3));      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); @@ -54504,14 +52282,14 @@ static PyObject *__pyx_gb_3_sa_13FeatureVector_6generator5(__pyx_GeneratorObject      __Pyx_XGIVEREF(__pyx_r);      __Pyx_RefNannyFinishContext();      /* return from generator, yielding value */ -    __pyx_generator->resume_label = 1; +    __pyx_cur_scope->__pyx_base.resume_label = 1;      return __pyx_r;      __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[13]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    } -  PyErr_SetNone(PyExc_StopIteration); +  PyErr_SetNone(PyExc_StopIteration); {__pyx_filename = __pyx_f[13]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    goto __pyx_L0;    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_3); @@ -54520,23 +52298,11 @@ static PyObject *__pyx_gb_3_sa_13FeatureVector_6generator5(__pyx_GeneratorObject    __Pyx_AddTraceback("__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_L0:;    __Pyx_XDECREF(__pyx_r); -  __pyx_generator->resume_label = -1; -  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __pyx_cur_scope->__pyx_base.resume_label = -1;    __Pyx_RefNannyFinishContext();    return NULL;  } - -/* Python wrapper */ -static PyObject *__pyx_pw_3_sa_13FeatureVector_8__str__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_3_sa_13FeatureVector_8__str__(PyObject *__pyx_v_self) { -  PyObject *__pyx_r = 0; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); -  __pyx_r = __pyx_pf_3_sa_13FeatureVector_7__str__(((struct __pyx_obj_3_sa_FeatureVector *)__pyx_v_self)); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -static PyObject *__pyx_gb_3_sa_13FeatureVector_7__str___2generator8(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ +static PyObject *__pyx_gb_3_sa_7__str___3generator8(struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *__pyx_cur_scope, PyObject *__pyx_sent_value); /* proto */  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":21   *  @@ -54546,53 +52312,45 @@ static PyObject *__pyx_gb_3_sa_13FeatureVector_7__str___2generator8(__pyx_Genera   * cdef class Scorer:   */ -static PyObject *__pyx_pf_3_sa_13FeatureVector_7__str___genexpr(PyObject *__pyx_self) { +static PyObject *__pyx_pf_3_sa_7__str___2genexpr(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pf_3_sa_7__str___2genexpr(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {    struct __pyx_obj_3_sa___pyx_scope_struct_11_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_RefNannySetupContext("genexpr");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *)__pyx_ptype_3_sa___pyx_scope_struct_11_genexpr->tp_new(__pyx_ptype_3_sa___pyx_scope_struct_11_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_3_sa___pyx_scope_struct_10___str__ *) __pyx_self; +  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_10___str__ *)__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_3_sa_13FeatureVector_7__str___2generator8, (PyObject *) __pyx_cur_scope); if (unlikely(!gen)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_DECREF(__pyx_cur_scope); -    __Pyx_RefNannyFinishContext(); -    return (PyObject *) gen; -  } +  __pyx_self = __pyx_self; +  __pyx_cur_scope->__pyx_base.resume_label = 0; +  __pyx_cur_scope->__pyx_base.body = (__pyx_generator_body_t) __pyx_gb_3_sa_7__str___3generator8; +  __Pyx_GIVEREF(__pyx_cur_scope); +  __Pyx_RefNannyFinishContext(); +  return (PyObject *) __pyx_cur_scope;    __pyx_r = Py_None; __Pyx_INCREF(Py_None); -  goto __pyx_L0; -  __pyx_L1_error:; -  __Pyx_AddTraceback("_sa.FeatureVector.__str__.genexpr", __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_3_sa_13FeatureVector_7__str___2generator8(__pyx_GeneratorObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ +static PyObject *__pyx_gb_3_sa_7__str___3generator8(struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *__pyx_cur_scope, PyObject *__pyx_sent_value) /* generator body */  { -  struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *__pyx_cur_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *)__pyx_generator->closure);    PyObject *__pyx_r = NULL;    PyObject *__pyx_t_1 = NULL;    Py_ssize_t __pyx_t_2;    PyObject *(*__pyx_t_3)(PyObject *);    PyObject *__pyx_t_4 = NULL;    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("None", 0); -  switch (__pyx_generator->resume_label) { +  __Pyx_RefNannySetupContext("None"); +  switch (__pyx_cur_scope->__pyx_base.resume_label) {      case 0: goto __pyx_L3_first_run;      case 1: goto __pyx_L6_resume_from_yield;      default: /* CPython raises the right error here */ @@ -54601,30 +52359,21 @@ static PyObject *__pyx_gb_3_sa_13FeatureVector_7__str___2generator8(__pyx_Genera    }    __pyx_L3_first_run:;    if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __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[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } -  if (PyList_CheckExact(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) || PyTuple_CheckExact(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self))) { -    __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; +  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }if (PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { +    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;      __pyx_t_3 = NULL;    } else { -    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_1);      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) { +    if (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[13]; __pyx_lineno = 21; __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[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; +    } else if (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[13]; __pyx_lineno = 21; __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[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1);        if (unlikely(!__pyx_t_4)) { @@ -54652,7 +52401,7 @@ static PyObject *__pyx_gb_3_sa_13FeatureVector_7__str___2generator8(__pyx_Genera      __Pyx_XGIVEREF(__pyx_r);      __Pyx_RefNannyFinishContext();      /* return from generator, yielding value */ -    __pyx_generator->resume_label = 1; +    __pyx_cur_scope->__pyx_base.resume_label = 1;      return __pyx_r;      __pyx_L6_resume_from_yield:;      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; @@ -54663,7 +52412,7 @@ static PyObject *__pyx_gb_3_sa_13FeatureVector_7__str___2generator8(__pyx_Genera      if (unlikely(!__pyx_sent_value)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    }    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  PyErr_SetNone(PyExc_StopIteration); +  PyErr_SetNone(PyExc_StopIteration); {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    goto __pyx_L0;    __pyx_L1_error:;    __Pyx_XDECREF(__pyx_t_1); @@ -54671,8 +52420,7 @@ static PyObject *__pyx_gb_3_sa_13FeatureVector_7__str___2generator8(__pyx_Genera    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_L0:;    __Pyx_XDECREF(__pyx_r); -  __pyx_generator->resume_label = -1; -  __Pyx_Generator_clear((PyObject*)__pyx_generator); +  __pyx_cur_scope->__pyx_base.resume_label = -1;    __Pyx_RefNannyFinishContext();    return NULL;  } @@ -54685,7 +52433,8 @@ static PyObject *__pyx_gb_3_sa_13FeatureVector_7__str___2generator8(__pyx_Genera   *    */ -static PyObject *__pyx_pf_3_sa_13FeatureVector_7__str__(struct __pyx_obj_3_sa_FeatureVector *__pyx_v_self) { +static PyObject *__pyx_pf_3_sa_13FeatureVector_4__str__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pf_3_sa_13FeatureVector_4__str__(PyObject *__pyx_v_self) {    struct __pyx_obj_3_sa___pyx_scope_struct_10___str__ *__pyx_cur_scope;    PyObject *__pyx_r = NULL;    __Pyx_RefNannyDeclarations @@ -54695,15 +52444,15 @@ static PyObject *__pyx_pf_3_sa_13FeatureVector_7__str__(struct __pyx_obj_3_sa_Fe    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__str__", 0); +  __Pyx_RefNannySetupContext("__str__");    __pyx_cur_scope = (struct __pyx_obj_3_sa___pyx_scope_struct_10___str__ *)__pyx_ptype_3_sa___pyx_scope_struct_10___str__->tp_new(__pyx_ptype_3_sa___pyx_scope_struct_10___str__, __pyx_empty_tuple, NULL);    if (unlikely(!__pyx_cur_scope)) {      __Pyx_RefNannyFinishContext();      return NULL;    }    __Pyx_GOTREF(__pyx_cur_scope); +  __Pyx_INCREF(__pyx_v_self);    __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);    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":21 @@ -54716,10 +52465,10 @@ static PyObject *__pyx_pf_3_sa_13FeatureVector_7__str__(struct __pyx_obj_3_sa_Fe    __Pyx_XDECREF(__pyx_r);    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_kp_s_67), __pyx_n_s__join); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1); -  __pyx_t_2 = __pyx_pf_3_sa_13FeatureVector_7__str___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_2 = __pyx_pf_3_sa_7__str___2genexpr(((PyObject*)__pyx_cur_scope), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __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[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);    __Pyx_GIVEREF(__pyx_t_2);    __pyx_t_2 = 0; @@ -54746,22 +52495,6 @@ static PyObject *__pyx_pf_3_sa_13FeatureVector_7__str__(struct __pyx_obj_3_sa_Fe    return __pyx_r;  } -/* Python wrapper */ -static int __pyx_pw_3_sa_6Scorer_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_3_sa_6Scorer_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { -  PyObject *__pyx_v_models = 0; -  int __pyx_r; -  __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); -  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1; -  __Pyx_INCREF(__pyx_args); -  __pyx_v_models = __pyx_args; -  __pyx_r = __pyx_pf_3_sa_6Scorer___init__(((struct __pyx_obj_3_sa_Scorer *)__pyx_v_self), __pyx_v_models); -  __Pyx_XDECREF(__pyx_v_models); -  __Pyx_RefNannyFinishContext(); -  return __pyx_r; -} -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":25   * cdef class Scorer:   *     cdef models @@ -54770,7 +52503,9 @@ static int __pyx_pw_3_sa_6Scorer_1__init__(PyObject *__pyx_v_self, PyObject *__p   *         self.models = zip(names, models)   */ -static int __pyx_pf_3_sa_6Scorer___init__(struct __pyx_obj_3_sa_Scorer *__pyx_v_self, PyObject *__pyx_v_models) { +static int __pyx_pf_3_sa_6Scorer___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pf_3_sa_6Scorer___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +  PyObject *__pyx_v_models = 0;    PyObject *__pyx_v_names = NULL;    PyObject *__pyx_v_model = NULL;    int __pyx_r; @@ -54783,7 +52518,10 @@ static int __pyx_pf_3_sa_6Scorer___init__(struct __pyx_obj_3_sa_Scorer *__pyx_v_    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("__init__", 0); +  __Pyx_RefNannySetupContext("__init__"); +  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1; +  __Pyx_INCREF(__pyx_args); +  __pyx_v_models = __pyx_args;    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":26   *     cdef models @@ -54793,15 +52531,14 @@ static int __pyx_pf_3_sa_6Scorer___init__(struct __pyx_obj_3_sa_Scorer *__pyx_v_   *    */    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1)); +  if (unlikely(((PyObject *)__pyx_v_models) == Py_None)) { +    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[13]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}  +  }    __pyx_t_2 = ((PyObject *)__pyx_v_models); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;    for (;;) {      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[13]; __pyx_lineno = 26; __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[13]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    #endif +    __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++;      __Pyx_XDECREF(__pyx_v_model);      __pyx_v_model = __pyx_t_4;      __pyx_t_4 = 0; @@ -54811,7 +52548,7 @@ static int __pyx_pf_3_sa_6Scorer___init__(struct __pyx_obj_3_sa_Scorer *__pyx_v_      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;      __pyx_t_4 = PyInt_FromLong(((struct __pyx_vtabstruct_3_sa_StringMap *)__pyx_v_3_sa_FD->__pyx_vtab)->index(__pyx_v_3_sa_FD, ((char *)__pyx_t_5))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4); -    if (unlikely(__Pyx_PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +    if (unlikely(PyList_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 26; __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; @@ -54827,7 +52564,7 @@ static int __pyx_pf_3_sa_6Scorer___init__(struct __pyx_obj_3_sa_Scorer *__pyx_v_   *     cdef FeatureVector score(self, ctx):   */    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_t_1); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_INCREF(((PyObject *)__pyx_v_names));    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_names));    __Pyx_GIVEREF(((PyObject *)__pyx_v_names)); @@ -54838,9 +52575,9 @@ static int __pyx_pf_3_sa_6Scorer___init__(struct __pyx_obj_3_sa_Scorer *__pyx_v_    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;    __Pyx_GIVEREF(__pyx_t_2); -  __Pyx_GOTREF(__pyx_v_self->models); -  __Pyx_DECREF(__pyx_v_self->models); -  __pyx_v_self->models = __pyx_t_2; +  __Pyx_GOTREF(((struct __pyx_obj_3_sa_Scorer *)__pyx_v_self)->models); +  __Pyx_DECREF(((struct __pyx_obj_3_sa_Scorer *)__pyx_v_self)->models); +  ((struct __pyx_obj_3_sa_Scorer *)__pyx_v_self)->models = __pyx_t_2;    __pyx_t_2 = 0;    __pyx_r = 0; @@ -54852,6 +52589,7 @@ static int __pyx_pf_3_sa_6Scorer___init__(struct __pyx_obj_3_sa_Scorer *__pyx_v_    __Pyx_AddTraceback("_sa.Scorer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);    __pyx_r = -1;    __pyx_L0:; +  __Pyx_XDECREF(__pyx_v_models);    __Pyx_XDECREF(__pyx_v_names);    __Pyx_XDECREF(__pyx_v_model);    __Pyx_RefNannyFinishContext(); @@ -54883,7 +52621,7 @@ static struct __pyx_obj_3_sa_FeatureVector *__pyx_f_3_sa_6Scorer_score(struct __    int __pyx_lineno = 0;    const char *__pyx_filename = NULL;    int __pyx_clineno = 0; -  __Pyx_RefNannySetupContext("score", 0); +  __Pyx_RefNannySetupContext("score");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/features.pxi":30   *  @@ -54913,20 +52651,12 @@ static struct __pyx_obj_3_sa_FeatureVector *__pyx_f_3_sa_6Scorer_score(struct __      __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;    }    for (;;) { -    if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) { +    if (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[13]; __pyx_lineno = 31; __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[13]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif -    } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) { +      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; +    } else if (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[13]; __pyx_lineno = 31; __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[13]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif +      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;      } else {        __pyx_t_4 = __pyx_t_3(__pyx_t_1);        if (unlikely(!__pyx_t_4)) { @@ -54940,33 +52670,27 @@ static struct __pyx_obj_3_sa_FeatureVector *__pyx_f_3_sa_6Scorer_score(struct __      }      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {        PyObject* sequence = __pyx_t_4; -      #if CYTHON_COMPILING_IN_CPYTHON -      Py_ssize_t size = Py_SIZE(sequence); -      #else -      Py_ssize_t size = PySequence_Size(sequence); -      #endif -      if (unlikely(size != 2)) { -        if (size > 2) __Pyx_RaiseTooManyValuesError(2); -        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); -        {__pyx_filename = __pyx_f[13]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      } -      #if CYTHON_COMPILING_IN_CPYTHON        if (likely(PyTuple_CheckExact(sequence))) { +        if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) { +          if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[13]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        }          __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);           __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);         } else { +        if (unlikely(PyList_GET_SIZE(sequence) != 2)) { +          if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); +          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence)); +          {__pyx_filename = __pyx_f[13]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +        }          __pyx_t_5 = PyList_GET_ITEM(sequence, 0);           __pyx_t_6 = PyList_GET_ITEM(sequence, 1);         }        __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[13]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -      #endif        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -    } else -    { +    } else {        Py_ssize_t index = -1;        __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __Pyx_GOTREF(__pyx_t_7); @@ -54977,13 +52701,12 @@ static struct __pyx_obj_3_sa_FeatureVector *__pyx_f_3_sa_6Scorer_score(struct __        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[13]; __pyx_lineno = 31; __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;        __pyx_L5_unpacking_failed:;        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; -      __pyx_t_8 = NULL; -      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); +      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); +      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);        {__pyx_filename = __pyx_f[13]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}        __pyx_L6_unpacking_done:;      } @@ -55003,7 +52726,7 @@ static struct __pyx_obj_3_sa_FeatureVector *__pyx_f_3_sa_6Scorer_score(struct __      __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_scores), __pyx_n_s__set); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}      __Pyx_GOTREF(__pyx_t_4);      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_6); +    __Pyx_GOTREF(((PyObject *)__pyx_t_6));      __Pyx_INCREF(__pyx_v_ctx);      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_ctx);      __Pyx_GIVEREF(__pyx_v_ctx); @@ -55011,7 +52734,7 @@ static struct __pyx_obj_3_sa_FeatureVector *__pyx_f_3_sa_6Scorer_score(struct __      __Pyx_GOTREF(__pyx_t_5);      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    __Pyx_GOTREF(__pyx_t_6); +    __Pyx_GOTREF(((PyObject *)__pyx_t_6));      __Pyx_INCREF(__pyx_v_name);      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_name);      __Pyx_GIVEREF(__pyx_v_name); @@ -55062,7 +52785,7 @@ static PyObject *__pyx_tp_new_3_sa_FloatList(PyTypeObject *t, PyObject *a, PyObj    if (!o) return 0;    p = ((struct __pyx_obj_3_sa_FloatList *)o);    p->__pyx_vtab = __pyx_vtabptr_3_sa_FloatList; -  if (__pyx_pw_3_sa_9FloatList_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_9FloatList___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -55073,7 +52796,7 @@ static void __pyx_tp_dealloc_3_sa_FloatList(PyObject *o) {      PyObject *etype, *eval, *etb;      PyErr_Fetch(&etype, &eval, &etb);      ++Py_REFCNT(o); -    __pyx_pw_3_sa_9FloatList_3__dealloc__(o); +    __pyx_pf_3_sa_9FloatList_1__dealloc__(o);      if (PyErr_Occurred()) PyErr_WriteUnraisable(o);      --Py_REFCNT(o);      PyErr_Restore(etype, eval, etb); @@ -55090,7 +52813,7 @@ static PyObject *__pyx_sq_item_3_sa_FloatList(PyObject *o, Py_ssize_t i) {  static int __pyx_mp_ass_subscript_3_sa_FloatList(PyObject *o, PyObject *i, PyObject *v) {    if (v) { -    return __pyx_pw_3_sa_9FloatList_7__setitem__(o, i, v); +    return __pyx_pf_3_sa_9FloatList_3__setitem__(o, i, v);    }    else {      PyErr_Format(PyExc_NotImplementedError, @@ -55100,9 +52823,9 @@ static int __pyx_mp_ass_subscript_3_sa_FloatList(PyObject *o, PyObject *i, PyObj  }  static PyMethodDef __pyx_methods_3_sa_FloatList[] = { -  {__Pyx_NAMESTR("append"), (PyCFunction)__pyx_pw_3_sa_9FloatList_11append, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pw_3_sa_9FloatList_13write, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read"), (PyCFunction)__pyx_pw_3_sa_9FloatList_15read, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("append"), (PyCFunction)__pyx_pf_3_sa_9FloatList_5append, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pf_3_sa_9FloatList_6write, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read"), (PyCFunction)__pyx_pf_3_sa_9FloatList_7read, METH_O, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -55165,7 +52888,7 @@ static PyNumberMethods __pyx_tp_as_number_FloatList = {  };  static PySequenceMethods __pyx_tp_as_sequence_FloatList = { -  __pyx_pw_3_sa_9FloatList_9__len__, /*sq_length*/ +  __pyx_pf_3_sa_9FloatList_4__len__, /*sq_length*/    0, /*sq_concat*/    0, /*sq_repeat*/    __pyx_sq_item_3_sa_FloatList, /*sq_item*/ @@ -55178,8 +52901,8 @@ static PySequenceMethods __pyx_tp_as_sequence_FloatList = {  };  static PyMappingMethods __pyx_tp_as_mapping_FloatList = { -  __pyx_pw_3_sa_9FloatList_9__len__, /*mp_length*/ -  __pyx_pw_3_sa_9FloatList_5__getitem__, /*mp_subscript*/ +  __pyx_pf_3_sa_9FloatList_4__len__, /*mp_length*/ +  __pyx_pf_3_sa_9FloatList_2__getitem__, /*mp_subscript*/    __pyx_mp_ass_subscript_3_sa_FloatList, /*mp_ass_subscript*/  }; @@ -55267,7 +52990,7 @@ static PyObject *__pyx_tp_new_3_sa_IntList(PyTypeObject *t, PyObject *a, PyObjec    if (!o) return 0;    p = ((struct __pyx_obj_3_sa_IntList *)o);    p->__pyx_vtab = __pyx_vtabptr_3_sa_IntList; -  if (__pyx_pw_3_sa_7IntList_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_7IntList___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -55278,7 +53001,7 @@ static void __pyx_tp_dealloc_3_sa_IntList(PyObject *o) {      PyObject *etype, *eval, *etb;      PyErr_Fetch(&etype, &eval, &etb);      ++Py_REFCNT(o); -    __pyx_pw_3_sa_7IntList_15__dealloc__(o); +    __pyx_pf_3_sa_7IntList_7__dealloc__(o);      if (PyErr_Occurred()) PyErr_WriteUnraisable(o);      --Py_REFCNT(o);      PyErr_Restore(etype, eval, etb); @@ -55295,7 +53018,7 @@ static PyObject *__pyx_sq_item_3_sa_IntList(PyObject *o, Py_ssize_t i) {  static int __pyx_mp_ass_subscript_3_sa_IntList(PyObject *o, PyObject *i, PyObject *v) {    if (v) { -    return __pyx_pw_3_sa_7IntList_22__setitem__(o, i, v); +    return __pyx_pf_3_sa_7IntList_11__setitem__(o, i, v);    }    else {      PyErr_Format(PyExc_NotImplementedError, @@ -55305,16 +53028,16 @@ static int __pyx_mp_ass_subscript_3_sa_IntList(PyObject *o, PyObject *i, PyObjec  }  static PyMethodDef __pyx_methods_3_sa_IntList[] = { -  {__Pyx_NAMESTR("index"), (PyCFunction)__pyx_pw_3_sa_7IntList_5index, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("partition"), (PyCFunction)__pyx_pw_3_sa_7IntList_7partition, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("_doquicksort"), (PyCFunction)__pyx_pw_3_sa_7IntList_9_doquicksort, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("sort"), (PyCFunction)__pyx_pw_3_sa_7IntList_11sort, METH_NOARGS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("reset"), (PyCFunction)__pyx_pw_3_sa_7IntList_13reset, METH_NOARGS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_size"), (PyCFunction)__pyx_pw_3_sa_7IntList_26get_size, METH_NOARGS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("append"), (PyCFunction)__pyx_pw_3_sa_7IntList_28append, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("extend"), (PyCFunction)__pyx_pw_3_sa_7IntList_30extend, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pw_3_sa_7IntList_32write, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read"), (PyCFunction)__pyx_pw_3_sa_7IntList_34read, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("index"), (PyCFunction)__pyx_pf_3_sa_7IntList_2index, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("partition"), (PyCFunction)__pyx_pf_3_sa_7IntList_3partition, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("_doquicksort"), (PyCFunction)__pyx_pf_3_sa_7IntList_4_doquicksort, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("sort"), (PyCFunction)__pyx_pf_3_sa_7IntList_5sort, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("reset"), (PyCFunction)__pyx_pf_3_sa_7IntList_6reset, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_size"), (PyCFunction)__pyx_pf_3_sa_7IntList_13get_size, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("append"), (PyCFunction)__pyx_pf_3_sa_7IntList_14append, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("extend"), (PyCFunction)__pyx_pf_3_sa_7IntList_15extend, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pf_3_sa_7IntList_16write, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read"), (PyCFunction)__pyx_pf_3_sa_7IntList_17read, METH_O, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -55377,7 +53100,7 @@ static PyNumberMethods __pyx_tp_as_number_IntList = {  };  static PySequenceMethods __pyx_tp_as_sequence_IntList = { -  __pyx_pw_3_sa_7IntList_24__len__, /*sq_length*/ +  __pyx_pf_3_sa_7IntList_12__len__, /*sq_length*/    0, /*sq_concat*/    0, /*sq_repeat*/    __pyx_sq_item_3_sa_IntList, /*sq_item*/ @@ -55390,8 +53113,8 @@ static PySequenceMethods __pyx_tp_as_sequence_IntList = {  };  static PyMappingMethods __pyx_tp_as_mapping_IntList = { -  __pyx_pw_3_sa_7IntList_24__len__, /*mp_length*/ -  __pyx_pw_3_sa_7IntList_20__getitem__, /*mp_subscript*/ +  __pyx_pf_3_sa_7IntList_12__len__, /*mp_length*/ +  __pyx_pf_3_sa_7IntList_10__getitem__, /*mp_subscript*/    __pyx_mp_ass_subscript_3_sa_IntList, /*mp_ass_subscript*/  }; @@ -55436,7 +53159,7 @@ static PyTypeObject __pyx_type_3_sa_IntList = {    &__pyx_tp_as_mapping_IntList, /*tp_as_mapping*/    0, /*tp_hash*/    0, /*tp_call*/ -  __pyx_pw_3_sa_7IntList_3__str__, /*tp_str*/ +  __pyx_pf_3_sa_7IntList_1__str__, /*tp_str*/    0, /*tp_getattro*/    0, /*tp_setattro*/    &__pyx_tp_as_buffer_IntList, /*tp_as_buffer*/ @@ -55446,7 +53169,7 @@ static PyTypeObject __pyx_type_3_sa_IntList = {    0, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/ -  __pyx_pw_3_sa_7IntList_17__iter__, /*tp_iter*/ +  __pyx_pf_3_sa_7IntList_8__iter__, /*tp_iter*/    0, /*tp_iternext*/    __pyx_methods_3_sa_IntList, /*tp_methods*/    0, /*tp_members*/ @@ -55472,14 +53195,14 @@ static PyTypeObject __pyx_type_3_sa_IntList = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa_FeatureVector(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa_FeatureVector(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa_FeatureVector *p;    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0;    p = ((struct __pyx_obj_3_sa_FeatureVector *)o);    p->names = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None);    p->values = ((struct __pyx_obj_3_sa_FloatList *)Py_None); Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_13FeatureVector_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) { +  if (__pyx_pf_3_sa_13FeatureVector___cinit__(o, __pyx_empty_tuple, NULL) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -55487,8 +53210,8 @@ static PyObject *__pyx_tp_new_3_sa_FeatureVector(PyTypeObject *t, CYTHON_UNUSED  static void __pyx_tp_dealloc_3_sa_FeatureVector(PyObject *o) {    struct __pyx_obj_3_sa_FeatureVector *p = (struct __pyx_obj_3_sa_FeatureVector *)o; -  Py_CLEAR(p->names); -  Py_CLEAR(p->values); +  Py_XDECREF(((PyObject *)p->names)); +  Py_XDECREF(((PyObject *)p->values));    (*Py_TYPE(o)->tp_free)(o);  } @@ -55517,7 +53240,7 @@ static int __pyx_tp_clear_3_sa_FeatureVector(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_FeatureVector[] = { -  {__Pyx_NAMESTR("set"), (PyCFunction)__pyx_pw_3_sa_13FeatureVector_3set, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("set"), (PyCFunction)__pyx_pf_3_sa_13FeatureVector_1set, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -55639,7 +53362,7 @@ static PyTypeObject __pyx_type_3_sa_FeatureVector = {    &__pyx_tp_as_mapping_FeatureVector, /*tp_as_mapping*/    0, /*tp_hash*/    0, /*tp_call*/ -  __pyx_pw_3_sa_13FeatureVector_8__str__, /*tp_str*/ +  __pyx_pf_3_sa_13FeatureVector_4__str__, /*tp_str*/    0, /*tp_getattro*/    0, /*tp_setattro*/    &__pyx_tp_as_buffer_FeatureVector, /*tp_as_buffer*/ @@ -55649,7 +53372,7 @@ static PyTypeObject __pyx_type_3_sa_FeatureVector = {    __pyx_tp_clear_3_sa_FeatureVector, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/ -  __pyx_pw_3_sa_13FeatureVector_5__iter__, /*tp_iter*/ +  __pyx_pf_3_sa_13FeatureVector_2__iter__, /*tp_iter*/    0, /*tp_iternext*/    __pyx_methods_3_sa_FeatureVector, /*tp_methods*/    0, /*tp_members*/ @@ -55682,7 +53405,7 @@ static PyObject *__pyx_tp_new_3_sa_Phrase(PyTypeObject *t, PyObject *a, PyObject    if (!o) return 0;    p = ((struct __pyx_obj_3_sa_Phrase *)o);    p->__pyx_vtab = __pyx_vtabptr_3_sa_Phrase; -  if (__pyx_pw_3_sa_6Phrase_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_6Phrase___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -55693,7 +53416,7 @@ static void __pyx_tp_dealloc_3_sa_Phrase(PyObject *o) {      PyObject *etype, *eval, *etb;      PyErr_Fetch(&etype, &eval, &etb);      ++Py_REFCNT(o); -    __pyx_pw_3_sa_6Phrase_3__dealloc__(o); +    __pyx_pf_3_sa_6Phrase_1__dealloc__(o);      if (PyErr_Occurred()) PyErr_WriteUnraisable(o);      --Py_REFCNT(o);      PyErr_Restore(etype, eval, etb); @@ -55708,19 +53431,19 @@ static PyObject *__pyx_sq_item_3_sa_Phrase(PyObject *o, Py_ssize_t i) {    return r;  } -static PyObject *__pyx_getprop_3_sa_6Phrase_words(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_6Phrase_5words_1__get__(o); +static PyObject *__pyx_getprop_3_sa_6Phrase_words(PyObject *o, void *x) { +  return __pyx_pf_3_sa_6Phrase_5words___get__(o);  }  static PyMethodDef __pyx_methods_3_sa_Phrase[] = { -  {__Pyx_NAMESTR("handle"), (PyCFunction)__pyx_pw_3_sa_6Phrase_7handle, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_3_sa_6Phrase_6handle)}, -  {__Pyx_NAMESTR("strhandle"), (PyCFunction)__pyx_pw_3_sa_6Phrase_9strhandle, METH_NOARGS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("arity"), (PyCFunction)__pyx_pw_3_sa_6Phrase_11arity, METH_NOARGS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("getvarpos"), (PyCFunction)__pyx_pw_3_sa_6Phrase_13getvarpos, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("getvar"), (PyCFunction)__pyx_pw_3_sa_6Phrase_15getvar, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("clen"), (PyCFunction)__pyx_pw_3_sa_6Phrase_17clen, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("getchunk"), (PyCFunction)__pyx_pw_3_sa_6Phrase_19getchunk, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("subst"), (PyCFunction)__pyx_pw_3_sa_6Phrase_32subst, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("handle"), (PyCFunction)__pyx_pf_3_sa_6Phrase_3handle, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_3_sa_6Phrase_3handle)}, +  {__Pyx_NAMESTR("strhandle"), (PyCFunction)__pyx_pf_3_sa_6Phrase_4strhandle, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("arity"), (PyCFunction)__pyx_pf_3_sa_6Phrase_5arity, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("getvarpos"), (PyCFunction)__pyx_pf_3_sa_6Phrase_6getvarpos, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("getvar"), (PyCFunction)__pyx_pf_3_sa_6Phrase_7getvar, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("clen"), (PyCFunction)__pyx_pf_3_sa_6Phrase_8clen, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("getchunk"), (PyCFunction)__pyx_pf_3_sa_6Phrase_9getchunk, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("subst"), (PyCFunction)__pyx_pf_3_sa_6Phrase_16subst, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -55788,7 +53511,7 @@ static PyNumberMethods __pyx_tp_as_number_Phrase = {  };  static PySequenceMethods __pyx_tp_as_sequence_Phrase = { -  __pyx_pw_3_sa_6Phrase_25__len__, /*sq_length*/ +  __pyx_pf_3_sa_6Phrase_12__len__, /*sq_length*/    0, /*sq_concat*/    0, /*sq_repeat*/    __pyx_sq_item_3_sa_Phrase, /*sq_item*/ @@ -55801,8 +53524,8 @@ static PySequenceMethods __pyx_tp_as_sequence_Phrase = {  };  static PyMappingMethods __pyx_tp_as_mapping_Phrase = { -  __pyx_pw_3_sa_6Phrase_25__len__, /*mp_length*/ -  __pyx_pw_3_sa_6Phrase_27__getitem__, /*mp_subscript*/ +  __pyx_pf_3_sa_6Phrase_12__len__, /*mp_length*/ +  __pyx_pf_3_sa_6Phrase_13__getitem__, /*mp_subscript*/    0, /*mp_ass_subscript*/  }; @@ -55837,7 +53560,7 @@ static PyTypeObject __pyx_type_3_sa_Phrase = {    0, /*tp_getattr*/    0, /*tp_setattr*/    #if PY_MAJOR_VERSION < 3 -  __pyx_pw_3_sa_6Phrase_21__cmp__, /*tp_compare*/ +  __pyx_pf_3_sa_6Phrase_10__cmp__, /*tp_compare*/    #else    0, /*reserved*/    #endif @@ -55845,9 +53568,9 @@ static PyTypeObject __pyx_type_3_sa_Phrase = {    &__pyx_tp_as_number_Phrase, /*tp_as_number*/    &__pyx_tp_as_sequence_Phrase, /*tp_as_sequence*/    &__pyx_tp_as_mapping_Phrase, /*tp_as_mapping*/ -  __pyx_pw_3_sa_6Phrase_23__hash__, /*tp_hash*/ +  __pyx_pf_3_sa_6Phrase_11__hash__, /*tp_hash*/    0, /*tp_call*/ -  __pyx_pw_3_sa_6Phrase_5__str__, /*tp_str*/ +  __pyx_pf_3_sa_6Phrase_2__str__, /*tp_str*/    0, /*tp_getattro*/    0, /*tp_setattro*/    &__pyx_tp_as_buffer_Phrase, /*tp_as_buffer*/ @@ -55857,7 +53580,7 @@ static PyTypeObject __pyx_type_3_sa_Phrase = {    0, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/ -  __pyx_pw_3_sa_6Phrase_29__iter__, /*tp_iter*/ +  __pyx_pf_3_sa_6Phrase_14__iter__, /*tp_iter*/    0, /*tp_iternext*/    __pyx_methods_3_sa_Phrase, /*tp_methods*/    0, /*tp_members*/ @@ -55892,7 +53615,7 @@ static PyObject *__pyx_tp_new_3_sa_Rule(PyTypeObject *t, PyObject *a, PyObject *    p->e = ((struct __pyx_obj_3_sa_Phrase *)Py_None); Py_INCREF(Py_None);    p->scores = ((struct __pyx_obj_3_sa_FeatureVector *)Py_None); Py_INCREF(Py_None);    p->word_alignments = Py_None; Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_4Rule_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_4Rule___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -55900,10 +53623,10 @@ static PyObject *__pyx_tp_new_3_sa_Rule(PyTypeObject *t, PyObject *a, PyObject *  static void __pyx_tp_dealloc_3_sa_Rule(PyObject *o) {    struct __pyx_obj_3_sa_Rule *p = (struct __pyx_obj_3_sa_Rule *)o; -  Py_CLEAR(p->f); -  Py_CLEAR(p->e); -  Py_CLEAR(p->scores); -  Py_CLEAR(p->word_alignments); +  Py_XDECREF(((PyObject *)p->f)); +  Py_XDECREF(((PyObject *)p->e)); +  Py_XDECREF(((PyObject *)p->scores)); +  Py_XDECREF(p->word_alignments);    (*Py_TYPE(o)->tp_free)(o);  } @@ -55943,18 +53666,18 @@ static int __pyx_tp_clear_3_sa_Rule(PyObject *o) {    return 0;  } -static PyObject *__pyx_getprop_3_sa_4Rule_f(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_4Rule_1f_1__get__(o); +static PyObject *__pyx_getprop_3_sa_4Rule_f(PyObject *o, void *x) { +  return __pyx_pf_3_sa_4Rule_1f___get__(o);  } -static PyObject *__pyx_getprop_3_sa_4Rule_e(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_4Rule_1e_1__get__(o); +static PyObject *__pyx_getprop_3_sa_4Rule_e(PyObject *o, void *x) { +  return __pyx_pf_3_sa_4Rule_1e___get__(o);  }  static PyMethodDef __pyx_methods_3_sa_Rule[] = { -  {__Pyx_NAMESTR("fmerge"), (PyCFunction)__pyx_pw_3_sa_4Rule_7fmerge, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("arity"), (PyCFunction)__pyx_pw_3_sa_4Rule_9arity, METH_NOARGS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("alignments"), (PyCFunction)__pyx_pw_3_sa_4Rule_13alignments, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("fmerge"), (PyCFunction)__pyx_pf_3_sa_4Rule_3fmerge, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("arity"), (PyCFunction)__pyx_pf_3_sa_4Rule_4arity, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("alignments"), (PyCFunction)__pyx_pf_3_sa_4Rule_6alignments, METH_NOARGS, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -56072,7 +53795,7 @@ static PyTypeObject __pyx_type_3_sa_Rule = {    0, /*tp_getattr*/    0, /*tp_setattr*/    #if PY_MAJOR_VERSION < 3 -  __pyx_pw_3_sa_4Rule_5__cmp__, /*tp_compare*/ +  __pyx_pf_3_sa_4Rule_2__cmp__, /*tp_compare*/    #else    0, /*reserved*/    #endif @@ -56080,9 +53803,9 @@ static PyTypeObject __pyx_type_3_sa_Rule = {    &__pyx_tp_as_number_Rule, /*tp_as_number*/    &__pyx_tp_as_sequence_Rule, /*tp_as_sequence*/    &__pyx_tp_as_mapping_Rule, /*tp_as_mapping*/ -  __pyx_pw_3_sa_4Rule_3__hash__, /*tp_hash*/ +  __pyx_pf_3_sa_4Rule_1__hash__, /*tp_hash*/    0, /*tp_call*/ -  __pyx_pw_3_sa_4Rule_11__str__, /*tp_str*/ +  __pyx_pf_3_sa_4Rule_5__str__, /*tp_str*/    0, /*tp_getattro*/    0, /*tp_setattro*/    &__pyx_tp_as_buffer_Rule, /*tp_as_buffer*/ @@ -56119,13 +53842,13 @@ static PyTypeObject __pyx_type_3_sa_Rule = {  };  static struct __pyx_vtabstruct_3_sa_StringMap __pyx_vtable_3_sa_StringMap; -static PyObject *__pyx_tp_new_3_sa_StringMap(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa_StringMap(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa_StringMap *p;    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0;    p = ((struct __pyx_obj_3_sa_StringMap *)o);    p->__pyx_vtab = __pyx_vtabptr_3_sa_StringMap; -  if (__pyx_pw_3_sa_9StringMap_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) { +  if (__pyx_pf_3_sa_9StringMap___cinit__(o, __pyx_empty_tuple, NULL) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -56136,7 +53859,7 @@ static void __pyx_tp_dealloc_3_sa_StringMap(PyObject *o) {      PyObject *etype, *eval, *etb;      PyErr_Fetch(&etype, &eval, &etb);      ++Py_REFCNT(o); -    __pyx_pw_3_sa_9StringMap_3__dealloc__(o); +    __pyx_pf_3_sa_9StringMap_1__dealloc__(o);      if (PyErr_Occurred()) PyErr_WriteUnraisable(o);      --Py_REFCNT(o);      PyErr_Restore(etype, eval, etb); @@ -56314,7 +54037,7 @@ static PyObject *__pyx_tp_new_3_sa_DataArray(PyTypeObject *t, PyObject *a, PyObj    p->data = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None);    p->sent_id = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None);    p->sent_index = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_9DataArray_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_9DataArray___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -56322,11 +54045,11 @@ static PyObject *__pyx_tp_new_3_sa_DataArray(PyTypeObject *t, PyObject *a, PyObj  static void __pyx_tp_dealloc_3_sa_DataArray(PyObject *o) {    struct __pyx_obj_3_sa_DataArray *p = (struct __pyx_obj_3_sa_DataArray *)o; -  Py_CLEAR(p->word2id); -  Py_CLEAR(p->id2word); -  Py_CLEAR(p->data); -  Py_CLEAR(p->sent_id); -  Py_CLEAR(p->sent_index); +  Py_XDECREF(p->word2id); +  Py_XDECREF(p->id2word); +  Py_XDECREF(((PyObject *)p->data)); +  Py_XDECREF(((PyObject *)p->sent_id)); +  Py_XDECREF(((PyObject *)p->sent_index));    (*Py_TYPE(o)->tp_free)(o);  } @@ -56373,19 +54096,20 @@ static int __pyx_tp_clear_3_sa_DataArray(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_DataArray[] = { -  {__Pyx_NAMESTR("get_sentence_id"), (PyCFunction)__pyx_pw_3_sa_9DataArray_5get_sentence_id, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_sentence"), (PyCFunction)__pyx_pw_3_sa_9DataArray_7get_sentence, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_sentence_position"), (PyCFunction)__pyx_pw_3_sa_9DataArray_9get_sentence_position, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_id"), (PyCFunction)__pyx_pw_3_sa_9DataArray_11get_id, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_word"), (PyCFunction)__pyx_pw_3_sa_9DataArray_13get_word, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_text"), (PyCFunction)__pyx_pw_3_sa_9DataArray_15write_text, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read_text"), (PyCFunction)__pyx_pw_3_sa_9DataArray_17read_text, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read_bitext"), (PyCFunction)__pyx_pw_3_sa_9DataArray_19read_bitext, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read_text_data"), (PyCFunction)__pyx_pw_3_sa_9DataArray_21read_text_data, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read_binary"), (PyCFunction)__pyx_pw_3_sa_9DataArray_23read_binary, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_binary"), (PyCFunction)__pyx_pw_3_sa_9DataArray_25write_binary, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_enhanced_handle"), (PyCFunction)__pyx_pw_3_sa_9DataArray_27write_enhanced_handle, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_enhanced"), (PyCFunction)__pyx_pw_3_sa_9DataArray_29write_enhanced, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_data"), (PyCFunction)__pyx_pf_3_sa_9DataArray_2get_data, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_sentence_id"), (PyCFunction)__pyx_pf_3_sa_9DataArray_3get_sentence_id, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_sentence"), (PyCFunction)__pyx_pf_3_sa_9DataArray_4get_sentence, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_sentence_position"), (PyCFunction)__pyx_pf_3_sa_9DataArray_5get_sentence_position, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_id"), (PyCFunction)__pyx_pf_3_sa_9DataArray_6get_id, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_word"), (PyCFunction)__pyx_pf_3_sa_9DataArray_7get_word, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_text"), (PyCFunction)__pyx_pf_3_sa_9DataArray_8write_text, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read_text"), (PyCFunction)__pyx_pf_3_sa_9DataArray_9read_text, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read_bitext"), (PyCFunction)__pyx_pf_3_sa_9DataArray_10read_bitext, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read_text_data"), (PyCFunction)__pyx_pf_3_sa_9DataArray_11read_text_data, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read_binary"), (PyCFunction)__pyx_pf_3_sa_9DataArray_12read_binary, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_binary"), (PyCFunction)__pyx_pf_3_sa_9DataArray_13write_binary, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_enhanced_handle"), (PyCFunction)__pyx_pf_3_sa_9DataArray_14write_enhanced_handle, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_enhanced"), (PyCFunction)__pyx_pf_3_sa_9DataArray_15write_enhanced, METH_O, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -56448,7 +54172,7 @@ static PyNumberMethods __pyx_tp_as_number_DataArray = {  };  static PySequenceMethods __pyx_tp_as_sequence_DataArray = { -  __pyx_pw_3_sa_9DataArray_3__len__, /*sq_length*/ +  __pyx_pf_3_sa_9DataArray_1__len__, /*sq_length*/    0, /*sq_concat*/    0, /*sq_repeat*/    0, /*sq_item*/ @@ -56461,7 +54185,7 @@ static PySequenceMethods __pyx_tp_as_sequence_DataArray = {  };  static PyMappingMethods __pyx_tp_as_mapping_DataArray = { -  __pyx_pw_3_sa_9DataArray_3__len__, /*mp_length*/ +  __pyx_pf_3_sa_9DataArray_1__len__, /*mp_length*/    0, /*mp_subscript*/    0, /*mp_ass_subscript*/  }; @@ -56552,7 +54276,7 @@ static PyObject *__pyx_tp_new_3_sa_Alignment(PyTypeObject *t, PyObject *a, PyObj    p->__pyx_vtab = __pyx_vtabptr_3_sa_Alignment;    p->links = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None);    p->sent_index = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_9Alignment_5__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_9Alignment_2__cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -56560,8 +54284,8 @@ static PyObject *__pyx_tp_new_3_sa_Alignment(PyTypeObject *t, PyObject *a, PyObj  static void __pyx_tp_dealloc_3_sa_Alignment(PyObject *o) {    struct __pyx_obj_3_sa_Alignment *p = (struct __pyx_obj_3_sa_Alignment *)o; -  Py_CLEAR(p->links); -  Py_CLEAR(p->sent_index); +  Py_XDECREF(((PyObject *)p->links)); +  Py_XDECREF(((PyObject *)p->sent_index));    (*Py_TYPE(o)->tp_free)(o);  } @@ -56590,14 +54314,14 @@ static int __pyx_tp_clear_3_sa_Alignment(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_Alignment[] = { -  {__Pyx_NAMESTR("unlink"), (PyCFunction)__pyx_pw_3_sa_9Alignment_1unlink, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_9Alignment_unlink)}, -  {__Pyx_NAMESTR("get_sent_links"), (PyCFunction)__pyx_pw_3_sa_9Alignment_3get_sent_links, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read_text"), (PyCFunction)__pyx_pw_3_sa_9Alignment_7read_text, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read_binary"), (PyCFunction)__pyx_pw_3_sa_9Alignment_9read_binary, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_text"), (PyCFunction)__pyx_pw_3_sa_9Alignment_11write_text, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_binary"), (PyCFunction)__pyx_pw_3_sa_9Alignment_13write_binary, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_enhanced"), (PyCFunction)__pyx_pw_3_sa_9Alignment_15write_enhanced, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("alignment"), (PyCFunction)__pyx_pw_3_sa_9Alignment_17alignment, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_9Alignment_16alignment)}, +  {__Pyx_NAMESTR("unlink"), (PyCFunction)__pyx_pf_3_sa_9Alignment_unlink, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_9Alignment_unlink)}, +  {__Pyx_NAMESTR("get_sent_links"), (PyCFunction)__pyx_pf_3_sa_9Alignment_1get_sent_links, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read_text"), (PyCFunction)__pyx_pf_3_sa_9Alignment_3read_text, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read_binary"), (PyCFunction)__pyx_pf_3_sa_9Alignment_4read_binary, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_text"), (PyCFunction)__pyx_pf_3_sa_9Alignment_5write_text, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_binary"), (PyCFunction)__pyx_pf_3_sa_9Alignment_6write_binary, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_enhanced"), (PyCFunction)__pyx_pf_3_sa_9Alignment_7write_enhanced, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("alignment"), (PyCFunction)__pyx_pf_3_sa_9Alignment_8alignment, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_9Alignment_8alignment)},    {0, 0, 0, 0}  }; @@ -56770,7 +54494,7 @@ static PyObject *__pyx_tp_new_3_sa_BiLex(PyTypeObject *t, PyObject *a, PyObject    p->id2fword = Py_None; Py_INCREF(Py_None);    p->eword2id = Py_None; Py_INCREF(Py_None);    p->fword2id = Py_None; Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_5BiLex_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_5BiLex___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -56778,14 +54502,14 @@ static PyObject *__pyx_tp_new_3_sa_BiLex(PyTypeObject *t, PyObject *a, PyObject  static void __pyx_tp_dealloc_3_sa_BiLex(PyObject *o) {    struct __pyx_obj_3_sa_BiLex *p = (struct __pyx_obj_3_sa_BiLex *)o; -  Py_CLEAR(p->col1); -  Py_CLEAR(p->col2); -  Py_CLEAR(p->f_index); -  Py_CLEAR(p->e_index); -  Py_CLEAR(p->id2eword); -  Py_CLEAR(p->id2fword); -  Py_CLEAR(p->eword2id); -  Py_CLEAR(p->fword2id); +  Py_XDECREF(((PyObject *)p->col1)); +  Py_XDECREF(((PyObject *)p->col2)); +  Py_XDECREF(((PyObject *)p->f_index)); +  Py_XDECREF(((PyObject *)p->e_index)); +  Py_XDECREF(p->id2eword); +  Py_XDECREF(p->id2fword); +  Py_XDECREF(p->eword2id); +  Py_XDECREF(p->fword2id);    (*Py_TYPE(o)->tp_free)(o);  } @@ -56850,14 +54574,14 @@ static int __pyx_tp_clear_3_sa_BiLex(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_BiLex[] = { -  {__Pyx_NAMESTR("write_binary"), (PyCFunction)__pyx_pw_3_sa_5BiLex_3write_binary, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read_binary"), (PyCFunction)__pyx_pw_3_sa_5BiLex_5read_binary, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_e_id"), (PyCFunction)__pyx_pw_3_sa_5BiLex_7get_e_id, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_f_id"), (PyCFunction)__pyx_pw_3_sa_5BiLex_9get_f_id, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read_text"), (PyCFunction)__pyx_pw_3_sa_5BiLex_11read_text, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_enhanced"), (PyCFunction)__pyx_pw_3_sa_5BiLex_13write_enhanced, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_score"), (PyCFunction)__pyx_pw_3_sa_5BiLex_15get_score, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_text"), (PyCFunction)__pyx_pw_3_sa_5BiLex_17write_text, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_5BiLex_16write_text)}, +  {__Pyx_NAMESTR("write_binary"), (PyCFunction)__pyx_pf_3_sa_5BiLex_1write_binary, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read_binary"), (PyCFunction)__pyx_pf_3_sa_5BiLex_2read_binary, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_e_id"), (PyCFunction)__pyx_pf_3_sa_5BiLex_3get_e_id, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_f_id"), (PyCFunction)__pyx_pf_3_sa_5BiLex_4get_f_id, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read_text"), (PyCFunction)__pyx_pf_3_sa_5BiLex_5read_text, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_enhanced"), (PyCFunction)__pyx_pf_3_sa_5BiLex_6write_enhanced, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_score"), (PyCFunction)__pyx_pf_3_sa_5BiLex_7get_score, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_text"), (PyCFunction)__pyx_pf_3_sa_5BiLex_8write_text, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_5BiLex_8write_text)},    {0, 0, 0, 0}  }; @@ -57015,7 +54739,7 @@ static PyTypeObject __pyx_type_3_sa_BiLex = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa_BitSetIterator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa_BitSetIterator(PyTypeObject *t, PyObject *a, PyObject *k) {    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0;    return o; @@ -57026,7 +54750,7 @@ static void __pyx_tp_dealloc_3_sa_BitSetIterator(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_BitSetIterator[] = { -  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_3_sa_14BitSetIterator_1__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pf_3_sa_14BitSetIterator___next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -57159,7 +54883,7 @@ static PyTypeObject __pyx_type_3_sa_BitSetIterator = {    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/ -  __pyx_pw_3_sa_14BitSetIterator_1__next__, /*tp_iternext*/ +  __pyx_pf_3_sa_14BitSetIterator___next__, /*tp_iternext*/    __pyx_methods_3_sa_BitSetIterator, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/ @@ -57184,10 +54908,10 @@ static PyTypeObject __pyx_type_3_sa_BitSetIterator = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa_BitSet(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa_BitSet(PyTypeObject *t, PyObject *a, PyObject *k) {    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0; -  if (__pyx_pw_3_sa_6BitSet_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) { +  if (__pyx_pf_3_sa_6BitSet___cinit__(o, __pyx_empty_tuple, NULL) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -57198,7 +54922,7 @@ static void __pyx_tp_dealloc_3_sa_BitSet(PyObject *o) {      PyObject *etype, *eval, *etb;      PyErr_Fetch(&etype, &eval, &etb);      ++Py_REFCNT(o); -    __pyx_pw_3_sa_6BitSet_3__dealloc__(o); +    __pyx_pf_3_sa_6BitSet_1__dealloc__(o);      if (PyErr_Occurred()) PyErr_WriteUnraisable(o);      --Py_REFCNT(o);      PyErr_Restore(etype, eval, etb); @@ -57207,10 +54931,10 @@ static void __pyx_tp_dealloc_3_sa_BitSet(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_BitSet[] = { -  {__Pyx_NAMESTR("insert"), (PyCFunction)__pyx_pw_3_sa_6BitSet_7insert, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("findsucc"), (PyCFunction)__pyx_pw_3_sa_6BitSet_9findsucc, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("min"), (PyCFunction)__pyx_pw_3_sa_6BitSet_13min, METH_NOARGS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("max"), (PyCFunction)__pyx_pw_3_sa_6BitSet_15max, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("insert"), (PyCFunction)__pyx_pf_3_sa_6BitSet_3insert, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("findsucc"), (PyCFunction)__pyx_pf_3_sa_6BitSet_4findsucc, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("min"), (PyCFunction)__pyx_pf_3_sa_6BitSet_6min, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("max"), (PyCFunction)__pyx_pf_3_sa_6BitSet_7max, METH_NOARGS, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -57273,20 +54997,20 @@ static PyNumberMethods __pyx_tp_as_number_BitSet = {  };  static PySequenceMethods __pyx_tp_as_sequence_BitSet = { -  __pyx_pw_3_sa_6BitSet_17__len__, /*sq_length*/ +  __pyx_pf_3_sa_6BitSet_8__len__, /*sq_length*/    0, /*sq_concat*/    0, /*sq_repeat*/    0, /*sq_item*/    0, /*sq_slice*/    0, /*sq_ass_item*/    0, /*sq_ass_slice*/ -  __pyx_pw_3_sa_6BitSet_19__contains__, /*sq_contains*/ +  __pyx_pf_3_sa_6BitSet_9__contains__, /*sq_contains*/    0, /*sq_inplace_concat*/    0, /*sq_inplace_repeat*/  };  static PyMappingMethods __pyx_tp_as_mapping_BitSet = { -  __pyx_pw_3_sa_6BitSet_17__len__, /*mp_length*/ +  __pyx_pf_3_sa_6BitSet_8__len__, /*mp_length*/    0, /*mp_subscript*/    0, /*mp_ass_subscript*/  }; @@ -57332,7 +55056,7 @@ static PyTypeObject __pyx_type_3_sa_BitSet = {    &__pyx_tp_as_mapping_BitSet, /*tp_as_mapping*/    0, /*tp_hash*/    0, /*tp_call*/ -  __pyx_pw_3_sa_6BitSet_11__str__, /*tp_str*/ +  __pyx_pf_3_sa_6BitSet_5__str__, /*tp_str*/    0, /*tp_getattro*/    0, /*tp_setattro*/    &__pyx_tp_as_buffer_BitSet, /*tp_as_buffer*/ @@ -57342,7 +55066,7 @@ static PyTypeObject __pyx_type_3_sa_BitSet = {    0, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/ -  __pyx_pw_3_sa_6BitSet_5__iter__, /*tp_iter*/ +  __pyx_pf_3_sa_6BitSet_2__iter__, /*tp_iter*/    0, /*tp_iternext*/    __pyx_methods_3_sa_BitSet, /*tp_methods*/    0, /*tp_members*/ @@ -57368,7 +55092,7 @@ static PyTypeObject __pyx_type_3_sa_BitSet = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa_VEBIterator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa_VEBIterator(PyTypeObject *t, PyObject *a, PyObject *k) {    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0;    return o; @@ -57379,7 +55103,7 @@ static void __pyx_tp_dealloc_3_sa_VEBIterator(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_VEBIterator[] = { -  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_3_sa_11VEBIterator_1__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pf_3_sa_11VEBIterator___next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -57512,7 +55236,7 @@ static PyTypeObject __pyx_type_3_sa_VEBIterator = {    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/    0, /*tp_iter*/ -  __pyx_pw_3_sa_11VEBIterator_1__next__, /*tp_iternext*/ +  __pyx_pf_3_sa_11VEBIterator___next__, /*tp_iternext*/    __pyx_methods_3_sa_VEBIterator, /*tp_methods*/    0, /*tp_members*/    0, /*tp_getset*/ @@ -57544,7 +55268,7 @@ static PyObject *__pyx_tp_new_3_sa_VEB(PyTypeObject *t, PyObject *a, PyObject *k    if (!o) return 0;    p = ((struct __pyx_obj_3_sa_VEB *)o);    p->__pyx_vtab = __pyx_vtabptr_3_sa_VEB; -  if (__pyx_pw_3_sa_3VEB_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_3VEB___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -57555,7 +55279,7 @@ static void __pyx_tp_dealloc_3_sa_VEB(PyObject *o) {      PyObject *etype, *eval, *etb;      PyErr_Fetch(&etype, &eval, &etb);      ++Py_REFCNT(o); -    __pyx_pw_3_sa_3VEB_3__dealloc__(o); +    __pyx_pf_3_sa_3VEB_1__dealloc__(o);      if (PyErr_Occurred()) PyErr_WriteUnraisable(o);      --Py_REFCNT(o);      PyErr_Restore(etype, eval, etb); @@ -57564,8 +55288,8 @@ static void __pyx_tp_dealloc_3_sa_VEB(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_VEB[] = { -  {__Pyx_NAMESTR("insert"), (PyCFunction)__pyx_pw_3_sa_3VEB_7insert, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("findsucc"), (PyCFunction)__pyx_pw_3_sa_3VEB_9findsucc, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("insert"), (PyCFunction)__pyx_pf_3_sa_3VEB_3insert, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("findsucc"), (PyCFunction)__pyx_pf_3_sa_3VEB_4findsucc, METH_O, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -57628,20 +55352,20 @@ static PyNumberMethods __pyx_tp_as_number_VEB = {  };  static PySequenceMethods __pyx_tp_as_sequence_VEB = { -  __pyx_pw_3_sa_3VEB_11__len__, /*sq_length*/ +  __pyx_pf_3_sa_3VEB_5__len__, /*sq_length*/    0, /*sq_concat*/    0, /*sq_repeat*/    0, /*sq_item*/    0, /*sq_slice*/    0, /*sq_ass_item*/    0, /*sq_ass_slice*/ -  __pyx_pw_3_sa_3VEB_13__contains__, /*sq_contains*/ +  __pyx_pf_3_sa_3VEB_6__contains__, /*sq_contains*/    0, /*sq_inplace_concat*/    0, /*sq_inplace_repeat*/  };  static PyMappingMethods __pyx_tp_as_mapping_VEB = { -  __pyx_pw_3_sa_3VEB_11__len__, /*mp_length*/ +  __pyx_pf_3_sa_3VEB_5__len__, /*mp_length*/    0, /*mp_subscript*/    0, /*mp_ass_subscript*/  }; @@ -57697,7 +55421,7 @@ static PyTypeObject __pyx_type_3_sa_VEB = {    0, /*tp_clear*/    0, /*tp_richcompare*/    0, /*tp_weaklistoffset*/ -  __pyx_pw_3_sa_3VEB_5__iter__, /*tp_iter*/ +  __pyx_pf_3_sa_3VEB_2__iter__, /*tp_iter*/    0, /*tp_iternext*/    __pyx_methods_3_sa_VEB, /*tp_methods*/    0, /*tp_members*/ @@ -57730,7 +55454,7 @@ static PyObject *__pyx_tp_new_3_sa_LCP(PyTypeObject *t, PyObject *a, PyObject *k    p = ((struct __pyx_obj_3_sa_LCP *)o);    p->sa = ((struct __pyx_obj_3_sa_SuffixArray *)Py_None); Py_INCREF(Py_None);    p->lcp = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_3LCP_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_3LCP___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -57738,8 +55462,8 @@ static PyObject *__pyx_tp_new_3_sa_LCP(PyTypeObject *t, PyObject *a, PyObject *k  static void __pyx_tp_dealloc_3_sa_LCP(PyObject *o) {    struct __pyx_obj_3_sa_LCP *p = (struct __pyx_obj_3_sa_LCP *)o; -  Py_CLEAR(p->sa); -  Py_CLEAR(p->lcp); +  Py_XDECREF(((PyObject *)p->sa)); +  Py_XDECREF(((PyObject *)p->lcp));    (*Py_TYPE(o)->tp_free)(o);  } @@ -57768,7 +55492,7 @@ static int __pyx_tp_clear_3_sa_LCP(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_LCP[] = { -  {__Pyx_NAMESTR("compute_stats"), (PyCFunction)__pyx_pw_3_sa_3LCP_3compute_stats, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_3LCP_2compute_stats)}, +  {__Pyx_NAMESTR("compute_stats"), (PyCFunction)__pyx_pf_3_sa_3LCP_1compute_stats, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_3LCP_1compute_stats)},    {0, 0, 0, 0}  }; @@ -57927,7 +55651,7 @@ static PyTypeObject __pyx_type_3_sa_LCP = {  };  static struct __pyx_vtabstruct_3_sa_Alphabet __pyx_vtable_3_sa_Alphabet; -static PyObject *__pyx_tp_new_3_sa_Alphabet(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa_Alphabet(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa_Alphabet *p;    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0; @@ -57936,7 +55660,7 @@ static PyObject *__pyx_tp_new_3_sa_Alphabet(PyTypeObject *t, CYTHON_UNUSED PyObj    p->terminals = ((struct __pyx_obj_3_sa_StringMap *)Py_None); Py_INCREF(Py_None);    p->nonterminals = ((struct __pyx_obj_3_sa_StringMap *)Py_None); Py_INCREF(Py_None);    p->id2sym = ((PyObject*)Py_None); Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_8Alphabet_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) { +  if (__pyx_pf_3_sa_8Alphabet___cinit__(o, __pyx_empty_tuple, NULL) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -57948,14 +55672,14 @@ static void __pyx_tp_dealloc_3_sa_Alphabet(PyObject *o) {      PyObject *etype, *eval, *etb;      PyErr_Fetch(&etype, &eval, &etb);      ++Py_REFCNT(o); -    __pyx_pw_3_sa_8Alphabet_3__dealloc__(o); +    __pyx_pf_3_sa_8Alphabet_1__dealloc__(o);      if (PyErr_Occurred()) PyErr_WriteUnraisable(o);      --Py_REFCNT(o);      PyErr_Restore(etype, eval, etb);    } -  Py_CLEAR(p->terminals); -  Py_CLEAR(p->nonterminals); -  Py_CLEAR(p->id2sym); +  Py_XDECREF(((PyObject *)p->terminals)); +  Py_XDECREF(((PyObject *)p->nonterminals)); +  Py_XDECREF(((PyObject *)p->id2sym));    (*Py_TYPE(o)->tp_free)(o);  } @@ -57989,12 +55713,12 @@ static int __pyx_tp_clear_3_sa_Alphabet(PyObject *o) {    return 0;  } -static PyObject *__pyx_getprop_3_sa_8Alphabet_terminals(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_8Alphabet_9terminals_1__get__(o); +static PyObject *__pyx_getprop_3_sa_8Alphabet_terminals(PyObject *o, void *x) { +  return __pyx_pf_3_sa_8Alphabet_9terminals___get__(o);  } -static PyObject *__pyx_getprop_3_sa_8Alphabet_nonterminals(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_8Alphabet_12nonterminals_1__get__(o); +static PyObject *__pyx_getprop_3_sa_8Alphabet_nonterminals(PyObject *o, void *x) { +  return __pyx_pf_3_sa_8Alphabet_12nonterminals___get__(o);  }  static PyMethodDef __pyx_methods_3_sa_Alphabet[] = { @@ -58168,7 +55892,7 @@ static PyObject *__pyx_tp_new_3_sa_TrieMap(PyTypeObject *t, PyObject *a, PyObjec    if (!o) return 0;    p = ((struct __pyx_obj_3_sa_TrieMap *)o);    p->__pyx_vtab = __pyx_vtabptr_3_sa_TrieMap; -  if (__pyx_pw_3_sa_7TrieMap_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_7TrieMap___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -58179,7 +55903,7 @@ static void __pyx_tp_dealloc_3_sa_TrieMap(PyObject *o) {      PyObject *etype, *eval, *etb;      PyErr_Fetch(&etype, &eval, &etb);      ++Py_REFCNT(o); -    __pyx_pw_3_sa_7TrieMap_3__dealloc__(o); +    __pyx_pf_3_sa_7TrieMap_1__dealloc__(o);      if (PyErr_Occurred()) PyErr_WriteUnraisable(o);      --Py_REFCNT(o);      PyErr_Restore(etype, eval, etb); @@ -58188,9 +55912,9 @@ static void __pyx_tp_dealloc_3_sa_TrieMap(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_TrieMap[] = { -  {__Pyx_NAMESTR("insert"), (PyCFunction)__pyx_pw_3_sa_7TrieMap_5insert, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("contains"), (PyCFunction)__pyx_pw_3_sa_7TrieMap_7contains, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("toMap"), (PyCFunction)__pyx_pw_3_sa_7TrieMap_9toMap, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("insert"), (PyCFunction)__pyx_pf_3_sa_7TrieMap_2insert, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("contains"), (PyCFunction)__pyx_pf_3_sa_7TrieMap_3contains, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("toMap"), (PyCFunction)__pyx_pf_3_sa_7TrieMap_4toMap, METH_O, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -58357,7 +56081,7 @@ static PyObject *__pyx_tp_new_3_sa_Precomputation(PyTypeObject *t, PyObject *a,    p->__pyx_vtab = __pyx_vtabptr_3_sa_Precomputation;    p->precomputed_index = Py_None; Py_INCREF(Py_None);    p->precomputed_collocations = Py_None; Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_14Precomputation_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_14Precomputation___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -58365,8 +56089,8 @@ static PyObject *__pyx_tp_new_3_sa_Precomputation(PyTypeObject *t, PyObject *a,  static void __pyx_tp_dealloc_3_sa_Precomputation(PyObject *o) {    struct __pyx_obj_3_sa_Precomputation *p = (struct __pyx_obj_3_sa_Precomputation *)o; -  Py_CLEAR(p->precomputed_index); -  Py_CLEAR(p->precomputed_collocations); +  Py_XDECREF(p->precomputed_index); +  Py_XDECREF(p->precomputed_collocations);    (*Py_TYPE(o)->tp_free)(o);  } @@ -58395,9 +56119,9 @@ static int __pyx_tp_clear_3_sa_Precomputation(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_Precomputation[] = { -  {__Pyx_NAMESTR("read_binary"), (PyCFunction)__pyx_pw_3_sa_14Precomputation_3read_binary, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_binary"), (PyCFunction)__pyx_pw_3_sa_14Precomputation_5write_binary, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("precompute"), (PyCFunction)__pyx_pw_3_sa_14Precomputation_7precompute, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read_binary"), (PyCFunction)__pyx_pf_3_sa_14Precomputation_1read_binary, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_binary"), (PyCFunction)__pyx_pf_3_sa_14Precomputation_2write_binary, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("precompute"), (PyCFunction)__pyx_pf_3_sa_14Precomputation_3precompute, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -58565,7 +56289,7 @@ static PyObject *__pyx_tp_new_3_sa_SuffixArray(PyTypeObject *t, PyObject *a, PyO    p->darray = ((struct __pyx_obj_3_sa_DataArray *)Py_None); Py_INCREF(Py_None);    p->sa = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None);    p->ha = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_11SuffixArray_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_11SuffixArray___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -58573,9 +56297,9 @@ static PyObject *__pyx_tp_new_3_sa_SuffixArray(PyTypeObject *t, PyObject *a, PyO  static void __pyx_tp_dealloc_3_sa_SuffixArray(PyObject *o) {    struct __pyx_obj_3_sa_SuffixArray *p = (struct __pyx_obj_3_sa_SuffixArray *)o; -  Py_CLEAR(p->darray); -  Py_CLEAR(p->sa); -  Py_CLEAR(p->ha); +  Py_XDECREF(((PyObject *)p->darray)); +  Py_XDECREF(((PyObject *)p->sa)); +  Py_XDECREF(((PyObject *)p->ha));    (*Py_TYPE(o)->tp_free)(o);  } @@ -58617,16 +56341,16 @@ static PyObject *__pyx_sq_item_3_sa_SuffixArray(PyObject *o, Py_ssize_t i) {  }  static PyMethodDef __pyx_methods_3_sa_SuffixArray[] = { -  {__Pyx_NAMESTR("get_sentence_id"), (PyCFunction)__pyx_pw_3_sa_11SuffixArray_5get_sentence_id, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_sentence"), (PyCFunction)__pyx_pw_3_sa_11SuffixArray_7get_sentence, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_sentence_position"), (PyCFunction)__pyx_pw_3_sa_11SuffixArray_9get_sentence_position, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read_text"), (PyCFunction)__pyx_pw_3_sa_11SuffixArray_11read_text, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3_sa_11SuffixArray_10read_text)}, -  {__Pyx_NAMESTR("q3sort"), (PyCFunction)__pyx_pw_3_sa_11SuffixArray_13q3sort, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3_sa_11SuffixArray_12q3sort)}, -  {__Pyx_NAMESTR("write_text"), (PyCFunction)__pyx_pw_3_sa_11SuffixArray_15write_text, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("read_binary"), (PyCFunction)__pyx_pw_3_sa_11SuffixArray_17read_binary, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_binary"), (PyCFunction)__pyx_pw_3_sa_11SuffixArray_19write_binary, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("write_enhanced"), (PyCFunction)__pyx_pw_3_sa_11SuffixArray_21write_enhanced, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("lookup"), (PyCFunction)__pyx_pw_3_sa_11SuffixArray_23lookup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_sentence_id"), (PyCFunction)__pyx_pf_3_sa_11SuffixArray_2get_sentence_id, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_sentence"), (PyCFunction)__pyx_pf_3_sa_11SuffixArray_3get_sentence, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_sentence_position"), (PyCFunction)__pyx_pf_3_sa_11SuffixArray_4get_sentence_position, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read_text"), (PyCFunction)__pyx_pf_3_sa_11SuffixArray_5read_text, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3_sa_11SuffixArray_5read_text)}, +  {__Pyx_NAMESTR("q3sort"), (PyCFunction)__pyx_pf_3_sa_11SuffixArray_6q3sort, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3_sa_11SuffixArray_6q3sort)}, +  {__Pyx_NAMESTR("write_text"), (PyCFunction)__pyx_pf_3_sa_11SuffixArray_7write_text, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("read_binary"), (PyCFunction)__pyx_pf_3_sa_11SuffixArray_8read_binary, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_binary"), (PyCFunction)__pyx_pf_3_sa_11SuffixArray_9write_binary, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("write_enhanced"), (PyCFunction)__pyx_pf_3_sa_11SuffixArray_10write_enhanced, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("lookup"), (PyCFunction)__pyx_pf_3_sa_11SuffixArray_11lookup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},    {0, 0, 0, 0}  }; @@ -58703,7 +56427,7 @@ static PySequenceMethods __pyx_tp_as_sequence_SuffixArray = {  static PyMappingMethods __pyx_tp_as_mapping_SuffixArray = {    0, /*mp_length*/ -  __pyx_pw_3_sa_11SuffixArray_3__getitem__, /*mp_subscript*/ +  __pyx_pf_3_sa_11SuffixArray_1__getitem__, /*mp_subscript*/    0, /*mp_ass_subscript*/  }; @@ -58784,13 +56508,13 @@ static PyTypeObject __pyx_type_3_sa_SuffixArray = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa_TrieNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa_TrieNode(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa_TrieNode *p;    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0;    p = ((struct __pyx_obj_3_sa_TrieNode *)o);    p->children = Py_None; Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_8TrieNode_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) { +  if (__pyx_pf_3_sa_8TrieNode___cinit__(o, __pyx_empty_tuple, NULL) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -58798,7 +56522,7 @@ static PyObject *__pyx_tp_new_3_sa_TrieNode(PyTypeObject *t, CYTHON_UNUSED PyObj  static void __pyx_tp_dealloc_3_sa_TrieNode(PyObject *o) {    struct __pyx_obj_3_sa_TrieNode *p = (struct __pyx_obj_3_sa_TrieNode *)o; -  Py_CLEAR(p->children); +  Py_XDECREF(p->children);    (*Py_TYPE(o)->tp_free)(o);  } @@ -58820,16 +56544,16 @@ static int __pyx_tp_clear_3_sa_TrieNode(PyObject *o) {    return 0;  } -static PyObject *__pyx_getprop_3_sa_8TrieNode_children(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_8TrieNode_8children_1__get__(o); +static PyObject *__pyx_getprop_3_sa_8TrieNode_children(PyObject *o, void *x) { +  return __pyx_pf_3_sa_8TrieNode_8children___get__(o);  } -static int __pyx_setprop_3_sa_8TrieNode_children(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { +static int __pyx_setprop_3_sa_8TrieNode_children(PyObject *o, PyObject *v, void *x) {    if (v) { -    return __pyx_pw_3_sa_8TrieNode_8children_3__set__(o, v); +    return __pyx_pf_3_sa_8TrieNode_8children_1__set__(o, v);    }    else { -    return __pyx_pw_3_sa_8TrieNode_8children_5__del__(o); +    return __pyx_pf_3_sa_8TrieNode_8children_2__del__(o);    }  } @@ -59004,7 +56728,7 @@ static PyObject *__pyx_tp_new_3_sa_ExtendedTrieNode(PyTypeObject *t, PyObject *a    p->phrase = Py_None; Py_INCREF(Py_None);    p->phrase_location = Py_None; Py_INCREF(Py_None);    p->suffix_link = Py_None; Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_16ExtendedTrieNode_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_16ExtendedTrieNode___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -59012,9 +56736,9 @@ static PyObject *__pyx_tp_new_3_sa_ExtendedTrieNode(PyTypeObject *t, PyObject *a  static void __pyx_tp_dealloc_3_sa_ExtendedTrieNode(PyObject *o) {    struct __pyx_obj_3_sa_ExtendedTrieNode *p = (struct __pyx_obj_3_sa_ExtendedTrieNode *)o; -  Py_CLEAR(p->phrase); -  Py_CLEAR(p->phrase_location); -  Py_CLEAR(p->suffix_link); +  Py_XDECREF(p->phrase); +  Py_XDECREF(p->phrase_location); +  Py_XDECREF(p->suffix_link);    __pyx_tp_dealloc_3_sa_TrieNode(o);  } @@ -59050,42 +56774,42 @@ static int __pyx_tp_clear_3_sa_ExtendedTrieNode(PyObject *o) {    return 0;  } -static PyObject *__pyx_getprop_3_sa_16ExtendedTrieNode_phrase(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_16ExtendedTrieNode_6phrase_1__get__(o); +static PyObject *__pyx_getprop_3_sa_16ExtendedTrieNode_phrase(PyObject *o, void *x) { +  return __pyx_pf_3_sa_16ExtendedTrieNode_6phrase___get__(o);  } -static int __pyx_setprop_3_sa_16ExtendedTrieNode_phrase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { +static int __pyx_setprop_3_sa_16ExtendedTrieNode_phrase(PyObject *o, PyObject *v, void *x) {    if (v) { -    return __pyx_pw_3_sa_16ExtendedTrieNode_6phrase_3__set__(o, v); +    return __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_1__set__(o, v);    }    else { -    return __pyx_pw_3_sa_16ExtendedTrieNode_6phrase_5__del__(o); +    return __pyx_pf_3_sa_16ExtendedTrieNode_6phrase_2__del__(o);    }  } -static PyObject *__pyx_getprop_3_sa_16ExtendedTrieNode_phrase_location(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_16ExtendedTrieNode_15phrase_location_1__get__(o); +static PyObject *__pyx_getprop_3_sa_16ExtendedTrieNode_phrase_location(PyObject *o, void *x) { +  return __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location___get__(o);  } -static int __pyx_setprop_3_sa_16ExtendedTrieNode_phrase_location(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { +static int __pyx_setprop_3_sa_16ExtendedTrieNode_phrase_location(PyObject *o, PyObject *v, void *x) {    if (v) { -    return __pyx_pw_3_sa_16ExtendedTrieNode_15phrase_location_3__set__(o, v); +    return __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_1__set__(o, v);    }    else { -    return __pyx_pw_3_sa_16ExtendedTrieNode_15phrase_location_5__del__(o); +    return __pyx_pf_3_sa_16ExtendedTrieNode_15phrase_location_2__del__(o);    }  } -static PyObject *__pyx_getprop_3_sa_16ExtendedTrieNode_suffix_link(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_16ExtendedTrieNode_11suffix_link_1__get__(o); +static PyObject *__pyx_getprop_3_sa_16ExtendedTrieNode_suffix_link(PyObject *o, void *x) { +  return __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link___get__(o);  } -static int __pyx_setprop_3_sa_16ExtendedTrieNode_suffix_link(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { +static int __pyx_setprop_3_sa_16ExtendedTrieNode_suffix_link(PyObject *o, PyObject *v, void *x) {    if (v) { -    return __pyx_pw_3_sa_16ExtendedTrieNode_11suffix_link_3__set__(o, v); +    return __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_1__set__(o, v);    }    else { -    return __pyx_pw_3_sa_16ExtendedTrieNode_11suffix_link_5__del__(o); +    return __pyx_pf_3_sa_16ExtendedTrieNode_11suffix_link_2__del__(o);    }  } @@ -59260,7 +56984,7 @@ static PyObject *__pyx_tp_new_3_sa_TrieTable(PyTypeObject *t, PyObject *a, PyObj    if (!o) return 0;    p = ((struct __pyx_obj_3_sa_TrieTable *)o);    p->root = Py_None; Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_9TrieTable_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_9TrieTable___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -59268,7 +56992,7 @@ static PyObject *__pyx_tp_new_3_sa_TrieTable(PyTypeObject *t, PyObject *a, PyObj  static void __pyx_tp_dealloc_3_sa_TrieTable(PyObject *o) {    struct __pyx_obj_3_sa_TrieTable *p = (struct __pyx_obj_3_sa_TrieTable *)o; -  Py_CLEAR(p->root); +  Py_XDECREF(p->root);    (*Py_TYPE(o)->tp_free)(o);  } @@ -59290,13 +57014,13 @@ static int __pyx_tp_clear_3_sa_TrieTable(PyObject *o) {    return 0;  } -static PyObject *__pyx_getprop_3_sa_9TrieTable_extended(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_9TrieTable_8extended_1__get__(o); +static PyObject *__pyx_getprop_3_sa_9TrieTable_extended(PyObject *o, void *x) { +  return __pyx_pf_3_sa_9TrieTable_8extended___get__(o);  } -static int __pyx_setprop_3_sa_9TrieTable_extended(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { +static int __pyx_setprop_3_sa_9TrieTable_extended(PyObject *o, PyObject *v, void *x) {    if (v) { -    return __pyx_pw_3_sa_9TrieTable_8extended_3__set__(o, v); +    return __pyx_pf_3_sa_9TrieTable_8extended_1__set__(o, v);    }    else {      PyErr_SetString(PyExc_NotImplementedError, "__del__"); @@ -59304,13 +57028,13 @@ static int __pyx_setprop_3_sa_9TrieTable_extended(PyObject *o, PyObject *v, CYTH    }  } -static PyObject *__pyx_getprop_3_sa_9TrieTable_count(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_9TrieTable_5count_1__get__(o); +static PyObject *__pyx_getprop_3_sa_9TrieTable_count(PyObject *o, void *x) { +  return __pyx_pf_3_sa_9TrieTable_5count___get__(o);  } -static int __pyx_setprop_3_sa_9TrieTable_count(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { +static int __pyx_setprop_3_sa_9TrieTable_count(PyObject *o, PyObject *v, void *x) {    if (v) { -    return __pyx_pw_3_sa_9TrieTable_5count_3__set__(o, v); +    return __pyx_pf_3_sa_9TrieTable_5count_1__set__(o, v);    }    else {      PyErr_SetString(PyExc_NotImplementedError, "__del__"); @@ -59318,16 +57042,16 @@ static int __pyx_setprop_3_sa_9TrieTable_count(PyObject *o, PyObject *v, CYTHON_    }  } -static PyObject *__pyx_getprop_3_sa_9TrieTable_root(PyObject *o, CYTHON_UNUSED void *x) { -  return __pyx_pw_3_sa_9TrieTable_4root_1__get__(o); +static PyObject *__pyx_getprop_3_sa_9TrieTable_root(PyObject *o, void *x) { +  return __pyx_pf_3_sa_9TrieTable_4root___get__(o);  } -static int __pyx_setprop_3_sa_9TrieTable_root(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { +static int __pyx_setprop_3_sa_9TrieTable_root(PyObject *o, PyObject *v, void *x) {    if (v) { -    return __pyx_pw_3_sa_9TrieTable_4root_3__set__(o, v); +    return __pyx_pf_3_sa_9TrieTable_4root_1__set__(o, v);    }    else { -    return __pyx_pw_3_sa_9TrieTable_4root_5__del__(o); +    return __pyx_pf_3_sa_9TrieTable_4root_2__del__(o);    }  } @@ -59504,7 +57228,7 @@ static PyObject *__pyx_tp_new_3_sa_PhraseLocation(PyTypeObject *t, PyObject *a,    p = ((struct __pyx_obj_3_sa_PhraseLocation *)o);    p->__pyx_vtab = __pyx_vtabptr_3_sa_PhraseLocation;    p->arr = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_14PhraseLocation_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_14PhraseLocation___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -59512,7 +57236,7 @@ static PyObject *__pyx_tp_new_3_sa_PhraseLocation(PyTypeObject *t, PyObject *a,  static void __pyx_tp_dealloc_3_sa_PhraseLocation(PyObject *o) {    struct __pyx_obj_3_sa_PhraseLocation *p = (struct __pyx_obj_3_sa_PhraseLocation *)o; -  Py_CLEAR(p->arr); +  Py_XDECREF(((PyObject *)p->arr));    (*Py_TYPE(o)->tp_free)(o);  } @@ -59698,7 +57422,7 @@ static PyObject *__pyx_tp_new_3_sa_Sampler(PyTypeObject *t, PyObject *a, PyObjec    if (!o) return 0;    p = ((struct __pyx_obj_3_sa_Sampler *)o);    p->sa = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_7Sampler_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_7Sampler___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -59706,7 +57430,7 @@ static PyObject *__pyx_tp_new_3_sa_Sampler(PyTypeObject *t, PyObject *a, PyObjec  static void __pyx_tp_dealloc_3_sa_Sampler(PyObject *o) {    struct __pyx_obj_3_sa_Sampler *p = (struct __pyx_obj_3_sa_Sampler *)o; -  Py_CLEAR(p->sa); +  Py_XDECREF(((PyObject *)p->sa));    (*Py_TYPE(o)->tp_free)(o);  } @@ -59729,7 +57453,7 @@ static int __pyx_tp_clear_3_sa_Sampler(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_Sampler[] = { -  {__Pyx_NAMESTR("sample"), (PyCFunction)__pyx_pw_3_sa_7Sampler_3sample, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_7Sampler_2sample)}, +  {__Pyx_NAMESTR("sample"), (PyCFunction)__pyx_pf_3_sa_7Sampler_1sample, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_7Sampler_1sample)},    {0, 0, 0, 0}  }; @@ -59910,7 +57634,7 @@ static PyObject *__pyx_tp_new_3_sa_HieroCachingRuleFactory(PyTypeObject *t, PyOb    p->fid2symid = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None);    p->findexes = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None);    p->findexes1 = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None); -  if (__pyx_pw_3_sa_23HieroCachingRuleFactory_1__cinit__(o, a, k) < 0) { +  if (__pyx_pf_3_sa_23HieroCachingRuleFactory___cinit__(o, a, k) < 0) {      Py_DECREF(o); o = 0;    }    return o; @@ -59918,22 +57642,22 @@ static PyObject *__pyx_tp_new_3_sa_HieroCachingRuleFactory(PyTypeObject *t, PyOb  static void __pyx_tp_dealloc_3_sa_HieroCachingRuleFactory(PyObject *o) {    struct __pyx_obj_3_sa_HieroCachingRuleFactory *p = (struct __pyx_obj_3_sa_HieroCachingRuleFactory *)o; -  Py_CLEAR(p->rules); -  Py_CLEAR(p->sampler); -  Py_CLEAR(p->scorer); -  Py_CLEAR(p->precomputed_index); -  Py_CLEAR(p->precomputed_collocations); -  Py_CLEAR(p->precompute_file); -  Py_CLEAR(p->max_rank); -  Py_CLEAR(p->prev_norm_prefix); -  Py_CLEAR(p->fsa); -  Py_CLEAR(p->fda); -  Py_CLEAR(p->eda); -  Py_CLEAR(p->alignment); -  Py_CLEAR(p->eid2symid); -  Py_CLEAR(p->fid2symid); -  Py_CLEAR(p->findexes); -  Py_CLEAR(p->findexes1); +  Py_XDECREF(((PyObject *)p->rules)); +  Py_XDECREF(((PyObject *)p->sampler)); +  Py_XDECREF(((PyObject *)p->scorer)); +  Py_XDECREF(p->precomputed_index); +  Py_XDECREF(p->precomputed_collocations); +  Py_XDECREF(p->precompute_file); +  Py_XDECREF(p->max_rank); +  Py_XDECREF(p->prev_norm_prefix); +  Py_XDECREF(((PyObject *)p->fsa)); +  Py_XDECREF(((PyObject *)p->fda)); +  Py_XDECREF(((PyObject *)p->eda)); +  Py_XDECREF(((PyObject *)p->alignment)); +  Py_XDECREF(((PyObject *)p->eid2symid)); +  Py_XDECREF(((PyObject *)p->fid2symid)); +  Py_XDECREF(((PyObject *)p->findexes)); +  Py_XDECREF(((PyObject *)p->findexes1));    (*Py_TYPE(o)->tp_free)(o);  } @@ -60046,17 +57770,17 @@ static int __pyx_tp_clear_3_sa_HieroCachingRuleFactory(PyObject *o) {  }  static PyMethodDef __pyx_methods_3_sa_HieroCachingRuleFactory[] = { -  {__Pyx_NAMESTR("configure"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_3configure, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3_sa_23HieroCachingRuleFactory_2configure)}, -  {__Pyx_NAMESTR("pattern2phrase"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_5pattern2phrase, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("pattern2phrase_plus"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_7pattern2phrase_plus, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("precompute"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_9precompute, METH_NOARGS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_precomputed_collocation"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_11get_precomputed_collocation, METH_O, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("advance"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_13advance, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_all_nodes_isteps_away"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_15get_all_nodes_isteps_away, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("reachable"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_17reachable, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("shortest"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_19shortest, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("get_next_states"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_21get_next_states, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, -  {__Pyx_NAMESTR("input"), (PyCFunction)__pyx_pw_3_sa_23HieroCachingRuleFactory_23input, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_23HieroCachingRuleFactory_22input)}, +  {__Pyx_NAMESTR("configure"), (PyCFunction)__pyx_pf_3_sa_23HieroCachingRuleFactory_1configure, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3_sa_23HieroCachingRuleFactory_1configure)}, +  {__Pyx_NAMESTR("pattern2phrase"), (PyCFunction)__pyx_pf_3_sa_23HieroCachingRuleFactory_2pattern2phrase, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("pattern2phrase_plus"), (PyCFunction)__pyx_pf_3_sa_23HieroCachingRuleFactory_3pattern2phrase_plus, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("precompute"), (PyCFunction)__pyx_pf_3_sa_23HieroCachingRuleFactory_4precompute, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_precomputed_collocation"), (PyCFunction)__pyx_pf_3_sa_23HieroCachingRuleFactory_5get_precomputed_collocation, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("advance"), (PyCFunction)__pyx_pf_3_sa_23HieroCachingRuleFactory_6advance, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_all_nodes_isteps_away"), (PyCFunction)__pyx_pf_3_sa_23HieroCachingRuleFactory_7get_all_nodes_isteps_away, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("reachable"), (PyCFunction)__pyx_pf_3_sa_23HieroCachingRuleFactory_8reachable, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("shortest"), (PyCFunction)__pyx_pf_3_sa_23HieroCachingRuleFactory_9shortest, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("get_next_states"), (PyCFunction)__pyx_pf_3_sa_23HieroCachingRuleFactory_10get_next_states, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("input"), (PyCFunction)__pyx_pf_3_sa_23HieroCachingRuleFactory_11input, METH_O, __Pyx_DOCSTR(__pyx_doc_3_sa_23HieroCachingRuleFactory_11input)},    {0, 0, 0, 0}  }; @@ -60215,7 +57939,7 @@ static PyTypeObject __pyx_type_3_sa_HieroCachingRuleFactory = {  };  static struct __pyx_vtabstruct_3_sa_Scorer __pyx_vtable_3_sa_Scorer; -static PyObject *__pyx_tp_new_3_sa_Scorer(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa_Scorer(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa_Scorer *p;    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0; @@ -60227,7 +57951,7 @@ static PyObject *__pyx_tp_new_3_sa_Scorer(PyTypeObject *t, CYTHON_UNUSED PyObjec  static void __pyx_tp_dealloc_3_sa_Scorer(PyObject *o) {    struct __pyx_obj_3_sa_Scorer *p = (struct __pyx_obj_3_sa_Scorer *)o; -  Py_CLEAR(p->models); +  Py_XDECREF(p->models);    (*Py_TYPE(o)->tp_free)(o);  } @@ -60391,7 +58115,7 @@ static PyTypeObject __pyx_type_3_sa_Scorer = {    0, /*tp_descr_get*/    0, /*tp_descr_set*/    0, /*tp_dictoffset*/ -  __pyx_pw_3_sa_6Scorer_1__init__, /*tp_init*/ +  __pyx_pf_3_sa_6Scorer___init__, /*tp_init*/    0, /*tp_alloc*/    __pyx_tp_new_3_sa_Scorer, /*tp_new*/    0, /*tp_free*/ @@ -60407,10 +58131,220 @@ static PyTypeObject __pyx_type_3_sa_Scorer = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct____iter__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -  struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *p; +static PyObject *__pyx_tp_new_3_sa___pyx_Generator(PyTypeObject *t, PyObject *a, PyObject *k) { +  struct __pyx_Generator_object *p;    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0; +  p = ((struct __pyx_Generator_object *)o); +  p->exc_type = 0; +  p->exc_value = 0; +  p->exc_traceback = 0; +  return o; +} + +static void __pyx_tp_dealloc_3_sa___pyx_Generator(PyObject *o) { +  struct __pyx_Generator_object *p = (struct __pyx_Generator_object *)o; +  Py_XDECREF(p->exc_type); +  Py_XDECREF(p->exc_value); +  Py_XDECREF(p->exc_traceback); +  (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_3_sa___pyx_Generator(PyObject *o, visitproc v, void *a) { +  int e; +  struct __pyx_Generator_object *p = (struct __pyx_Generator_object *)o; +  if (p->exc_type) { +    e = (*v)(p->exc_type, a); if (e) return e; +  } +  if (p->exc_value) { +    e = (*v)(p->exc_value, a); if (e) return e; +  } +  if (p->exc_traceback) { +    e = (*v)(p->exc_traceback, a); if (e) return e; +  } +  return 0; +} + +static int __pyx_tp_clear_3_sa___pyx_Generator(PyObject *o) { +  struct __pyx_Generator_object *p = (struct __pyx_Generator_object *)o; +  PyObject* tmp; +  tmp = ((PyObject*)p->exc_type); +  p->exc_type = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->exc_value); +  p->exc_value = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  tmp = ((PyObject*)p->exc_traceback); +  p->exc_traceback = Py_None; Py_INCREF(Py_None); +  Py_XDECREF(tmp); +  return 0; +} + +static PyMethodDef __pyx_methods_3_sa___pyx_Generator[] = { +  {__Pyx_NAMESTR("send"), (PyCFunction)__Pyx_Generator_Send, METH_O, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("close"), (PyCFunction)__Pyx_Generator_Close, METH_NOARGS, __Pyx_DOCSTR(0)}, +  {__Pyx_NAMESTR("throw"), (PyCFunction)__Pyx_Generator_Throw, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, +  {0, 0, 0, 0} +}; + +static PyNumberMethods __pyx_tp_as_number___pyx_Generator = { +  0, /*nb_add*/ +  0, /*nb_subtract*/ +  0, /*nb_multiply*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*nb_divide*/ +  #endif +  0, /*nb_remainder*/ +  0, /*nb_divmod*/ +  0, /*nb_power*/ +  0, /*nb_negative*/ +  0, /*nb_positive*/ +  0, /*nb_absolute*/ +  0, /*nb_nonzero*/ +  0, /*nb_invert*/ +  0, /*nb_lshift*/ +  0, /*nb_rshift*/ +  0, /*nb_and*/ +  0, /*nb_xor*/ +  0, /*nb_or*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*nb_coerce*/ +  #endif +  0, /*nb_int*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*nb_long*/ +  #else +  0, /*reserved*/ +  #endif +  0, /*nb_float*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*nb_oct*/ +  #endif +  #if PY_MAJOR_VERSION < 3 +  0, /*nb_hex*/ +  #endif +  0, /*nb_inplace_add*/ +  0, /*nb_inplace_subtract*/ +  0, /*nb_inplace_multiply*/ +  #if PY_MAJOR_VERSION < 3 +  0, /*nb_inplace_divide*/ +  #endif +  0, /*nb_inplace_remainder*/ +  0, /*nb_inplace_power*/ +  0, /*nb_inplace_lshift*/ +  0, /*nb_inplace_rshift*/ +  0, /*nb_inplace_and*/ +  0, /*nb_inplace_xor*/ +  0, /*nb_inplace_or*/ +  0, /*nb_floor_divide*/ +  0, /*nb_true_divide*/ +  0, /*nb_inplace_floor_divide*/ +  0, /*nb_inplace_true_divide*/ +  #if PY_VERSION_HEX >= 0x02050000 +  0, /*nb_index*/ +  #endif +}; + +static PySequenceMethods __pyx_tp_as_sequence___pyx_Generator = { +  0, /*sq_length*/ +  0, /*sq_concat*/ +  0, /*sq_repeat*/ +  0, /*sq_item*/ +  0, /*sq_slice*/ +  0, /*sq_ass_item*/ +  0, /*sq_ass_slice*/ +  0, /*sq_contains*/ +  0, /*sq_inplace_concat*/ +  0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping___pyx_Generator = { +  0, /*mp_length*/ +  0, /*mp_subscript*/ +  0, /*mp_ass_subscript*/ +}; + +static PyBufferProcs __pyx_tp_as_buffer___pyx_Generator = { +  #if PY_MAJOR_VERSION < 3 +  0, /*bf_getreadbuffer*/ +  #endif +  #if PY_MAJOR_VERSION < 3 +  0, /*bf_getwritebuffer*/ +  #endif +  #if PY_MAJOR_VERSION < 3 +  0, /*bf_getsegcount*/ +  #endif +  #if PY_MAJOR_VERSION < 3 +  0, /*bf_getcharbuffer*/ +  #endif +  #if PY_VERSION_HEX >= 0x02060000 +  0, /*bf_getbuffer*/ +  #endif +  #if PY_VERSION_HEX >= 0x02060000 +  0, /*bf_releasebuffer*/ +  #endif +}; + +static PyTypeObject __pyx_Generator_type = { +  PyVarObject_HEAD_INIT(0, 0) +  __Pyx_NAMESTR("_sa.__pyx_Generator"), /*tp_name*/ +  sizeof(struct __pyx_Generator_object), /*tp_basicsize*/ +  0, /*tp_itemsize*/ +  __pyx_tp_dealloc_3_sa___pyx_Generator, /*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*/ +  &__pyx_tp_as_number___pyx_Generator, /*tp_as_number*/ +  &__pyx_tp_as_sequence___pyx_Generator, /*tp_as_sequence*/ +  &__pyx_tp_as_mapping___pyx_Generator, /*tp_as_mapping*/ +  0, /*tp_hash*/ +  0, /*tp_call*/ +  0, /*tp_str*/ +  0, /*tp_getattro*/ +  0, /*tp_setattro*/ +  &__pyx_tp_as_buffer___pyx_Generator, /*tp_as_buffer*/ +  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ +  0, /*tp_doc*/ +  __pyx_tp_traverse_3_sa___pyx_Generator, /*tp_traverse*/ +  __pyx_tp_clear_3_sa___pyx_Generator, /*tp_clear*/ +  0, /*tp_richcompare*/ +  0, /*tp_weaklistoffset*/ +  PyObject_SelfIter, /*tp_iter*/ +  __Pyx_Generator_Next, /*tp_iternext*/ +  __pyx_methods_3_sa___pyx_Generator, /*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_3_sa___pyx_Generator, /*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_3_sa___pyx_scope_struct____iter__(PyTypeObject *t, PyObject *a, PyObject *k) { +  struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *p; +  PyObject *o = __pyx_tp_new_3_sa___pyx_Generator(t, a, k); +  if (!o) return 0;    p = ((struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *)o);    p->__pyx_v_self = 0;    return o; @@ -60418,13 +58352,14 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct____iter__(PyTypeObject *t,  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct____iter__(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *)o; -  Py_CLEAR(p->__pyx_v_self); -  (*Py_TYPE(o)->tp_free)(o); +  Py_XDECREF(((PyObject *)p->__pyx_v_self)); +  __pyx_tp_dealloc_3_sa___pyx_Generator(o);  }  static int __pyx_tp_traverse_3_sa___pyx_scope_struct____iter__(PyObject *o, visitproc v, void *a) {    int e;    struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *)o; +  e = __pyx_tp_traverse_3_sa___pyx_Generator(o, v, a); if (e) return e;    if (p->__pyx_v_self) {      e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    } @@ -60434,8 +58369,9 @@ static int __pyx_tp_traverse_3_sa___pyx_scope_struct____iter__(PyObject *o, visi  static int __pyx_tp_clear_3_sa___pyx_scope_struct____iter__(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct____iter__ *)o;    PyObject* tmp; +  __pyx_tp_clear_3_sa___pyx_Generator(o);    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } @@ -60598,7 +58534,7 @@ static PyTypeObject __pyx_type_3_sa___pyx_scope_struct____iter__ = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_1_read_bitext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_1_read_bitext(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa___pyx_scope_struct_1_read_bitext *p;    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0; @@ -60609,7 +58545,7 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_1_read_bitext(PyTypeObject  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct_1_read_bitext(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_1_read_bitext *p = (struct __pyx_obj_3_sa___pyx_scope_struct_1_read_bitext *)o; -  Py_CLEAR(p->__pyx_v_fp); +  Py_XDECREF(p->__pyx_v_fp);    (*Py_TYPE(o)->tp_free)(o);  } @@ -60789,9 +58725,9 @@ static PyTypeObject __pyx_type_3_sa___pyx_scope_struct_1_read_bitext = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_2_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_2_genexpr(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *p; -  PyObject *o = (*t->tp_alloc)(t, 0); +  PyObject *o = __pyx_tp_new_3_sa___pyx_Generator(t, a, k);    if (!o) return 0;    p = ((struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *)o);    p->__pyx_outer_scope = 0; @@ -60802,15 +58738,16 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_2_genexpr(PyTypeObject *t,  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct_2_genexpr(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *)o; -  Py_CLEAR(p->__pyx_outer_scope); -  Py_CLEAR(p->__pyx_v_line); -  Py_CLEAR(p->__pyx_t_0); -  (*Py_TYPE(o)->tp_free)(o); +  Py_XDECREF(((PyObject *)p->__pyx_outer_scope)); +  Py_XDECREF(p->__pyx_v_line); +  Py_XDECREF(p->__pyx_t_0); +  __pyx_tp_dealloc_3_sa___pyx_Generator(o);  }  static int __pyx_tp_traverse_3_sa___pyx_scope_struct_2_genexpr(PyObject *o, visitproc v, void *a) {    int e;    struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *)o; +  e = __pyx_tp_traverse_3_sa___pyx_Generator(o, v, a); if (e) return e;    if (p->__pyx_outer_scope) {      e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e;    } @@ -60826,6 +58763,7 @@ static int __pyx_tp_traverse_3_sa___pyx_scope_struct_2_genexpr(PyObject *o, visi  static int __pyx_tp_clear_3_sa___pyx_scope_struct_2_genexpr(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_3_sa___pyx_scope_struct_2_genexpr *)o;    PyObject* tmp; +  __pyx_tp_clear_3_sa___pyx_Generator(o);    tmp = ((PyObject*)p->__pyx_outer_scope);    p->__pyx_outer_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct_1_read_bitext *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp); @@ -60996,9 +58934,9 @@ static PyTypeObject __pyx_type_3_sa___pyx_scope_struct_2_genexpr = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_3_compute_stats(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_3_compute_stats(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *p; -  PyObject *o = (*t->tp_alloc)(t, 0); +  PyObject *o = __pyx_tp_new_3_sa___pyx_Generator(t, a, k);    if (!o) return 0;    p = ((struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *)o);    p->__pyx_v_ngram = 0; @@ -61012,18 +58950,19 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_3_compute_stats(PyTypeObje  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct_3_compute_stats(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *p = (struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *)o; -  Py_CLEAR(p->__pyx_v_ngram); -  Py_CLEAR(p->__pyx_v_ngram_start); -  Py_CLEAR(p->__pyx_v_ngram_starts); -  Py_CLEAR(p->__pyx_v_run_start); -  Py_CLEAR(p->__pyx_v_self); -  Py_CLEAR(p->__pyx_v_veb); -  (*Py_TYPE(o)->tp_free)(o); +  Py_XDECREF(((PyObject *)p->__pyx_v_ngram)); +  Py_XDECREF(((PyObject *)p->__pyx_v_ngram_start)); +  Py_XDECREF(((PyObject *)p->__pyx_v_ngram_starts)); +  Py_XDECREF(((PyObject *)p->__pyx_v_run_start)); +  Py_XDECREF(((PyObject *)p->__pyx_v_self)); +  Py_XDECREF(((PyObject *)p->__pyx_v_veb)); +  __pyx_tp_dealloc_3_sa___pyx_Generator(o);  }  static int __pyx_tp_traverse_3_sa___pyx_scope_struct_3_compute_stats(PyObject *o, visitproc v, void *a) {    int e;    struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *p = (struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *)o; +  e = __pyx_tp_traverse_3_sa___pyx_Generator(o, v, a); if (e) return e;    if (p->__pyx_v_ngram) {      e = (*v)(p->__pyx_v_ngram, a); if (e) return e;    } @@ -61048,6 +58987,7 @@ static int __pyx_tp_traverse_3_sa___pyx_scope_struct_3_compute_stats(PyObject *o  static int __pyx_tp_clear_3_sa___pyx_scope_struct_3_compute_stats(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *p = (struct __pyx_obj_3_sa___pyx_scope_struct_3_compute_stats *)o;    PyObject* tmp; +  __pyx_tp_clear_3_sa___pyx_Generator(o);    tmp = ((PyObject*)p->__pyx_v_ngram);    p->__pyx_v_ngram = ((PyObject*)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp); @@ -61061,7 +59001,7 @@ static int __pyx_tp_clear_3_sa___pyx_scope_struct_3_compute_stats(PyObject *o) {    p->__pyx_v_run_start = ((struct __pyx_obj_3_sa_IntList *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp);    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_3_sa_LCP *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    tmp = ((PyObject*)p->__pyx_v_veb);    p->__pyx_v_veb = ((struct __pyx_obj_3_sa_VEB *)Py_None); Py_INCREF(Py_None); @@ -61227,9 +59167,9 @@ static PyTypeObject __pyx_type_3_sa___pyx_scope_struct_3_compute_stats = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_4___iter__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_4___iter__(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *p; -  PyObject *o = (*t->tp_alloc)(t, 0); +  PyObject *o = __pyx_tp_new_3_sa___pyx_Generator(t, a, k);    if (!o) return 0;    p = ((struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *)o);    p->__pyx_v_self = 0; @@ -61238,13 +59178,14 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_4___iter__(PyTypeObject *t  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct_4___iter__(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *)o; -  Py_CLEAR(p->__pyx_v_self); -  (*Py_TYPE(o)->tp_free)(o); +  Py_XDECREF(((PyObject *)p->__pyx_v_self)); +  __pyx_tp_dealloc_3_sa___pyx_Generator(o);  }  static int __pyx_tp_traverse_3_sa___pyx_scope_struct_4___iter__(PyObject *o, visitproc v, void *a) {    int e;    struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *)o; +  e = __pyx_tp_traverse_3_sa___pyx_Generator(o, v, a); if (e) return e;    if (p->__pyx_v_self) {      e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    } @@ -61254,8 +59195,9 @@ static int __pyx_tp_traverse_3_sa___pyx_scope_struct_4___iter__(PyObject *o, vis  static int __pyx_tp_clear_3_sa___pyx_scope_struct_4___iter__(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct_4___iter__ *)o;    PyObject* tmp; +  __pyx_tp_clear_3_sa___pyx_Generator(o);    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_3_sa_Phrase *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } @@ -61418,7 +59360,7 @@ static PyTypeObject __pyx_type_3_sa___pyx_scope_struct_4___iter__ = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_5___str__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_5___str__(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa___pyx_scope_struct_5___str__ *p;    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0; @@ -61429,7 +59371,7 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_5___str__(PyTypeObject *t,  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct_5___str__(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_5___str__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct_5___str__ *)o; -  Py_CLEAR(p->__pyx_v_self); +  Py_XDECREF(((PyObject *)p->__pyx_v_self));    (*Py_TYPE(o)->tp_free)(o);  } @@ -61446,7 +59388,7 @@ static int __pyx_tp_clear_3_sa___pyx_scope_struct_5___str__(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_5___str__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct_5___str__ *)o;    PyObject* tmp;    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_3_sa_Rule *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } @@ -61609,9 +59551,9 @@ static PyTypeObject __pyx_type_3_sa___pyx_scope_struct_5___str__ = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_6_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_6_genexpr(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *p; -  PyObject *o = (*t->tp_alloc)(t, 0); +  PyObject *o = __pyx_tp_new_3_sa___pyx_Generator(t, a, k);    if (!o) return 0;    p = ((struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *)o);    p->__pyx_outer_scope = 0; @@ -61622,15 +59564,16 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_6_genexpr(PyTypeObject *t,  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct_6_genexpr(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *)o; -  Py_CLEAR(p->__pyx_outer_scope); -  Py_CLEAR(p->__pyx_v_a); -  Py_CLEAR(p->__pyx_t_0); -  (*Py_TYPE(o)->tp_free)(o); +  Py_XDECREF(((PyObject *)p->__pyx_outer_scope)); +  Py_XDECREF(p->__pyx_v_a); +  Py_XDECREF(p->__pyx_t_0); +  __pyx_tp_dealloc_3_sa___pyx_Generator(o);  }  static int __pyx_tp_traverse_3_sa___pyx_scope_struct_6_genexpr(PyObject *o, visitproc v, void *a) {    int e;    struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *)o; +  e = __pyx_tp_traverse_3_sa___pyx_Generator(o, v, a); if (e) return e;    if (p->__pyx_outer_scope) {      e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e;    } @@ -61646,6 +59589,7 @@ static int __pyx_tp_traverse_3_sa___pyx_scope_struct_6_genexpr(PyObject *o, visi  static int __pyx_tp_clear_3_sa___pyx_scope_struct_6_genexpr(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_3_sa___pyx_scope_struct_6_genexpr *)o;    PyObject* tmp; +  __pyx_tp_clear_3_sa___pyx_Generator(o);    tmp = ((PyObject*)p->__pyx_outer_scope);    p->__pyx_outer_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct_5___str__ *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp); @@ -61816,9 +59760,9 @@ static PyTypeObject __pyx_type_3_sa___pyx_scope_struct_6_genexpr = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_7_alignments(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_7_alignments(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *p; -  PyObject *o = (*t->tp_alloc)(t, 0); +  PyObject *o = __pyx_tp_new_3_sa___pyx_Generator(t, a, k);    if (!o) return 0;    p = ((struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *)o);    p->__pyx_v_point = 0; @@ -61829,15 +59773,16 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_7_alignments(PyTypeObject  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct_7_alignments(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *p = (struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *)o; -  Py_CLEAR(p->__pyx_v_point); -  Py_CLEAR(p->__pyx_v_self); -  Py_CLEAR(p->__pyx_t_0); -  (*Py_TYPE(o)->tp_free)(o); +  Py_XDECREF(p->__pyx_v_point); +  Py_XDECREF(((PyObject *)p->__pyx_v_self)); +  Py_XDECREF(p->__pyx_t_0); +  __pyx_tp_dealloc_3_sa___pyx_Generator(o);  }  static int __pyx_tp_traverse_3_sa___pyx_scope_struct_7_alignments(PyObject *o, visitproc v, void *a) {    int e;    struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *p = (struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *)o; +  e = __pyx_tp_traverse_3_sa___pyx_Generator(o, v, a); if (e) return e;    if (p->__pyx_v_point) {      e = (*v)(p->__pyx_v_point, a); if (e) return e;    } @@ -61853,11 +59798,12 @@ static int __pyx_tp_traverse_3_sa___pyx_scope_struct_7_alignments(PyObject *o, v  static int __pyx_tp_clear_3_sa___pyx_scope_struct_7_alignments(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *p = (struct __pyx_obj_3_sa___pyx_scope_struct_7_alignments *)o;    PyObject* tmp; +  __pyx_tp_clear_3_sa___pyx_Generator(o);    tmp = ((PyObject*)p->__pyx_v_point);    p->__pyx_v_point = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_3_sa_Rule *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = 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); @@ -62023,9 +59969,9 @@ static PyTypeObject __pyx_type_3_sa___pyx_scope_struct_7_alignments = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_8_input(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_8_input(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa___pyx_scope_struct_8_input *p; -  PyObject *o = (*t->tp_alloc)(t, 0); +  PyObject *o = __pyx_tp_new_3_sa___pyx_Generator(t, a, k);    if (!o) return 0;    p = ((struct __pyx_obj_3_sa___pyx_scope_struct_8_input *)o);    p->__pyx_v_alignment = 0; @@ -62073,68 +60019,69 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_8_input(PyTypeObject *t, C    p->__pyx_v_xcat_index = 0;    p->__pyx_v_xnode = 0;    p->__pyx_v_xroot = 0; -  p->__pyx_t_1 = 0; +  p->__pyx_t_2 = 0; +  p->__pyx_t_3 = 0;    p->__pyx_t_4 = 0; -  p->__pyx_t_5 = 0;    return o;  }  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct_8_input(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_8_input *p = (struct __pyx_obj_3_sa___pyx_scope_struct_8_input *)o; -  Py_CLEAR(p->__pyx_v_alignment); -  Py_CLEAR(p->__pyx_v_als); -  Py_CLEAR(p->__pyx_v_alslist); -  Py_CLEAR(p->__pyx_v_chunklen); -  Py_CLEAR(p->__pyx_v_count); -  Py_CLEAR(p->__pyx_v_e); -  Py_CLEAR(p->__pyx_v_elist); -  Py_CLEAR(p->__pyx_v_extract); -  Py_CLEAR(p->__pyx_v_extract_start); -  Py_CLEAR(p->__pyx_v_extract_stop); -  Py_CLEAR(p->__pyx_v_extracts); -  Py_CLEAR(p->__pyx_v_f); -  Py_CLEAR(p->__pyx_v_fcount); -  Py_CLEAR(p->__pyx_v_fphrases); -  Py_CLEAR(p->__pyx_v_frontier); -  Py_CLEAR(p->__pyx_v_frontier_nodes); -  Py_CLEAR(p->__pyx_v_fwords); -  Py_CLEAR(p->__pyx_v_hiero_phrase); -  Py_CLEAR(p->__pyx_v_is_shadow_path); -  Py_CLEAR(p->__pyx_v_key); -  Py_CLEAR(p->__pyx_v_loc); -  Py_CLEAR(p->__pyx_v_locs); -  Py_CLEAR(p->__pyx_v_max_locs); -  Py_CLEAR(p->__pyx_v_new_frontier); -  Py_CLEAR(p->__pyx_v_new_node); -  Py_CLEAR(p->__pyx_v_next_states); -  Py_CLEAR(p->__pyx_v_node); -  Py_CLEAR(p->__pyx_v_nodes_isteps_away_buffer); -  Py_CLEAR(p->__pyx_v_pathlen); -  Py_CLEAR(p->__pyx_v_phrase); -  Py_CLEAR(p->__pyx_v_phrase_location); -  Py_CLEAR(p->__pyx_v_prefix); -  Py_CLEAR(p->__pyx_v_reachable_buffer); -  Py_CLEAR(p->__pyx_v_sa_range); -  Py_CLEAR(p->__pyx_v_sample); -  Py_CLEAR(p->__pyx_v_scores); -  Py_CLEAR(p->__pyx_v_self); -  Py_CLEAR(p->__pyx_v_spanlen); -  Py_CLEAR(p->__pyx_v_stop_time); -  Py_CLEAR(p->__pyx_v_suffix_link); -  Py_CLEAR(p->__pyx_v_suffix_link_xcat_index); -  Py_CLEAR(p->__pyx_v_word_id); -  Py_CLEAR(p->__pyx_v_xcat_index); -  Py_CLEAR(p->__pyx_v_xnode); -  Py_CLEAR(p->__pyx_v_xroot); -  Py_CLEAR(p->__pyx_t_1); -  Py_CLEAR(p->__pyx_t_4); -  Py_CLEAR(p->__pyx_t_5); -  (*Py_TYPE(o)->tp_free)(o); +  Py_XDECREF(p->__pyx_v_alignment); +  Py_XDECREF(p->__pyx_v_als); +  Py_XDECREF(p->__pyx_v_alslist); +  Py_XDECREF(((PyObject *)p->__pyx_v_chunklen)); +  Py_XDECREF(p->__pyx_v_count); +  Py_XDECREF(p->__pyx_v_e); +  Py_XDECREF(p->__pyx_v_elist); +  Py_XDECREF(p->__pyx_v_extract); +  Py_XDECREF(p->__pyx_v_extract_start); +  Py_XDECREF(p->__pyx_v_extract_stop); +  Py_XDECREF(((PyObject *)p->__pyx_v_extracts)); +  Py_XDECREF(p->__pyx_v_f); +  Py_XDECREF(p->__pyx_v_fcount); +  Py_XDECREF(p->__pyx_v_fphrases); +  Py_XDECREF(((PyObject *)p->__pyx_v_frontier)); +  Py_XDECREF(p->__pyx_v_frontier_nodes); +  Py_XDECREF(p->__pyx_v_fwords); +  Py_XDECREF(((PyObject *)p->__pyx_v_hiero_phrase)); +  Py_XDECREF(p->__pyx_v_is_shadow_path); +  Py_XDECREF(((PyObject *)p->__pyx_v_key)); +  Py_XDECREF(p->__pyx_v_loc); +  Py_XDECREF(((PyObject *)p->__pyx_v_locs)); +  Py_XDECREF(p->__pyx_v_max_locs); +  Py_XDECREF(((PyObject *)p->__pyx_v_new_frontier)); +  Py_XDECREF(p->__pyx_v_new_node); +  Py_XDECREF(((PyObject *)p->__pyx_v_next_states)); +  Py_XDECREF(p->__pyx_v_node); +  Py_XDECREF(((PyObject *)p->__pyx_v_nodes_isteps_away_buffer)); +  Py_XDECREF(p->__pyx_v_pathlen); +  Py_XDECREF(p->__pyx_v_phrase); +  Py_XDECREF(((PyObject *)p->__pyx_v_phrase_location)); +  Py_XDECREF(p->__pyx_v_prefix); +  Py_XDECREF(((PyObject *)p->__pyx_v_reachable_buffer)); +  Py_XDECREF(p->__pyx_v_sa_range); +  Py_XDECREF(((PyObject *)p->__pyx_v_sample)); +  Py_XDECREF(((PyObject *)p->__pyx_v_scores)); +  Py_XDECREF(((PyObject *)p->__pyx_v_self)); +  Py_XDECREF(p->__pyx_v_spanlen); +  Py_XDECREF(p->__pyx_v_stop_time); +  Py_XDECREF(p->__pyx_v_suffix_link); +  Py_XDECREF(p->__pyx_v_suffix_link_xcat_index); +  Py_XDECREF(p->__pyx_v_word_id); +  Py_XDECREF(p->__pyx_v_xcat_index); +  Py_XDECREF(p->__pyx_v_xnode); +  Py_XDECREF(p->__pyx_v_xroot); +  Py_XDECREF(p->__pyx_t_2); +  Py_XDECREF(p->__pyx_t_3); +  Py_XDECREF(p->__pyx_t_4); +  __pyx_tp_dealloc_3_sa___pyx_Generator(o);  }  static int __pyx_tp_traverse_3_sa___pyx_scope_struct_8_input(PyObject *o, visitproc v, void *a) {    int e;    struct __pyx_obj_3_sa___pyx_scope_struct_8_input *p = (struct __pyx_obj_3_sa___pyx_scope_struct_8_input *)o; +  e = __pyx_tp_traverse_3_sa___pyx_Generator(o, v, a); if (e) return e;    if (p->__pyx_v_alignment) {      e = (*v)(p->__pyx_v_alignment, a); if (e) return e;    } @@ -62270,21 +60217,22 @@ static int __pyx_tp_traverse_3_sa___pyx_scope_struct_8_input(PyObject *o, visitp    if (p->__pyx_v_xroot) {      e = (*v)(p->__pyx_v_xroot, 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_2) { +    e = (*v)(p->__pyx_t_2, a); if (e) return e; +  } +  if (p->__pyx_t_3) { +    e = (*v)(p->__pyx_t_3, a); if (e) return e;    }    if (p->__pyx_t_4) {      e = (*v)(p->__pyx_t_4, a); if (e) return e;    } -  if (p->__pyx_t_5) { -    e = (*v)(p->__pyx_t_5, a); if (e) return e; -  }    return 0;  }  static int __pyx_tp_clear_3_sa___pyx_scope_struct_8_input(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_8_input *p = (struct __pyx_obj_3_sa___pyx_scope_struct_8_input *)o;    PyObject* tmp; +  __pyx_tp_clear_3_sa___pyx_Generator(o);    tmp = ((PyObject*)p->__pyx_v_alignment);    p->__pyx_v_alignment = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp); @@ -62394,7 +60342,7 @@ static int __pyx_tp_clear_3_sa___pyx_scope_struct_8_input(PyObject *o) {    p->__pyx_v_scores = ((struct __pyx_obj_3_sa_FeatureVector *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp);    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_3_sa_HieroCachingRuleFactory *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    tmp = ((PyObject*)p->__pyx_v_spanlen);    p->__pyx_v_spanlen = Py_None; Py_INCREF(Py_None); @@ -62420,15 +60368,15 @@ static int __pyx_tp_clear_3_sa___pyx_scope_struct_8_input(PyObject *o) {    tmp = ((PyObject*)p->__pyx_v_xroot);    p->__pyx_v_xroot = 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_t_2); +  p->__pyx_t_2 = 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);    tmp = ((PyObject*)p->__pyx_t_4);    p->__pyx_t_4 = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp); -  tmp = ((PyObject*)p->__pyx_t_5); -  p->__pyx_t_5 = Py_None; Py_INCREF(Py_None); -  Py_XDECREF(tmp);    return 0;  } @@ -62590,9 +60538,9 @@ static PyTypeObject __pyx_type_3_sa___pyx_scope_struct_8_input = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_9___iter__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_9___iter__(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *p; -  PyObject *o = (*t->tp_alloc)(t, 0); +  PyObject *o = __pyx_tp_new_3_sa___pyx_Generator(t, a, k);    if (!o) return 0;    p = ((struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *)o);    p->__pyx_v_self = 0; @@ -62601,13 +60549,14 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_9___iter__(PyTypeObject *t  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct_9___iter__(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *)o; -  Py_CLEAR(p->__pyx_v_self); -  (*Py_TYPE(o)->tp_free)(o); +  Py_XDECREF(((PyObject *)p->__pyx_v_self)); +  __pyx_tp_dealloc_3_sa___pyx_Generator(o);  }  static int __pyx_tp_traverse_3_sa___pyx_scope_struct_9___iter__(PyObject *o, visitproc v, void *a) {    int e;    struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *)o; +  e = __pyx_tp_traverse_3_sa___pyx_Generator(o, v, a); if (e) return e;    if (p->__pyx_v_self) {      e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;    } @@ -62617,8 +60566,9 @@ static int __pyx_tp_traverse_3_sa___pyx_scope_struct_9___iter__(PyObject *o, vis  static int __pyx_tp_clear_3_sa___pyx_scope_struct_9___iter__(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct_9___iter__ *)o;    PyObject* tmp; +  __pyx_tp_clear_3_sa___pyx_Generator(o);    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_3_sa_FeatureVector *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } @@ -62781,7 +60731,7 @@ static PyTypeObject __pyx_type_3_sa___pyx_scope_struct_9___iter__ = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_10___str__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_10___str__(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa___pyx_scope_struct_10___str__ *p;    PyObject *o = (*t->tp_alloc)(t, 0);    if (!o) return 0; @@ -62792,7 +60742,7 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_10___str__(PyTypeObject *t  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct_10___str__(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_10___str__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct_10___str__ *)o; -  Py_CLEAR(p->__pyx_v_self); +  Py_XDECREF(((PyObject *)p->__pyx_v_self));    (*Py_TYPE(o)->tp_free)(o);  } @@ -62809,7 +60759,7 @@ static int __pyx_tp_clear_3_sa___pyx_scope_struct_10___str__(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_10___str__ *p = (struct __pyx_obj_3_sa___pyx_scope_struct_10___str__ *)o;    PyObject* tmp;    tmp = ((PyObject*)p->__pyx_v_self); -  p->__pyx_v_self = ((struct __pyx_obj_3_sa_FeatureVector *)Py_None); Py_INCREF(Py_None); +  p->__pyx_v_self = Py_None; Py_INCREF(Py_None);    Py_XDECREF(tmp);    return 0;  } @@ -62972,9 +60922,9 @@ static PyTypeObject __pyx_type_3_sa___pyx_scope_struct_10___str__ = {    #endif  }; -static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_11_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { +static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_11_genexpr(PyTypeObject *t, PyObject *a, PyObject *k) {    struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *p; -  PyObject *o = (*t->tp_alloc)(t, 0); +  PyObject *o = __pyx_tp_new_3_sa___pyx_Generator(t, a, k);    if (!o) return 0;    p = ((struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *)o);    p->__pyx_outer_scope = 0; @@ -62985,15 +60935,16 @@ static PyObject *__pyx_tp_new_3_sa___pyx_scope_struct_11_genexpr(PyTypeObject *t  static void __pyx_tp_dealloc_3_sa___pyx_scope_struct_11_genexpr(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *p = (struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *)o; -  Py_CLEAR(p->__pyx_outer_scope); -  Py_CLEAR(p->__pyx_v_feat); -  Py_CLEAR(p->__pyx_t_0); -  (*Py_TYPE(o)->tp_free)(o); +  Py_XDECREF(((PyObject *)p->__pyx_outer_scope)); +  Py_XDECREF(p->__pyx_v_feat); +  Py_XDECREF(p->__pyx_t_0); +  __pyx_tp_dealloc_3_sa___pyx_Generator(o);  }  static int __pyx_tp_traverse_3_sa___pyx_scope_struct_11_genexpr(PyObject *o, visitproc v, void *a) {    int e;    struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *p = (struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *)o; +  e = __pyx_tp_traverse_3_sa___pyx_Generator(o, v, a); if (e) return e;    if (p->__pyx_outer_scope) {      e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e;    } @@ -63009,6 +60960,7 @@ static int __pyx_tp_traverse_3_sa___pyx_scope_struct_11_genexpr(PyObject *o, vis  static int __pyx_tp_clear_3_sa___pyx_scope_struct_11_genexpr(PyObject *o) {    struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *p = (struct __pyx_obj_3_sa___pyx_scope_struct_11_genexpr *)o;    PyObject* tmp; +  __pyx_tp_clear_3_sa___pyx_Generator(o);    tmp = ((PyObject*)p->__pyx_outer_scope);    p->__pyx_outer_scope = ((struct __pyx_obj_3_sa___pyx_scope_struct_10___str__ *)Py_None); Py_INCREF(Py_None);    Py_XDECREF(tmp); @@ -63231,11 +61183,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {    {&__pyx_kp_s_133, __pyx_k_133, sizeof(__pyx_k_133), 0, 0, 1, 0},    {&__pyx_kp_s_134, __pyx_k_134, sizeof(__pyx_k_134), 0, 0, 1, 0},    {&__pyx_kp_s_135, __pyx_k_135, sizeof(__pyx_k_135), 0, 0, 1, 0}, +  {&__pyx_kp_s_136, __pyx_k_136, sizeof(__pyx_k_136), 0, 0, 1, 0},    {&__pyx_kp_s_138, __pyx_k_138, sizeof(__pyx_k_138), 0, 0, 1, 0}, -  {&__pyx_kp_s_139, __pyx_k_139, sizeof(__pyx_k_139), 0, 0, 1, 0},    {&__pyx_kp_s_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 0, 1, 0}, -  {&__pyx_kp_s_143, __pyx_k_143, sizeof(__pyx_k_143), 0, 0, 1, 0}, -  {&__pyx_kp_s_144, __pyx_k_144, sizeof(__pyx_k_144), 0, 0, 1, 0},    {&__pyx_kp_s_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 0, 1, 0},    {&__pyx_kp_s_2, __pyx_k_2, sizeof(__pyx_k_2), 0, 0, 1, 0},    {&__pyx_kp_s_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 0, 1, 0}, @@ -63483,7 +61433,7 @@ static int __Pyx_InitCachedBuiltins(void) {    __pyx_builtin_IndexError = __Pyx_GetName(__pyx_b, __pyx_n_s__IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_TypeError = __Pyx_GetName(__pyx_b, __pyx_n_s__TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_builtin_enumerate = __Pyx_GetName(__pyx_b, __pyx_n_s__enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_builtin_enumerate = __Pyx_GetName(__pyx_b, __pyx_n_s__enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_map = __Pyx_GetName(__pyx_b, __pyx_n_s__map); if (!__pyx_builtin_map) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_Exception = __Pyx_GetName(__pyx_b, __pyx_n_s__Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_builtin_zip = __Pyx_GetName(__pyx_b, __pyx_n_s__zip); if (!__pyx_builtin_zip) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -63498,7 +61448,7 @@ static int __Pyx_InitCachedBuiltins(void) {  static int __Pyx_InitCachedConstants(void) {    __Pyx_RefNannyDeclarations -  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); +  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants");    /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":20   *         self.word2id = {"END_OF_FILE":0, "END_OF_LINE":1} @@ -63508,7 +61458,7 @@ static int __Pyx_InitCachedConstants(void) {   *         self.sent_index = IntList(1000,1000)   */    __pyx_k_tuple_10 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_10)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_10); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_10));    __Pyx_INCREF(__pyx_int_1000);    PyTuple_SET_ITEM(__pyx_k_tuple_10, 0, __pyx_int_1000);    __Pyx_GIVEREF(__pyx_int_1000); @@ -63525,7 +61475,7 @@ static int __Pyx_InitCachedConstants(void) {   *         self.use_sent_id = use_sent_id   */    __pyx_k_tuple_11 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_11)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_11); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_11));    __Pyx_INCREF(__pyx_int_1000);    PyTuple_SET_ITEM(__pyx_k_tuple_11, 0, __pyx_int_1000);    __Pyx_GIVEREF(__pyx_int_1000); @@ -63542,7 +61492,7 @@ static int __Pyx_InitCachedConstants(void) {   *         if from_binary:   */    __pyx_k_tuple_12 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_12)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_12); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_12));    __Pyx_INCREF(__pyx_int_1000);    PyTuple_SET_ITEM(__pyx_k_tuple_12, 0, __pyx_int_1000);    __Pyx_GIVEREF(__pyx_int_1000); @@ -63551,29 +61501,29 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GIVEREF(__pyx_int_1000);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_12)); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":65 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":68   *                     f.write("%s " % self.get_word(w_id))   *                 if w_id == 1:   *                     f.write("\n")             # <<<<<<<<<<<<<<   *    *     def read_text(self, char* filename):   */ -  __pyx_k_tuple_15 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_15)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_15); +  __pyx_k_tuple_15 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_15)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_15));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_15, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_15)); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":60 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":63   *    *     def write_text(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<<   *             for w_id in self.data:   *                 if w_id > 1:   */ -  __pyx_k_tuple_16 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_16)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_16); +  __pyx_k_tuple_16 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_16)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_16));    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_k_tuple_16, 0, Py_None);    __Pyx_GIVEREF(Py_None); @@ -63585,15 +61535,15 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GIVEREF(Py_None);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_16)); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":68 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":71   *    *     def read_text(self, char* filename):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<<   *             self.read_text_data(fp)   *    */ -  __pyx_k_tuple_17 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_17)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_17); +  __pyx_k_tuple_17 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_17)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_17));    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_k_tuple_17, 0, Py_None);    __Pyx_GIVEREF(Py_None); @@ -63605,29 +61555,29 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GIVEREF(Py_None);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_17)); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":73 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":76   *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:   *             data = (line.split(' ||| ')[side] for line in fp)             # <<<<<<<<<<<<<<   *             self.read_text_data(data)   *    */ -  __pyx_k_tuple_19 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_19)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_19); +  __pyx_k_tuple_19 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_19)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_19));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_18));    PyTuple_SET_ITEM(__pyx_k_tuple_19, 0, ((PyObject *)__pyx_kp_s_18));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_18));    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_19)); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":72 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":75   *    *     def read_bitext(self, char* filename, int side):   *         with gzip_or_text(filename) as fp:             # <<<<<<<<<<<<<<   *             data = (line.split(' ||| ')[side] for line in fp)   *             self.read_text_data(data)   */ -  __pyx_k_tuple_20 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_20)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_20); +  __pyx_k_tuple_20 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_20)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_20));    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_k_tuple_20, 0, Py_None);    __Pyx_GIVEREF(Py_None); @@ -63639,70 +61589,70 @@ static int __Pyx_InitCachedConstants(void) {    __Pyx_GIVEREF(Py_None);    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_20)); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":143 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":146   *         for i in self.data:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<<   *         for i in self.sent_index:   *             f.write("%d " %i)   */ -  __pyx_k_tuple_22 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_22)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_22); +  __pyx_k_tuple_22 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_22)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_22));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_22, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_22)); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":146 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":149   *         for i in self.sent_index:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<<   *         for i in self.sent_id:   *             f.write("%d " %i)   */ -  __pyx_k_tuple_23 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_23)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_23); +  __pyx_k_tuple_23 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_23)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_23));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_23, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_23)); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":149 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":152   *         for i in self.sent_id:   *             f.write("%d " %i)   *         f.write("\n")             # <<<<<<<<<<<<<<   *         for word in self.id2word:   *             f.write("%s %d " % (word, self.word2id[word]))   */ -  __pyx_k_tuple_24 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_24)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_24); +  __pyx_k_tuple_24 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_24)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_24));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_24, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_24)); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":152 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":155   *         for word in self.id2word:   *             f.write("%s %d " % (word, self.word2id[word]))   *         f.write("\n")             # <<<<<<<<<<<<<<   *    *     def write_enhanced(self, char* filename):   */ -  __pyx_k_tuple_26 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_26)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_26); +  __pyx_k_tuple_26 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_26)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_26));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_26, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_26)); -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":155 +  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/data_array.pxi":158   *    *     def write_enhanced(self, char* filename):   *         with open(filename, "w") as f:             # <<<<<<<<<<<<<<   *             self.write_enhanced_handle(self, f)   */ -  __pyx_k_tuple_28 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_28)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_28); +  __pyx_k_tuple_28 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_28)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_28));    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_k_tuple_28, 0, Py_None);    __Pyx_GIVEREF(Py_None); @@ -63722,7 +61672,7 @@ static int __Pyx_InitCachedConstants(void) {   *         if from_binary:   */    __pyx_k_tuple_29 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_29)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_29); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_29));    __Pyx_INCREF(__pyx_int_1000);    PyTuple_SET_ITEM(__pyx_k_tuple_29, 0, __pyx_int_1000);    __Pyx_GIVEREF(__pyx_int_1000); @@ -63739,7 +61689,7 @@ static int __Pyx_InitCachedConstants(void) {   *             self.read_binary(from_binary)   */    __pyx_k_tuple_30 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_30)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_30); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_30));    __Pyx_INCREF(__pyx_int_1000);    PyTuple_SET_ITEM(__pyx_k_tuple_30, 0, __pyx_int_1000);    __Pyx_GIVEREF(__pyx_int_1000); @@ -63756,7 +61706,7 @@ static int __Pyx_InitCachedConstants(void) {   *             self.sent_index.append(len(self.links))   */    __pyx_k_tuple_32 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_32)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_32); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_32));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_31));    PyTuple_SET_ITEM(__pyx_k_tuple_32, 0, ((PyObject *)__pyx_kp_s_31));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_31)); @@ -63770,7 +61720,7 @@ static int __Pyx_InitCachedConstants(void) {   *                 self.sent_index.append(len(self.links))   */    __pyx_k_tuple_33 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_33)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_33); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_33));    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_k_tuple_33, 0, Py_None);    __Pyx_GIVEREF(Py_None); @@ -63790,7 +61740,7 @@ static int __Pyx_InitCachedConstants(void) {   *                 f.write("%d-%d " % self.unlink(link))   */    __pyx_k_tuple_34 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_34)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_34); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_34));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_34, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); @@ -63804,7 +61754,7 @@ static int __Pyx_InitCachedConstants(void) {   *     def write_binary(self, char* filename):   */    __pyx_k_tuple_36 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_36)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_36); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_36));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_36, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); @@ -63818,7 +61768,7 @@ static int __Pyx_InitCachedConstants(void) {   *             for i, link in enumerate(self.links):   */    __pyx_k_tuple_37 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_37)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_37); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_37));    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_k_tuple_37, 0, Py_None);    __Pyx_GIVEREF(Py_None); @@ -63838,7 +61788,7 @@ static int __Pyx_InitCachedConstants(void) {   *                 f.write("%d " % i)   */    __pyx_k_tuple_38 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_38)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_38); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_38));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_38, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); @@ -63852,7 +61802,7 @@ static int __Pyx_InitCachedConstants(void) {   *     def alignment(self, i):   */    __pyx_k_tuple_39 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_39)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_39); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_39));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_39, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); @@ -63866,7 +61816,7 @@ static int __Pyx_InitCachedConstants(void) {   *             for link in self.links:   */    __pyx_k_tuple_40 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_40)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_40); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_40));    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_k_tuple_40, 0, Py_None);    __Pyx_GIVEREF(Py_None); @@ -63886,7 +61836,7 @@ static int __Pyx_InitCachedConstants(void) {   *                 (fword, eword, score1, score2) = line.split()   */    __pyx_k_tuple_43 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_43)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_43); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_43));    __Pyx_INCREF(__pyx_int_0);    PyTuple_SET_ITEM(__pyx_k_tuple_43, 0, __pyx_int_0);    __Pyx_GIVEREF(__pyx_int_0); @@ -63900,7 +61850,7 @@ static int __Pyx_InitCachedConstants(void) {   *             for line in f:   */    __pyx_k_tuple_44 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_44)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_44); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_44));    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_k_tuple_44, 0, Py_None);    __Pyx_GIVEREF(Py_None); @@ -63920,7 +61870,7 @@ static int __Pyx_InitCachedConstants(void) {   *             return   */    __pyx_k_tuple_47 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_47)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_47); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_47));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_46));    PyTuple_SET_ITEM(__pyx_k_tuple_47, 0, ((PyObject *)__pyx_kp_s_46));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_46)); @@ -63934,7 +61884,7 @@ static int __Pyx_InitCachedConstants(void) {   *                 f.write("%d %f %f " % (i, s1, s2))   */    __pyx_k_tuple_49 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_49)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_49); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_49));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_49, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); @@ -63948,7 +61898,7 @@ static int __Pyx_InitCachedConstants(void) {   *                 f.write("%d %s " % (i, w))   */    __pyx_k_tuple_51 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_51)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_51); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_51));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_51, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); @@ -63962,7 +61912,7 @@ static int __Pyx_InitCachedConstants(void) {   *                 f.write("%d %s " % (i, w))   */    __pyx_k_tuple_53 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_53)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_53); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_53));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_53, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); @@ -63976,7 +61926,7 @@ static int __Pyx_InitCachedConstants(void) {   *    */    __pyx_k_tuple_54 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_54)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_54); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_54));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_54, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); @@ -63990,7 +61940,7 @@ static int __Pyx_InitCachedConstants(void) {   *                 f.write("%d " % i)   */    __pyx_k_tuple_55 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_55)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_55); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_55));    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_k_tuple_55, 0, Py_None);    __Pyx_GIVEREF(Py_None); @@ -64010,7 +61960,7 @@ static int __Pyx_InitCachedConstants(void) {   *             f_id = 0   */    __pyx_k_tuple_57 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_57)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_57); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_57));    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_k_tuple_57, 0, Py_None);    __Pyx_GIVEREF(Py_None); @@ -64030,7 +61980,7 @@ static int __Pyx_InitCachedConstants(void) {   *         n = self.sa.sa.len   */    __pyx_k_tuple_61 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_61)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_61); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_61));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_60));    PyTuple_SET_ITEM(__pyx_k_tuple_61, 0, ((PyObject *)__pyx_kp_s_60));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_60)); @@ -64044,7 +61994,7 @@ static int __Pyx_InitCachedConstants(void) {   *     def compute_stats(self, int max_n):   */    __pyx_k_tuple_63 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_63)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_63); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_63));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_62));    PyTuple_SET_ITEM(__pyx_k_tuple_63, 0, ((PyObject *)__pyx_kp_s_62));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_62)); @@ -64058,7 +62008,7 @@ static int __Pyx_InitCachedConstants(void) {   *    */    __pyx_k_tuple_73 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_73)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_73); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_73));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_72));    PyTuple_SET_ITEM(__pyx_k_tuple_73, 0, ((PyObject *)__pyx_kp_s_72));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_72)); @@ -64072,7 +62022,7 @@ static int __Pyx_InitCachedConstants(void) {   *         for i from 0 <= i < N:   */    __pyx_k_tuple_75 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_75)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_75); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_75));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_74));    PyTuple_SET_ITEM(__pyx_k_tuple_75, 0, ((PyObject *)__pyx_kp_s_74));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_74)); @@ -64086,7 +62036,7 @@ static int __Pyx_InitCachedConstants(void) {   *         ptr1 = 0   */    __pyx_k_tuple_77 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_77)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_77); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_77));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_76));    PyTuple_SET_ITEM(__pyx_k_tuple_77, 0, ((PyObject *)__pyx_kp_s_76));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_76)); @@ -64100,7 +62050,7 @@ static int __Pyx_InitCachedConstants(void) {   *    */    __pyx_k_tuple_79 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_79)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_79); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_79));    __Pyx_INCREF(__pyx_int_neg_1);    PyTuple_SET_ITEM(__pyx_k_tuple_79, 0, __pyx_int_neg_1);    __Pyx_GIVEREF(__pyx_int_neg_1); @@ -64114,7 +62064,7 @@ static int __Pyx_InitCachedConstants(void) {   *    */    __pyx_k_tuple_80 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_80)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_80); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_80));    __Pyx_INCREF(__pyx_int_neg_1);    PyTuple_SET_ITEM(__pyx_k_tuple_80, 0, __pyx_int_neg_1);    __Pyx_GIVEREF(__pyx_int_neg_1); @@ -64128,7 +62078,7 @@ static int __Pyx_InitCachedConstants(void) {   *                     combined_pattern = pattern2 + (-1,) + pattern1   */    __pyx_k_tuple_81 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_81)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_81); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_81));    __Pyx_INCREF(__pyx_int_neg_1);    PyTuple_SET_ITEM(__pyx_k_tuple_81, 0, __pyx_int_neg_1);    __Pyx_GIVEREF(__pyx_int_neg_1); @@ -64142,7 +62092,7 @@ static int __Pyx_InitCachedConstants(void) {   *    */    __pyx_k_tuple_82 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_82)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_82); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_82));    __Pyx_INCREF(__pyx_int_neg_1);    PyTuple_SET_ITEM(__pyx_k_tuple_82, 0, __pyx_int_neg_1);    __Pyx_GIVEREF(__pyx_int_neg_1); @@ -64156,7 +62106,7 @@ static int __Pyx_InitCachedConstants(void) {   *             j = isa.arr[i]   */    __pyx_k_tuple_94 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_94)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_94); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_94));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_93));    PyTuple_SET_ITEM(__pyx_k_tuple_94, 0, ((PyObject *)__pyx_kp_s_93));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_93)); @@ -64170,7 +62120,7 @@ static int __Pyx_InitCachedConstants(void) {   *                 f.write("%d " % w_i)   */    __pyx_k_tuple_97 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_97)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_97); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_97));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_97, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); @@ -64184,7 +62134,7 @@ static int __Pyx_InitCachedConstants(void) {   *     cdef int __search_high(self, int word_id, int offset, int low, int high):   */    __pyx_k_tuple_98 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_98)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_98); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_98));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_14));    PyTuple_SET_ITEM(__pyx_k_tuple_98, 0, ((PyObject *)__pyx_kp_s_14));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_14)); @@ -64198,7 +62148,7 @@ static int __Pyx_InitCachedConstants(void) {   *             for a_i in self.sa:   */    __pyx_k_tuple_99 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_99)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_99); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_99));    __Pyx_INCREF(Py_None);    PyTuple_SET_ITEM(__pyx_k_tuple_99, 0, Py_None);    __Pyx_GIVEREF(Py_None); @@ -64218,7 +62168,7 @@ static int __Pyx_InitCachedConstants(void) {   *     def sample(self, PhraseLocation phrase_location):   */    __pyx_k_tuple_103 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_103)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_103); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_103));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_102));    PyTuple_SET_ITEM(__pyx_k_tuple_103, 0, ((PyObject *)__pyx_kp_s_102));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_102)); @@ -64232,7 +62182,7 @@ static int __Pyx_InitCachedConstants(void) {   *    */    __pyx_k_tuple_108 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_108)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_108); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_108));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_107));    PyTuple_SET_ITEM(__pyx_k_tuple_108, 0, ((PyObject *)__pyx_kp_s_107));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_107)); @@ -64246,30 +62196,12 @@ static int __Pyx_InitCachedConstants(void) {   *                 if lookup_required:   */    __pyx_k_tuple_123 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_123)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 1022; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_123); +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_123));    __Pyx_INCREF(((PyObject *)__pyx_kp_s_122));    PyTuple_SET_ITEM(__pyx_k_tuple_123, 0, ((PyObject *)__pyx_kp_s_122));    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_122));    __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_123)); -  /* "_sa.pyx":9 - *             resource.getrusage(resource.RUSAGE_SELF).ru_stime) - *  - * def gzip_or_text(char* filename):             # <<<<<<<<<<<<<< - *     if filename.endswith('.gz'): - *         return gzip.GzipFile(filename) - */ -  __pyx_k_tuple_136 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_136)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_136); -  __Pyx_INCREF(((PyObject *)__pyx_n_s__filename)); -  PyTuple_SET_ITEM(__pyx_k_tuple_136, 0, ((PyObject *)__pyx_n_s__filename)); -  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__filename)); -  __Pyx_INCREF(((PyObject *)__pyx_n_s__filename)); -  PyTuple_SET_ITEM(__pyx_k_tuple_136, 1, ((PyObject *)__pyx_n_s__filename)); -  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__filename)); -  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_136)); -  __pyx_k_codeobj_137 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_138, __pyx_n_s__gzip_or_text, 9, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_137)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -    /* "_sa.pyx":15   *         return open(filename)   *  @@ -64277,29 +62209,12 @@ static int __Pyx_InitCachedConstants(void) {   *    * include "float_list.pxi"   */ -  __pyx_k_tuple_140 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_140)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_140); -  __Pyx_INCREF(((PyObject *)__pyx_kp_s_139)); -  PyTuple_SET_ITEM(__pyx_k_tuple_140, 0, ((PyObject *)__pyx_kp_s_139)); -  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_139)); -  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_140)); - -  /* "/home/hltcoe/alopez/dev/cdec/python/src/sa/sym.pxi":104 - *     return ALPHABET.setindex(sym, id) - *  - * def sym_fromstring(char* string, bint terminal):             # <<<<<<<<<<<<<< - *     return ALPHABET.fromstring(string, terminal) - */ -  __pyx_k_tuple_141 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_141)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __Pyx_GOTREF(__pyx_k_tuple_141); -  __Pyx_INCREF(((PyObject *)__pyx_n_s__string)); -  PyTuple_SET_ITEM(__pyx_k_tuple_141, 0, ((PyObject *)__pyx_n_s__string)); -  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__string)); -  __Pyx_INCREF(((PyObject *)__pyx_n_s__terminal)); -  PyTuple_SET_ITEM(__pyx_k_tuple_141, 1, ((PyObject *)__pyx_n_s__terminal)); -  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__terminal)); -  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_141)); -  __pyx_k_codeobj_142 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_141, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_143, __pyx_n_s__sym_fromstring, 104, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_142)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_k_tuple_137 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_137)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_137)); +  __Pyx_INCREF(((PyObject *)__pyx_kp_s_136)); +  PyTuple_SET_ITEM(__pyx_k_tuple_137, 0, ((PyObject *)__pyx_kp_s_136)); +  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_136)); +  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_137));    __Pyx_RefNannyFinishContext();    return 0;    __pyx_L1_error:; @@ -64308,6 +62223,9 @@ static int __Pyx_InitCachedConstants(void) {  }  static int __Pyx_InitGlobals(void) { +  #if PY_VERSION_HEX < 0x02040000 +  if (unlikely(__Pyx_Py23SetsImport() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  #endif    if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; @@ -64346,18 +62264,12 @@ PyMODINIT_FUNC PyInit__sa(void)            Py_FatalError("failed to import 'refnanny' module");    }    #endif -  __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit__sa(void)", 0); +  __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit__sa(void)");    if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  #ifdef __Pyx_CyFunction_USED -  if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  #endif -  #ifdef __Pyx_FusedFunction_USED -  if (__pyx_FusedFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  #endif -  #ifdef __Pyx_Generator_USED -  if (__pyx_Generator_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  #ifdef __pyx_binding_PyCFunctionType_USED +  if (__pyx_binding_PyCFunctionType_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    #endif    /*--- Library function declarations ---*/    /*--- Threads initialization code ---*/ @@ -64368,15 +62280,16 @@ PyMODINIT_FUNC PyInit__sa(void)    #endif    /*--- Module creation code ---*/    #if PY_MAJOR_VERSION < 3 -  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("_sa"), __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); +  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("_sa"), __pyx_methods, 0, 0, PYTHON_API_VERSION);    #else    __pyx_m = PyModule_Create(&__pyx_moduledef);    #endif -  if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); if (unlikely(!__pyx_b)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  #if CYTHON_COMPILING_IN_PYPY -  Py_INCREF(__pyx_b); +  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; +  #if PY_MAJOR_VERSION < 3 +  Py_INCREF(__pyx_m);    #endif +  __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); +  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};    /*--- Initialize various global constants etc. ---*/    if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -64513,10 +62426,10 @@ PyMODINIT_FUNC PyInit__sa(void)    if (__Pyx_SetAttrString(__pyx_m, "Precomputation", (PyObject *)&__pyx_type_3_sa_Precomputation) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa_Precomputation = &__pyx_type_3_sa_Precomputation;    __pyx_vtabptr_3_sa_SuffixArray = &__pyx_vtable_3_sa_SuffixArray; -  __pyx_vtable_3_sa_SuffixArray.__pyx___search_high = (int (*)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int))__pyx_f_3_sa_11SuffixArray___search_high; -  __pyx_vtable_3_sa_SuffixArray.__pyx___search_low = (int (*)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int))__pyx_f_3_sa_11SuffixArray___search_low; -  __pyx_vtable_3_sa_SuffixArray.__pyx___get_range = (PyObject *(*)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int, int))__pyx_f_3_sa_11SuffixArray___get_range; -  __pyx_vtable_3_sa_SuffixArray.__pyx___lookup_helper = (PyObject *(*)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int))__pyx_f_3_sa_11SuffixArray___lookup_helper; +  __pyx_vtable_3_sa_SuffixArray.__search_high = (int (*)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int))__pyx_f_3_sa_11SuffixArray___search_high; +  __pyx_vtable_3_sa_SuffixArray.__search_low = (int (*)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int))__pyx_f_3_sa_11SuffixArray___search_low; +  __pyx_vtable_3_sa_SuffixArray.__get_range = (PyObject *(*)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int, int))__pyx_f_3_sa_11SuffixArray___get_range; +  __pyx_vtable_3_sa_SuffixArray.__lookup_helper = (PyObject *(*)(struct __pyx_obj_3_sa_SuffixArray *, int, int, int, int))__pyx_f_3_sa_11SuffixArray___lookup_helper;    if (PyType_Ready(&__pyx_type_3_sa_SuffixArray) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__Pyx_SetVtable(__pyx_type_3_sa_SuffixArray.tp_dict, __pyx_vtabptr_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_3_sa_SuffixArray) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -64566,28 +62479,39 @@ PyMODINIT_FUNC PyInit__sa(void)    if (__Pyx_SetVtable(__pyx_type_3_sa_Scorer.tp_dict, __pyx_vtabptr_3_sa_Scorer) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    if (__Pyx_SetAttrString(__pyx_m, "Scorer", (PyObject *)&__pyx_type_3_sa_Scorer) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa_Scorer = &__pyx_type_3_sa_Scorer; +  if (PyType_Ready(&__pyx_Generator_type) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_ptype_3_sa___pyx_Generator = &__pyx_Generator_type; +  __pyx_type_3_sa___pyx_scope_struct____iter__.tp_base = __pyx_ptype_3_sa___pyx_Generator;    if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct____iter__) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct____iter__ = &__pyx_type_3_sa___pyx_scope_struct____iter__; -  if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_1_read_bitext) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_1_read_bitext) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct_1_read_bitext = &__pyx_type_3_sa___pyx_scope_struct_1_read_bitext; -  if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_2_genexpr) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_type_3_sa___pyx_scope_struct_2_genexpr.tp_base = __pyx_ptype_3_sa___pyx_Generator; +  if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_2_genexpr) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct_2_genexpr = &__pyx_type_3_sa___pyx_scope_struct_2_genexpr; +  __pyx_type_3_sa___pyx_scope_struct_3_compute_stats.tp_base = __pyx_ptype_3_sa___pyx_Generator;    if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_3_compute_stats) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct_3_compute_stats = &__pyx_type_3_sa___pyx_scope_struct_3_compute_stats; +  __pyx_type_3_sa___pyx_scope_struct_4___iter__.tp_base = __pyx_ptype_3_sa___pyx_Generator;    if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_4___iter__) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct_4___iter__ = &__pyx_type_3_sa___pyx_scope_struct_4___iter__;    if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_5___str__) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct_5___str__ = &__pyx_type_3_sa___pyx_scope_struct_5___str__; +  __pyx_type_3_sa___pyx_scope_struct_6_genexpr.tp_base = __pyx_ptype_3_sa___pyx_Generator;    if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_6_genexpr) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct_6_genexpr = &__pyx_type_3_sa___pyx_scope_struct_6_genexpr; +  __pyx_type_3_sa___pyx_scope_struct_7_alignments.tp_base = __pyx_ptype_3_sa___pyx_Generator;    if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_7_alignments) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct_7_alignments = &__pyx_type_3_sa___pyx_scope_struct_7_alignments; +  __pyx_type_3_sa___pyx_scope_struct_8_input.tp_base = __pyx_ptype_3_sa___pyx_Generator;    if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_8_input) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct_8_input = &__pyx_type_3_sa___pyx_scope_struct_8_input; +  __pyx_type_3_sa___pyx_scope_struct_9___iter__.tp_base = __pyx_ptype_3_sa___pyx_Generator;    if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_9___iter__) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct_9___iter__ = &__pyx_type_3_sa___pyx_scope_struct_9___iter__;    if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_10___str__) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct_10___str__ = &__pyx_type_3_sa___pyx_scope_struct_10___str__; +  __pyx_type_3_sa___pyx_scope_struct_11_genexpr.tp_base = __pyx_ptype_3_sa___pyx_Generator;    if (PyType_Ready(&__pyx_type_3_sa___pyx_scope_struct_11_genexpr) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __pyx_ptype_3_sa___pyx_scope_struct_11_genexpr = &__pyx_type_3_sa___pyx_scope_struct_11_genexpr;    /*--- Type import code ---*/ @@ -64635,7 +62559,7 @@ PyMODINIT_FUNC PyInit__sa(void)   *     if filename.endswith('.gz'):   *         return gzip.GzipFile(filename)   */ -  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_3_sa_1gzip_or_text, NULL, __pyx_n_s___sa); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_3_sa_gzip_or_text, NULL, __pyx_n_s___sa); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__gzip_or_text, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -64652,7 +62576,7 @@ PyMODINIT_FUNC PyInit__sa(void)    __pyx_t_2 = PyObject_GetAttr(__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 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_140), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_137), 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 (PyObject_SetAttr(__pyx_m, __pyx_n_s__logger, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -64737,7 +62661,7 @@ PyMODINIT_FUNC PyInit__sa(void)   * def sym_fromstring(char* string, bint terminal):             # <<<<<<<<<<<<<<   *     return ALPHABET.fromstring(string, terminal)   */ -  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_3_sa_3sym_fromstring, NULL, __pyx_n_s___sa); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} +  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_3_sa_1sym_fromstring, NULL, __pyx_n_s___sa); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_1);    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__sym_fromstring, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -64774,7 +62698,7 @@ PyMODINIT_FUNC PyInit__sa(void)   * FeatureContext = namedtuple('FeatureContext',   */    __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); +  __Pyx_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_INCREF(((PyObject *)__pyx_n_s__defaultdict));    PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__defaultdict));    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__defaultdict)); @@ -64787,27 +62711,15 @@ PyMODINIT_FUNC PyInit__sa(void)    __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__collections), ((PyObject *)__pyx_t_1), -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_GOTREF(__pyx_t_2);    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__defaultdict); -  if (__pyx_t_1 == NULL) { -    if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__defaultdict); -    if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  } +  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__defaultdict); 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);    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__defaultdict, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__Counter); -  if (__pyx_t_1 == NULL) { -    if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__Counter); -    if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  } +  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__Counter); 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);    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Counter, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__namedtuple); -  if (__pyx_t_1 == NULL) { -    if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__namedtuple); -    if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} -  } +  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__namedtuple); 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);    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__namedtuple, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -64831,7 +62743,7 @@ PyMODINIT_FUNC PyInit__sa(void)   *      'paircount',   */    __pyx_t_1 = PyList_New(10); 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_GOTREF(((PyObject *)__pyx_t_1));    __Pyx_INCREF(((PyObject *)__pyx_n_s__fphrase));    PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__fphrase));    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__fphrase)); @@ -64863,7 +62775,7 @@ PyMODINIT_FUNC PyInit__sa(void)    PyList_SET_ITEM(__pyx_t_1, 9, ((PyObject *)__pyx_n_s__e_text));    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__e_text));    __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_GOTREF(__pyx_t_3); +  __Pyx_GOTREF(((PyObject *)__pyx_t_3));    __Pyx_INCREF(((PyObject *)__pyx_n_s__FeatureContext));    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_s__FeatureContext));    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__FeatureContext)); @@ -64916,10 +62828,10 @@ PyMODINIT_FUNC PyInit__sa(void)    __pyx_t_3 = __Pyx_PyBool_FromLong(1); 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_t_2 = PyTuple_New(2); 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); -  __Pyx_INCREF(((PyObject *)__pyx_kp_s_144)); -  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_144)); -  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_144)); +  __Pyx_GOTREF(((PyObject *)__pyx_t_2)); +  __Pyx_INCREF(((PyObject *)__pyx_kp_s_138)); +  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_138)); +  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_138));    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);    __Pyx_GIVEREF(__pyx_t_3);    __pyx_t_3 = 0; @@ -65008,6 +62920,7 @@ PyMODINIT_FUNC PyInit__sa(void)  }  /* Runtime support code */ +  #if CYTHON_REFNANNY  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {      PyObject *m = NULL, *p = NULL; @@ -65039,6 +62952,92 @@ static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {      return result;  } +static int __Pyx_PyBytes_SingleTailmatch(PyObject* self, PyObject* arg, Py_ssize_t start, +                                         Py_ssize_t end, int direction) +{ +    const char* self_ptr = PyBytes_AS_STRING(self); +    Py_ssize_t self_len = PyBytes_GET_SIZE(self); +    const char* sub_ptr; +    Py_ssize_t sub_len; +    int retval; + +#if PY_VERSION_HEX >= 0x02060000 +    Py_buffer view; +    view.obj = NULL; +#endif + +    if ( PyBytes_Check(arg) ) { +        sub_ptr = PyBytes_AS_STRING(arg); +        sub_len = PyBytes_GET_SIZE(arg); +    } +#if PY_MAJOR_VERSION < 3 +    // Python 2.x allows mixing unicode and str +    else if ( PyUnicode_Check(arg) ) { +        return PyUnicode_Tailmatch(self, arg, start, end, direction); +    } +#endif +    else { +#if PY_VERSION_HEX < 0x02060000 +        if (unlikely(PyObject_AsCharBuffer(arg, &sub_ptr, &sub_len))) +            return -1; +#else +        if (unlikely(PyObject_GetBuffer(self, &view, PyBUF_SIMPLE) == -1)) +            return -1; +        sub_ptr = (const char*) view.buf; +        sub_len = view.len; +#endif +    } + +    if (end > self_len) +        end = self_len; +    else if (end < 0) +        end += self_len; +    if (end < 0) +        end = 0; +    if (start < 0) +        start += self_len; +    if (start < 0) +        start = 0; + +    if (direction > 0) { +        /* endswith */ +        if (end-sub_len > start) +            start = end - sub_len; +    } + +    if (start + sub_len <= end) +        retval = !memcmp(self_ptr+start, sub_ptr, sub_len); +    else +        retval = 0; + +#if PY_VERSION_HEX >= 0x02060000 +    if (view.obj) +        PyBuffer_Release(&view); +#endif + +    return retval; +} + +static int __Pyx_PyBytes_Tailmatch(PyObject* self, PyObject* substr, Py_ssize_t start, +                                   Py_ssize_t end, int direction) +{ +    if (unlikely(PyTuple_Check(substr))) { +        int result; +        Py_ssize_t i; +        for (i = 0; i < PyTuple_GET_SIZE(substr); i++) { +            result = __Pyx_PyBytes_SingleTailmatch(self, PyTuple_GET_ITEM(substr, i), +                                                   start, end, direction); +            if (result) { +                return result; +            } +        } +        return 0; +    } + +    return __Pyx_PyBytes_SingleTailmatch(self, substr, start, end, direction); +} + +  static void __Pyx_RaiseDoubleKeywordsError(      const char* func_name,      PyObject* kw_name) @@ -65048,7 +63047,7 @@ static void __Pyx_RaiseDoubleKeywordsError(          "%s() got multiple values for keyword argument '%U'", func_name, kw_name);          #else          "%s() got multiple values for keyword argument '%s'", func_name, -        PyString_AsString(kw_name)); +        PyString_AS_STRING(kw_name));          #endif  } @@ -65064,77 +63063,55 @@ static int __Pyx_ParseOptionalKeywords(      Py_ssize_t pos = 0;      PyObject*** name;      PyObject*** first_kw_arg = argnames + num_pos_args; +      while (PyDict_Next(kwds, &pos, &key, &value)) {          name = first_kw_arg;          while (*name && (**name != key)) name++;          if (*name) {              values[name-argnames] = value; -            continue; -        } -        name = first_kw_arg; -        #if PY_MAJOR_VERSION < 3 -        if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -            while (*name) { -                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) -                        && _PyString_Eq(**name, key)) { -                    values[name-argnames] = value; -                    break; -                } -                name++; -            } -            if (*name) continue; -            else { -                PyObject*** argname = argnames; -                while (argname != first_kw_arg) { -                    if ((**argname == key) || ( -                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) -                             && _PyString_Eq(**argname, key))) { -                        goto arg_passed_twice; -                    } -                    argname++; +        } else { +            #if PY_MAJOR_VERSION < 3 +            if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) { +            #else +            if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key))) { +            #endif +                goto invalid_keyword_type; +            } else { +                for (name = first_kw_arg; *name; name++) { +                    #if PY_MAJOR_VERSION >= 3 +                    if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) && +                        PyUnicode_Compare(**name, key) == 0) break; +                    #else +                    if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) && +                        _PyString_Eq(**name, key)) break; +                    #endif                  } -            } -        } else -        #endif -        if (likely(PyUnicode_Check(key))) { -            while (*name) { -                int cmp = (**name == key) ? 0 : -                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -                    (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -                #endif -                    PyUnicode_Compare(**name, key); -                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -                if (cmp == 0) { +                if (*name) {                      values[name-argnames] = value; -                    break; -                } -                name++; -            } -            if (*name) continue; -            else { -                PyObject*** argname = argnames; -                while (argname != first_kw_arg) { -                    int cmp = (**argname == key) ? 0 : -                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -                        (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -                    #endif -                        PyUnicode_Compare(**argname, key); -                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -                    if (cmp == 0) goto arg_passed_twice; -                    argname++; +                } else { +                    /* unexpected keyword found */ +                    for (name=argnames; name != first_kw_arg; name++) { +                        if (**name == key) goto arg_passed_twice; +                        #if PY_MAJOR_VERSION >= 3 +                        if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) && +                            PyUnicode_Compare(**name, key) == 0) goto arg_passed_twice; +                        #else +                        if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) && +                            _PyString_Eq(**name, key)) goto arg_passed_twice; +                        #endif +                    } +                    if (kwds2) { +                        if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; +                    } else { +                        goto invalid_keyword; +                    }                  }              } -        } else -            goto invalid_keyword_type; -        if (kwds2) { -            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; -        } else { -            goto invalid_keyword;          }      }      return 0;  arg_passed_twice: -    __Pyx_RaiseDoubleKeywordsError(function_name, key); +    __Pyx_RaiseDoubleKeywordsError(function_name, **name);      goto bad;  invalid_keyword_type:      PyErr_Format(PyExc_TypeError, @@ -65162,6 +63139,7 @@ static void __Pyx_RaiseArgtupleInvalid(  {      Py_ssize_t num_expected;      const char *more_or_less; +      if (num_found < num_min) {          num_expected = num_min;          more_or_less = "at least"; @@ -65173,15 +63151,15 @@ static void __Pyx_RaiseArgtupleInvalid(          more_or_less = "exactly";      }      PyErr_Format(PyExc_TypeError, -                 "%s() takes %s %" CYTHON_FORMAT_SSIZE_T "d positional argument%s (%" CYTHON_FORMAT_SSIZE_T "d given)", +                 "%s() takes %s %"PY_FORMAT_SIZE_T"d positional argument%s (%"PY_FORMAT_SIZE_T"d given)",                   func_name, more_or_less, num_expected,                   (num_expected == 1) ? "" : "s", num_found);  }  static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) { -#if CYTHON_COMPILING_IN_CPYTHON      PyObject *tmp_type, *tmp_value, *tmp_tb;      PyThreadState *tstate = PyThreadState_GET(); +      tmp_type = tstate->curexc_type;      tmp_value = tstate->curexc_value;      tmp_tb = tstate->curexc_traceback; @@ -65191,60 +63169,55 @@ static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyOb      Py_XDECREF(tmp_type);      Py_XDECREF(tmp_value);      Py_XDECREF(tmp_tb); -#else -    PyErr_Restore(type, value, tb); -#endif  } +  static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) { -#if CYTHON_COMPILING_IN_CPYTHON      PyThreadState *tstate = PyThreadState_GET();      *type = tstate->curexc_type;      *value = tstate->curexc_value;      *tb = tstate->curexc_traceback; +      tstate->curexc_type = 0;      tstate->curexc_value = 0;      tstate->curexc_traceback = 0; -#else -    PyErr_Fetch(type, value, tb); -#endif  } +  #if PY_MAJOR_VERSION < 3 -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, -                        CYTHON_UNUSED PyObject *cause) { +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { +    /* cause is unused */      Py_XINCREF(type); -    if (!value || value == Py_None) -        value = NULL; -    else +    Py_XINCREF(value); +    Py_XINCREF(tb); +    /* First, check the traceback argument, replacing None with NULL. */ +    if (tb == Py_None) { +        Py_DECREF(tb); +        tb = 0; +    } +    else if (tb != NULL && !PyTraceBack_Check(tb)) { +        PyErr_SetString(PyExc_TypeError, +            "raise: arg 3 must be a traceback or None"); +        goto raise_error; +    } +    /* Next, replace a missing value with None */ +    if (value == NULL) { +        value = Py_None;          Py_INCREF(value); -    if (!tb || tb == Py_None) -        tb = NULL; -    else { -        Py_INCREF(tb); -        if (!PyTraceBack_Check(tb)) { -            PyErr_SetString(PyExc_TypeError, -                "raise: arg 3 must be a traceback or None"); -            goto raise_error; -        }      }      #if PY_VERSION_HEX < 0x02050000 -    if (PyClass_Check(type)) { +    if (!PyClass_Check(type))      #else -    if (PyType_Check(type)) { +    if (!PyType_Check(type))      #endif -#if CYTHON_COMPILING_IN_PYPY -        if (!value) { -            Py_INCREF(Py_None); -            value = Py_None; -        } -#endif -        PyErr_NormalizeException(&type, &value, &tb); -    } else { -        if (value) { +    { +        /* Raising an instance.  The value should be a dummy. */ +        if (value != Py_None) {              PyErr_SetString(PyExc_TypeError,                  "instance exception may not have a separate value");              goto raise_error;          } +        /* Normalize to raise <class>, <instance> */ +        Py_DECREF(value);          value = type;          #if PY_VERSION_HEX < 0x02050000              if (PyInstance_Check(type)) { @@ -65267,6 +63240,7 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,              }          #endif      } +      __Pyx_ErrRestore(type, value, tb);      return;  raise_error: @@ -65275,9 +63249,10 @@ raise_error:      Py_XDECREF(tb);      return;  } +  #else /* Python 3+ */ +  static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { -    PyObject* owned_instance = NULL;      if (tb == Py_None) {          tb = 0;      } else if (tb && !PyTraceBack_Check(tb)) { @@ -65287,6 +63262,7 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject      }      if (value == Py_None)          value = 0; +      if (PyExceptionInstance_Check(type)) {          if (value) {              PyErr_SetString(PyExc_TypeError, @@ -65295,36 +63271,13 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject          }          value = type;          type = (PyObject*) Py_TYPE(value); -    } else if (PyExceptionClass_Check(type)) { -        PyObject *args; -        if (!value) -            args = PyTuple_New(0); -        else if (PyTuple_Check(value)) { -            Py_INCREF(value); -            args = value; -        } -        else -            args = PyTuple_Pack(1, value); -        if (!args) -            goto bad; -        owned_instance = PyEval_CallObject(type, args); -        Py_DECREF(args); -        if (!owned_instance) -            goto bad; -        value = owned_instance; -        if (!PyExceptionInstance_Check(value)) { -            PyErr_Format(PyExc_TypeError, -                         "calling %R should have returned an instance of " -                         "BaseException, not %R", -                         type, Py_TYPE(value)); -            goto bad; -        } -    } else { +    } else if (!PyExceptionClass_Check(type)) {          PyErr_SetString(PyExc_TypeError,              "raise: exception class must be a subclass of BaseException");          goto bad;      } -    if (cause && cause != Py_None) { + +    if (cause) {          PyObject *fixed_cause;          if (PyExceptionClass_Check(cause)) {              fixed_cause = PyObject_CallObject(cause, NULL); @@ -65341,9 +63294,14 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject                              "BaseException");              goto bad;          } +        if (!value) { +            value = PyObject_CallObject(type, NULL); +        }          PyException_SetCause(value, fixed_cause);      } +      PyErr_SetObject(type, value); +      if (tb) {          PyThreadState *tstate = PyThreadState_GET();          PyObject* tmp_tb = tstate->curexc_traceback; @@ -65353,8 +63311,8 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject              Py_XDECREF(tmp_tb);          }      } +  bad: -    Py_XDECREF(owned_instance);      return;  }  #endif @@ -65378,17 +63336,13 @@ static CYTHON_INLINE int __Pyx_CheckKeywordStrings(  {      PyObject* key = 0;      Py_ssize_t pos = 0; -#if CPYTHON_COMPILING_IN_PYPY -    if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) -        goto invalid_keyword; -    return 1; -#else      while (PyDict_Next(kwdict, &pos, &key, 0)) {          #if PY_MAJOR_VERSION < 3          if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) +        #else +        if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key)))          #endif -            if (unlikely(!PyUnicode_Check(key))) -                goto invalid_keyword_type; +            goto invalid_keyword_type;      }      if ((!kw_allowed) && unlikely(key))          goto invalid_keyword; @@ -65397,7 +63351,6 @@ invalid_keyword_type:      PyErr_Format(PyExc_TypeError,          "%s() keywords must be strings", function_name);      return 0; -#endif  invalid_keyword:      PyErr_Format(PyExc_TypeError,      #if PY_MAJOR_VERSION < 3 @@ -65410,9 +63363,9 @@ invalid_keyword:      return 0;  } +  static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {      PyObject *local_type, *local_value, *local_tb; -#if CYTHON_COMPILING_IN_CPYTHON      PyObject *tmp_type, *tmp_value, *tmp_tb;      PyThreadState *tstate = PyThreadState_GET();      local_type = tstate->curexc_type; @@ -65421,27 +63374,19 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)      tstate->curexc_type = 0;      tstate->curexc_value = 0;      tstate->curexc_traceback = 0; -#else -    PyErr_Fetch(&local_type, &local_value, &local_tb); -#endif      PyErr_NormalizeException(&local_type, &local_value, &local_tb); -#if CYTHON_COMPILING_IN_CPYTHON      if (unlikely(tstate->curexc_type)) -#else -    if (unlikely(PyErr_Occurred())) -#endif          goto bad;      #if PY_MAJOR_VERSION >= 3      if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))          goto bad;      #endif -    Py_INCREF(local_type); -    Py_INCREF(local_value); -    Py_INCREF(local_tb);      *type = local_type;      *value = local_value;      *tb = local_tb; -#if CYTHON_COMPILING_IN_CPYTHON +    Py_INCREF(local_type); +    Py_INCREF(local_value); +    Py_INCREF(local_tb);      tmp_type = tstate->exc_type;      tmp_value = tstate->exc_value;      tmp_tb = tstate->exc_traceback; @@ -65449,13 +63394,10 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)      tstate->exc_value = local_value;      tstate->exc_traceback = local_tb;      /* Make sure tstate is in a consistent state when we XDECREF -       these objects (DECREF may run arbitrary code). */ +       these objects (XDECREF may run arbitrary code). */      Py_XDECREF(tmp_type);      Py_XDECREF(tmp_value);      Py_XDECREF(tmp_tb); -#else -    PyErr_SetExcInfo(local_type, local_value, local_tb); -#endif      return 0;  bad:      *type = 0; @@ -65467,6 +63409,7 @@ bad:      return -1;  } +  static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) {      PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);  } @@ -65484,40 +63427,23 @@ static CYTHON_INLINE long __Pyx_mod_long(long a, long b) {      return r;  } -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { +static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {      PyErr_Format(PyExc_ValueError, -                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); +                 "need more than %"PY_FORMAT_SIZE_T"d value%s to unpack", +                 index, (index == 1) ? "" : "s");  } -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { +static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {      PyErr_Format(PyExc_ValueError, -                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%s to unpack", -                 index, (index == 1) ? "" : "s"); +                 "too many values to unpack (expected %"PY_FORMAT_SIZE_T"d)", expected);  } -static CYTHON_INLINE int __Pyx_IterFinish(void) { -#if CYTHON_COMPILING_IN_CPYTHON -    PyThreadState *tstate = PyThreadState_GET(); -    PyObject* exc_type = tstate->curexc_type; -    if (unlikely(exc_type)) { -        if (likely(exc_type == PyExc_StopIteration) || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)) { -            PyObject *exc_value, *exc_tb; -            exc_value = tstate->curexc_value; -            exc_tb = tstate->curexc_traceback; -            tstate->curexc_type = 0; -            tstate->curexc_value = 0; -            tstate->curexc_traceback = 0; -            Py_DECREF(exc_type); -            Py_XDECREF(exc_value); -            Py_XDECREF(exc_tb); -            return 0; -        } else { -            return -1; -        } -    } -    return 0; -#else -    if (unlikely(PyErr_Occurred())) { +static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { +    if (unlikely(retval)) { +        Py_DECREF(retval); +        __Pyx_RaiseTooManyValuesError(expected); +        return -1; +    } else if (PyErr_Occurred()) {          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {              PyErr_Clear();              return 0; @@ -65526,25 +63452,11 @@ static CYTHON_INLINE int __Pyx_IterFinish(void) {          }      }      return 0; -#endif  } -static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { -    if (unlikely(retval)) { -        Py_DECREF(retval); -        __Pyx_RaiseTooManyValuesError(expected); -        return -1; -    } else { -        return __Pyx_IterFinish(); -    } -    return 0; -}  static double __Pyx__PyObject_AsDouble(PyObject* obj) {      PyObject* float_value; -#if CYTHON_COMPILING_IN_PYPY -    float_value = PyNumber_Float(obj); -#else      if (Py_TYPE(obj)->tp_as_number && Py_TYPE(obj)->tp_as_number->nb_float) {          return PyFloat_AsDouble(obj);      } else if (PyUnicode_CheckExact(obj) || PyBytes_CheckExact(obj)) { @@ -65561,7 +63473,6 @@ static double __Pyx__PyObject_AsDouble(PyObject* obj) {          PyTuple_SET_ITEM(args, 0, 0);          Py_DECREF(args);      } -#endif      if (likely(float_value)) {          double value = PyFloat_AS_DOUBLE(float_value);          Py_DECREF(float_value); @@ -65595,158 +63506,8 @@ static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed      return 0;  } -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -} - -static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { -    if (t == Py_None) { -      __Pyx_RaiseNoneNotIterableError(); -    } else if (PyTuple_GET_SIZE(t) < index) { -      __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t)); -    } else { -      __Pyx_RaiseTooManyValuesError(index); -    } -} - -static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, -                                             int is_tuple, int has_known_size, int decref_tuple) { -    Py_ssize_t index; -    PyObject *value1 = NULL, *value2 = NULL, *iter = NULL; -    if (!is_tuple && unlikely(!PyTuple_Check(tuple))) { -        iternextfunc iternext; -        iter = PyObject_GetIter(tuple); -        if (unlikely(!iter)) goto bad; -        if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; } -        iternext = Py_TYPE(iter)->tp_iternext; -        value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; } -        value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; } -        if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad; -        Py_DECREF(iter); -    } else { -        if (!has_known_size && unlikely(PyTuple_GET_SIZE(tuple) != 2)) { -            __Pyx_UnpackTupleError(tuple, 2); -            goto bad; -        } -#if CYTHON_COMPILING_IN_PYPY -        value1 = PySequence_ITEM(tuple, 0); -        if (unlikely(!value1)) goto bad; -        value2 = PySequence_ITEM(tuple, 1); -        if (unlikely(!value2)) goto bad; -#else -        value1 = PyTuple_GET_ITEM(tuple, 0); -        value2 = PyTuple_GET_ITEM(tuple, 1); -        Py_INCREF(value1); -        Py_INCREF(value2); -#endif -        if (decref_tuple) { Py_DECREF(tuple); } -    } -    *pvalue1 = value1; -    *pvalue2 = value2; -    return 0; -unpacking_failed: -    if (!has_known_size && __Pyx_IterFinish() == 0) -        __Pyx_RaiseNeedMoreValuesError(index); -bad: -    Py_XDECREF(iter); -    Py_XDECREF(value1); -    Py_XDECREF(value2); -    if (decref_tuple) { Py_XDECREF(tuple); } -    return -1; -} - -static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name, -                                                   Py_ssize_t* p_orig_length, int* p_source_is_dict) { -    is_dict = is_dict || likely(PyDict_CheckExact(iterable)); -    *p_source_is_dict = is_dict; -#if !CYTHON_COMPILING_IN_PYPY -    if (is_dict) { -        *p_orig_length = PyDict_Size(iterable); -        Py_INCREF(iterable); -        return iterable; -    } -#endif -    *p_orig_length = 0; -    if (method_name) { -        PyObject* iter; -        iterable = PyObject_CallMethodObjArgs(iterable, method_name, NULL); -        if (!iterable) -            return NULL; -#if !CYTHON_COMPILING_IN_PYPY -        if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable)) -            return iterable; -#endif -        iter = PyObject_GetIter(iterable); -        Py_DECREF(iterable); -        return iter; -    } -    return PyObject_GetIter(iterable); -} -static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* iter_obj, Py_ssize_t orig_length, Py_ssize_t* ppos, -                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) { -    PyObject* next_item; -#if !CYTHON_COMPILING_IN_PYPY -    if (source_is_dict) { -        PyObject *key, *value; -        if (unlikely(orig_length != PyDict_Size(iter_obj))) { -            PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration"); -            return -1; -        } -        if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) { -            return 0; -        } -        if (pitem) { -            PyObject* tuple = PyTuple_New(2); -            if (unlikely(!tuple)) { -                return -1; -            } -            Py_INCREF(key); -            Py_INCREF(value); -            PyTuple_SET_ITEM(tuple, 0, key); -            PyTuple_SET_ITEM(tuple, 1, value); -            *pitem = tuple; -        } else { -            if (pkey) { -                Py_INCREF(key); -                *pkey = key; -            } -            if (pvalue) { -                Py_INCREF(value); -                *pvalue = value; -            } -        } -        return 1; -    } else if (PyTuple_CheckExact(iter_obj)) { -        Py_ssize_t pos = *ppos; -        if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0; -        *ppos = pos + 1; -        next_item = PyTuple_GET_ITEM(iter_obj, pos); -        Py_INCREF(next_item); -    } else if (PyList_CheckExact(iter_obj)) { -        Py_ssize_t pos = *ppos; -        if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0; -        *ppos = pos + 1; -        next_item = PyList_GET_ITEM(iter_obj, pos); -        Py_INCREF(next_item); -    } else -#endif -    { -        next_item = PyIter_Next(iter_obj); -        if (unlikely(!next_item)) { -            return __Pyx_IterFinish(); -        } -    } -    if (pitem) { -        *pitem = next_item; -    } else if (pkey && pvalue) { -        if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1)) -            return -1; -    } else if (pkey) { -        *pkey = next_item; -    } else { -        *pvalue = next_item; -    } -    return 1; +static CYTHON_INLINE void __Pyx_RaiseNoneIndexingError(void) { +    PyErr_SetString(PyExc_TypeError, "'NoneType' object is unsubscriptable");  }  static CYTHON_INLINE int __Pyx_div_int(int a, int b) { @@ -65757,7 +63518,6 @@ static CYTHON_INLINE int __Pyx_div_int(int a, int b) {  }  static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) { -#if CYTHON_COMPILING_IN_CPYTHON      PyThreadState *tstate = PyThreadState_GET();      *type = tstate->exc_type;      *value = tstate->exc_value; @@ -65765,12 +63525,9 @@ static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value,      Py_XINCREF(*type);      Py_XINCREF(*value);      Py_XINCREF(*tb); -#else -    PyErr_GetExcInfo(type, value, tb); -#endif  } +  static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) { -#if CYTHON_COMPILING_IN_CPYTHON      PyObject *tmp_type, *tmp_value, *tmp_tb;      PyThreadState *tstate = PyThreadState_GET();      tmp_type = tstate->exc_type; @@ -65782,9 +63539,6 @@ static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb)      Py_XDECREF(tmp_type);      Py_XDECREF(tmp_value);      Py_XDECREF(tmp_tb); -#else -    PyErr_SetExcInfo(type, value, tb); -#endif  }  static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level) { @@ -65813,33 +63567,12 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level) {          goto bad;      #if PY_VERSION_HEX >= 0x02050000      { -        #if PY_MAJOR_VERSION >= 3 -        if (level == -1) { -            if (strchr(__Pyx_MODULE_NAME, '.')) { -                /* try package relative import first */ -                PyObject *py_level = PyInt_FromLong(1); -                if (!py_level) -                    goto bad; -                module = PyObject_CallFunctionObjArgs(py_import, -                    name, global_dict, empty_dict, list, py_level, NULL); -                Py_DECREF(py_level); -                if (!module) { -                    if (!PyErr_ExceptionMatches(PyExc_ImportError)) -                        goto bad; -                    PyErr_Clear(); -                } -            } -            level = 0; /* try absolute import on failure */ -        } -        #endif -        if (!module) { -            PyObject *py_level = PyInt_FromLong(level); -            if (!py_level) -                goto bad; -            module = PyObject_CallFunctionObjArgs(py_import, -                name, global_dict, empty_dict, list, py_level, NULL); -            Py_DECREF(py_level); -        } +        PyObject *py_level = PyInt_FromLong(level); +        if (!py_level) +            goto bad; +        module = PyObject_CallFunctionObjArgs(py_import, +            name, global_dict, empty_dict, list, py_level, NULL); +        Py_DECREF(py_level);      }      #else      if (level>0) { @@ -65856,422 +63589,106 @@ bad:      return module;  } -static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name) { -#if PY_MAJOR_VERSION < 3 -    PyErr_Format(PyExc_ImportError, "cannot import name %.230s", -                 PyString_AsString(name)); -#else -    PyErr_Format(PyExc_ImportError, "cannot import name %S", name); -#endif -} - -static PyObject * -__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure) -{ -    if (op->func_doc == NULL && op->func.m_ml->ml_doc) { -#if PY_MAJOR_VERSION >= 3 -        op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc); -#else -        op->func_doc = PyString_FromString(op->func.m_ml->ml_doc); -#endif -    } -    if (op->func_doc == 0) { -        Py_INCREF(Py_None); -        return Py_None; -    } -    Py_INCREF(op->func_doc); -    return op->func_doc; -} -static int -__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value) -{ -    PyObject *tmp = op->func_doc; -    if (value == NULL) -        op->func_doc = Py_None; /* Mark as deleted */ -    else -        op->func_doc = value; -    Py_INCREF(op->func_doc); -    Py_XDECREF(tmp); -    return 0; -} -static PyObject * -__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op) -{ -    if (op->func_name == NULL) { -#if PY_MAJOR_VERSION >= 3 -        op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name); -#else -        op->func_name = PyString_InternFromString(op->func.m_ml->ml_name); -#endif -    } -    Py_INCREF(op->func_name); -    return op->func_name; -} -static int -__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value) -{ -    PyObject *tmp; -#if PY_MAJOR_VERSION >= 3 -    if (value == NULL || !PyUnicode_Check(value)) { -#else -    if (value == NULL || !PyString_Check(value)) { -#endif -        PyErr_SetString(PyExc_TypeError, -                        "__name__ must be set to a string object"); -        return -1; -    } -    tmp = op->func_name; -    Py_INCREF(value); -    op->func_name = value; -    Py_XDECREF(tmp); -    return 0; -} -static PyObject * -__Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure) -{ -    PyObject *self; -    self = m->func_closure; -    if (self == NULL) -        self = Py_None; -    Py_INCREF(self); -    return self; -} -static PyObject * -__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op) -{ -    if (op->func_dict == NULL) { -        op->func_dict = PyDict_New(); -        if (op->func_dict == NULL) -            return NULL; -    } -    Py_INCREF(op->func_dict); -    return op->func_dict; -} -static int -__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value) -{ -    PyObject *tmp; -    if (value == NULL) { -        PyErr_SetString(PyExc_TypeError, -               "function's dictionary may not be deleted"); -        return -1; -    } -    if (!PyDict_Check(value)) { -        PyErr_SetString(PyExc_TypeError, -               "setting function's dictionary to a non-dict"); -        return -1; +static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { +    if (s1 == s2) {   /* as done by PyObject_RichCompareBool(); also catches the (interned) empty string */ +        return (equals == Py_EQ); +    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { +        if (PyBytes_GET_SIZE(s1) != PyBytes_GET_SIZE(s2)) { +            return (equals == Py_NE); +        } else if (PyBytes_GET_SIZE(s1) == 1) { +            if (equals == Py_EQ) +                return (PyBytes_AS_STRING(s1)[0] == PyBytes_AS_STRING(s2)[0]); +            else +                return (PyBytes_AS_STRING(s1)[0] != PyBytes_AS_STRING(s2)[0]); +        } else { +            int result = memcmp(PyBytes_AS_STRING(s1), PyBytes_AS_STRING(s2), (size_t)PyBytes_GET_SIZE(s1)); +            return (equals == Py_EQ) ? (result == 0) : (result != 0); +        } +    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { +        return (equals == Py_NE); +    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { +        return (equals == Py_NE); +    } else { +        int result; +        PyObject* py_result = PyObject_RichCompare(s1, s2, equals); +        if (!py_result) +            return -1; +        result = __Pyx_PyObject_IsTrue(py_result); +        Py_DECREF(py_result); +        return result;      } -    tmp = op->func_dict; -    Py_INCREF(value); -    op->func_dict = value; -    Py_XDECREF(tmp); -    return 0; -} -static PyObject * -__Pyx_CyFunction_get_globals(CYTHON_UNUSED __pyx_CyFunctionObject *op) -{ -    PyObject* dict = PyModule_GetDict(__pyx_m); -    Py_XINCREF(dict); -    return dict; -} -static PyObject * -__Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op) -{ -    Py_INCREF(Py_None); -    return Py_None; -} -static PyObject * -__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op) -{ -    PyObject* result = (op->func_code) ? op->func_code : Py_None; -    Py_INCREF(result); -    return result;  } -static PyObject * -__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op) -{ -    if (op->defaults_tuple) { -        Py_INCREF(op->defaults_tuple); -        return op->defaults_tuple; -    } -    if (op->defaults_getter) { -        PyObject *res = op->defaults_getter((PyObject *) op); -        if (res) { -            Py_INCREF(res); -            op->defaults_tuple = res; + +static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { +    if (s1 == s2) {   /* as done by PyObject_RichCompareBool(); also catches the (interned) empty string */ +        return (equals == Py_EQ); +    } else if (PyUnicode_CheckExact(s1) & PyUnicode_CheckExact(s2)) { +        if (PyUnicode_GET_SIZE(s1) != PyUnicode_GET_SIZE(s2)) { +            return (equals == Py_NE); +        } else if (PyUnicode_GET_SIZE(s1) == 1) { +            if (equals == Py_EQ) +                return (PyUnicode_AS_UNICODE(s1)[0] == PyUnicode_AS_UNICODE(s2)[0]); +            else +                return (PyUnicode_AS_UNICODE(s1)[0] != PyUnicode_AS_UNICODE(s2)[0]); +        } else { +            int result = PyUnicode_Compare(s1, s2); +            if ((result == -1) && unlikely(PyErr_Occurred())) +                return -1; +            return (equals == Py_EQ) ? (result == 0) : (result != 0);          } -        return res; +    } else if ((s1 == Py_None) & PyUnicode_CheckExact(s2)) { +        return (equals == Py_NE); +    } else if ((s2 == Py_None) & PyUnicode_CheckExact(s1)) { +        return (equals == Py_NE); +    } else { +        int result; +        PyObject* py_result = PyObject_RichCompare(s1, s2, equals); +        if (!py_result) +            return -1; +        result = __Pyx_PyObject_IsTrue(py_result); +        Py_DECREF(py_result); +        return result;      } -    Py_INCREF(Py_None); -    return Py_None; -} -static PyGetSetDef __pyx_CyFunction_getsets[] = { -    {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, -    {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, -    {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, -    {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, -    {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0}, -    {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, -    {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, -    {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, -    {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, -    {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, -    {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, -    {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, -    {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, -    {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, 0, 0, 0}, -    {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, 0, 0, 0}, -    {0, 0, 0, 0, 0} -}; -#ifndef PY_WRITE_RESTRICTED /* < Py2.5 */ -#define PY_WRITE_RESTRICTED WRITE_RESTRICTED -#endif -static PyMemberDef __pyx_CyFunction_members[] = { -    {(char *) "__module__", T_OBJECT, offsetof(__pyx_CyFunctionObject, func.m_module), PY_WRITE_RESTRICTED, 0}, -    {0, 0, 0,  0, 0} -}; -static PyObject * -__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args) -{ -#if PY_MAJOR_VERSION >= 3 -    return PyUnicode_FromString(m->func.m_ml->ml_name); -#else -    return PyString_FromString(m->func.m_ml->ml_name); -#endif  } -static PyMethodDef __pyx_CyFunction_methods[] = { -    {__Pyx_NAMESTR("__reduce__"), (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, -    {0, 0, 0, 0} -}; -static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, -                                      PyObject *closure, PyObject *module, PyObject* code) { -    __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type); + + +static PyObject *__pyx_binding_PyCFunctionType_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module) { +    __pyx_binding_PyCFunctionType_object *op = PyObject_GC_New(__pyx_binding_PyCFunctionType_object, __pyx_binding_PyCFunctionType);      if (op == NULL)          return NULL; -    op->flags = flags; -    op->func_weakreflist = NULL;      op->func.m_ml = ml; -    op->func.m_self = (PyObject *) op; -    Py_XINCREF(closure); -    op->func_closure = closure; +    Py_XINCREF(self); +    op->func.m_self = self;      Py_XINCREF(module);      op->func.m_module = module; -    op->func_dict = NULL; -    op->func_name = NULL; -    op->func_doc = NULL; -    op->func_classobj = NULL; -    Py_XINCREF(code); -    op->func_code = code; -    op->defaults_pyobjects = 0; -    op->defaults = NULL; -    op->defaults_tuple = NULL; -    op->defaults_getter = NULL;      PyObject_GC_Track(op); -    return (PyObject *) op; +    return (PyObject *)op;  } -static int -__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) -{ -    Py_CLEAR(m->func_closure); -    Py_CLEAR(m->func.m_module); -    Py_CLEAR(m->func_dict); -    Py_CLEAR(m->func_name); -    Py_CLEAR(m->func_doc); -    Py_CLEAR(m->func_code); -    Py_CLEAR(m->func_classobj); -    Py_CLEAR(m->defaults_tuple); -    if (m->defaults) { -        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); -        int i; -        for (i = 0; i < m->defaults_pyobjects; i++) -            Py_XDECREF(pydefaults[i]); -        PyMem_Free(m->defaults); -        m->defaults = NULL; -    } -    return 0; -} -static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) -{ + +static void __pyx_binding_PyCFunctionType_dealloc(__pyx_binding_PyCFunctionType_object *m) {      PyObject_GC_UnTrack(m); -    if (m->func_weakreflist != NULL) -        PyObject_ClearWeakRefs((PyObject *) m); -    __Pyx_CyFunction_clear(m); +    Py_XDECREF(m->func.m_self); +    Py_XDECREF(m->func.m_module);      PyObject_GC_Del(m);  } -static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) -{ -    Py_VISIT(m->func_closure); -    Py_VISIT(m->func.m_module); -    Py_VISIT(m->func_dict); -    Py_VISIT(m->func_name); -    Py_VISIT(m->func_doc); -    Py_VISIT(m->func_code); -    Py_VISIT(m->func_classobj); -    Py_VISIT(m->defaults_tuple); -    if (m->defaults) { -        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); -        int i; -        for (i = 0; i < m->defaults_pyobjects; i++) -            Py_VISIT(pydefaults[i]); -    } -    return 0; -} -static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type) -{ -    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; -    if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) { -        Py_INCREF(func); -        return func; -    } -    if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) { -        if (type == NULL) -            type = (PyObject *)(Py_TYPE(obj)); -        return PyMethod_New(func, -                            type, (PyObject *)(Py_TYPE(type))); -    } + +static PyObject *__pyx_binding_PyCFunctionType_descr_get(PyObject *func, PyObject *obj, PyObject *type) {      if (obj == Py_None) -        obj = NULL; +            obj = NULL;      return PyMethod_New(func, obj, type);  } -static PyObject* -__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) -{ -    PyObject *func_name = __Pyx_CyFunction_get_name(op); -#if PY_MAJOR_VERSION >= 3 -    return PyUnicode_FromFormat("<cyfunction %U at %p>", -                                func_name, (void *)op); -#else -    return PyString_FromFormat("<cyfunction %s at %p>", -                               PyString_AsString(func_name), (void *)op); -#endif -} -#if CYTHON_COMPILING_IN_PYPY -static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { -    PyCFunctionObject* f = (PyCFunctionObject*)func; -    PyCFunction meth = PyCFunction_GET_FUNCTION(func); -    PyObject *self = PyCFunction_GET_SELF(func); -    Py_ssize_t size; -    switch (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)) { -    case METH_VARARGS: -        if (likely(kw == NULL) || PyDict_Size(kw) == 0) -            return (*meth)(self, arg); -        break; -    case METH_VARARGS | METH_KEYWORDS: -        return (*(PyCFunctionWithKeywords)meth)(self, arg, kw); -    case METH_NOARGS: -        if (likely(kw == NULL) || PyDict_Size(kw) == 0) { -            size = PyTuple_GET_SIZE(arg); -            if (size == 0) -                return (*meth)(self, NULL); -            PyErr_Format(PyExc_TypeError, -                "%.200s() takes no arguments (%zd given)", -                f->m_ml->ml_name, size); -            return NULL; -        } -        break; -    case METH_O: -        if (likely(kw == NULL) || PyDict_Size(kw) == 0) { -            size = PyTuple_GET_SIZE(arg); -            if (size == 1) -                return (*meth)(self, PyTuple_GET_ITEM(arg, 0)); -            PyErr_Format(PyExc_TypeError, -                "%.200s() takes exactly one argument (%zd given)", -                f->m_ml->ml_name, size); -            return NULL; -        } -        break; -    default: -        PyErr_SetString(PyExc_SystemError, "Bad call flags in " -                        "__Pyx_CyFunction_Call. METH_OLDARGS is no " -                        "longer supported!"); -        return NULL; -    } -    PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", -                 f->m_ml->ml_name); -    return NULL; -} -#else -static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { -	return PyCFunction_Call(func, arg, kw); -} -#endif -static PyTypeObject __pyx_CyFunctionType_type = { -    PyVarObject_HEAD_INIT(0, 0) -    __Pyx_NAMESTR("cython_function_or_method"), /*tp_name*/ -    sizeof(__pyx_CyFunctionObject),   /*tp_basicsize*/ -    0,                                  /*tp_itemsize*/ -    (destructor) __Pyx_CyFunction_dealloc, /*tp_dealloc*/ -    0,                                  /*tp_print*/ -    0,                                  /*tp_getattr*/ -    0,                                  /*tp_setattr*/ -#if PY_MAJOR_VERSION < 3 -    0,                                  /*tp_compare*/ -#else -    0,                                  /*reserved*/ -#endif -    (reprfunc) __Pyx_CyFunction_repr,   /*tp_repr*/ -    0,                                  /*tp_as_number*/ -    0,                                  /*tp_as_sequence*/ -    0,                                  /*tp_as_mapping*/ -    0,                                  /*tp_hash*/ -    __Pyx_CyFunction_Call,              /*tp_call*/ -    0,                                  /*tp_str*/ -    0,                                  /*tp_getattro*/ -    0,                                  /*tp_setattro*/ -    0,                                  /*tp_as_buffer*/ -    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags*/ -    0,                                  /*tp_doc*/ -    (traverseproc) __Pyx_CyFunction_traverse,   /*tp_traverse*/ -    (inquiry) __Pyx_CyFunction_clear,   /*tp_clear*/ -    0,                                  /*tp_richcompare*/ -    offsetof(__pyx_CyFunctionObject, func_weakreflist), /* tp_weaklistoffse */ -    0,                                  /*tp_iter*/ -    0,                                  /*tp_iternext*/ -    __pyx_CyFunction_methods,           /*tp_methods*/ -    __pyx_CyFunction_members,           /*tp_members*/ -    __pyx_CyFunction_getsets,           /*tp_getset*/ -    0,                                  /*tp_base*/ -    0,                                  /*tp_dict*/ -    __Pyx_CyFunction_descr_get,         /*tp_descr_get*/ -    0,                                  /*tp_descr_set*/ -    offsetof(__pyx_CyFunctionObject, func_dict),/*tp_dictoffset*/ -    0,                                  /*tp_init*/ -    0,                                  /*tp_alloc*/ -    0,                                  /*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 int __Pyx_CyFunction_init(void) { -#if !CYTHON_COMPILING_IN_PYPY -    __pyx_CyFunctionType_type.tp_call = PyCFunction_Call; -#endif -    if (PyType_Ready(&__pyx_CyFunctionType_type) < 0) + +static int __pyx_binding_PyCFunctionType_init(void) { +    __pyx_binding_PyCFunctionType_type = PyCFunction_Type; +    __pyx_binding_PyCFunctionType_type.tp_name = __Pyx_NAMESTR("cython_binding_builtin_function_or_method"); +    __pyx_binding_PyCFunctionType_type.tp_dealloc = (destructor)__pyx_binding_PyCFunctionType_dealloc; +    __pyx_binding_PyCFunctionType_type.tp_descr_get = __pyx_binding_PyCFunctionType_descr_get; +    if (PyType_Ready(&__pyx_binding_PyCFunctionType_type) < 0) {          return -1; -    __pyx_CyFunctionType = &__pyx_CyFunctionType_type; +    } +    __pyx_binding_PyCFunctionType = &__pyx_binding_PyCFunctionType_type;      return 0; -} -static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { -    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; -    m->defaults = PyMem_Malloc(size); -    if (!m->defaults) -        return PyErr_NoMemory(); -    memset(m->defaults, 0, sizeof(size)); -    m->defaults_pyobjects = pyobjects; -    return m->defaults; -} -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { -    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; -    m->defaults_tuple = tuple; -    Py_INCREF(tuple); +  }  static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) { @@ -66674,8 +64091,8 @@ static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject*      }  } -static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, -                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename) { +static void __Pyx_WriteUnraisable(const char *name, int clineno, +                                  int lineno, const char *filename) {      PyObject *old_exc, *old_val, *old_tb;      PyObject *ctx;      __Pyx_ErrFetch(&old_exc, &old_val, &old_tb); @@ -66695,522 +64112,125 @@ static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,  static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {      PyObject *tmp_type, *tmp_value, *tmp_tb; -#if CYTHON_COMPILING_IN_CPYTHON      PyThreadState *tstate = PyThreadState_GET(); +      tmp_type = tstate->exc_type;      tmp_value = tstate->exc_value;      tmp_tb = tstate->exc_traceback; +      tstate->exc_type = *type;      tstate->exc_value = *value;      tstate->exc_traceback = *tb; -#else -    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); -    PyErr_SetExcInfo(*type, *value, *tb); -#endif +      *type = tmp_type;      *value = tmp_value;      *tb = tmp_tb;  } -static PyObject *__Pyx_Generator_Next(PyObject *self); -static PyObject *__Pyx_Generator_Send(PyObject *self, PyObject *value); -static PyObject *__Pyx_Generator_Close(PyObject *self); -static PyObject *__Pyx_Generator_Throw(PyObject *gen, PyObject *args); -static PyTypeObject *__pyx_GeneratorType = 0; -#define __Pyx_Generator_CheckExact(obj) (Py_TYPE(obj) == __pyx_GeneratorType) -#define __Pyx_Generator_Undelegate(gen) Py_CLEAR((gen)->yieldfrom) -#if 1 || PY_VERSION_HEX < 0x030300B0 -static int __Pyx_PyGen_FetchStopIterationValue(PyObject **pvalue) { -    PyObject *et, *ev, *tb; -    PyObject *value = NULL; -    __Pyx_ErrFetch(&et, &ev, &tb); -    if (!et) { -        Py_XDECREF(tb); -        Py_XDECREF(ev); -        Py_INCREF(Py_None); -        *pvalue = Py_None; -        return 0; -    } -    if (unlikely(et != PyExc_StopIteration) && -            unlikely(!PyErr_GivenExceptionMatches(et, PyExc_StopIteration))) { -        __Pyx_ErrRestore(et, ev, tb); -        return -1; -    } -    if (likely(et == PyExc_StopIteration)) { -        if (likely(!ev) || !PyObject_IsInstance(ev, PyExc_StopIteration)) { -            if (!ev) { -                Py_INCREF(Py_None); -                ev = Py_None; -            } -            Py_XDECREF(tb); -            Py_DECREF(et); -            *pvalue = ev; -            return 0; -        } -    } -    PyErr_NormalizeException(&et, &ev, &tb); -    if (unlikely(!PyObject_IsInstance(ev, PyExc_StopIteration))) { -        __Pyx_ErrRestore(et, ev, tb); -        return -1; -    } -    Py_XDECREF(tb); -    Py_DECREF(et); -#if PY_VERSION_HEX >= 0x030300A0 -    value = ((PyStopIterationObject *)ev)->value; -    Py_INCREF(value); -    Py_DECREF(ev); -#else -    { -        PyObject* args = PyObject_GetAttrString(ev, "args"); -        Py_DECREF(ev); -        if (likely(args)) { -            value = PyObject_GetItem(args, 0); -            Py_DECREF(args); -        } -        if (unlikely(!value)) { -            __Pyx_ErrRestore(NULL, NULL, NULL); -            Py_INCREF(Py_None); -            value = Py_None; -        } -    } -#endif -    *pvalue = value; -    return 0; -} -#endif -static CYTHON_INLINE -void __Pyx_Generator_ExceptionClear(__pyx_GeneratorObject *self) { -    PyObject *exc_type = self->exc_type; -    PyObject *exc_value = self->exc_value; -    PyObject *exc_traceback = self->exc_traceback; +static CYTHON_INLINE void __Pyx_Generator_ExceptionClear(struct __pyx_Generator_object *self) +{ +    Py_XDECREF(self->exc_type); +    Py_XDECREF(self->exc_value); +    Py_XDECREF(self->exc_traceback); +      self->exc_type = NULL;      self->exc_value = NULL;      self->exc_traceback = NULL; -    Py_XDECREF(exc_type); -    Py_XDECREF(exc_value); -    Py_XDECREF(exc_traceback);  } -static CYTHON_INLINE -int __Pyx_Generator_CheckRunning(__pyx_GeneratorObject *gen) { -    if (unlikely(gen->is_running)) { + +static CYTHON_INLINE PyObject *__Pyx_Generator_SendEx(struct __pyx_Generator_object *self, PyObject *value) +{ +    PyObject *retval; + +    if (self->is_running) {          PyErr_SetString(PyExc_ValueError,                          "generator already executing"); -        return 1; +        return NULL;      } -    return 0; -} -static CYTHON_INLINE -PyObject *__Pyx_Generator_SendEx(__pyx_GeneratorObject *self, PyObject *value) { -    PyObject *retval; -    assert(!self->is_running); -    if (unlikely(self->resume_label == 0)) { -        if (unlikely(value && value != Py_None)) { + +    if (self->resume_label == 0) { +        if (value && value != Py_None) {              PyErr_SetString(PyExc_TypeError,                              "can't send non-None value to a "                              "just-started generator");              return NULL;          }      } -    if (unlikely(self->resume_label == -1)) { + +    if (self->resume_label == -1) {          PyErr_SetNone(PyExc_StopIteration);          return NULL;      } -    if (value) { -#if CYTHON_COMPILING_IN_PYPY -#else -        /* Generators always return to their most recent caller, not -         * necessarily their creator. */ -        if (self->exc_traceback) { -            PyThreadState *tstate = PyThreadState_GET(); -            PyTracebackObject *tb = (PyTracebackObject *) self->exc_traceback; -            PyFrameObject *f = tb->tb_frame; -            Py_XINCREF(tstate->frame); -            assert(f->f_back == NULL); -            f->f_back = tstate->frame; -        } -#endif -        __Pyx_ExceptionSwap(&self->exc_type, &self->exc_value, -                            &self->exc_traceback); -    } else { + + +    if (value) +        __Pyx_ExceptionSwap(&self->exc_type, &self->exc_value, &self->exc_traceback); +    else          __Pyx_Generator_ExceptionClear(self); -    } +      self->is_running = 1;      retval = self->body((PyObject *) self, value);      self->is_running = 0; -    if (retval) { -        __Pyx_ExceptionSwap(&self->exc_type, &self->exc_value, -                            &self->exc_traceback); -#if CYTHON_COMPILING_IN_PYPY -#else -        /* Don't keep the reference to f_back any longer than necessary.  It -         * may keep a chain of frames alive or it could create a reference -         * cycle. */ -        if (self->exc_traceback) { -            PyTracebackObject *tb = (PyTracebackObject *) self->exc_traceback; -            PyFrameObject *f = tb->tb_frame; -            Py_CLEAR(f->f_back); -        } -#endif -    } else { + +    if (retval) +        __Pyx_ExceptionSwap(&self->exc_type, &self->exc_value, &self->exc_traceback); +    else          __Pyx_Generator_ExceptionClear(self); -    } +      return retval;  } -static CYTHON_INLINE -PyObject *__Pyx_Generator_FinishDelegation(__pyx_GeneratorObject *gen) { -    PyObject *ret; -    PyObject *val = NULL; -    __Pyx_Generator_Undelegate(gen); -    __Pyx_PyGen_FetchStopIterationValue(&val); -    ret = __Pyx_Generator_SendEx(gen, val); -    Py_XDECREF(val); -    return ret; -} -static PyObject *__Pyx_Generator_Next(PyObject *self) { -    __pyx_GeneratorObject *gen = (__pyx_GeneratorObject*) self; -    PyObject *yf = gen->yieldfrom; -    if (unlikely(__Pyx_Generator_CheckRunning(gen))) -        return NULL; -    if (yf) { -        PyObject *ret; -        gen->is_running = 1; -        ret = Py_TYPE(yf)->tp_iternext(yf); -        gen->is_running = 0; -        if (likely(ret)) { -            return ret; -        } -        return __Pyx_Generator_FinishDelegation(gen); -    } -    return __Pyx_Generator_SendEx(gen, Py_None); + +static PyObject *__Pyx_Generator_Next(PyObject *self) +{ +    return __Pyx_Generator_SendEx((struct __pyx_Generator_object *) self, Py_None);  } -static PyObject *__Pyx_Generator_Send(PyObject *self, PyObject *value) { -    __pyx_GeneratorObject *gen = (__pyx_GeneratorObject*) self; -    PyObject *yf = gen->yieldfrom; -    if (unlikely(__Pyx_Generator_CheckRunning(gen))) -        return NULL; -    if (yf) { -        PyObject *ret; -        gen->is_running = 1; -        if (__Pyx_Generator_CheckExact(yf)) { -            ret = __Pyx_Generator_Send(yf, value); -        } else { -            if (value == Py_None) -                ret = PyIter_Next(yf); -            else -                ret = PyObject_CallMethod(yf, (char*)"send", (char*)"O", value); -        } -        gen->is_running = 0; -        if (likely(ret)) { -            return ret; -        } -        return __Pyx_Generator_FinishDelegation(gen); -    } -    return __Pyx_Generator_SendEx(gen, value); -} -static int __Pyx_Generator_CloseIter(__pyx_GeneratorObject *gen, PyObject *yf) { -    PyObject *retval = NULL; -    int err = 0; -    if (__Pyx_Generator_CheckExact(yf)) { -        retval = __Pyx_Generator_Close(yf); -        if (!retval) -            return -1; -    } else { -        PyObject *meth; -        gen->is_running = 1; -        meth = PyObject_GetAttrString(yf, "close"); -        if (unlikely(!meth)) { -            if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { -                PyErr_WriteUnraisable(yf); -            } -            PyErr_Clear(); -        } else { -            retval = PyObject_CallFunction(meth, NULL); -            Py_DECREF(meth); -            if (!retval) -                err = -1; -        } -        gen->is_running = 0; -    } -    Py_XDECREF(retval); -    return err; -} -static PyObject *__Pyx_Generator_Close(PyObject *self) { -    __pyx_GeneratorObject *gen = (__pyx_GeneratorObject *) self; -    PyObject *retval, *raised_exception; -    PyObject *yf = gen->yieldfrom; -    int err = 0; -    if (unlikely(__Pyx_Generator_CheckRunning(gen))) -        return NULL; -    if (yf) { -        Py_INCREF(yf); -        err = __Pyx_Generator_CloseIter(gen, yf); -        __Pyx_Generator_Undelegate(gen); -        Py_DECREF(yf); -    } -    if (err == 0) + +static PyObject *__Pyx_Generator_Send(PyObject *self, PyObject *value) +{ +    return __Pyx_Generator_SendEx((struct __pyx_Generator_object *) self, value); +} + +static PyObject *__Pyx_Generator_Close(PyObject *self) +{ +    struct __pyx_Generator_object *generator = (struct __pyx_Generator_object *) self; +    PyObject *retval;  #if PY_VERSION_HEX < 0x02050000 -        PyErr_SetNone(PyExc_StopIteration); +    PyErr_SetNone(PyExc_StopIteration);  #else -        PyErr_SetNone(PyExc_GeneratorExit); +    PyErr_SetNone(PyExc_GeneratorExit);  #endif -    retval = __Pyx_Generator_SendEx(gen, NULL); +    retval = __Pyx_Generator_SendEx(generator, NULL);      if (retval) {          Py_DECREF(retval);          PyErr_SetString(PyExc_RuntimeError,                          "generator ignored GeneratorExit");          return NULL;      } -    raised_exception = PyErr_Occurred(); -    if (!raised_exception -        || raised_exception == PyExc_StopIteration -#if PY_VERSION_HEX >= 0x02050000 -        || raised_exception == PyExc_GeneratorExit -        || PyErr_GivenExceptionMatches(raised_exception, PyExc_GeneratorExit) +#if PY_VERSION_HEX < 0x02050000 +    if (PyErr_ExceptionMatches(PyExc_StopIteration)) +#else +    if (PyErr_ExceptionMatches(PyExc_StopIteration) +        || PyErr_ExceptionMatches(PyExc_GeneratorExit))  #endif -        || PyErr_GivenExceptionMatches(raised_exception, PyExc_StopIteration))      { -        if (raised_exception) PyErr_Clear();      /* ignore these errors */ +        PyErr_Clear();          /* ignore these errors */          Py_INCREF(Py_None);          return Py_None;      }      return NULL;  } -static PyObject *__Pyx_Generator_Throw(PyObject *self, PyObject *args) { -    __pyx_GeneratorObject *gen = (__pyx_GeneratorObject *) self; + +static PyObject *__Pyx_Generator_Throw(PyObject *self, PyObject *args, CYTHON_UNUSED PyObject *kwds) +{ +    struct __pyx_Generator_object *generator = (struct __pyx_Generator_object *) self;      PyObject *typ;      PyObject *tb = NULL;      PyObject *val = NULL; -    PyObject *yf = gen->yieldfrom; +      if (!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb))          return NULL; -    if (unlikely(__Pyx_Generator_CheckRunning(gen))) -        return NULL; -    if (yf) { -        PyObject *ret; -        Py_INCREF(yf); -#if PY_VERSION_HEX >= 0x02050000 -        if (PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit)) { -            int err = __Pyx_Generator_CloseIter(gen, yf); -            Py_DECREF(yf); -            __Pyx_Generator_Undelegate(gen); -            if (err < 0) -                return __Pyx_Generator_SendEx(gen, NULL); -            goto throw_here; -        } -#endif -        gen->is_running = 1; -        if (__Pyx_Generator_CheckExact(yf)) { -            ret = __Pyx_Generator_Throw(yf, args); -        } else { -            PyObject *meth = PyObject_GetAttrString(yf, "throw"); -            if (unlikely(!meth)) { -                Py_DECREF(yf); -                if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { -                    gen->is_running = 0; -                    return NULL; -                } -                PyErr_Clear(); -                __Pyx_Generator_Undelegate(gen); -                gen->is_running = 0; -                goto throw_here; -            } -            ret = PyObject_CallObject(meth, args); -            Py_DECREF(meth); -        } -        gen->is_running = 0; -        Py_DECREF(yf); -        if (!ret) { -            ret = __Pyx_Generator_FinishDelegation(gen); -        } -        return ret; -    } -throw_here:      __Pyx_Raise(typ, val, tb, NULL); -    return __Pyx_Generator_SendEx(gen, NULL); -} -static int __Pyx_Generator_traverse(PyObject *self, visitproc visit, void *arg) { -    __pyx_GeneratorObject *gen = (__pyx_GeneratorObject *) self; -    Py_VISIT(gen->closure); -    Py_VISIT(gen->classobj); -    Py_VISIT(gen->yieldfrom); -    Py_VISIT(gen->exc_type); -    Py_VISIT(gen->exc_value); -    Py_VISIT(gen->exc_traceback); -    return 0; -} -static int __Pyx_Generator_clear(PyObject *self) { -    __pyx_GeneratorObject *gen = (__pyx_GeneratorObject *) self; -    Py_CLEAR(gen->closure); -    Py_CLEAR(gen->classobj); -    Py_CLEAR(gen->yieldfrom); -    Py_CLEAR(gen->exc_type); -    Py_CLEAR(gen->exc_value); -    Py_CLEAR(gen->exc_traceback); -    return 0; -} -static void __Pyx_Generator_dealloc(PyObject *self) { -    __pyx_GeneratorObject *gen = (__pyx_GeneratorObject *) self; -    PyObject_GC_UnTrack(gen); -    if (gen->gi_weakreflist != NULL) -        PyObject_ClearWeakRefs(self); -    PyObject_GC_Track(self); -    if (gen->resume_label > 0) { -        Py_TYPE(gen)->tp_del(self); -        if (self->ob_refcnt > 0) -            return;                     /* resurrected.  :( */ -    } -    PyObject_GC_UnTrack(self); -    __Pyx_Generator_clear(self); -    PyObject_GC_Del(gen); -} -static void __Pyx_Generator_del(PyObject *self) { -    PyObject *res; -    PyObject *error_type, *error_value, *error_traceback; -    __pyx_GeneratorObject *gen = (__pyx_GeneratorObject *) self; -    if (gen->resume_label <= 0) -        return ; -    assert(self->ob_refcnt == 0); -    self->ob_refcnt = 1; -    __Pyx_ErrFetch(&error_type, &error_value, &error_traceback); -    res = __Pyx_Generator_Close(self); -    if (res == NULL) -        PyErr_WriteUnraisable(self); -    else -        Py_DECREF(res); -    __Pyx_ErrRestore(error_type, error_value, error_traceback); -    /* Undo the temporary resurrection; can't use DECREF here, it would -     * cause a recursive call. -     */ -    assert(self->ob_refcnt > 0); -    if (--self->ob_refcnt == 0) -        return; /* this is the normal path out */ -    /* close() resurrected it!  Make it look like the original Py_DECREF -     * never happened. -     */ -    { -        Py_ssize_t refcnt = self->ob_refcnt; -        _Py_NewReference(self); -        self->ob_refcnt = refcnt; -    } -#if CYTHON_COMPILING_FOR_CPYTHON -    assert(PyType_IS_GC(self->ob_type) && -           _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED); -    /* If Py_REF_DEBUG, _Py_NewReference bumped _Py_RefTotal, so -     * we need to undo that. */ -    _Py_DEC_REFTOTAL; -#endif -    /* If Py_TRACE_REFS, _Py_NewReference re-added self to the object -     * chain, so no more to do there. -     * If COUNT_ALLOCS, the original decref bumped tp_frees, and -     * _Py_NewReference bumped tp_allocs:  both of those need to be -     * undone. -     */ -#ifdef COUNT_ALLOCS -    --Py_TYPE(self)->tp_frees; -    --Py_TYPE(self)->tp_allocs; -#endif -} -static PyMemberDef __pyx_Generator_memberlist[] = { -    {(char *) "gi_running", -#if PY_VERSION_HEX >= 0x02060000 -     T_BOOL, -#else -     T_BYTE, -#endif -     offsetof(__pyx_GeneratorObject, is_running), -     READONLY, -     NULL}, -    {0, 0, 0, 0, 0} -}; -static PyMethodDef __pyx_Generator_methods[] = { -    {__Pyx_NAMESTR("send"), (PyCFunction) __Pyx_Generator_Send, METH_O, 0}, -    {__Pyx_NAMESTR("throw"), (PyCFunction) __Pyx_Generator_Throw, METH_VARARGS, 0}, -    {__Pyx_NAMESTR("close"), (PyCFunction) __Pyx_Generator_Close, METH_NOARGS, 0}, -    {0, 0, 0, 0} -}; -static PyTypeObject __pyx_GeneratorType_type = { -    PyVarObject_HEAD_INIT(0, 0) -    __Pyx_NAMESTR("generator"),         /*tp_name*/ -    sizeof(__pyx_GeneratorObject),      /*tp_basicsize*/ -    0,                                  /*tp_itemsize*/ -    (destructor) __Pyx_Generator_dealloc,/*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_GC, /* tp_flags*/ -    0,                                  /*tp_doc*/ -    (traverseproc) __Pyx_Generator_traverse,   /*tp_traverse*/ -    0,                                  /*tp_clear*/ -    0,                                  /*tp_richcompare*/ -    offsetof(__pyx_GeneratorObject, gi_weakreflist), /* tp_weaklistoffse */ -    0,                                  /*tp_iter*/ -    (iternextfunc) __Pyx_Generator_Next, /*tp_iternext*/ -    __pyx_Generator_methods,            /*tp_methods*/ -    __pyx_Generator_memberlist,         /*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*/ -    0,                                  /*tp_new*/ -    0,                                  /*tp_free*/ -    0,                                  /*tp_is_gc*/ -    0,                                  /*tp_bases*/ -    0,                                  /*tp_mro*/ -    0,                                  /*tp_cache*/ -    0,                                  /*tp_subclasses*/ -    0,                                  /*tp_weaklist*/ -    __Pyx_Generator_del,                /*tp_del*/ -#if PY_VERSION_HEX >= 0x02060000 -    0,                                  /*tp_version_tag*/ -#endif -}; -static __pyx_GeneratorObject *__Pyx_Generator_New(__pyx_generator_body_t body, -                                                  PyObject *closure) { -    __pyx_GeneratorObject *gen = -        PyObject_GC_New(__pyx_GeneratorObject, &__pyx_GeneratorType_type); -    if (gen == NULL) -        return NULL; -    gen->body = body; -    gen->closure = closure; -    Py_XINCREF(closure); -    gen->is_running = 0; -    gen->resume_label = 0; -    gen->classobj = NULL; -    gen->yieldfrom = NULL; -    gen->exc_type = NULL; -    gen->exc_value = NULL; -    gen->exc_traceback = NULL; -    gen->gi_weakreflist = NULL; -    PyObject_GC_Track(gen); -    return gen; -} -static int __pyx_Generator_init(void) { -    __pyx_GeneratorType_type.tp_getattro = PyObject_GenericGetAttr; -    __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter; -    if (PyType_Ready(&__pyx_GeneratorType_type)) { -        return -1; -    } -    __pyx_GeneratorType = &__pyx_GeneratorType_type; -    return 0; +    return __Pyx_Generator_SendEx(generator, NULL);  }  static int __Pyx_check_binary_version(void) { @@ -67239,6 +64259,7 @@ static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *s          void (*fp)(void);          void *p;      } tmp; +      d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__");      if (!d) {          PyErr_Clear(); @@ -67285,105 +64306,29 @@ bad:      return -1;  } -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { -    int start = 0, mid = 0, end = count - 1; -    if (end >= 0 && code_line > entries[end].code_line) { -        return count; -    } -    while (start < end) { -        mid = (start + end) / 2; -        if (code_line < entries[mid].code_line) { -            end = mid; -        } else if (code_line > entries[mid].code_line) { -             start = mid + 1; -        } else { -            return mid; -        } -    } -    if (code_line <= entries[mid].code_line) { -        return mid; -    } else { -        return mid + 1; -    } -} -static PyCodeObject *__pyx_find_code_object(int code_line) { -    PyCodeObject* code_object; -    int pos; -    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { -        return NULL; -    } -    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); -    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { -        return NULL; -    } -    code_object = __pyx_code_cache.entries[pos].code_object; -    Py_INCREF(code_object); -    return code_object; -} -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { -    int pos, i; -    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; -    if (unlikely(!code_line)) { -        return; -    } -    if (unlikely(!entries)) { -        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); -        if (likely(entries)) { -            __pyx_code_cache.entries = entries; -            __pyx_code_cache.max_count = 64; -            __pyx_code_cache.count = 1; -            entries[0].code_line = code_line; -            entries[0].code_object = code_object; -            Py_INCREF(code_object); -        } -        return; -    } -    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); -    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { -        PyCodeObject* tmp = entries[pos].code_object; -        entries[pos].code_object = code_object; -        Py_DECREF(tmp); -        return; -    } -    if (__pyx_code_cache.count == __pyx_code_cache.max_count) { -        int new_max = __pyx_code_cache.max_count + 64; -        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -            __pyx_code_cache.entries, new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -        if (unlikely(!entries)) { -            return; -        } -        __pyx_code_cache.entries = entries; -        __pyx_code_cache.max_count = new_max; -    } -    for (i=__pyx_code_cache.count; i>pos; i--) { -        entries[i] = entries[i-1]; -    } -    entries[pos].code_line = code_line; -    entries[pos].code_object = code_object; -    __pyx_code_cache.count++; -    Py_INCREF(code_object); -} -  #include "compile.h"  #include "frameobject.h"  #include "traceback.h" -static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( -            const char *funcname, int c_line, -            int py_line, const char *filename) { -    PyCodeObject *py_code = 0; + +static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno, +                               int __pyx_lineno, const char *__pyx_filename) {      PyObject *py_srcfile = 0;      PyObject *py_funcname = 0; +    PyObject *py_globals = 0; +    PyCodeObject *py_code = 0; +    PyFrameObject *py_frame = 0; +      #if PY_MAJOR_VERSION < 3 -    py_srcfile = PyString_FromString(filename); +    py_srcfile = PyString_FromString(__pyx_filename);      #else -    py_srcfile = PyUnicode_FromString(filename); +    py_srcfile = PyUnicode_FromString(__pyx_filename);      #endif      if (!py_srcfile) goto bad; -    if (c_line) { +    if (__pyx_clineno) {          #if PY_MAJOR_VERSION < 3 -        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); +        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);          #else -        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); +        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);          #endif      }      else { @@ -67394,45 +64339,28 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(          #endif      }      if (!py_funcname) goto bad; -    py_code = __Pyx_PyCode_New( +    py_globals = PyModule_GetDict(__pyx_m); +    if (!py_globals) goto bad; +    py_code = PyCode_New(          0,            /*int argcount,*/ +        #if PY_MAJOR_VERSION >= 3          0,            /*int kwonlyargcount,*/ +        #endif          0,            /*int nlocals,*/          0,            /*int stacksize,*/          0,            /*int flags,*/          __pyx_empty_bytes, /*PyObject *code,*/ -        __pyx_empty_tuple, /*PyObject *consts,*/ -        __pyx_empty_tuple, /*PyObject *names,*/ -        __pyx_empty_tuple, /*PyObject *varnames,*/ -        __pyx_empty_tuple, /*PyObject *freevars,*/ -        __pyx_empty_tuple, /*PyObject *cellvars,*/ +        __pyx_empty_tuple,  /*PyObject *consts,*/ +        __pyx_empty_tuple,  /*PyObject *names,*/ +        __pyx_empty_tuple,  /*PyObject *varnames,*/ +        __pyx_empty_tuple,  /*PyObject *freevars,*/ +        __pyx_empty_tuple,  /*PyObject *cellvars,*/          py_srcfile,   /*PyObject *filename,*/          py_funcname,  /*PyObject *name,*/ -        py_line,      /*int firstlineno,*/ +        __pyx_lineno,   /*int firstlineno,*/          __pyx_empty_bytes  /*PyObject *lnotab*/      ); -    Py_DECREF(py_srcfile); -    Py_DECREF(py_funcname); -    return py_code; -bad: -    Py_XDECREF(py_srcfile); -    Py_XDECREF(py_funcname); -    return NULL; -} -static void __Pyx_AddTraceback(const char *funcname, int c_line, -                               int py_line, const char *filename) { -    PyCodeObject *py_code = 0; -    PyObject *py_globals = 0; -    PyFrameObject *py_frame = 0; -    py_code = __pyx_find_code_object(c_line ? c_line : py_line); -    if (!py_code) { -        py_code = __Pyx_CreateCodeObjectForTraceback( -            funcname, c_line, py_line, filename); -        if (!py_code) goto bad; -        __pyx_insert_code_object(c_line ? c_line : py_line, py_code); -    } -    py_globals = PyModule_GetDict(__pyx_m); -    if (!py_globals) goto bad; +    if (!py_code) goto bad;      py_frame = PyFrame_New(          PyThreadState_GET(), /*PyThreadState *tstate,*/          py_code,             /*PyCodeObject *code,*/ @@ -67440,9 +64368,11 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line,          0                    /*PyObject *locals*/      );      if (!py_frame) goto bad; -    py_frame->f_lineno = py_line; +    py_frame->f_lineno = __pyx_lineno;      PyTraceBack_Here(py_frame);  bad: +    Py_XDECREF(py_srcfile); +    Py_XDECREF(py_funcname);      Py_XDECREF(py_code);      Py_XDECREF(py_frame);  } @@ -67477,7 +64407,6 @@ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {      return 0;  } -  /* Type Conversion Functions */  static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { diff --git a/python/src/sa/data_array.pxi b/python/src/sa/data_array.pxi index 2626ce0f..ce2d3a79 100644 --- a/python/src/sa/data_array.pxi +++ b/python/src/sa/data_array.pxi @@ -32,6 +32,9 @@ cdef class DataArray:      def __len__(self):          return len(self.data) +    def get_data(self): +        return self.data +      def get_sentence_id(self, i):          return self.sent_id.arr[i]  | 
