Generated by Cython 0.15.1 on Tue Jan 31 14:40:24 2012
Raw output: pairwise.c
1: import numpy
/* "vision/track/pairwise.pyx":1 * import numpy #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cimport numpy * */ __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__numpy), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__numpy, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "vision/track/pairwise.pyx":1 * import numpy #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cimport numpy * */ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_1))<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
2: cimport numpy
3:
4: cdef double Infinity = 1e300
/* "vision/track/pairwise.pyx":4 * cimport numpy * * cdef double Infinity = 1e300 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cdef extern from "math.h": */ __pyx_v_6vision_5track_8pairwise_Infinity = 1e300;
5:
6: cdef extern from "math.h":
7: float exp(float n)
8:
9: # see Pedro Felzenszwalb et. al
10: cpdef quadratic_1d(numpy.ndarray[numpy.double_t, ndim=1] src,
/* "vision/track/pairwise.pyx":10 * * # see Pedro Felzenszwalb et. al * cpdef quadratic_1d(numpy.ndarray[numpy.double_t, ndim=1] src, #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* numpy.ndarray[numpy.double_t, ndim=1] dst, * numpy.ndarray[numpy.int_t, ndim=1] ptr, */ static PyObject *__pyx_pf_6vision_5track_8pairwise_quadratic_1d(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_6vision_5track_8pairwise_quadratic_1d(PyArrayObject *__pyx_v_src, PyArrayObject *__pyx_v_dst, PyArrayObject *__pyx_v_ptr, int __pyx_v_step, int __pyx_v_n, double __pyx_v_a, double __pyx_v_b, int __pyx_v_o, int __pyx_skip_dispatch) { PyArrayObject *__pyx_v_v = 0; PyArrayObject *__pyx_v_z = 0; int __pyx_v_k; int __pyx_v_q; double __pyx_v_s; Py_buffer __pyx_bstruct_src; Py_ssize_t __pyx_bstride_0_src = 0; Py_ssize_t __pyx_bshape_0_src = 0; Py_buffer __pyx_bstruct_dst; Py_ssize_t __pyx_bstride_0_dst = 0; Py_ssize_t __pyx_bshape_0_dst = 0; Py_buffer __pyx_bstruct_v; Py_ssize_t __pyx_bstride_0_v = 0; Py_ssize_t __pyx_bshape_0_v = 0; Py_buffer __pyx_bstruct_z; Py_ssize_t __pyx_bstride_0_z = 0; Py_ssize_t __pyx_bshape_0_z = 0; Py_buffer __pyx_bstruct_ptr; Py_ssize_t __pyx_bstride_0_ptr = 0; Py_ssize_t __pyx_bshape_0_ptr = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("quadratic_1d"); __pyx_bstruct_v.buf = NULL; __pyx_bstruct_z.buf = NULL; __pyx_bstruct_src.buf = NULL; __pyx_bstruct_dst.buf = NULL; __pyx_bstruct_ptr.buf = NULL; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_src, (PyObject*)__pyx_v_src, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_bstride_0_src = __pyx_bstruct_src.strides[0]; __pyx_bshape_0_src = __pyx_bstruct_src.shape[0]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_dst, (PyObject*)__pyx_v_dst, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_bstride_0_dst = __pyx_bstruct_dst.strides[0]; __pyx_bshape_0_dst = __pyx_bstruct_dst.shape[0]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_ptr, (PyObject*)__pyx_v_ptr, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_bstride_0_ptr = __pyx_bstruct_ptr.strides[0]; __pyx_bshape_0_ptr = __pyx_bstruct_ptr.shape[0]; /* "vision/track/pairwise.pyx":10 * * # see Pedro Felzenszwalb et. al * cpdef quadratic_1d(numpy.ndarray[numpy.double_t, ndim=1] src, #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* numpy.ndarray[numpy.double_t, ndim=1] dst, * numpy.ndarray[numpy.int_t, ndim=1] ptr, */ static PyObject *__pyx_pf_6vision_5track_8pairwise_quadratic_1d(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_6vision_5track_8pairwise_quadratic_1d[] = "quadratic_1d(ndarray src, ndarray dst, ndarray ptr, int step, int n, double a, double b, int o)"; static PyObject *__pyx_pf_6vision_5track_8pairwise_quadratic_1d(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyArrayObject *__pyx_v_src = 0; PyArrayObject *__pyx_v_dst = 0; PyArrayObject *__pyx_v_ptr = 0; int __pyx_v_step; int __pyx_v_n; double __pyx_v_a; double __pyx_v_b; int __pyx_v_o; Py_buffer __pyx_bstruct_src; Py_ssize_t __pyx_bstride_0_src = 0; Py_ssize_t __pyx_bshape_0_src = 0; Py_buffer __pyx_bstruct_dst; Py_ssize_t __pyx_bstride_0_dst = 0; Py_ssize_t __pyx_bshape_0_dst = 0; Py_buffer __pyx_bstruct_ptr; Py_ssize_t __pyx_bstride_0_ptr = 0; Py_ssize_t __pyx_bshape_0_ptr = 0; PyObject *__pyx_r = NULL; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__src,&__pyx_n_s__dst,&__pyx_n_s__ptr,&__pyx_n_s__step,&__pyx_n_s__n,&__pyx_n_s__a,&__pyx_n_s__b,&__pyx_n_s__o,0}; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("quadratic_1d"); __pyx_self = __pyx_self; { PyObject* values[8] = {0,0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; switch (PyTuple_GET_SIZE(__pyx_args)) { case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); 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); 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); 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__src); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dst); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("quadratic_1d", 1, 8, 8, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ptr); if (likely(values[2])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("quadratic_1d", 1, 8, 8, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__step); if (likely(values[3])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("quadratic_1d", 1, 8, 8, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 4: values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__n); if (likely(values[4])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("quadratic_1d", 1, 8, 8, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 5: values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a); if (likely(values[5])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("quadratic_1d", 1, 8, 8, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 6: values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__b); if (likely(values[6])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("quadratic_1d", 1, 8, 8, 6); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 7: values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__o); if (likely(values[7])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("quadratic_1d", 1, 8, 8, 7); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __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), "quadratic_1d")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 8) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); } __pyx_v_src = ((PyArrayObject *)values[0]); __pyx_v_dst = ((PyArrayObject *)values[1]); __pyx_v_ptr = ((PyArrayObject *)values[2]); __pyx_v_step = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_step == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_n = __Pyx_PyInt_AsInt(values[4]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_a = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_a == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_b = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_b == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_o = __Pyx_PyInt_AsInt(values[7]); if (unlikely((__pyx_v_o == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("quadratic_1d", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("vision.track.pairwise.quadratic_1d", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_bstruct_src.buf = NULL; __pyx_bstruct_dst.buf = NULL; __pyx_bstruct_ptr.buf = NULL; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_src), __pyx_ptype_5numpy_ndarray, 1, "src", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dst), __pyx_ptype_5numpy_ndarray, 1, "dst", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ptr), __pyx_ptype_5numpy_ndarray, 1, "ptr", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;} { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_src, (PyObject*)__pyx_v_src, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_bstride_0_src = __pyx_bstruct_src.strides[0]; __pyx_bshape_0_src = __pyx_bstruct_src.shape[0]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_dst, (PyObject*)__pyx_v_dst, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_bstride_0_dst = __pyx_bstruct_dst.strides[0]; __pyx_bshape_0_dst = __pyx_bstruct_dst.shape[0]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_ptr, (PyObject*)__pyx_v_ptr, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_bstride_0_ptr = __pyx_bstruct_ptr.strides[0]; __pyx_bshape_0_ptr = __pyx_bstruct_ptr.shape[0]; __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_6vision_5track_8pairwise_quadratic_1d(__pyx_v_src, __pyx_v_dst, __pyx_v_ptr, __pyx_v_step, __pyx_v_n, __pyx_v_a, __pyx_v_b, __pyx_v_o, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_src); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dst); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_ptr); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("vision.track.pairwise.quadratic_1d", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_src); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dst); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_ptr); __pyx_L2:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
11: numpy.ndarray[numpy.double_t, ndim=1] dst,
12: numpy.ndarray[numpy.int_t, ndim=1] ptr,
13: int step, int n, double a, double b, int o):
14:
15: cdef numpy.ndarray[numpy.int_t, ndim=1] v = numpy.zeros(n, dtype=numpy.int)
/* "vision/track/pairwise.pyx":15 * int step, int n, double a, double b, int o): * * cdef numpy.ndarray[numpy.int_t, ndim=1] v = numpy.zeros(n, dtype=numpy.int) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef numpy.ndarray[numpy.double_t, ndim=1] z = numpy.zeros(n+1, * dtype = numpy.double) */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); 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_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__zeros); 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 = PyInt_FromLong(__pyx_v_n); 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_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __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; __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__int); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_6 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_v, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_v = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_v.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_v = __pyx_bstruct_v.strides[0]; __pyx_bshape_0_v = __pyx_bstruct_v.shape[0]; } } __pyx_t_6 = 0; __pyx_v_v = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0;
16: cdef numpy.ndarray[numpy.double_t, ndim=1] z = numpy.zeros(n+1,
/* "vision/track/pairwise.pyx":16 * * cdef numpy.ndarray[numpy.int_t, ndim=1] v = numpy.zeros(n, dtype=numpy.int) * cdef numpy.ndarray[numpy.double_t, ndim=1] z = numpy.zeros(n+1, #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dtype = numpy.double) * cdef int k = 0 */ __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__zeros); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyInt_FromLong((__pyx_v_n + 1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5));
17: dtype = numpy.double)
/* "vision/track/pairwise.pyx":17 * cdef numpy.ndarray[numpy.int_t, ndim=1] v = numpy.zeros(n, dtype=numpy.int) * cdef numpy.ndarray[numpy.double_t, ndim=1] z = numpy.zeros(n+1, * dtype = numpy.double) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef int k = 0 * v[0] = 0 */ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__double); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_7 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_z, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_z = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_z.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_z = __pyx_bstruct_z.strides[0]; __pyx_bshape_0_z = __pyx_bstruct_z.shape[0]; } } __pyx_t_7 = 0; __pyx_v_z = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
18: cdef int k = 0
/* "vision/track/pairwise.pyx":18 * cdef numpy.ndarray[numpy.double_t, ndim=1] z = numpy.zeros(n+1, * dtype = numpy.double) * cdef int k = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* v[0] = 0 * z[0] = -Infinity */ __pyx_v_k = 0;
19: v[0] = 0
/* "vision/track/pairwise.pyx":19 * dtype = numpy.double) * cdef int k = 0 * v[0] = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* z[0] = -Infinity * z[1] = Infinity */ __pyx_t_8 = 0; if (__pyx_t_8<
0) __pyx_t_8 += __pyx_bshape_0_v; *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_8, __pyx_bstride_0_v) = 0;
20: z[0] = -Infinity
/* "vision/track/pairwise.pyx":20 * cdef int k = 0 * v[0] = 0 * z[0] = -Infinity #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* z[1] = Infinity * */ __pyx_t_9 = 0; if (__pyx_t_9<
0) __pyx_t_9 += __pyx_bshape_0_z; *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_z.buf, __pyx_t_9, __pyx_bstride_0_z) = (-__pyx_v_6vision_5track_8pairwise_Infinity);
21: z[1] = Infinity
/* "vision/track/pairwise.pyx":21 * v[0] = 0 * z[0] = -Infinity * z[1] = Infinity #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cdef int q */ __pyx_t_10 = 1; if (__pyx_t_10<
0) __pyx_t_10 += __pyx_bshape_0_z; *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_z.buf, __pyx_t_10, __pyx_bstride_0_z) = __pyx_v_6vision_5track_8pairwise_Infinity;
22:
23: cdef int q
24: cdef double s
25:
26: for q in range(1, n):
/* "vision/track/pairwise.pyx":26 * cdef double s * * for q in range(1, n): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* s = ((src[q*step+o]-src[v[k]*step+o])-b*(q-v[k])+a*(q**2-v[k]**2)) * s = s / (2*a*(q-v[k])) */ __pyx_t_11 = __pyx_v_n; for (__pyx_t_12 = 1; __pyx_t_12<
__pyx_t_11; __pyx_t_12+=1) { __pyx_v_q = __pyx_t_12;
27: s = ((src[q*step+o]-src[v[k]*step+o])-b*(q-v[k])+a*(q**2-v[k]**2))
/* "vision/track/pairwise.pyx":27 * * for q in range(1, n): * s = ((src[q*step+o]-src[v[k]*step+o])-b*(q-v[k])+a*(q**2-v[k]**2)) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* s = s / (2*a*(q-v[k])) * */ __pyx_t_13 = ((__pyx_v_q * __pyx_v_step) + __pyx_v_o); if (__pyx_t_13<
0) __pyx_t_13 += __pyx_bshape_0_src; __pyx_t_14 = __pyx_v_k; if (__pyx_t_14<
0) __pyx_t_14 += __pyx_bshape_0_v; __pyx_t_15 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_14, __pyx_bstride_0_v)) * __pyx_v_step) + __pyx_v_o); if (__pyx_t_15<
0) __pyx_t_15 += __pyx_bshape_0_src; __pyx_t_16 = __pyx_v_k; if (__pyx_t_16<
0) __pyx_t_16 += __pyx_bshape_0_v; __pyx_t_17 = __pyx_v_k; if (__pyx_t_17<
0) __pyx_t_17 += __pyx_bshape_0_v; __pyx_v_s = ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_src.buf, __pyx_t_13, __pyx_bstride_0_src)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_src.buf, __pyx_t_15, __pyx_bstride_0_src))) - (__pyx_v_b * (__pyx_v_q - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_16, __pyx_bstride_0_v))))) + (__pyx_v_a * (__Pyx_pow_long(((long)__pyx_v_q), 2) - __Pyx_pow_long(((long)(*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_17, __pyx_bstride_0_v))), 2))));
28: s = s / (2*a*(q-v[k]))
/* "vision/track/pairwise.pyx":28 * for q in range(1, n): * s = ((src[q*step+o]-src[v[k]*step+o])-b*(q-v[k])+a*(q**2-v[k]**2)) * s = s / (2*a*(q-v[k])) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * while s<
= z[k]: */ __pyx_t_18 = __pyx_v_k; if (__pyx_t_18<
0) __pyx_t_18 += __pyx_bshape_0_v; __pyx_v_s = (__pyx_v_s / ((2.0 * __pyx_v_a) * (__pyx_v_q - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_18, __pyx_bstride_0_v)))));
29:
30: while s <= z[k]:
/* "vision/track/pairwise.pyx":30 * s = s / (2*a*(q-v[k])) * * while s<
= z[k]: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* k = k - 1 * s = ((src[q*step+o]-src[v[k]*step+o])-b*(q-v[k])+a*(q**2-v[k]**2)) */ while (1) { __pyx_t_19 = __pyx_v_k; if (__pyx_t_19<
0) __pyx_t_19 += __pyx_bshape_0_z; __pyx_t_20 = (__pyx_v_s<
= (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_z.buf, __pyx_t_19, __pyx_bstride_0_z))); if (!__pyx_t_20) break;
31: k = k - 1
/* "vision/track/pairwise.pyx":31 * * while s<
= z[k]: * k = k - 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* s = ((src[q*step+o]-src[v[k]*step+o])-b*(q-v[k])+a*(q**2-v[k]**2)) * s = s / (2*a*(q-v[k])) */ __pyx_v_k = (__pyx_v_k - 1);
32: s = ((src[q*step+o]-src[v[k]*step+o])-b*(q-v[k])+a*(q**2-v[k]**2))
/* "vision/track/pairwise.pyx":32 * while s<
= z[k]: * k = k - 1 * s = ((src[q*step+o]-src[v[k]*step+o])-b*(q-v[k])+a*(q**2-v[k]**2)) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* s = s / (2*a*(q-v[k])) * */ __pyx_t_21 = ((__pyx_v_q * __pyx_v_step) + __pyx_v_o); if (__pyx_t_21<
0) __pyx_t_21 += __pyx_bshape_0_src; __pyx_t_22 = __pyx_v_k; if (__pyx_t_22<
0) __pyx_t_22 += __pyx_bshape_0_v; __pyx_t_23 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_22, __pyx_bstride_0_v)) * __pyx_v_step) + __pyx_v_o); if (__pyx_t_23<
0) __pyx_t_23 += __pyx_bshape_0_src; __pyx_t_24 = __pyx_v_k; if (__pyx_t_24<
0) __pyx_t_24 += __pyx_bshape_0_v; __pyx_t_25 = __pyx_v_k; if (__pyx_t_25<
0) __pyx_t_25 += __pyx_bshape_0_v; __pyx_v_s = ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_src.buf, __pyx_t_21, __pyx_bstride_0_src)) - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_src.buf, __pyx_t_23, __pyx_bstride_0_src))) - (__pyx_v_b * (__pyx_v_q - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_24, __pyx_bstride_0_v))))) + (__pyx_v_a * (__Pyx_pow_long(((long)__pyx_v_q), 2) - __Pyx_pow_long(((long)(*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_25, __pyx_bstride_0_v))), 2))));
33: s = s / (2*a*(q-v[k]))
/* "vision/track/pairwise.pyx":33 * k = k - 1 * s = ((src[q*step+o]-src[v[k]*step+o])-b*(q-v[k])+a*(q**2-v[k]**2)) * s = s / (2*a*(q-v[k])) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * k = k + 1 */ __pyx_t_26 = __pyx_v_k; if (__pyx_t_26<
0) __pyx_t_26 += __pyx_bshape_0_v; __pyx_v_s = (__pyx_v_s / ((2.0 * __pyx_v_a) * (__pyx_v_q - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_26, __pyx_bstride_0_v))))); }
34:
35: k = k + 1
/* "vision/track/pairwise.pyx":35 * s = s / (2*a*(q-v[k])) * * k = k + 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* v[k] = q * z[k] = s */ __pyx_v_k = (__pyx_v_k + 1);
36: v[k] = q
/* "vision/track/pairwise.pyx":36 * * k = k + 1 * v[k] = q #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* z[k] = s * z[k+1] = Infinity */ __pyx_t_27 = __pyx_v_k; if (__pyx_t_27<
0) __pyx_t_27 += __pyx_bshape_0_v; *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_27, __pyx_bstride_0_v) = __pyx_v_q;
37: z[k] = s
/* "vision/track/pairwise.pyx":37 * k = k + 1 * v[k] = q * z[k] = s #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* z[k+1] = Infinity * */ __pyx_t_28 = __pyx_v_k; if (__pyx_t_28<
0) __pyx_t_28 += __pyx_bshape_0_z; *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_z.buf, __pyx_t_28, __pyx_bstride_0_z) = __pyx_v_s;
38: z[k+1] = Infinity
/* "vision/track/pairwise.pyx":38 * v[k] = q * z[k] = s * z[k+1] = Infinity #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * k = 0 */ __pyx_t_29 = (__pyx_v_k + 1); if (__pyx_t_29<
0) __pyx_t_29 += __pyx_bshape_0_z; *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_z.buf, __pyx_t_29, __pyx_bstride_0_z) = __pyx_v_6vision_5track_8pairwise_Infinity; }
39:
40: k = 0
/* "vision/track/pairwise.pyx":40 * z[k+1] = Infinity * * k = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for q in range(0, n): * while z[k+1]<
q: */ __pyx_v_k = 0;
41: for q in range(0, n):
/* "vision/track/pairwise.pyx":41 * * k = 0 * for q in range(0, n): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* while z[k+1]<
q: * k = k + 1 */ __pyx_t_11 = __pyx_v_n; for (__pyx_t_12 = 0; __pyx_t_12<
__pyx_t_11; __pyx_t_12+=1) { __pyx_v_q = __pyx_t_12;
42: while z[k+1] < q:
/* "vision/track/pairwise.pyx":42 * k = 0 * for q in range(0, n): * while z[k+1]<
q: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* k = k + 1 * dst[q*step+o] = a*(q-v[k])**2 + b*(q-v[k]) + src[v[k]*step+o] */ while (1) { __pyx_t_30 = (__pyx_v_k + 1); if (__pyx_t_30<
0) __pyx_t_30 += __pyx_bshape_0_z; __pyx_t_20 = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_z.buf, __pyx_t_30, __pyx_bstride_0_z))<
__pyx_v_q); if (!__pyx_t_20) break;
43: k = k + 1
/* "vision/track/pairwise.pyx":43 * for q in range(0, n): * while z[k+1]<
q: * k = k + 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dst[q*step+o] = a*(q-v[k])**2 + b*(q-v[k]) + src[v[k]*step+o] * ptr[q*step+o] = v[k] */ __pyx_v_k = (__pyx_v_k + 1); }
44: dst[q*step+o] = a*(q-v[k])**2 + b*(q-v[k]) + src[v[k]*step+o]
/* "vision/track/pairwise.pyx":44 * while z[k+1]<
q: * k = k + 1 * dst[q*step+o] = a*(q-v[k])**2 + b*(q-v[k]) + src[v[k]*step+o] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* ptr[q*step+o] = v[k] * */ __pyx_t_31 = __pyx_v_k; if (__pyx_t_31<
0) __pyx_t_31 += __pyx_bshape_0_v; __pyx_t_32 = __pyx_v_k; if (__pyx_t_32<
0) __pyx_t_32 += __pyx_bshape_0_v; __pyx_t_33 = __pyx_v_k; if (__pyx_t_33<
0) __pyx_t_33 += __pyx_bshape_0_v; __pyx_t_34 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_33, __pyx_bstride_0_v)) * __pyx_v_step) + __pyx_v_o); if (__pyx_t_34<
0) __pyx_t_34 += __pyx_bshape_0_src; __pyx_t_35 = ((__pyx_v_q * __pyx_v_step) + __pyx_v_o); if (__pyx_t_35<
0) __pyx_t_35 += __pyx_bshape_0_dst; *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_dst.buf, __pyx_t_35, __pyx_bstride_0_dst) = (((__pyx_v_a * __Pyx_pow_long(((long)(__pyx_v_q - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_31, __pyx_bstride_0_v)))), 2)) + (__pyx_v_b * (__pyx_v_q - (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_32, __pyx_bstride_0_v))))) + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_double_t *, __pyx_bstruct_src.buf, __pyx_t_34, __pyx_bstride_0_src)));
45: ptr[q*step+o] = v[k]
/* "vision/track/pairwise.pyx":45 * k = k + 1 * dst[q*step+o] = a*(q-v[k])**2 + b*(q-v[k]) + src[v[k]*step+o] * ptr[q*step+o] = v[k] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * # see Pedro Felzenszwalb et. al */ __pyx_t_36 = __pyx_v_k; if (__pyx_t_36<
0) __pyx_t_36 += __pyx_bshape_0_v; __pyx_t_37 = ((__pyx_v_q * __pyx_v_step) + __pyx_v_o); if (__pyx_t_37<
0) __pyx_t_37 += __pyx_bshape_0_ptr; *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_ptr.buf, __pyx_t_37, __pyx_bstride_0_ptr) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_v.buf, __pyx_t_36, __pyx_bstride_0_v)); } __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_src); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dst); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_v); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_z); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_ptr); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("vision.track.pairwise.quadratic_1d", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_src); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dst); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_v); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_z); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_ptr); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_v); __Pyx_XDECREF((PyObject *)__pyx_v_z); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
46:
47: # see Pedro Felzenszwalb et. al
48: def quadratic(numpy.ndarray[numpy.double_t, ndim=2] scores,
/* "vision/track/pairwise.pyx":48 * * # see Pedro Felzenszwalb et. al * def quadratic(numpy.ndarray[numpy.double_t, ndim=2] scores, #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* double cost): * cdef int w, h, x, y, p */ static PyObject *__pyx_pf_6vision_5track_8pairwise_1quadratic(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_6vision_5track_8pairwise_1quadratic[] = "quadratic(ndarray scores, double cost)"; static PyMethodDef __pyx_mdef_6vision_5track_8pairwise_1quadratic = {__Pyx_NAMESTR("quadratic"), (PyCFunction)__pyx_pf_6vision_5track_8pairwise_1quadratic, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6vision_5track_8pairwise_1quadratic)}; static PyObject *__pyx_pf_6vision_5track_8pairwise_1quadratic(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyArrayObject *__pyx_v_scores = 0; double __pyx_v_cost; int __pyx_v_w; int __pyx_v_h; int __pyx_v_x; int __pyx_v_y; int __pyx_v_p; PyArrayObject *__pyx_v_vals = 0; PyArrayObject *__pyx_v_M = 0; PyArrayObject *__pyx_v_Ix = 0; PyArrayObject *__pyx_v_Iy = 0; PyArrayObject *__pyx_v_tmpM = 0; PyArrayObject *__pyx_v_tmpIx = 0; PyArrayObject *__pyx_v_tmpIy = 0; Py_buffer __pyx_bstruct_Iy; Py_ssize_t __pyx_bstride_0_Iy = 0; Py_ssize_t __pyx_bstride_1_Iy = 0; Py_ssize_t __pyx_bshape_0_Iy = 0; Py_ssize_t __pyx_bshape_1_Iy = 0; Py_buffer __pyx_bstruct_Ix; Py_ssize_t __pyx_bstride_0_Ix = 0; Py_ssize_t __pyx_bstride_1_Ix = 0; Py_ssize_t __pyx_bshape_0_Ix = 0; Py_ssize_t __pyx_bshape_1_Ix = 0; Py_buffer __pyx_bstruct_M; Py_ssize_t __pyx_bstride_0_M = 0; Py_ssize_t __pyx_bshape_0_M = 0; Py_buffer __pyx_bstruct_tmpIx; Py_ssize_t __pyx_bstride_0_tmpIx = 0; Py_ssize_t __pyx_bshape_0_tmpIx = 0; Py_buffer __pyx_bstruct_tmpIy; Py_ssize_t __pyx_bstride_0_tmpIy = 0; Py_ssize_t __pyx_bshape_0_tmpIy = 0; Py_buffer __pyx_bstruct_scores; Py_ssize_t __pyx_bstride_0_scores = 0; Py_ssize_t __pyx_bstride_1_scores = 0; Py_ssize_t __pyx_bshape_0_scores = 0; Py_ssize_t __pyx_bshape_1_scores = 0; Py_buffer __pyx_bstruct_vals; Py_ssize_t __pyx_bstride_0_vals = 0; Py_ssize_t __pyx_bshape_0_vals = 0; Py_buffer __pyx_bstruct_tmpM; Py_ssize_t __pyx_bstride_0_tmpM = 0; Py_ssize_t __pyx_bshape_0_tmpM = 0; PyObject *__pyx_r = NULL; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__scores,&__pyx_n_s__cost,0}; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("quadratic"); __pyx_self = __pyx_self; { 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__scores); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cost); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("quadratic", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __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), "quadratic")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __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_scores = ((PyArrayObject *)values[0]); __pyx_v_cost = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_cost == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("quadratic", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("vision.track.pairwise.quadratic", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_bstruct_vals.buf = NULL; __pyx_bstruct_M.buf = NULL; __pyx_bstruct_Ix.buf = NULL; __pyx_bstruct_Iy.buf = NULL; __pyx_bstruct_tmpM.buf = NULL; __pyx_bstruct_tmpIx.buf = NULL; __pyx_bstruct_tmpIy.buf = NULL; __pyx_bstruct_scores.buf = NULL; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scores), __pyx_ptype_5numpy_ndarray, 1, "scores", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_scores, (PyObject*)__pyx_v_scores, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_bstride_0_scores = __pyx_bstruct_scores.strides[0]; __pyx_bstride_1_scores = __pyx_bstruct_scores.strides[1]; __pyx_bshape_0_scores = __pyx_bstruct_scores.shape[0]; __pyx_bshape_1_scores = __pyx_bstruct_scores.shape[1]; /* "vision/track/pairwise.pyx":48 * * # see Pedro Felzenszwalb et. al * def quadratic(numpy.ndarray[numpy.double_t, ndim=2] scores, #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* double cost): * cdef int w, h, x, y, p */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6vision_5track_8pairwise_1quadratic, NULL, __pyx_n_s_13); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__quadratic, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
49: double cost):
50: cdef int w, h, x, y, p
51: w = scores.shape[0]
/* "vision/track/pairwise.pyx":51 * double cost): * cdef int w, h, x, y, p * w = scores.shape[0] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* h = scores.shape[1] * */ __pyx_v_w = (__pyx_v_scores->dimensions[0]);
52: h = scores.shape[1]
/* "vision/track/pairwise.pyx":52 * cdef int w, h, x, y, p * w = scores.shape[0] * h = scores.shape[1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cdef numpy.ndarray[numpy.double_t, ndim=1] vals = scores.flatten() */ __pyx_v_h = (__pyx_v_scores->dimensions[1]);
53:
54: cdef numpy.ndarray[numpy.double_t, ndim=1] vals = scores.flatten()
/* "vision/track/pairwise.pyx":54 * h = scores.shape[1] * * cdef numpy.ndarray[numpy.double_t, ndim=1] vals = scores.flatten() #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cdef numpy.ndarray[numpy.double_t, ndim=1] M = numpy.zeros(w*h, */ __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_scores), __pyx_n_s__flatten); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __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[0]; __pyx_lineno = 54; __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_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_3 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_vals, (PyObject*)__pyx_t_3, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_vals = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_vals.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_vals = __pyx_bstruct_vals.strides[0]; __pyx_bshape_0_vals = __pyx_bstruct_vals.shape[0]; } } __pyx_t_3 = 0; __pyx_v_vals = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
55:
56: cdef numpy.ndarray[numpy.double_t, ndim=1] M = numpy.zeros(w*h,
/* "vision/track/pairwise.pyx":56 * cdef numpy.ndarray[numpy.double_t, ndim=1] vals = scores.flatten() * * cdef numpy.ndarray[numpy.double_t, ndim=1] M = numpy.zeros(w*h, #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dtype = numpy.double) * cdef numpy.ndarray[numpy.int_t, ndim=2] Ix = numpy.zeros((w, h), */ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__zeros); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyInt_FromLong((__pyx_v_w * __pyx_v_h)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __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[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __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 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2));
57: dtype = numpy.double)
/* "vision/track/pairwise.pyx":57 * * cdef numpy.ndarray[numpy.double_t, ndim=1] M = numpy.zeros(w*h, * dtype = numpy.double) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef numpy.ndarray[numpy.int_t, ndim=2] Ix = numpy.zeros((w, h), * dtype = numpy.int) */ __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__double); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__dtype), __pyx_t_6)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __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; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_7 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_M, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_M = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_M.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_M = __pyx_bstruct_M.strides[0]; __pyx_bshape_0_M = __pyx_bstruct_M.shape[0]; } } __pyx_t_7 = 0; __pyx_v_M = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0;
58: cdef numpy.ndarray[numpy.int_t, ndim=2] Ix = numpy.zeros((w, h),
/* "vision/track/pairwise.pyx":58 * cdef numpy.ndarray[numpy.double_t, ndim=1] M = numpy.zeros(w*h, * dtype = numpy.double) * cdef numpy.ndarray[numpy.int_t, ndim=2] Ix = numpy.zeros((w, h), #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dtype = numpy.int) * cdef numpy.ndarray[numpy.int_t, ndim=2] Iy = numpy.zeros((w, h), */ __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__zeros); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyInt_FromLong(__pyx_v_w); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_6 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __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; __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1));
59: dtype = numpy.int)
/* "vision/track/pairwise.pyx":59 * dtype = numpy.double) * cdef numpy.ndarray[numpy.int_t, ndim=2] Ix = numpy.zeros((w, h), * dtype = numpy.int) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef numpy.ndarray[numpy.int_t, ndim=2] Iy = numpy.zeros((w, h), * dtype = numpy.int) */ __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__int); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_8 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_Ix, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_Ix = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_Ix.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_Ix = __pyx_bstruct_Ix.strides[0]; __pyx_bstride_1_Ix = __pyx_bstruct_Ix.strides[1]; __pyx_bshape_0_Ix = __pyx_bstruct_Ix.shape[0]; __pyx_bshape_1_Ix = __pyx_bstruct_Ix.shape[1]; } } __pyx_t_8 = 0; __pyx_v_Ix = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0;
60: cdef numpy.ndarray[numpy.int_t, ndim=2] Iy = numpy.zeros((w, h),
/* "vision/track/pairwise.pyx":60 * cdef numpy.ndarray[numpy.int_t, ndim=2] Ix = numpy.zeros((w, h), * dtype = numpy.int) * cdef numpy.ndarray[numpy.int_t, ndim=2] Iy = numpy.zeros((w, h), #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dtype = numpy.int) * */ __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__zeros); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyInt_FromLong(__pyx_v_w); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_2)); __Pyx_GIVEREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2));
61: dtype = numpy.int)
/* "vision/track/pairwise.pyx":61 * dtype = numpy.int) * cdef numpy.ndarray[numpy.int_t, ndim=2] Iy = numpy.zeros((w, h), * dtype = numpy.int) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cdef numpy.ndarray[numpy.double_t, ndim=1] tmpM = numpy.zeros(w*h, */ __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__int); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__dtype), __pyx_t_6)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __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; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_9 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_Iy, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_Iy = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_Iy.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_Iy = __pyx_bstruct_Iy.strides[0]; __pyx_bstride_1_Iy = __pyx_bstruct_Iy.strides[1]; __pyx_bshape_0_Iy = __pyx_bstruct_Iy.shape[0]; __pyx_bshape_1_Iy = __pyx_bstruct_Iy.shape[1]; } } __pyx_t_9 = 0; __pyx_v_Iy = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0;
62:
63: cdef numpy.ndarray[numpy.double_t, ndim=1] tmpM = numpy.zeros(w*h,
/* "vision/track/pairwise.pyx":63 * dtype = numpy.int) * * cdef numpy.ndarray[numpy.double_t, ndim=1] tmpM = numpy.zeros(w*h, #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dtype = numpy.double) * cdef numpy.ndarray[numpy.int_t, ndim=1] tmpIx = numpy.zeros(w*h, */ __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__zeros); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyInt_FromLong((__pyx_v_w * __pyx_v_h)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_6));
64: dtype = numpy.double)
/* "vision/track/pairwise.pyx":64 * * cdef numpy.ndarray[numpy.double_t, ndim=1] tmpM = numpy.zeros(w*h, * dtype = numpy.double) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef numpy.ndarray[numpy.int_t, ndim=1] tmpIx = numpy.zeros(w*h, * dtype = numpy.int) */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__double); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_10 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_tmpM, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_tmpM = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_tmpM.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_tmpM = __pyx_bstruct_tmpM.strides[0]; __pyx_bshape_0_tmpM = __pyx_bstruct_tmpM.shape[0]; } } __pyx_t_10 = 0; __pyx_v_tmpM = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0;
65: cdef numpy.ndarray[numpy.int_t, ndim=1] tmpIx = numpy.zeros(w*h,
/* "vision/track/pairwise.pyx":65 * cdef numpy.ndarray[numpy.double_t, ndim=1] tmpM = numpy.zeros(w*h, * dtype = numpy.double) * cdef numpy.ndarray[numpy.int_t, ndim=1] tmpIx = numpy.zeros(w*h, #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dtype = numpy.int) * cdef numpy.ndarray[numpy.int_t, ndim=1] tmpIy = numpy.zeros(w*h, */ __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__zeros); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyInt_FromLong((__pyx_v_w * __pyx_v_h)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __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[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __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; __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5));
66: dtype = numpy.int)
/* "vision/track/pairwise.pyx":66 * dtype = numpy.double) * cdef numpy.ndarray[numpy.int_t, ndim=1] tmpIx = numpy.zeros(w*h, * dtype = numpy.int) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef numpy.ndarray[numpy.int_t, ndim=1] tmpIy = numpy.zeros(w*h, * dtype = numpy.int) */ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__int); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_6, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __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_4)); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_11 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_tmpIx, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_tmpIx = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_tmpIx.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_tmpIx = __pyx_bstruct_tmpIx.strides[0]; __pyx_bshape_0_tmpIx = __pyx_bstruct_tmpIx.shape[0]; } } __pyx_t_11 = 0; __pyx_v_tmpIx = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
67: cdef numpy.ndarray[numpy.int_t, ndim=1] tmpIy = numpy.zeros(w*h,
/* "vision/track/pairwise.pyx":67 * cdef numpy.ndarray[numpy.int_t, ndim=1] tmpIx = numpy.zeros(w*h, * dtype = numpy.int) * cdef numpy.ndarray[numpy.int_t, ndim=1] tmpIy = numpy.zeros(w*h, #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* dtype = numpy.int) * */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong((__pyx_v_w * __pyx_v_h)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __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[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __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; __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1));
68: dtype = numpy.int)
/* "vision/track/pairwise.pyx":68 * dtype = numpy.int) * cdef numpy.ndarray[numpy.int_t, ndim=1] tmpIy = numpy.zeros(w*h, * dtype = numpy.int) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * for x in range(w): */ __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__int); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyEval_CallObjectWithKeywords(__pyx_t_5, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_12 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_tmpIy, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_tmpIy = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_tmpIy.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_tmpIy = __pyx_bstruct_tmpIy.strides[0]; __pyx_bshape_0_tmpIy = __pyx_bstruct_tmpIy.shape[0]; } } __pyx_t_12 = 0; __pyx_v_tmpIy = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
69:
70: for x in range(w):
/* "vision/track/pairwise.pyx":70 * dtype = numpy.int) * * for x in range(w): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* quadratic_1d(vals, tmpM, tmpIy, 1, h, cost, 0, x * h) * */ __pyx_t_13 = __pyx_v_w; for (__pyx_t_14 = 0; __pyx_t_14<
__pyx_t_13; __pyx_t_14+=1) { __pyx_v_x = __pyx_t_14;
71: quadratic_1d(vals, tmpM, tmpIy, 1, h, cost, 0, x * h)
/* "vision/track/pairwise.pyx":71 * * for x in range(w): * quadratic_1d(vals, tmpM, tmpIy, 1, h, cost, 0, x * h) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * for y in range(h): */ __pyx_t_2 = __pyx_f_6vision_5track_8pairwise_quadratic_1d(((PyArrayObject *)__pyx_v_vals), ((PyArrayObject *)__pyx_v_tmpM), ((PyArrayObject *)__pyx_v_tmpIy), 1, __pyx_v_h, __pyx_v_cost, 0.0, (__pyx_v_x * __pyx_v_h), 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; }
72:
73: for y in range(h):
/* "vision/track/pairwise.pyx":73 * quadratic_1d(vals, tmpM, tmpIy, 1, h, cost, 0, x * h) * * for y in range(h): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* quadratic_1d(tmpM, M, tmpIx, h, w, cost, 0, y) * */ __pyx_t_13 = __pyx_v_h; for (__pyx_t_14 = 0; __pyx_t_14<
__pyx_t_13; __pyx_t_14+=1) { __pyx_v_y = __pyx_t_14;
74: quadratic_1d(tmpM, M, tmpIx, h, w, cost, 0, y)
/* "vision/track/pairwise.pyx":74 * * for y in range(h): * quadratic_1d(tmpM, M, tmpIx, h, w, cost, 0, y) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * for x in range(w): */ __pyx_t_2 = __pyx_f_6vision_5track_8pairwise_quadratic_1d(((PyArrayObject *)__pyx_v_tmpM), ((PyArrayObject *)__pyx_v_M), ((PyArrayObject *)__pyx_v_tmpIx), __pyx_v_h, __pyx_v_w, __pyx_v_cost, 0.0, __pyx_v_y, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; }
75:
76: for x in range(w):
/* "vision/track/pairwise.pyx":76 * quadratic_1d(tmpM, M, tmpIx, h, w, cost, 0, y) * * for x in range(w): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for y in range(h): * p = x * h + y */ __pyx_t_13 = __pyx_v_w; for (__pyx_t_14 = 0; __pyx_t_14<
__pyx_t_13; __pyx_t_14+=1) { __pyx_v_x = __pyx_t_14;
77: for y in range(h):
/* "vision/track/pairwise.pyx":77 * * for x in range(w): * for y in range(h): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* p = x * h + y * Ix[x, y] = tmpIx[p] */ __pyx_t_15 = __pyx_v_h; for (__pyx_t_16 = 0; __pyx_t_16<
__pyx_t_15; __pyx_t_16+=1) { __pyx_v_y = __pyx_t_16;
78: p = x * h + y
/* "vision/track/pairwise.pyx":78 * for x in range(w): * for y in range(h): * p = x * h + y #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* Ix[x, y] = tmpIx[p] * Iy[x, y] = tmpIy[tmpIx[p]*h+y] */ __pyx_v_p = ((__pyx_v_x * __pyx_v_h) + __pyx_v_y);
79: Ix[x, y] = tmpIx[p]
/* "vision/track/pairwise.pyx":79 * for y in range(h): * p = x * h + y * Ix[x, y] = tmpIx[p] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* Iy[x, y] = tmpIy[tmpIx[p]*h+y] * */ __pyx_t_17 = __pyx_v_p; if (__pyx_t_17<
0) __pyx_t_17 += __pyx_bshape_0_tmpIx; __pyx_t_18 = __pyx_v_x; __pyx_t_19 = __pyx_v_y; if (__pyx_t_18<
0) __pyx_t_18 += __pyx_bshape_0_Ix; if (__pyx_t_19<
0) __pyx_t_19 += __pyx_bshape_1_Ix; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_Ix.buf, __pyx_t_18, __pyx_bstride_0_Ix, __pyx_t_19, __pyx_bstride_1_Ix) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_tmpIx.buf, __pyx_t_17, __pyx_bstride_0_tmpIx));
80: Iy[x, y] = tmpIy[tmpIx[p]*h+y]
/* "vision/track/pairwise.pyx":80 * p = x * h + y * Ix[x, y] = tmpIx[p] * Iy[x, y] = tmpIy[tmpIx[p]*h+y] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * return M.reshape((w,h)), Ix, Iy */ __pyx_t_20 = __pyx_v_p; if (__pyx_t_20<
0) __pyx_t_20 += __pyx_bshape_0_tmpIx; __pyx_t_21 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_tmpIx.buf, __pyx_t_20, __pyx_bstride_0_tmpIx)) * __pyx_v_h) + __pyx_v_y); if (__pyx_t_21<
0) __pyx_t_21 += __pyx_bshape_0_tmpIy; __pyx_t_22 = __pyx_v_x; __pyx_t_23 = __pyx_v_y; if (__pyx_t_22<
0) __pyx_t_22 += __pyx_bshape_0_Iy; if (__pyx_t_23<
0) __pyx_t_23 += __pyx_bshape_1_Iy; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_Iy.buf, __pyx_t_22, __pyx_bstride_0_Iy, __pyx_t_23, __pyx_bstride_1_Iy) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int_t *, __pyx_bstruct_tmpIy.buf, __pyx_t_21, __pyx_bstride_0_tmpIy)); } }
81:
82: return M.reshape((w,h)), Ix, Iy
/* "vision/track/pairwise.pyx":82 * Iy[x, y] = tmpIy[tmpIx[p]*h+y] * * return M.reshape((w,h)), Ix, Iy #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * def manhattan(inscores, incost): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_M), __pyx_n_s__reshape); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyInt_FromLong(__pyx_v_w); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __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[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __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; __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)__pyx_v_Ix)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_Ix)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Ix)); __Pyx_INCREF(((PyObject *)__pyx_v_Iy)); PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_Iy)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Iy)); __pyx_t_5 = 0; __pyx_r = ((PyObject *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_Iy); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_Ix); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_M); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tmpIx); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tmpIy); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_scores); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_vals); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tmpM); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("vision.track.pairwise.quadratic", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_Iy); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_Ix); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_M); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tmpIx); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tmpIy); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_scores); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_vals); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tmpM); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_vals); __Pyx_XDECREF((PyObject *)__pyx_v_M); __Pyx_XDECREF((PyObject *)__pyx_v_Ix); __Pyx_XDECREF((PyObject *)__pyx_v_Iy); __Pyx_XDECREF((PyObject *)__pyx_v_tmpM); __Pyx_XDECREF((PyObject *)__pyx_v_tmpIx); __Pyx_XDECREF((PyObject *)__pyx_v_tmpIy); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
83:
84: def manhattan(inscores, incost):
/* "vision/track/pairwise.pyx":84 * return M.reshape((w,h)), Ix, Iy * * def manhattan(inscores, incost): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef int w, h, i, j, ri, rj * w, h = inscores.shape */ static PyObject *__pyx_pf_6vision_5track_8pairwise_2manhattan(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_6vision_5track_8pairwise_2manhattan[] = "manhattan(inscores, incost)"; static PyMethodDef __pyx_mdef_6vision_5track_8pairwise_2manhattan = {__Pyx_NAMESTR("manhattan"), (PyCFunction)__pyx_pf_6vision_5track_8pairwise_2manhattan, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6vision_5track_8pairwise_2manhattan)}; static PyObject *__pyx_pf_6vision_5track_8pairwise_2manhattan(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_inscores = 0; PyObject *__pyx_v_incost = 0; int __pyx_v_w; int __pyx_v_h; int __pyx_v_i; int __pyx_v_j; int __pyx_v_ri; int __pyx_v_rj; double __pyx_v_cost; PyArrayObject *__pyx_v_scores = 0; PyArrayObject *__pyx_v_forward = 0; PyArrayObject *__pyx_v_backward = 0; PyArrayObject *__pyx_v_forwardxp = 0; PyArrayObject *__pyx_v_forwardyp = 0; PyArrayObject *__pyx_v_backwardxp = 0; PyArrayObject *__pyx_v_backwardyp = 0; Py_buffer __pyx_bstruct_forwardxp; Py_ssize_t __pyx_bstride_0_forwardxp = 0; Py_ssize_t __pyx_bstride_1_forwardxp = 0; Py_ssize_t __pyx_bshape_0_forwardxp = 0; Py_ssize_t __pyx_bshape_1_forwardxp = 0; Py_buffer __pyx_bstruct_forwardyp; Py_ssize_t __pyx_bstride_0_forwardyp = 0; Py_ssize_t __pyx_bstride_1_forwardyp = 0; Py_ssize_t __pyx_bshape_0_forwardyp = 0; Py_ssize_t __pyx_bshape_1_forwardyp = 0; Py_buffer __pyx_bstruct_scores; Py_ssize_t __pyx_bstride_0_scores = 0; Py_ssize_t __pyx_bstride_1_scores = 0; Py_ssize_t __pyx_bshape_0_scores = 0; Py_ssize_t __pyx_bshape_1_scores = 0; Py_buffer __pyx_bstruct_forward; Py_ssize_t __pyx_bstride_0_forward = 0; Py_ssize_t __pyx_bstride_1_forward = 0; Py_ssize_t __pyx_bshape_0_forward = 0; Py_ssize_t __pyx_bshape_1_forward = 0; Py_buffer __pyx_bstruct_backwardxp; Py_ssize_t __pyx_bstride_0_backwardxp = 0; Py_ssize_t __pyx_bstride_1_backwardxp = 0; Py_ssize_t __pyx_bshape_0_backwardxp = 0; Py_ssize_t __pyx_bshape_1_backwardxp = 0; Py_buffer __pyx_bstruct_backwardyp; Py_ssize_t __pyx_bstride_0_backwardyp = 0; Py_ssize_t __pyx_bstride_1_backwardyp = 0; Py_ssize_t __pyx_bshape_0_backwardyp = 0; Py_ssize_t __pyx_bshape_1_backwardyp = 0; Py_buffer __pyx_bstruct_backward; Py_ssize_t __pyx_bstride_0_backward = 0; Py_ssize_t __pyx_bstride_1_backward = 0; Py_ssize_t __pyx_bshape_0_backward = 0; Py_ssize_t __pyx_bshape_1_backward = 0; PyObject *__pyx_r = NULL; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__inscores,&__pyx_n_s__incost,0}; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("manhattan"); __pyx_self = __pyx_self; { 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__inscores); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__incost); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("manhattan", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __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), "manhattan")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __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_inscores = values[0]; __pyx_v_incost = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("manhattan", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("vision.track.pairwise.manhattan", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_bstruct_scores.buf = NULL; __pyx_bstruct_forward.buf = NULL; __pyx_bstruct_backward.buf = NULL; __pyx_bstruct_forwardxp.buf = NULL; __pyx_bstruct_forwardyp.buf = NULL; __pyx_bstruct_backwardxp.buf = NULL; __pyx_bstruct_backwardyp.buf = NULL; /* "vision/track/pairwise.pyx":84 * return M.reshape((w,h)), Ix, Iy * * def manhattan(inscores, incost): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef int w, h, i, j, ri, rj * w, h = inscores.shape */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6vision_5track_8pairwise_2manhattan, NULL, __pyx_n_s_13); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__manhattan, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
85: cdef int w, h, i, j, ri, rj
86: w, h = inscores.shape
/* "vision/track/pairwise.pyx":86 * def manhattan(inscores, incost): * cdef int w, h, i, j, ri, rj * w, h = inscores.shape #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cdef double cost = incost */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_inscores, __pyx_n_s__shape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); 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) != 2)) { if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_2 = 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[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext; index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L7_unpacking_done; __pyx_L6_unpacking_failed:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_L7_unpacking_done:; } __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_w = __pyx_t_6; __pyx_v_h = __pyx_t_7;
87:
88: cdef double cost = incost
/* "vision/track/pairwise.pyx":88 * w, h = inscores.shape * * cdef double cost = incost #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef numpy.ndarray[numpy.double_t, ndim=2] scores = inscores * */ __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_v_incost); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_cost = __pyx_t_8;
89: cdef numpy.ndarray[numpy.double_t, ndim=2] scores = inscores
/* "vision/track/pairwise.pyx":89 * * cdef double cost = incost * cdef numpy.ndarray[numpy.double_t, ndim=2] scores = inscores #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cdef numpy.ndarray[numpy.double_t, ndim=2] forward, backward */ if (!(likely(((__pyx_v_inscores) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_inscores, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_9 = ((PyArrayObject *)__pyx_v_inscores); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_scores, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { __pyx_v_scores = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_scores.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_scores = __pyx_bstruct_scores.strides[0]; __pyx_bstride_1_scores = __pyx_bstruct_scores.strides[1]; __pyx_bshape_0_scores = __pyx_bstruct_scores.shape[0]; __pyx_bshape_1_scores = __pyx_bstruct_scores.shape[1]; } } __pyx_t_9 = 0; __Pyx_INCREF(__pyx_v_inscores); __pyx_v_scores = ((PyArrayObject *)__pyx_v_inscores);
90:
91: cdef numpy.ndarray[numpy.double_t, ndim=2] forward, backward
92: cdef numpy.ndarray[numpy.int_t, ndim=2] forwardxp, forwardyp
93: cdef numpy.ndarray[numpy.int_t, ndim=2] backwardxp, backwardyp
94:
95: forward = numpy.zeros((w,h), dtype = numpy.double)
/* "vision/track/pairwise.pyx":95 * cdef numpy.ndarray[numpy.int_t, ndim=2] backwardxp, backwardyp * * forward = numpy.zeros((w,h), dtype = numpy.double) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* forwardxp = numpy.zeros((w,h), dtype = numpy.int) * forwardyp = numpy.zeros((w,h), dtype = numpy.int) */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong(__pyx_v_w); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __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[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_4)); __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__double); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_10)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_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(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_11 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_forward); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_forward, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7<
0)) { PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_forward, (PyObject*)__pyx_v_forward, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14); } } __pyx_bstride_0_forward = __pyx_bstruct_forward.strides[0]; __pyx_bstride_1_forward = __pyx_bstruct_forward.strides[1]; __pyx_bshape_0_forward = __pyx_bstruct_forward.shape[0]; __pyx_bshape_1_forward = __pyx_bstruct_forward.shape[1]; if (unlikely(__pyx_t_7<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_11 = 0; __pyx_v_forward = ((PyArrayObject *)__pyx_t_10); __pyx_t_10 = 0;
96: forwardxp = numpy.zeros((w,h), dtype = numpy.int)
/* "vision/track/pairwise.pyx":96 * * forward = numpy.zeros((w,h), dtype = numpy.double) * forwardxp = numpy.zeros((w,h), dtype = numpy.int) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* forwardyp = numpy.zeros((w,h), dtype = numpy.int) * backward = numpy.zeros((w,h), dtype = numpy.double) */ __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__zeros); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __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_w); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __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[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_10 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __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; __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__int); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_15 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_forwardxp); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_forwardxp, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7<
0)) { PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_forwardxp, (PyObject*)__pyx_v_forwardxp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12); } } __pyx_bstride_0_forwardxp = __pyx_bstruct_forwardxp.strides[0]; __pyx_bstride_1_forwardxp = __pyx_bstruct_forwardxp.strides[1]; __pyx_bshape_0_forwardxp = __pyx_bstruct_forwardxp.shape[0]; __pyx_bshape_1_forwardxp = __pyx_bstruct_forwardxp.shape[1]; if (unlikely(__pyx_t_7<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_15 = 0; __pyx_v_forwardxp = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
97: forwardyp = numpy.zeros((w,h), dtype = numpy.int)
/* "vision/track/pairwise.pyx":97 * forward = numpy.zeros((w,h), dtype = numpy.double) * forwardxp = numpy.zeros((w,h), dtype = numpy.int) * forwardyp = numpy.zeros((w,h), dtype = numpy.int) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backward = numpy.zeros((w,h), dtype = numpy.double) * backwardxp = numpy.zeros((w,h), dtype = numpy.int) */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong(__pyx_v_w); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __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[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_4)); __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__int); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_10)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_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(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_15 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_forwardyp); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_forwardyp, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7<
0)) { PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_forwardyp, (PyObject*)__pyx_v_forwardyp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14); } } __pyx_bstride_0_forwardyp = __pyx_bstruct_forwardyp.strides[0]; __pyx_bstride_1_forwardyp = __pyx_bstruct_forwardyp.strides[1]; __pyx_bshape_0_forwardyp = __pyx_bstruct_forwardyp.shape[0]; __pyx_bshape_1_forwardyp = __pyx_bstruct_forwardyp.shape[1]; if (unlikely(__pyx_t_7<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_15 = 0; __pyx_v_forwardyp = ((PyArrayObject *)__pyx_t_10); __pyx_t_10 = 0;
98: backward = numpy.zeros((w,h), dtype = numpy.double)
/* "vision/track/pairwise.pyx":98 * forwardxp = numpy.zeros((w,h), dtype = numpy.int) * forwardyp = numpy.zeros((w,h), dtype = numpy.int) * backward = numpy.zeros((w,h), dtype = numpy.double) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backwardxp = numpy.zeros((w,h), dtype = numpy.int) * backwardyp = numpy.zeros((w,h), dtype = numpy.int) */ __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__zeros); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __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_w); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __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[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_10 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __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; __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__double); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_11 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_backward); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_backward, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7<
0)) { PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_backward, (PyObject*)__pyx_v_backward, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12); } } __pyx_bstride_0_backward = __pyx_bstruct_backward.strides[0]; __pyx_bstride_1_backward = __pyx_bstruct_backward.strides[1]; __pyx_bshape_0_backward = __pyx_bstruct_backward.shape[0]; __pyx_bshape_1_backward = __pyx_bstruct_backward.shape[1]; if (unlikely(__pyx_t_7<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_11 = 0; __pyx_v_backward = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
99: backwardxp = numpy.zeros((w,h), dtype = numpy.int)
/* "vision/track/pairwise.pyx":99 * forwardyp = numpy.zeros((w,h), dtype = numpy.int) * backward = numpy.zeros((w,h), dtype = numpy.double) * backwardxp = numpy.zeros((w,h), dtype = numpy.int) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backwardyp = numpy.zeros((w,h), dtype = numpy.int) * */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong(__pyx_v_w); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __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[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_4)); __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__int); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_10)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_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(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_16 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_backwardxp); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_backwardxp, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7<
0)) { PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_backwardxp, (PyObject*)__pyx_v_backwardxp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14); } } __pyx_bstride_0_backwardxp = __pyx_bstruct_backwardxp.strides[0]; __pyx_bstride_1_backwardxp = __pyx_bstruct_backwardxp.strides[1]; __pyx_bshape_0_backwardxp = __pyx_bstruct_backwardxp.shape[0]; __pyx_bshape_1_backwardxp = __pyx_bstruct_backwardxp.shape[1]; if (unlikely(__pyx_t_7<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_16 = 0; __pyx_v_backwardxp = ((PyArrayObject *)__pyx_t_10); __pyx_t_10 = 0;
100: backwardyp = numpy.zeros((w,h), dtype = numpy.int)
/* "vision/track/pairwise.pyx":100 * backward = numpy.zeros((w,h), dtype = numpy.double) * backwardxp = numpy.zeros((w,h), dtype = numpy.int) * backwardyp = numpy.zeros((w,h), dtype = numpy.int) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * # forward pass */ __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__zeros); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __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_w); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __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[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_10 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __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; __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__int); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_16 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_backwardyp); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_backwardyp, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7<
0)) { PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_backwardyp, (PyObject*)__pyx_v_backwardyp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12); } } __pyx_bstride_0_backwardyp = __pyx_bstruct_backwardyp.strides[0]; __pyx_bstride_1_backwardyp = __pyx_bstruct_backwardyp.strides[1]; __pyx_bshape_0_backwardyp = __pyx_bstruct_backwardyp.shape[0]; __pyx_bshape_1_backwardyp = __pyx_bstruct_backwardyp.shape[1]; if (unlikely(__pyx_t_7<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_16 = 0; __pyx_v_backwardyp = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
101:
102: # forward pass
103: for i in range(w):
/* "vision/track/pairwise.pyx":103 * * # forward pass * for i in range(w): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for j in range(h): * forward[i, j] = scores[i, j] */ __pyx_t_7 = __pyx_v_w; for (__pyx_t_6 = 0; __pyx_t_6<
__pyx_t_7; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6;
104: for j in range(h):
/* "vision/track/pairwise.pyx":104 * # forward pass * for i in range(w): * for j in range(h): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* forward[i, j] = scores[i, j] * forwardxp[i, j] = i */ __pyx_t_17 = __pyx_v_h; for (__pyx_t_18 = 0; __pyx_t_18<
__pyx_t_17; __pyx_t_18+=1) { __pyx_v_j = __pyx_t_18;
105: forward[i, j] = scores[i, j]
/* "vision/track/pairwise.pyx":105 * for i in range(w): * for j in range(h): * forward[i, j] = scores[i, j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* forwardxp[i, j] = i * forwardyp[i, j] = j */ __pyx_t_19 = __pyx_v_i; __pyx_t_20 = __pyx_v_j; if (__pyx_t_19<
0) __pyx_t_19 += __pyx_bshape_0_scores; if (__pyx_t_20<
0) __pyx_t_20 += __pyx_bshape_1_scores; __pyx_t_21 = __pyx_v_i; __pyx_t_22 = __pyx_v_j; if (__pyx_t_21<
0) __pyx_t_21 += __pyx_bshape_0_forward; if (__pyx_t_22<
0) __pyx_t_22 += __pyx_bshape_1_forward; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_forward.buf, __pyx_t_21, __pyx_bstride_0_forward, __pyx_t_22, __pyx_bstride_1_forward) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_scores.buf, __pyx_t_19, __pyx_bstride_0_scores, __pyx_t_20, __pyx_bstride_1_scores));
106: forwardxp[i, j] = i
/* "vision/track/pairwise.pyx":106 * for j in range(h): * forward[i, j] = scores[i, j] * forwardxp[i, j] = i #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* forwardyp[i, j] = j * */ __pyx_t_23 = __pyx_v_i; __pyx_t_24 = __pyx_v_j; if (__pyx_t_23<
0) __pyx_t_23 += __pyx_bshape_0_forwardxp; if (__pyx_t_24<
0) __pyx_t_24 += __pyx_bshape_1_forwardxp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardxp.buf, __pyx_t_23, __pyx_bstride_0_forwardxp, __pyx_t_24, __pyx_bstride_1_forwardxp) = __pyx_v_i;
107: forwardyp[i, j] = j
/* "vision/track/pairwise.pyx":107 * forward[i, j] = scores[i, j] * forwardxp[i, j] = i * forwardyp[i, j] = j #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * if j-1 >= 0 and forward[i, j-1] + cost<
forward[i, j]: */ __pyx_t_25 = __pyx_v_i; __pyx_t_26 = __pyx_v_j; if (__pyx_t_25<
0) __pyx_t_25 += __pyx_bshape_0_forwardyp; if (__pyx_t_26<
0) __pyx_t_26 += __pyx_bshape_1_forwardyp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardyp.buf, __pyx_t_25, __pyx_bstride_0_forwardyp, __pyx_t_26, __pyx_bstride_1_forwardyp) = __pyx_v_j;
108:
109: if j-1 >= 0 and forward[i, j-1] + cost < forward[i, j]:
/* "vision/track/pairwise.pyx":109 * forwardyp[i, j] = j * * if j-1 >= 0 and forward[i, j-1] + cost<
forward[i, j]: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* forward[i, j] = forward[i, j-1] + cost * forwardxp[i, j] = forwardxp[i, j-1] */ __pyx_t_27 = ((__pyx_v_j - 1) >= 0); if (__pyx_t_27) { __pyx_t_28 = __pyx_v_i; __pyx_t_29 = (__pyx_v_j - 1); if (__pyx_t_28<
0) __pyx_t_28 += __pyx_bshape_0_forward; if (__pyx_t_29<
0) __pyx_t_29 += __pyx_bshape_1_forward; __pyx_t_30 = __pyx_v_i; __pyx_t_31 = __pyx_v_j; if (__pyx_t_30<
0) __pyx_t_30 += __pyx_bshape_0_forward; if (__pyx_t_31<
0) __pyx_t_31 += __pyx_bshape_1_forward; __pyx_t_32 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_forward.buf, __pyx_t_28, __pyx_bstride_0_forward, __pyx_t_29, __pyx_bstride_1_forward)) + __pyx_v_cost)<
(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_forward.buf, __pyx_t_30, __pyx_bstride_0_forward, __pyx_t_31, __pyx_bstride_1_forward))); __pyx_t_33 = __pyx_t_32; } else { __pyx_t_33 = __pyx_t_27; } if (__pyx_t_33) {
110: forward[i, j] = forward[i, j-1] + cost
/* "vision/track/pairwise.pyx":110 * * if j-1 >= 0 and forward[i, j-1] + cost<
forward[i, j]: * forward[i, j] = forward[i, j-1] + cost #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* forwardxp[i, j] = forwardxp[i, j-1] * forwardyp[i, j] = forwardyp[i, j-1] */ __pyx_t_34 = __pyx_v_i; __pyx_t_35 = (__pyx_v_j - 1); if (__pyx_t_34<
0) __pyx_t_34 += __pyx_bshape_0_forward; if (__pyx_t_35<
0) __pyx_t_35 += __pyx_bshape_1_forward; __pyx_t_36 = __pyx_v_i; __pyx_t_37 = __pyx_v_j; if (__pyx_t_36<
0) __pyx_t_36 += __pyx_bshape_0_forward; if (__pyx_t_37<
0) __pyx_t_37 += __pyx_bshape_1_forward; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_forward.buf, __pyx_t_36, __pyx_bstride_0_forward, __pyx_t_37, __pyx_bstride_1_forward) = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_forward.buf, __pyx_t_34, __pyx_bstride_0_forward, __pyx_t_35, __pyx_bstride_1_forward)) + __pyx_v_cost);
111: forwardxp[i, j] = forwardxp[i, j-1]
/* "vision/track/pairwise.pyx":111 * if j-1 >= 0 and forward[i, j-1] + cost<
forward[i, j]: * forward[i, j] = forward[i, j-1] + cost * forwardxp[i, j] = forwardxp[i, j-1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* forwardyp[i, j] = forwardyp[i, j-1] * if i-1 >= 0 and forward[i-1, j] + cost<
forward[i, j]: */ __pyx_t_38 = __pyx_v_i; __pyx_t_39 = (__pyx_v_j - 1); if (__pyx_t_38<
0) __pyx_t_38 += __pyx_bshape_0_forwardxp; if (__pyx_t_39<
0) __pyx_t_39 += __pyx_bshape_1_forwardxp; __pyx_t_40 = __pyx_v_i; __pyx_t_41 = __pyx_v_j; if (__pyx_t_40<
0) __pyx_t_40 += __pyx_bshape_0_forwardxp; if (__pyx_t_41<
0) __pyx_t_41 += __pyx_bshape_1_forwardxp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardxp.buf, __pyx_t_40, __pyx_bstride_0_forwardxp, __pyx_t_41, __pyx_bstride_1_forwardxp) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardxp.buf, __pyx_t_38, __pyx_bstride_0_forwardxp, __pyx_t_39, __pyx_bstride_1_forwardxp));
112: forwardyp[i, j] = forwardyp[i, j-1]
/* "vision/track/pairwise.pyx":112 * forward[i, j] = forward[i, j-1] + cost * forwardxp[i, j] = forwardxp[i, j-1] * forwardyp[i, j] = forwardyp[i, j-1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if i-1 >= 0 and forward[i-1, j] + cost<
forward[i, j]: * forward[i, j] = forward[i-1, j] + cost */ __pyx_t_42 = __pyx_v_i; __pyx_t_43 = (__pyx_v_j - 1); if (__pyx_t_42<
0) __pyx_t_42 += __pyx_bshape_0_forwardyp; if (__pyx_t_43<
0) __pyx_t_43 += __pyx_bshape_1_forwardyp; __pyx_t_44 = __pyx_v_i; __pyx_t_45 = __pyx_v_j; if (__pyx_t_44<
0) __pyx_t_44 += __pyx_bshape_0_forwardyp; if (__pyx_t_45<
0) __pyx_t_45 += __pyx_bshape_1_forwardyp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardyp.buf, __pyx_t_44, __pyx_bstride_0_forwardyp, __pyx_t_45, __pyx_bstride_1_forwardyp) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardyp.buf, __pyx_t_42, __pyx_bstride_0_forwardyp, __pyx_t_43, __pyx_bstride_1_forwardyp)); goto __pyx_L12; } __pyx_L12:;
113: if i-1 >= 0 and forward[i-1, j] + cost < forward[i, j]:
/* "vision/track/pairwise.pyx":113 * forwardxp[i, j] = forwardxp[i, j-1] * forwardyp[i, j] = forwardyp[i, j-1] * if i-1 >= 0 and forward[i-1, j] + cost<
forward[i, j]: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* forward[i, j] = forward[i-1, j] + cost * forwardxp[i, j] = forwardxp[i-1, j] */ __pyx_t_33 = ((__pyx_v_i - 1) >= 0); if (__pyx_t_33) { __pyx_t_46 = (__pyx_v_i - 1); __pyx_t_47 = __pyx_v_j; if (__pyx_t_46<
0) __pyx_t_46 += __pyx_bshape_0_forward; if (__pyx_t_47<
0) __pyx_t_47 += __pyx_bshape_1_forward; __pyx_t_48 = __pyx_v_i; __pyx_t_49 = __pyx_v_j; if (__pyx_t_48<
0) __pyx_t_48 += __pyx_bshape_0_forward; if (__pyx_t_49<
0) __pyx_t_49 += __pyx_bshape_1_forward; __pyx_t_27 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_forward.buf, __pyx_t_46, __pyx_bstride_0_forward, __pyx_t_47, __pyx_bstride_1_forward)) + __pyx_v_cost)<
(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_forward.buf, __pyx_t_48, __pyx_bstride_0_forward, __pyx_t_49, __pyx_bstride_1_forward))); __pyx_t_32 = __pyx_t_27; } else { __pyx_t_32 = __pyx_t_33; } if (__pyx_t_32) {
114: forward[i, j] = forward[i-1, j] + cost
/* "vision/track/pairwise.pyx":114 * forwardyp[i, j] = forwardyp[i, j-1] * if i-1 >= 0 and forward[i-1, j] + cost<
forward[i, j]: * forward[i, j] = forward[i-1, j] + cost #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* forwardxp[i, j] = forwardxp[i-1, j] * forwardyp[i, j] = forwardyp[i-1, j] */ __pyx_t_50 = (__pyx_v_i - 1); __pyx_t_51 = __pyx_v_j; if (__pyx_t_50<
0) __pyx_t_50 += __pyx_bshape_0_forward; if (__pyx_t_51<
0) __pyx_t_51 += __pyx_bshape_1_forward; __pyx_t_52 = __pyx_v_i; __pyx_t_53 = __pyx_v_j; if (__pyx_t_52<
0) __pyx_t_52 += __pyx_bshape_0_forward; if (__pyx_t_53<
0) __pyx_t_53 += __pyx_bshape_1_forward; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_forward.buf, __pyx_t_52, __pyx_bstride_0_forward, __pyx_t_53, __pyx_bstride_1_forward) = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_forward.buf, __pyx_t_50, __pyx_bstride_0_forward, __pyx_t_51, __pyx_bstride_1_forward)) + __pyx_v_cost);
115: forwardxp[i, j] = forwardxp[i-1, j]
/* "vision/track/pairwise.pyx":115 * if i-1 >= 0 and forward[i-1, j] + cost<
forward[i, j]: * forward[i, j] = forward[i-1, j] + cost * forwardxp[i, j] = forwardxp[i-1, j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* forwardyp[i, j] = forwardyp[i-1, j] * */ __pyx_t_54 = (__pyx_v_i - 1); __pyx_t_55 = __pyx_v_j; if (__pyx_t_54<
0) __pyx_t_54 += __pyx_bshape_0_forwardxp; if (__pyx_t_55<
0) __pyx_t_55 += __pyx_bshape_1_forwardxp; __pyx_t_56 = __pyx_v_i; __pyx_t_57 = __pyx_v_j; if (__pyx_t_56<
0) __pyx_t_56 += __pyx_bshape_0_forwardxp; if (__pyx_t_57<
0) __pyx_t_57 += __pyx_bshape_1_forwardxp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardxp.buf, __pyx_t_56, __pyx_bstride_0_forwardxp, __pyx_t_57, __pyx_bstride_1_forwardxp) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardxp.buf, __pyx_t_54, __pyx_bstride_0_forwardxp, __pyx_t_55, __pyx_bstride_1_forwardxp));
116: forwardyp[i, j] = forwardyp[i-1, j]
/* "vision/track/pairwise.pyx":116 * forward[i, j] = forward[i-1, j] + cost * forwardxp[i, j] = forwardxp[i-1, j] * forwardyp[i, j] = forwardyp[i-1, j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * # backwards pass */ __pyx_t_58 = (__pyx_v_i - 1); __pyx_t_59 = __pyx_v_j; if (__pyx_t_58<
0) __pyx_t_58 += __pyx_bshape_0_forwardyp; if (__pyx_t_59<
0) __pyx_t_59 += __pyx_bshape_1_forwardyp; __pyx_t_60 = __pyx_v_i; __pyx_t_61 = __pyx_v_j; if (__pyx_t_60<
0) __pyx_t_60 += __pyx_bshape_0_forwardyp; if (__pyx_t_61<
0) __pyx_t_61 += __pyx_bshape_1_forwardyp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardyp.buf, __pyx_t_60, __pyx_bstride_0_forwardyp, __pyx_t_61, __pyx_bstride_1_forwardyp) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardyp.buf, __pyx_t_58, __pyx_bstride_0_forwardyp, __pyx_t_59, __pyx_bstride_1_forwardyp)); goto __pyx_L13; } __pyx_L13:; } }
117:
118: # backwards pass
119: for ri in range(w):
/* "vision/track/pairwise.pyx":119 * * # backwards pass * for ri in range(w): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* i = w - ri - 1 * for rj in range(h): */ __pyx_t_7 = __pyx_v_w; for (__pyx_t_6 = 0; __pyx_t_6<
__pyx_t_7; __pyx_t_6+=1) { __pyx_v_ri = __pyx_t_6;
120: i = w - ri - 1
/* "vision/track/pairwise.pyx":120 * # backwards pass * for ri in range(w): * i = w - ri - 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for rj in range(h): * j = h - rj - 1 */ __pyx_v_i = ((__pyx_v_w - __pyx_v_ri) - 1);
121: for rj in range(h):
/* "vision/track/pairwise.pyx":121 * for ri in range(w): * i = w - ri - 1 * for rj in range(h): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* j = h - rj - 1 * backward[i, j] = forward[i, j] */ __pyx_t_17 = __pyx_v_h; for (__pyx_t_18 = 0; __pyx_t_18<
__pyx_t_17; __pyx_t_18+=1) { __pyx_v_rj = __pyx_t_18;
122: j = h - rj - 1
/* "vision/track/pairwise.pyx":122 * i = w - ri - 1 * for rj in range(h): * j = h - rj - 1 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backward[i, j] = forward[i, j] * backwardxp[i, j] = forwardxp[i, j] */ __pyx_v_j = ((__pyx_v_h - __pyx_v_rj) - 1);
123: backward[i, j] = forward[i, j]
/* "vision/track/pairwise.pyx":123 * for rj in range(h): * j = h - rj - 1 * backward[i, j] = forward[i, j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backwardxp[i, j] = forwardxp[i, j] * backwardyp[i, j] = forwardyp[i, j] */ __pyx_t_62 = __pyx_v_i; __pyx_t_63 = __pyx_v_j; if (__pyx_t_62<
0) __pyx_t_62 += __pyx_bshape_0_forward; if (__pyx_t_63<
0) __pyx_t_63 += __pyx_bshape_1_forward; __pyx_t_64 = __pyx_v_i; __pyx_t_65 = __pyx_v_j; if (__pyx_t_64<
0) __pyx_t_64 += __pyx_bshape_0_backward; if (__pyx_t_65<
0) __pyx_t_65 += __pyx_bshape_1_backward; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_backward.buf, __pyx_t_64, __pyx_bstride_0_backward, __pyx_t_65, __pyx_bstride_1_backward) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_forward.buf, __pyx_t_62, __pyx_bstride_0_forward, __pyx_t_63, __pyx_bstride_1_forward));
124: backwardxp[i, j] = forwardxp[i, j]
/* "vision/track/pairwise.pyx":124 * j = h - rj - 1 * backward[i, j] = forward[i, j] * backwardxp[i, j] = forwardxp[i, j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backwardyp[i, j] = forwardyp[i, j] * */ __pyx_t_66 = __pyx_v_i; __pyx_t_67 = __pyx_v_j; if (__pyx_t_66<
0) __pyx_t_66 += __pyx_bshape_0_forwardxp; if (__pyx_t_67<
0) __pyx_t_67 += __pyx_bshape_1_forwardxp; __pyx_t_68 = __pyx_v_i; __pyx_t_69 = __pyx_v_j; if (__pyx_t_68<
0) __pyx_t_68 += __pyx_bshape_0_backwardxp; if (__pyx_t_69<
0) __pyx_t_69 += __pyx_bshape_1_backwardxp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_backwardxp.buf, __pyx_t_68, __pyx_bstride_0_backwardxp, __pyx_t_69, __pyx_bstride_1_backwardxp) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardxp.buf, __pyx_t_66, __pyx_bstride_0_forwardxp, __pyx_t_67, __pyx_bstride_1_forwardxp));
125: backwardyp[i, j] = forwardyp[i, j]
/* "vision/track/pairwise.pyx":125 * backward[i, j] = forward[i, j] * backwardxp[i, j] = forwardxp[i, j] * backwardyp[i, j] = forwardyp[i, j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * if j+1<
h and backward[i, j+1] + cost<
backward[i, j]: */ __pyx_t_70 = __pyx_v_i; __pyx_t_71 = __pyx_v_j; if (__pyx_t_70<
0) __pyx_t_70 += __pyx_bshape_0_forwardyp; if (__pyx_t_71<
0) __pyx_t_71 += __pyx_bshape_1_forwardyp; __pyx_t_72 = __pyx_v_i; __pyx_t_73 = __pyx_v_j; if (__pyx_t_72<
0) __pyx_t_72 += __pyx_bshape_0_backwardyp; if (__pyx_t_73<
0) __pyx_t_73 += __pyx_bshape_1_backwardyp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_backwardyp.buf, __pyx_t_72, __pyx_bstride_0_backwardyp, __pyx_t_73, __pyx_bstride_1_backwardyp) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_forwardyp.buf, __pyx_t_70, __pyx_bstride_0_forwardyp, __pyx_t_71, __pyx_bstride_1_forwardyp));
126:
127: if j+1 < h and backward[i, j+1] + cost < backward[i, j]:
/* "vision/track/pairwise.pyx":127 * backwardyp[i, j] = forwardyp[i, j] * * if j+1<
h and backward[i, j+1] + cost<
backward[i, j]: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backward[i, j] = backward[i, j+1] + cost * backwardxp[i, j] = backwardxp[i, j+1] */ __pyx_t_32 = ((__pyx_v_j + 1)<
__pyx_v_h); if (__pyx_t_32) { __pyx_t_74 = __pyx_v_i; __pyx_t_75 = (__pyx_v_j + 1); if (__pyx_t_74<
0) __pyx_t_74 += __pyx_bshape_0_backward; if (__pyx_t_75<
0) __pyx_t_75 += __pyx_bshape_1_backward; __pyx_t_76 = __pyx_v_i; __pyx_t_77 = __pyx_v_j; if (__pyx_t_76<
0) __pyx_t_76 += __pyx_bshape_0_backward; if (__pyx_t_77<
0) __pyx_t_77 += __pyx_bshape_1_backward; __pyx_t_33 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_backward.buf, __pyx_t_74, __pyx_bstride_0_backward, __pyx_t_75, __pyx_bstride_1_backward)) + __pyx_v_cost)<
(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_backward.buf, __pyx_t_76, __pyx_bstride_0_backward, __pyx_t_77, __pyx_bstride_1_backward))); __pyx_t_27 = __pyx_t_33; } else { __pyx_t_27 = __pyx_t_32; } if (__pyx_t_27) {
128: backward[i, j] = backward[i, j+1] + cost
/* "vision/track/pairwise.pyx":128 * * if j+1<
h and backward[i, j+1] + cost<
backward[i, j]: * backward[i, j] = backward[i, j+1] + cost #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backwardxp[i, j] = backwardxp[i, j+1] * backwardyp[i, j] = backwardyp[i, j+1] */ __pyx_t_78 = __pyx_v_i; __pyx_t_79 = (__pyx_v_j + 1); if (__pyx_t_78<
0) __pyx_t_78 += __pyx_bshape_0_backward; if (__pyx_t_79<
0) __pyx_t_79 += __pyx_bshape_1_backward; __pyx_t_80 = __pyx_v_i; __pyx_t_81 = __pyx_v_j; if (__pyx_t_80<
0) __pyx_t_80 += __pyx_bshape_0_backward; if (__pyx_t_81<
0) __pyx_t_81 += __pyx_bshape_1_backward; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_backward.buf, __pyx_t_80, __pyx_bstride_0_backward, __pyx_t_81, __pyx_bstride_1_backward) = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_backward.buf, __pyx_t_78, __pyx_bstride_0_backward, __pyx_t_79, __pyx_bstride_1_backward)) + __pyx_v_cost);
129: backwardxp[i, j] = backwardxp[i, j+1]
/* "vision/track/pairwise.pyx":129 * if j+1<
h and backward[i, j+1] + cost<
backward[i, j]: * backward[i, j] = backward[i, j+1] + cost * backwardxp[i, j] = backwardxp[i, j+1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backwardyp[i, j] = backwardyp[i, j+1] * if i+1<
w and backward[i+1, j] + cost<
backward[i, j]: */ __pyx_t_82 = __pyx_v_i; __pyx_t_83 = (__pyx_v_j + 1); if (__pyx_t_82<
0) __pyx_t_82 += __pyx_bshape_0_backwardxp; if (__pyx_t_83<
0) __pyx_t_83 += __pyx_bshape_1_backwardxp; __pyx_t_84 = __pyx_v_i; __pyx_t_85 = __pyx_v_j; if (__pyx_t_84<
0) __pyx_t_84 += __pyx_bshape_0_backwardxp; if (__pyx_t_85<
0) __pyx_t_85 += __pyx_bshape_1_backwardxp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_backwardxp.buf, __pyx_t_84, __pyx_bstride_0_backwardxp, __pyx_t_85, __pyx_bstride_1_backwardxp) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_backwardxp.buf, __pyx_t_82, __pyx_bstride_0_backwardxp, __pyx_t_83, __pyx_bstride_1_backwardxp));
130: backwardyp[i, j] = backwardyp[i, j+1]
/* "vision/track/pairwise.pyx":130 * backward[i, j] = backward[i, j+1] + cost * backwardxp[i, j] = backwardxp[i, j+1] * backwardyp[i, j] = backwardyp[i, j+1] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if i+1<
w and backward[i+1, j] + cost<
backward[i, j]: * backward[i, j] = backward[i+1, j] + cost */ __pyx_t_86 = __pyx_v_i; __pyx_t_87 = (__pyx_v_j + 1); if (__pyx_t_86<
0) __pyx_t_86 += __pyx_bshape_0_backwardyp; if (__pyx_t_87<
0) __pyx_t_87 += __pyx_bshape_1_backwardyp; __pyx_t_88 = __pyx_v_i; __pyx_t_89 = __pyx_v_j; if (__pyx_t_88<
0) __pyx_t_88 += __pyx_bshape_0_backwardyp; if (__pyx_t_89<
0) __pyx_t_89 += __pyx_bshape_1_backwardyp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_backwardyp.buf, __pyx_t_88, __pyx_bstride_0_backwardyp, __pyx_t_89, __pyx_bstride_1_backwardyp) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_backwardyp.buf, __pyx_t_86, __pyx_bstride_0_backwardyp, __pyx_t_87, __pyx_bstride_1_backwardyp)); goto __pyx_L18; } __pyx_L18:;
131: if i+1 < w and backward[i+1, j] + cost < backward[i, j]:
/* "vision/track/pairwise.pyx":131 * backwardxp[i, j] = backwardxp[i, j+1] * backwardyp[i, j] = backwardyp[i, j+1] * if i+1<
w and backward[i+1, j] + cost<
backward[i, j]: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backward[i, j] = backward[i+1, j] + cost * backwardxp[i, j] = backwardxp[i+1, j] */ __pyx_t_27 = ((__pyx_v_i + 1)<
__pyx_v_w); if (__pyx_t_27) { __pyx_t_90 = (__pyx_v_i + 1); __pyx_t_91 = __pyx_v_j; if (__pyx_t_90<
0) __pyx_t_90 += __pyx_bshape_0_backward; if (__pyx_t_91<
0) __pyx_t_91 += __pyx_bshape_1_backward; __pyx_t_92 = __pyx_v_i; __pyx_t_93 = __pyx_v_j; if (__pyx_t_92<
0) __pyx_t_92 += __pyx_bshape_0_backward; if (__pyx_t_93<
0) __pyx_t_93 += __pyx_bshape_1_backward; __pyx_t_32 = (((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_backward.buf, __pyx_t_90, __pyx_bstride_0_backward, __pyx_t_91, __pyx_bstride_1_backward)) + __pyx_v_cost)<
(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_backward.buf, __pyx_t_92, __pyx_bstride_0_backward, __pyx_t_93, __pyx_bstride_1_backward))); __pyx_t_33 = __pyx_t_32; } else { __pyx_t_33 = __pyx_t_27; } if (__pyx_t_33) {
132: backward[i, j] = backward[i+1, j] + cost
/* "vision/track/pairwise.pyx":132 * backwardyp[i, j] = backwardyp[i, j+1] * if i+1<
w and backward[i+1, j] + cost<
backward[i, j]: * backward[i, j] = backward[i+1, j] + cost #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backwardxp[i, j] = backwardxp[i+1, j] * backwardyp[i, j] = backwardyp[i+1, j] */ __pyx_t_94 = (__pyx_v_i + 1); __pyx_t_95 = __pyx_v_j; if (__pyx_t_94<
0) __pyx_t_94 += __pyx_bshape_0_backward; if (__pyx_t_95<
0) __pyx_t_95 += __pyx_bshape_1_backward; __pyx_t_96 = __pyx_v_i; __pyx_t_97 = __pyx_v_j; if (__pyx_t_96<
0) __pyx_t_96 += __pyx_bshape_0_backward; if (__pyx_t_97<
0) __pyx_t_97 += __pyx_bshape_1_backward; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_backward.buf, __pyx_t_96, __pyx_bstride_0_backward, __pyx_t_97, __pyx_bstride_1_backward) = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_backward.buf, __pyx_t_94, __pyx_bstride_0_backward, __pyx_t_95, __pyx_bstride_1_backward)) + __pyx_v_cost);
133: backwardxp[i, j] = backwardxp[i+1, j]
/* "vision/track/pairwise.pyx":133 * if i+1<
w and backward[i+1, j] + cost<
backward[i, j]: * backward[i, j] = backward[i+1, j] + cost * backwardxp[i, j] = backwardxp[i+1, j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* backwardyp[i, j] = backwardyp[i+1, j] * */ __pyx_t_98 = (__pyx_v_i + 1); __pyx_t_99 = __pyx_v_j; if (__pyx_t_98<
0) __pyx_t_98 += __pyx_bshape_0_backwardxp; if (__pyx_t_99<
0) __pyx_t_99 += __pyx_bshape_1_backwardxp; __pyx_t_100 = __pyx_v_i; __pyx_t_101 = __pyx_v_j; if (__pyx_t_100<
0) __pyx_t_100 += __pyx_bshape_0_backwardxp; if (__pyx_t_101<
0) __pyx_t_101 += __pyx_bshape_1_backwardxp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_backwardxp.buf, __pyx_t_100, __pyx_bstride_0_backwardxp, __pyx_t_101, __pyx_bstride_1_backwardxp) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_backwardxp.buf, __pyx_t_98, __pyx_bstride_0_backwardxp, __pyx_t_99, __pyx_bstride_1_backwardxp));
134: backwardyp[i, j] = backwardyp[i+1, j]
/* "vision/track/pairwise.pyx":134 * backward[i, j] = backward[i+1, j] + cost * backwardxp[i, j] = backwardxp[i+1, j] * backwardyp[i, j] = backwardyp[i+1, j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * return backward, backwardxp, backwardyp */ __pyx_t_102 = (__pyx_v_i + 1); __pyx_t_103 = __pyx_v_j; if (__pyx_t_102<
0) __pyx_t_102 += __pyx_bshape_0_backwardyp; if (__pyx_t_103<
0) __pyx_t_103 += __pyx_bshape_1_backwardyp; __pyx_t_104 = __pyx_v_i; __pyx_t_105 = __pyx_v_j; if (__pyx_t_104<
0) __pyx_t_104 += __pyx_bshape_0_backwardyp; if (__pyx_t_105<
0) __pyx_t_105 += __pyx_bshape_1_backwardyp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_backwardyp.buf, __pyx_t_104, __pyx_bstride_0_backwardyp, __pyx_t_105, __pyx_bstride_1_backwardyp) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_backwardyp.buf, __pyx_t_102, __pyx_bstride_0_backwardyp, __pyx_t_103, __pyx_bstride_1_backwardyp)); goto __pyx_L19; } __pyx_L19:; } }
135:
136: return backward, backwardxp, backwardyp
/* "vision/track/pairwise.pyx":136 * backwardyp[i, j] = backwardyp[i+1, j] * * return backward, backwardxp, backwardyp #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * def hinge(inscores, int radius = 30): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_v_backward)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_backward)); __Pyx_GIVEREF(((PyObject *)__pyx_v_backward)); __Pyx_INCREF(((PyObject *)__pyx_v_backwardxp)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_backwardxp)); __Pyx_GIVEREF(((PyObject *)__pyx_v_backwardxp)); __Pyx_INCREF(((PyObject *)__pyx_v_backwardyp)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_backwardyp)); __Pyx_GIVEREF(((PyObject *)__pyx_v_backwardyp)); __pyx_r = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_10); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_forwardxp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_forwardyp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_scores); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_forward); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_backwardxp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_backwardyp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_backward); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("vision.track.pairwise.manhattan", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_forwardxp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_forwardyp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_scores); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_forward); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_backwardxp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_backwardyp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_backward); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_scores); __Pyx_XDECREF((PyObject *)__pyx_v_forward); __Pyx_XDECREF((PyObject *)__pyx_v_backward); __Pyx_XDECREF((PyObject *)__pyx_v_forwardxp); __Pyx_XDECREF((PyObject *)__pyx_v_forwardyp); __Pyx_XDECREF((PyObject *)__pyx_v_backwardxp); __Pyx_XDECREF((PyObject *)__pyx_v_backwardyp); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
137:
138: def hinge(inscores, int radius = 30):
/* "vision/track/pairwise.pyx":138 * return backward, backwardxp, backwardyp * * def hinge(inscores, int radius = 30): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef int w, h, i, j, pstart, pstop, x, y * w, h = inscores.shape */ static PyObject *__pyx_pf_6vision_5track_8pairwise_3hinge(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_6vision_5track_8pairwise_3hinge[] = "hinge(inscores, int radius=30)"; static PyMethodDef __pyx_mdef_6vision_5track_8pairwise_3hinge = {__Pyx_NAMESTR("hinge"), (PyCFunction)__pyx_pf_6vision_5track_8pairwise_3hinge, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_6vision_5track_8pairwise_3hinge)}; static PyObject *__pyx_pf_6vision_5track_8pairwise_3hinge(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_inscores = 0; int __pyx_v_radius; int __pyx_v_w; int __pyx_v_h; int __pyx_v_i; int __pyx_v_j; int __pyx_v_pstart; int __pyx_v_pstop; int __pyx_v_x; int __pyx_v_y; PyArrayObject *__pyx_v_scores = 0; PyArrayObject *__pyx_v_vertical = 0; PyArrayObject *__pyx_v_horizontal = 0; PyArrayObject *__pyx_v_xp = 0; PyArrayObject *__pyx_v_yp = 0; Py_buffer __pyx_bstruct_vertical; Py_ssize_t __pyx_bstride_0_vertical = 0; Py_ssize_t __pyx_bstride_1_vertical = 0; Py_ssize_t __pyx_bshape_0_vertical = 0; Py_ssize_t __pyx_bshape_1_vertical = 0; Py_buffer __pyx_bstruct_xp; Py_ssize_t __pyx_bstride_0_xp = 0; Py_ssize_t __pyx_bstride_1_xp = 0; Py_ssize_t __pyx_bshape_0_xp = 0; Py_ssize_t __pyx_bshape_1_xp = 0; Py_buffer __pyx_bstruct_yp; Py_ssize_t __pyx_bstride_0_yp = 0; Py_ssize_t __pyx_bstride_1_yp = 0; Py_ssize_t __pyx_bshape_0_yp = 0; Py_ssize_t __pyx_bshape_1_yp = 0; Py_buffer __pyx_bstruct_scores; Py_ssize_t __pyx_bstride_0_scores = 0; Py_ssize_t __pyx_bstride_1_scores = 0; Py_ssize_t __pyx_bshape_0_scores = 0; Py_ssize_t __pyx_bshape_1_scores = 0; Py_buffer __pyx_bstruct_horizontal; Py_ssize_t __pyx_bstride_0_horizontal = 0; Py_ssize_t __pyx_bstride_1_horizontal = 0; Py_ssize_t __pyx_bshape_0_horizontal = 0; Py_ssize_t __pyx_bshape_1_horizontal = 0; PyObject *__pyx_r = NULL; static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__inscores,&__pyx_n_s__radius,0}; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("hinge"); __pyx_self = __pyx_self; { 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__inscores); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__radius); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "hinge")<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { 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); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_inscores = values[0]; if (values[1]) { __pyx_v_radius = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_radius == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { __pyx_v_radius = ((int)30); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("hinge", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("vision.track.pairwise.hinge", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_bstruct_scores.buf = NULL; __pyx_bstruct_vertical.buf = NULL; __pyx_bstruct_horizontal.buf = NULL; __pyx_bstruct_xp.buf = NULL; __pyx_bstruct_yp.buf = NULL; /* "vision/track/pairwise.pyx":138 * return backward, backwardxp, backwardyp * * def hinge(inscores, int radius = 30): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef int w, h, i, j, pstart, pstop, x, y * w, h = inscores.shape */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6vision_5track_8pairwise_3hinge, NULL, __pyx_n_s_13); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (PyObject_SetAttr(__pyx_m, __pyx_n_s__hinge, __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
139: cdef int w, h, i, j, pstart, pstop, x, y
140: w, h = inscores.shape
/* "vision/track/pairwise.pyx":140 * def hinge(inscores, int radius = 30): * cdef int w, h, i, j, pstart, pstop, x, y * w, h = inscores.shape #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * cdef numpy.ndarray[numpy.double_t, ndim=2] scores = inscores */ __pyx_t_1 = PyObject_GetAttr(__pyx_v_inscores, __pyx_n_s__shape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); 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) != 2)) { if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2); else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_2 = 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[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext; index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L7_unpacking_done; __pyx_L6_unpacking_failed:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear(); if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_L7_unpacking_done:; } __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_w = __pyx_t_6; __pyx_v_h = __pyx_t_7;
141:
142: cdef numpy.ndarray[numpy.double_t, ndim=2] scores = inscores
/* "vision/track/pairwise.pyx":142 * w, h = inscores.shape * * cdef numpy.ndarray[numpy.double_t, ndim=2] scores = inscores #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* cdef numpy.ndarray[numpy.double_t, ndim=2] vertical, horizontal * cdef numpy.ndarray[numpy.int_t, ndim=2] xp, yp */ if (!(likely(((__pyx_v_inscores) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_inscores, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_8 = ((PyArrayObject *)__pyx_v_inscores); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_scores, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { __pyx_v_scores = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_bstruct_scores.buf = NULL; {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_bstride_0_scores = __pyx_bstruct_scores.strides[0]; __pyx_bstride_1_scores = __pyx_bstruct_scores.strides[1]; __pyx_bshape_0_scores = __pyx_bstruct_scores.shape[0]; __pyx_bshape_1_scores = __pyx_bstruct_scores.shape[1]; } } __pyx_t_8 = 0; __Pyx_INCREF(__pyx_v_inscores); __pyx_v_scores = ((PyArrayObject *)__pyx_v_inscores);
143: cdef numpy.ndarray[numpy.double_t, ndim=2] vertical, horizontal
144: cdef numpy.ndarray[numpy.int_t, ndim=2] xp, yp
145:
146: vertical = numpy.zeros((w,h), dtype = numpy.double)
/* "vision/track/pairwise.pyx":146 * cdef numpy.ndarray[numpy.int_t, ndim=2] xp, yp * * vertical = numpy.zeros((w,h), dtype = numpy.double) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* horizontal = numpy.zeros((w,h), dtype = numpy.double) * xp = numpy.zeros((w,h), dtype = numpy.int) */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong(__pyx_v_w); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __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[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_4)); __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__double); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_10 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_vertical); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_vertical, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7<
0)) { PyErr_Fetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_vertical, (PyObject*)__pyx_v_vertical, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_11, __pyx_t_12, __pyx_t_13); } } __pyx_bstride_0_vertical = __pyx_bstruct_vertical.strides[0]; __pyx_bstride_1_vertical = __pyx_bstruct_vertical.strides[1]; __pyx_bshape_0_vertical = __pyx_bstruct_vertical.shape[0]; __pyx_bshape_1_vertical = __pyx_bstruct_vertical.shape[1]; if (unlikely(__pyx_t_7<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_10 = 0; __pyx_v_vertical = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0;
147: horizontal = numpy.zeros((w,h), dtype = numpy.double)
/* "vision/track/pairwise.pyx":147 * * vertical = numpy.zeros((w,h), dtype = numpy.double) * horizontal = numpy.zeros((w,h), dtype = numpy.double) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* xp = numpy.zeros((w,h), dtype = numpy.int) * yp = numpy.zeros((w,h), dtype = numpy.int) */ __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_4 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__zeros); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyInt_FromLong(__pyx_v_w); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __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[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_9 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __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; __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__double); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_10 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_horizontal); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_horizontal, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7<
0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_horizontal, (PyObject*)__pyx_v_horizontal, &__Pyx_TypeInfo_nn___pyx_t_5numpy_double_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_12, __pyx_t_11); } } __pyx_bstride_0_horizontal = __pyx_bstruct_horizontal.strides[0]; __pyx_bstride_1_horizontal = __pyx_bstruct_horizontal.strides[1]; __pyx_bshape_0_horizontal = __pyx_bstruct_horizontal.shape[0]; __pyx_bshape_1_horizontal = __pyx_bstruct_horizontal.shape[1]; if (unlikely(__pyx_t_7<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_10 = 0; __pyx_v_horizontal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
148: xp = numpy.zeros((w,h), dtype = numpy.int)
/* "vision/track/pairwise.pyx":148 * vertical = numpy.zeros((w,h), dtype = numpy.double) * horizontal = numpy.zeros((w,h), dtype = numpy.double) * xp = numpy.zeros((w,h), dtype = numpy.int) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* yp = numpy.zeros((w,h), dtype = numpy.int) * */ __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromLong(__pyx_v_w); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __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[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_4)); __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_4)); __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__int); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_14 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_xp); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_xp, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7<
0)) { PyErr_Fetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_xp, (PyObject*)__pyx_v_xp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_11, __pyx_t_12, __pyx_t_13); } } __pyx_bstride_0_xp = __pyx_bstruct_xp.strides[0]; __pyx_bstride_1_xp = __pyx_bstruct_xp.strides[1]; __pyx_bshape_0_xp = __pyx_bstruct_xp.shape[0]; __pyx_bshape_1_xp = __pyx_bstruct_xp.shape[1]; if (unlikely(__pyx_t_7<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_14 = 0; __pyx_v_xp = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0;
149: yp = numpy.zeros((w,h), dtype = numpy.int)
/* "vision/track/pairwise.pyx":149 * horizontal = numpy.zeros((w,h), dtype = numpy.double) * xp = numpy.zeros((w,h), dtype = numpy.int) * yp = numpy.zeros((w,h), dtype = numpy.int) #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * for i in range(w): */ __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_4 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__zeros); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyInt_FromLong(__pyx_v_w); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = PyInt_FromLong(__pyx_v_h); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __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[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_9 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __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; __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_3)); __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__int); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_1)<
0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_14 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_yp); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_yp, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7<
0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_yp, (PyObject*)__pyx_v_yp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_12, __pyx_t_11); } } __pyx_bstride_0_yp = __pyx_bstruct_yp.strides[0]; __pyx_bstride_1_yp = __pyx_bstruct_yp.strides[1]; __pyx_bshape_0_yp = __pyx_bstruct_yp.shape[0]; __pyx_bshape_1_yp = __pyx_bstruct_yp.shape[1]; if (unlikely(__pyx_t_7<
0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_14 = 0; __pyx_v_yp = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
150:
151: for i in range(w):
/* "vision/track/pairwise.pyx":151 * yp = numpy.zeros((w,h), dtype = numpy.int) * * for i in range(w): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for j in range(h): * pstart = j - radius */ __pyx_t_7 = __pyx_v_w; for (__pyx_t_6 = 0; __pyx_t_6<
__pyx_t_7; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6;
152: for j in range(h):
/* "vision/track/pairwise.pyx":152 * * for i in range(w): * for j in range(h): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pstart = j - radius * pstop = j + radius */ __pyx_t_15 = __pyx_v_h; for (__pyx_t_16 = 0; __pyx_t_16<
__pyx_t_15; __pyx_t_16+=1) { __pyx_v_j = __pyx_t_16;
153: pstart = j - radius
/* "vision/track/pairwise.pyx":153 * for i in range(w): * for j in range(h): * pstart = j - radius #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pstop = j + radius * if pstart<
0: */ __pyx_v_pstart = (__pyx_v_j - __pyx_v_radius);
154: pstop = j + radius
/* "vision/track/pairwise.pyx":154 * for j in range(h): * pstart = j - radius * pstop = j + radius #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if pstart<
0: * pstart = 0 */ __pyx_v_pstop = (__pyx_v_j + __pyx_v_radius);
155: if pstart < 0:
/* "vision/track/pairwise.pyx":155 * pstart = j - radius * pstop = j + radius * if pstart<
0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pstart = 0 * if pstop > h: */ __pyx_t_17 = (__pyx_v_pstart<
0); if (__pyx_t_17) {
156: pstart = 0
/* "vision/track/pairwise.pyx":156 * pstop = j + radius * if pstart<
0: * pstart = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if pstop > h: * pstop = h */ __pyx_v_pstart = 0; goto __pyx_L12; } __pyx_L12:;
157: if pstop > h:
/* "vision/track/pairwise.pyx":157 * if pstart<
0: * pstart = 0 * if pstop > h: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pstop = h * vertical[i, j] = scores[i, j] */ __pyx_t_17 = (__pyx_v_pstop > __pyx_v_h); if (__pyx_t_17) {
158: pstop = h
/* "vision/track/pairwise.pyx":158 * pstart = 0 * if pstop > h: * pstop = h #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* vertical[i, j] = scores[i, j] * yp[i, j] = j */ __pyx_v_pstop = __pyx_v_h; goto __pyx_L13; } __pyx_L13:;
159: vertical[i, j] = scores[i, j]
/* "vision/track/pairwise.pyx":159 * if pstop > h: * pstop = h * vertical[i, j] = scores[i, j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* yp[i, j] = j * for y in range(pstart, pstop): */ __pyx_t_18 = __pyx_v_i; __pyx_t_19 = __pyx_v_j; if (__pyx_t_18<
0) __pyx_t_18 += __pyx_bshape_0_scores; if (__pyx_t_19<
0) __pyx_t_19 += __pyx_bshape_1_scores; __pyx_t_20 = __pyx_v_i; __pyx_t_21 = __pyx_v_j; if (__pyx_t_20<
0) __pyx_t_20 += __pyx_bshape_0_vertical; if (__pyx_t_21<
0) __pyx_t_21 += __pyx_bshape_1_vertical; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_vertical.buf, __pyx_t_20, __pyx_bstride_0_vertical, __pyx_t_21, __pyx_bstride_1_vertical) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_scores.buf, __pyx_t_18, __pyx_bstride_0_scores, __pyx_t_19, __pyx_bstride_1_scores));
160: yp[i, j] = j
/* "vision/track/pairwise.pyx":160 * pstop = h * vertical[i, j] = scores[i, j] * yp[i, j] = j #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for y in range(pstart, pstop): * if scores[i, y]<
vertical[i, j]: */ __pyx_t_22 = __pyx_v_i; __pyx_t_23 = __pyx_v_j; if (__pyx_t_22<
0) __pyx_t_22 += __pyx_bshape_0_yp; if (__pyx_t_23<
0) __pyx_t_23 += __pyx_bshape_1_yp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_yp.buf, __pyx_t_22, __pyx_bstride_0_yp, __pyx_t_23, __pyx_bstride_1_yp) = __pyx_v_j;
161: for y in range(pstart, pstop):
/* "vision/track/pairwise.pyx":161 * vertical[i, j] = scores[i, j] * yp[i, j] = j * for y in range(pstart, pstop): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if scores[i, y]<
vertical[i, j]: * vertical[i, j] = scores[i, y] */ __pyx_t_24 = __pyx_v_pstop; for (__pyx_t_25 = __pyx_v_pstart; __pyx_t_25<
__pyx_t_24; __pyx_t_25+=1) { __pyx_v_y = __pyx_t_25;
162: if scores[i, y] < vertical[i, j]:
/* "vision/track/pairwise.pyx":162 * yp[i, j] = j * for y in range(pstart, pstop): * if scores[i, y]<
vertical[i, j]: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* vertical[i, j] = scores[i, y] * yp[i, j] = y */ __pyx_t_26 = __pyx_v_i; __pyx_t_27 = __pyx_v_y; if (__pyx_t_26<
0) __pyx_t_26 += __pyx_bshape_0_scores; if (__pyx_t_27<
0) __pyx_t_27 += __pyx_bshape_1_scores; __pyx_t_28 = __pyx_v_i; __pyx_t_29 = __pyx_v_j; if (__pyx_t_28<
0) __pyx_t_28 += __pyx_bshape_0_vertical; if (__pyx_t_29<
0) __pyx_t_29 += __pyx_bshape_1_vertical; __pyx_t_17 = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_scores.buf, __pyx_t_26, __pyx_bstride_0_scores, __pyx_t_27, __pyx_bstride_1_scores))<
(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_vertical.buf, __pyx_t_28, __pyx_bstride_0_vertical, __pyx_t_29, __pyx_bstride_1_vertical))); if (__pyx_t_17) {
163: vertical[i, j] = scores[i, y]
/* "vision/track/pairwise.pyx":163 * for y in range(pstart, pstop): * if scores[i, y]<
vertical[i, j]: * vertical[i, j] = scores[i, y] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* yp[i, j] = y * */ __pyx_t_30 = __pyx_v_i; __pyx_t_31 = __pyx_v_y; if (__pyx_t_30<
0) __pyx_t_30 += __pyx_bshape_0_scores; if (__pyx_t_31<
0) __pyx_t_31 += __pyx_bshape_1_scores; __pyx_t_32 = __pyx_v_i; __pyx_t_33 = __pyx_v_j; if (__pyx_t_32<
0) __pyx_t_32 += __pyx_bshape_0_vertical; if (__pyx_t_33<
0) __pyx_t_33 += __pyx_bshape_1_vertical; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_vertical.buf, __pyx_t_32, __pyx_bstride_0_vertical, __pyx_t_33, __pyx_bstride_1_vertical) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_scores.buf, __pyx_t_30, __pyx_bstride_0_scores, __pyx_t_31, __pyx_bstride_1_scores));
164: yp[i, j] = y
/* "vision/track/pairwise.pyx":164 * if scores[i, y]<
vertical[i, j]: * vertical[i, j] = scores[i, y] * yp[i, j] = y #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * for i in range(w): */ __pyx_t_34 = __pyx_v_i; __pyx_t_35 = __pyx_v_j; if (__pyx_t_34<
0) __pyx_t_34 += __pyx_bshape_0_yp; if (__pyx_t_35<
0) __pyx_t_35 += __pyx_bshape_1_yp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_yp.buf, __pyx_t_34, __pyx_bstride_0_yp, __pyx_t_35, __pyx_bstride_1_yp) = __pyx_v_y; goto __pyx_L16; } __pyx_L16:; } } }
165:
166: for i in range(w):
/* "vision/track/pairwise.pyx":166 * yp[i, j] = y * * for i in range(w): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for j in range(h): * pstart = i - radius */ __pyx_t_7 = __pyx_v_w; for (__pyx_t_6 = 0; __pyx_t_6<
__pyx_t_7; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6;
167: for j in range(h):
/* "vision/track/pairwise.pyx":167 * * for i in range(w): * for j in range(h): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pstart = i - radius * pstop = i + radius */ __pyx_t_15 = __pyx_v_h; for (__pyx_t_16 = 0; __pyx_t_16<
__pyx_t_15; __pyx_t_16+=1) { __pyx_v_j = __pyx_t_16;
168: pstart = i - radius
/* "vision/track/pairwise.pyx":168 * for i in range(w): * for j in range(h): * pstart = i - radius #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pstop = i + radius * if pstart<
0: */ __pyx_v_pstart = (__pyx_v_i - __pyx_v_radius);
169: pstop = i + radius
/* "vision/track/pairwise.pyx":169 * for j in range(h): * pstart = i - radius * pstop = i + radius #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if pstart<
0: * pstart = 0 */ __pyx_v_pstop = (__pyx_v_i + __pyx_v_radius);
170: if pstart < 0:
/* "vision/track/pairwise.pyx":170 * pstart = i - radius * pstop = i + radius * if pstart<
0: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pstart = 0 * if pstop > w: */ __pyx_t_17 = (__pyx_v_pstart<
0); if (__pyx_t_17) {
171: pstart = 0
/* "vision/track/pairwise.pyx":171 * pstop = i + radius * if pstart<
0: * pstart = 0 #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if pstop > w: * pstop = w */ __pyx_v_pstart = 0; goto __pyx_L21; } __pyx_L21:;
172: if pstop > w:
/* "vision/track/pairwise.pyx":172 * if pstart<
0: * pstart = 0 * if pstop > w: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* pstop = w * horizontal[i, j] = vertical[i, j] */ __pyx_t_17 = (__pyx_v_pstop > __pyx_v_w); if (__pyx_t_17) {
173: pstop = w
/* "vision/track/pairwise.pyx":173 * pstart = 0 * if pstop > w: * pstop = w #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* horizontal[i, j] = vertical[i, j] * xp[i, j] = i */ __pyx_v_pstop = __pyx_v_w; goto __pyx_L22; } __pyx_L22:;
174: horizontal[i, j] = vertical[i, j]
/* "vision/track/pairwise.pyx":174 * if pstop > w: * pstop = w * horizontal[i, j] = vertical[i, j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* xp[i, j] = i * for x in range(pstart, pstop): */ __pyx_t_24 = __pyx_v_i; __pyx_t_25 = __pyx_v_j; if (__pyx_t_24<
0) __pyx_t_24 += __pyx_bshape_0_vertical; if (__pyx_t_25<
0) __pyx_t_25 += __pyx_bshape_1_vertical; __pyx_t_36 = __pyx_v_i; __pyx_t_37 = __pyx_v_j; if (__pyx_t_36<
0) __pyx_t_36 += __pyx_bshape_0_horizontal; if (__pyx_t_37<
0) __pyx_t_37 += __pyx_bshape_1_horizontal; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_horizontal.buf, __pyx_t_36, __pyx_bstride_0_horizontal, __pyx_t_37, __pyx_bstride_1_horizontal) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_vertical.buf, __pyx_t_24, __pyx_bstride_0_vertical, __pyx_t_25, __pyx_bstride_1_vertical));
175: xp[i, j] = i
/* "vision/track/pairwise.pyx":175 * pstop = w * horizontal[i, j] = vertical[i, j] * xp[i, j] = i #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* for x in range(pstart, pstop): * if vertical[x, j]<
horizontal[i, j]: */ __pyx_t_38 = __pyx_v_i; __pyx_t_39 = __pyx_v_j; if (__pyx_t_38<
0) __pyx_t_38 += __pyx_bshape_0_xp; if (__pyx_t_39<
0) __pyx_t_39 += __pyx_bshape_1_xp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_xp.buf, __pyx_t_38, __pyx_bstride_0_xp, __pyx_t_39, __pyx_bstride_1_xp) = __pyx_v_i;
176: for x in range(pstart, pstop):
/* "vision/track/pairwise.pyx":176 * horizontal[i, j] = vertical[i, j] * xp[i, j] = i * for x in range(pstart, pstop): #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* if vertical[x, j]<
horizontal[i, j]: * horizontal[i, j] = vertical[x, j] */ __pyx_t_40 = __pyx_v_pstop; for (__pyx_t_41 = __pyx_v_pstart; __pyx_t_41<
__pyx_t_40; __pyx_t_41+=1) { __pyx_v_x = __pyx_t_41;
177: if vertical[x, j] < horizontal[i, j]:
/* "vision/track/pairwise.pyx":177 * xp[i, j] = i * for x in range(pstart, pstop): * if vertical[x, j]<
horizontal[i, j]: #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* horizontal[i, j] = vertical[x, j] * xp[i, j] = x */ __pyx_t_42 = __pyx_v_x; __pyx_t_43 = __pyx_v_j; if (__pyx_t_42<
0) __pyx_t_42 += __pyx_bshape_0_vertical; if (__pyx_t_43<
0) __pyx_t_43 += __pyx_bshape_1_vertical; __pyx_t_44 = __pyx_v_i; __pyx_t_45 = __pyx_v_j; if (__pyx_t_44<
0) __pyx_t_44 += __pyx_bshape_0_horizontal; if (__pyx_t_45<
0) __pyx_t_45 += __pyx_bshape_1_horizontal; __pyx_t_17 = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_vertical.buf, __pyx_t_42, __pyx_bstride_0_vertical, __pyx_t_43, __pyx_bstride_1_vertical))<
(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_horizontal.buf, __pyx_t_44, __pyx_bstride_0_horizontal, __pyx_t_45, __pyx_bstride_1_horizontal))); if (__pyx_t_17) {
178: horizontal[i, j] = vertical[x, j]
/* "vision/track/pairwise.pyx":178 * for x in range(pstart, pstop): * if vertical[x, j]<
horizontal[i, j]: * horizontal[i, j] = vertical[x, j] #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* xp[i, j] = x * */ __pyx_t_46 = __pyx_v_x; __pyx_t_47 = __pyx_v_j; if (__pyx_t_46<
0) __pyx_t_46 += __pyx_bshape_0_vertical; if (__pyx_t_47<
0) __pyx_t_47 += __pyx_bshape_1_vertical; __pyx_t_48 = __pyx_v_i; __pyx_t_49 = __pyx_v_j; if (__pyx_t_48<
0) __pyx_t_48 += __pyx_bshape_0_horizontal; if (__pyx_t_49<
0) __pyx_t_49 += __pyx_bshape_1_horizontal; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_horizontal.buf, __pyx_t_48, __pyx_bstride_0_horizontal, __pyx_t_49, __pyx_bstride_1_horizontal) = (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_double_t *, __pyx_bstruct_vertical.buf, __pyx_t_46, __pyx_bstride_0_vertical, __pyx_t_47, __pyx_bstride_1_vertical));
179: xp[i, j] = x
/* "vision/track/pairwise.pyx":179 * if vertical[x, j]<
horizontal[i, j]: * horizontal[i, j] = vertical[x, j] * xp[i, j] = x #<
<
<
<
<
<
<
<
<
<
<
<
<
<
* * return horizontal, xp, yp */ __pyx_t_50 = __pyx_v_i; __pyx_t_51 = __pyx_v_j; if (__pyx_t_50<
0) __pyx_t_50 += __pyx_bshape_0_xp; if (__pyx_t_51<
0) __pyx_t_51 += __pyx_bshape_1_xp; *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int_t *, __pyx_bstruct_xp.buf, __pyx_t_50, __pyx_bstride_0_xp, __pyx_t_51, __pyx_bstride_1_xp) = __pyx_v_x; goto __pyx_L25; } __pyx_L25:; } } }
180:
181: return horizontal, xp, yp
/* "vision/track/pairwise.pyx":181 * xp[i, j] = x * * return horizontal, xp, yp #<
<
<
<
<
<
<
<
<
<
<
<
<
<
*/ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(((PyObject *)__pyx_v_horizontal)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_horizontal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_horizontal)); __Pyx_INCREF(((PyObject *)__pyx_v_xp)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_xp)); __Pyx_GIVEREF(((PyObject *)__pyx_v_xp)); __Pyx_INCREF(((PyObject *)__pyx_v_yp)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_yp)); __Pyx_GIVEREF(((PyObject *)__pyx_v_yp)); __pyx_r = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_9); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_vertical); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_xp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_yp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_scores); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_horizontal); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("vision.track.pairwise.hinge", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_bstruct_vertical); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_xp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_yp); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_scores); __Pyx_SafeReleaseBuffer(&__pyx_bstruct_horizontal); __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_scores); __Pyx_XDECREF((PyObject *)__pyx_v_vertical); __Pyx_XDECREF((PyObject *)__pyx_v_horizontal); __Pyx_XDECREF((PyObject *)__pyx_v_xp); __Pyx_XDECREF((PyObject *)__pyx_v_yp); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }