From ee5acd0e8c4b84f0ef7484d48ee208ad78b2f833 Mon Sep 17 00:00:00 2001 From: igarg2001 Date: Fri, 11 Feb 2022 22:58:35 +0530 Subject: [PATCH] fix ModuleNotFoundError --- .gitignore | 1 + annotation.py | 8 +- build/temp.linux-x86_64-3.8/functional.o | Bin 0 -> 4400688 bytes core/multistreamloader.py | 8 +- functional.c | 3006 +++++++++++----------- functional.pyx | 438 ++++ logger/debug.log | 89 +- setup.py | 6 + video.py | 2 +- 9 files changed, 2118 insertions(+), 1440 deletions(-) create mode 100644 .gitignore create mode 100644 build/temp.linux-x86_64-3.8/functional.o create mode 100644 functional.pyx create mode 100644 setup.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ed8ebf5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__ \ No newline at end of file diff --git a/annotation.py b/annotation.py index cc2c4ef..92499a2 100644 --- a/annotation.py +++ b/annotation.py @@ -1,7 +1,13 @@ import numpy as np +import pyximport +pyximport.install(setup_args={"script_args" : ["--verbose"]}) + +# fun = ctypes.CDLL("./functional.cpython-37m-x86_64-linux-gnu.so") +# fun.connect() +# fun.__pyx_f_10openpifpaf_10functional_scalar_value_clipped.argtypes = [ctypes.py_object, ctypes.py_object, ctypes.py_object] # pylint: disable=import-error -from .functional import scalar_value_clipped +from functional import scalar_value_clipped NOTSET = '__notset__' diff --git a/build/temp.linux-x86_64-3.8/functional.o b/build/temp.linux-x86_64-3.8/functional.o new file mode 100644 index 0000000000000000000000000000000000000000..2504d49f2ddd9bef3415456e10c947624f223c1e GIT binary patch literal 4400688 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%0D|BRJ@G-X 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

q+ksrxHW#K$ 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 @oDsbuxoU*r->!UAw0r}dy@t!TagKW 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%0ANW`$ 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 #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) @@ -171,7 +173,7 @@ END: Cython Metadata */ #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif - #if PY_VERSION_HEX < 0x030300F0 + #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) @@ -190,7 +192,7 @@ END: Cython Metadata */ #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 + #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1) #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) @@ -209,7 +211,9 @@ END: Cython Metadata */ #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if CYTHON_USE_PYLONG_INTERNALS - #include "longintrepr.h" + #if PY_MAJOR_VERSION < 3 + #include "longintrepr.h" + #endif #undef SHIFT #undef BASE #undef MASK @@ -326,9 +330,68 @@ END: Cython Metadata */ #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) + #define __Pyx_DefaultClassType PyType_Type +#if PY_VERSION_HEX >= 0x030B00A1 + static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f, + PyObject *code, PyObject *c, PyObject* n, PyObject *v, + PyObject *fv, PyObject *cell, PyObject* fn, + PyObject *name, int fline, PyObject *lnos) { + PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL; + PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL; + const char *fn_cstr=NULL; + const char *name_cstr=NULL; + PyCodeObject* co=NULL; + PyObject *type, *value, *traceback; + PyErr_Fetch(&type, &value, &traceback); + if (!(kwds=PyDict_New())) goto end; + if (!(argcount=PyLong_FromLong(a))) goto end; + if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end; + if (!(posonlyargcount=PyLong_FromLong(0))) goto end; + if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end; + if (!(kwonlyargcount=PyLong_FromLong(k))) goto end; + if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end; + if (!(nlocals=PyLong_FromLong(l))) goto end; + if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end; + if (!(stacksize=PyLong_FromLong(s))) goto end; + if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end; + if (!(flags=PyLong_FromLong(f))) goto end; + if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end; + if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end; + if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end; + if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end; + if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too; + if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here + if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too; + Py_XDECREF((PyObject*)co); + co = (PyCodeObject*)call_result; + call_result = NULL; + if (0) { + cleanup_code_too: + Py_XDECREF((PyObject*)co); + co = NULL; + } + end: + Py_XDECREF(kwds); + Py_XDECREF(argcount); + Py_XDECREF(posonlyargcount); + Py_XDECREF(kwonlyargcount); + Py_XDECREF(nlocals); + Py_XDECREF(stacksize); + Py_XDECREF(replace); + Py_XDECREF(call_result); + Py_XDECREF(empty); + if (type) { + PyErr_Restore(type, value, traceback); + } + return co; + } #else #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) @@ -442,8 +505,12 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 + #if defined(PyUnicode_IS_READY) #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) + #else + #define __Pyx_PyUnicode_READY(op) (0) + #endif #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) @@ -452,7 +519,11 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) + #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) + #endif #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) #endif @@ -558,10 +629,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) @@ -618,8 +689,8 @@ static CYTHON_INLINE float __PYX_NAN() { #endif #endif -#define __PYX_HAVE__openpifpaf__functional -#define __PYX_HAVE_API__openpifpaf__functional +#define __PYX_HAVE__functional +#define __PYX_HAVE_API__functional /* Early includes */ #include #include "pythread.h" @@ -723,6 +794,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else @@ -835,7 +907,7 @@ static const char *__pyx_filename; static const char *__pyx_f[] = { - "openpifpaf/functional.pyx", + "functional.pyx", "stringsource", }; /* MemviewSliceStruct.proto */ @@ -952,73 +1024,89 @@ struct __pyx_array_obj; struct __pyx_MemviewEnum_obj; struct __pyx_memoryview_obj; struct __pyx_memoryviewslice_obj; -struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_add_gauss; -struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_add_gauss_with_max; -struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_max_gauss; -struct __pyx_opt_args_10openpifpaf_10functional_scalar_value; -struct __pyx_opt_args_10openpifpaf_10functional_scalar_nonzero; - -/* "openpifpaf/functional.pyx":74 +struct __pyx_opt_args_10functional_scalar_square_add_gauss; +struct __pyx_opt_args_10functional_scalar_square_add_gauss_with_max; +struct __pyx_opt_args_10functional_scalar_square_max_gauss; +struct __pyx_opt_args_10functional_scalar_value; +struct __pyx_opt_args_10functional_scalar_nonzero; +struct __pyx_ctuple_float__and_float__and_float__and_float; +typedef struct __pyx_ctuple_float__and_float__and_float__and_float __pyx_ctuple_float__and_float__and_float__and_float; + +/* "functional.pyx":74 * @cython.wraparound(False) * @cython.cdivision(True) * cpdef void scalar_square_add_gauss(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0) nogil: # <<<<<<<<<<<<<< * cdef Py_ssize_t i, xx, yy * cdef float vv, deltax2, deltay2 */ -struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_add_gauss { +struct __pyx_opt_args_10functional_scalar_square_add_gauss { int __pyx_n; float truncate; }; -/* "openpifpaf/functional.pyx":108 +/* "functional.pyx":108 * @cython.wraparound(False) * @cython.cdivision(True) * cpdef void scalar_square_add_gauss_with_max(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0, float max_value=1.0) nogil: # <<<<<<<<<<<<<< * cdef Py_ssize_t i, xx, yy * cdef float vv, deltax2, deltay2 */ -struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_add_gauss_with_max { +struct __pyx_opt_args_10functional_scalar_square_add_gauss_with_max { int __pyx_n; float truncate; float max_value; }; -/* "openpifpaf/functional.pyx":147 +/* "functional.pyx":150 * @cython.wraparound(False) * @cython.cdivision(True) * cpdef void scalar_square_max_gauss(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0) nogil: # <<<<<<<<<<<<<< * cdef Py_ssize_t i, xx, yy * cdef float vv, deltax2, deltay2 */ -struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_max_gauss { +struct __pyx_opt_args_10functional_scalar_square_max_gauss { int __pyx_n; float truncate; }; -/* "openpifpaf/functional.pyx":249 +/* "functional.pyx":252 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef float scalar_value(float[:, :] field, float x, float y, float default=-1): # <<<<<<<<<<<<<< * if x < 0.0 or y < 0.0 or x > field.shape[1] - 1 or y > field.shape[0] - 1: * return default */ -struct __pyx_opt_args_10openpifpaf_10functional_scalar_value { +struct __pyx_opt_args_10functional_scalar_value { int __pyx_n; float __pyx_default; }; -/* "openpifpaf/functional.pyx":266 +/* "functional.pyx":269 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef unsigned char scalar_nonzero(unsigned char[:, :] field, float x, float y, unsigned char default=0): # <<<<<<<<<<<<<< * if x < 0.0 or y < 0.0 or x > field.shape[1] - 1 or y > field.shape[0] - 1: * return default */ -struct __pyx_opt_args_10openpifpaf_10functional_scalar_nonzero { +struct __pyx_opt_args_10functional_scalar_nonzero { int __pyx_n; unsigned char __pyx_default; }; +/* "functional.pyx":408 + * score_2 = score + * + * cdef (float, float, float, float) r = (0.0, 0.0, 0.0, 0.0) # <<<<<<<<<<<<<< + * if score_1 == 0.0: + * return r + */ +struct __pyx_ctuple_float__and_float__and_float__and_float { + float f0; + float f1; + float f2; + float f3; +}; + /* "View.MemoryView":105 * * @cname("__pyx_array") @@ -1349,6 +1437,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif +#if CYTHON_FAST_PYCALL static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" #define __Pxy_PyFrame_Initialize_Offsets()\ @@ -1356,6 +1445,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif // CYTHON_FAST_PYCALL #endif /* PyObjectCall.proto */ @@ -1427,6 +1517,9 @@ static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* k #define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) #endif +/* IncludeStringH.proto */ +#include + /* ArgTypeTest.proto */ #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\ @@ -1436,9 +1529,6 @@ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *nam /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); -/* IncludeStringH.proto */ -#include - /* BytesEquals.proto */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); @@ -1452,7 +1542,7 @@ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals #endif -/* None.proto */ +/* DivInt[Py_ssize_t].proto */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); /* UnaryNegOverflows.proto */ @@ -1611,7 +1701,7 @@ static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) #endif -/* None.proto */ +/* DivInt[long].proto */ static CYTHON_INLINE long __Pyx_div_long(long, long); /* ImportFrom.proto */ @@ -1735,18 +1825,20 @@ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_flo /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_unsigned_char(PyObject *, int writable_flag); -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); +/* GCCDiagnostics.proto */ +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define __Pyx_HAS_GCC_DIAGNOSTIC +#endif /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get_float(const char *itemp); static CYTHON_INLINE int __pyx_memview_set_float(const char *itemp, PyObject *obj); -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value); +/* ObjectToMemviewSlice.proto */ +static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_unsigned_char(PyObject *, int writable_flag); -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value); +/* ToPyCTupleUtility.proto */ +static PyObject* __pyx_convert__to_py___pyx_ctuple_float__and_float__and_float__and_float(__pyx_ctuple_float__and_float__and_float__and_float); /* MemviewSliceCopyTemplate.proto */ static __Pyx_memviewslice @@ -1758,6 +1850,15 @@ __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, /* CIntFromPy.proto */ static CYTHON_INLINE unsigned char __Pyx_PyInt_As_unsigned_char(PyObject *); +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value); + /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); @@ -1770,9 +1871,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); /* CIntFromPy.proto */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *); -/* ObjectToMemviewSlice.proto */ -static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_unsigned_char(PyObject *, int writable_flag); - /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); @@ -1796,7 +1894,7 @@ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memo /* Module declarations from 'libc.math' */ -/* Module declarations from 'openpifpaf.functional' */ +/* Module declarations from 'functional' */ static PyTypeObject *__pyx_array_type = 0; static PyTypeObject *__pyx_MemviewEnum_type = 0; static PyTypeObject *__pyx_memoryview_type = 0; @@ -1808,18 +1906,18 @@ static PyObject *contiguous = 0; static PyObject *indirect_contiguous = 0; static int __pyx_memoryview_thread_locks_used; static PyThread_type_lock __pyx_memoryview_thread_locks[8]; -static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int __pyx_skip_dispatch); /*proto*/ -static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int __pyx_skip_dispatch); /*proto*/ -static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_approx_exp(float); /*proto*/ -static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_clip(float, float, float); /*proto*/ -static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int __pyx_skip_dispatch, struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_add_gauss *__pyx_optional_args); /*proto*/ -static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int __pyx_skip_dispatch, struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_add_gauss_with_max *__pyx_optional_args); /*proto*/ -static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int __pyx_skip_dispatch, struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_max_gauss *__pyx_optional_args); /*proto*/ -static float __pyx_f_10openpifpaf_10functional_scalar_value(__Pyx_memviewslice, float, float, int __pyx_skip_dispatch, struct __pyx_opt_args_10openpifpaf_10functional_scalar_value *__pyx_optional_args); /*proto*/ -static float __pyx_f_10openpifpaf_10functional_scalar_value_clipped(__Pyx_memviewslice, float, float, int __pyx_skip_dispatch); /*proto*/ -static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero(__Pyx_memviewslice, float, float, int __pyx_skip_dispatch, struct __pyx_opt_args_10openpifpaf_10functional_scalar_nonzero *__pyx_optional_args); /*proto*/ -static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped(__Pyx_memviewslice, float, float, int __pyx_skip_dispatch); /*proto*/ -static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped_with_reduction(__Pyx_memviewslice, float, float, float, int __pyx_skip_dispatch); /*proto*/ +static void __pyx_f_10functional_scalar_square_add_constant(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int __pyx_skip_dispatch); /*proto*/ +static void __pyx_f_10functional_cumulative_average(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int __pyx_skip_dispatch); /*proto*/ +static CYTHON_INLINE float __pyx_f_10functional_approx_exp(float); /*proto*/ +static CYTHON_INLINE float __pyx_f_10functional_clip(float, float, float); /*proto*/ +static void __pyx_f_10functional_scalar_square_add_gauss(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int __pyx_skip_dispatch, struct __pyx_opt_args_10functional_scalar_square_add_gauss *__pyx_optional_args); /*proto*/ +static void __pyx_f_10functional_scalar_square_add_gauss_with_max(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int __pyx_skip_dispatch, struct __pyx_opt_args_10functional_scalar_square_add_gauss_with_max *__pyx_optional_args); /*proto*/ +static void __pyx_f_10functional_scalar_square_max_gauss(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int __pyx_skip_dispatch, struct __pyx_opt_args_10functional_scalar_square_max_gauss *__pyx_optional_args); /*proto*/ +static float __pyx_f_10functional_scalar_value(__Pyx_memviewslice, float, float, int __pyx_skip_dispatch, struct __pyx_opt_args_10functional_scalar_value *__pyx_optional_args); /*proto*/ +static float __pyx_f_10functional_scalar_value_clipped(__Pyx_memviewslice, float, float, int __pyx_skip_dispatch); /*proto*/ +static unsigned char __pyx_f_10functional_scalar_nonzero(__Pyx_memviewslice, float, float, int __pyx_skip_dispatch, struct __pyx_opt_args_10functional_scalar_nonzero *__pyx_optional_args); /*proto*/ +static unsigned char __pyx_f_10functional_scalar_nonzero_clipped(__Pyx_memviewslice, float, float, int __pyx_skip_dispatch); /*proto*/ +static unsigned char __pyx_f_10functional_scalar_nonzero_clipped_with_reduction(__Pyx_memviewslice, float, float, float, int __pyx_skip_dispatch); /*proto*/ static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/ static void *__pyx_align_pointer(void *, size_t); /*proto*/ static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/ @@ -1855,11 +1953,11 @@ static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/ static __Pyx_TypeInfo __Pyx_TypeInfo_float = { "float", NULL, sizeof(float), { 0 }, 0, 'R', 0, 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo_unsigned_char = { "unsigned char", NULL, sizeof(unsigned char), { 0 }, 0, IS_UNSIGNED(unsigned char) ? 'U' : 'I', IS_UNSIGNED(unsigned char), 0 }; -#define __Pyx_MODULE_NAME "openpifpaf.functional" -extern int __pyx_module_is_main_openpifpaf__functional; -int __pyx_module_is_main_openpifpaf__functional = 0; +#define __Pyx_MODULE_NAME "functional" +extern int __pyx_module_is_main_functional; +int __pyx_module_is_main_functional = 0; -/* Implementation of 'openpifpaf.functional' */ +/* Implementation of 'functional' */ static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_MemoryError; @@ -1973,6 +2071,7 @@ static const char __pyx_k_weights_x[] = "weights_x"; static const char __pyx_k_IndexError[] = "IndexError"; static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_empty_like[] = "empty_like"; +static const char __pyx_k_functional[] = "functional"; static const char __pyx_k_paf_center[] = "paf_center"; static const char __pyx_k_pyx_result[] = "__pyx_result"; static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; @@ -1988,6 +2087,7 @@ static const char __pyx_k_weiszfeld_nd[] = "weiszfeld_nd"; static const char __pyx_k_pyx_getbuffer[] = "__pyx_getbuffer"; static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; static const char __pyx_k_scalar_values[] = "scalar_values"; +static const char __pyx_k_functional_pyx[] = "functional.pyx"; static const char __pyx_k_View_MemoryView[] = "View.MemoryView"; static const char __pyx_k_allocate_buffer[] = "allocate_buffer"; static const char __pyx_k_dtype_is_object[] = "dtype_is_object"; @@ -2000,13 +2100,11 @@ static const char __pyx_k_strided_and_direct[] = ""; static const char __pyx_k_strided_and_indirect[] = ""; static const char __pyx_k_contiguous_and_direct[] = ""; static const char __pyx_k_grow_connection_blend[] = "grow_connection_blend"; -static const char __pyx_k_openpifpaf_functional[] = "openpifpaf.functional"; static const char __pyx_k_MemoryView_of_r_object[] = ""; static const char __pyx_k_MemoryView_of_r_at_0x_x[] = ""; static const char __pyx_k_contiguous_and_indirect[] = ""; static const char __pyx_k_Cannot_index_with_type_s[] = "Cannot index with type '%s'"; static const char __pyx_k_Invalid_shape_in_axis_d_d[] = "Invalid shape in axis %d: %d."; -static const char __pyx_k_openpifpaf_functional_pyx[] = "openpifpaf/functional.pyx"; static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array"; static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data."; static const char __pyx_k_strided_and_direct_or_indirect[] = ""; @@ -2080,6 +2178,8 @@ static PyObject *__pyx_n_s_format; static PyObject *__pyx_n_s_fortran; static PyObject *__pyx_n_u_fortran; static PyObject *__pyx_n_s_full; +static PyObject *__pyx_n_s_functional; +static PyObject *__pyx_kp_s_functional_pyx; static PyObject *__pyx_n_s_getstate; static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi; static PyObject *__pyx_n_s_grow_connection_blend; @@ -2108,8 +2208,6 @@ static PyObject *__pyx_n_s_numpy; static PyObject *__pyx_n_s_obj; static PyObject *__pyx_n_s_ones; static PyObject *__pyx_n_s_only_max; -static PyObject *__pyx_n_s_openpifpaf_functional; -static PyObject *__pyx_kp_s_openpifpaf_functional_pyx; static PyObject *__pyx_n_s_pack; static PyObject *__pyx_n_s_paf_center; static PyObject *__pyx_n_s_paf_center_b; @@ -2180,23 +2278,23 @@ static PyObject *__pyx_n_s_y_np; static PyObject *__pyx_n_s_y_top; static PyObject *__pyx_n_s_zeros; static PyObject *__pyx_n_s_zeros_like; -static PyObject *__pyx_pf_10openpifpaf_10functional_scalar_square_add_constant(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_2cumulative_average(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_cuma, __Pyx_memviewslice __pyx_v_cumw, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v, __Pyx_memviewslice __pyx_v_w); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_4scalar_square_add_gauss(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_6scalar_square_add_gauss_with_max(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate, float __pyx_v_max_value); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_8scalar_square_max_gauss(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x_np, PyObject *__pyx_v_y_np, __Pyx_memviewslice __pyx_v_weights, float __pyx_v_epsilon, Py_ssize_t __pyx_v_max_steps); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, float __pyx_v_default); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_16scalar_value(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_default); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_18scalar_value_clipped(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_20scalar_nonzero(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, unsigned char __pyx_v_default); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_22scalar_nonzero_clipped(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_24scalar_nonzero_clipped_with_reduction(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_r); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_caf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma); /* proto */ -static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_caf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_xy_scale, int __pyx_v_only_max); /* proto */ +static PyObject *__pyx_pf_10functional_scalar_square_add_constant(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v); /* proto */ +static PyObject *__pyx_pf_10functional_2cumulative_average(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_cuma, __Pyx_memviewslice __pyx_v_cumw, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v, __Pyx_memviewslice __pyx_v_w); /* proto */ +static PyObject *__pyx_pf_10functional_4scalar_square_add_gauss(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate); /* proto */ +static PyObject *__pyx_pf_10functional_6scalar_square_add_gauss_with_max(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate, float __pyx_v_max_value); /* proto */ +static PyObject *__pyx_pf_10functional_8scalar_square_max_gauss(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate); /* proto */ +static PyObject *__pyx_pf_10functional_10weiszfeld_nd(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x_np, PyObject *__pyx_v_y_np, __Pyx_memviewslice __pyx_v_weights, float __pyx_v_epsilon, Py_ssize_t __pyx_v_max_steps); /* proto */ +static PyObject *__pyx_pf_10functional_12paf_mask_center(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma); /* proto */ +static PyObject *__pyx_pf_10functional_14scalar_values(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, float __pyx_v_default); /* proto */ +static PyObject *__pyx_pf_10functional_16scalar_value(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_default); /* proto */ +static PyObject *__pyx_pf_10functional_18scalar_value_clipped(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y); /* proto */ +static PyObject *__pyx_pf_10functional_20scalar_nonzero(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, unsigned char __pyx_v_default); /* proto */ +static PyObject *__pyx_pf_10functional_22scalar_nonzero_clipped(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y); /* proto */ +static PyObject *__pyx_pf_10functional_24scalar_nonzero_clipped_with_reduction(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_r); /* proto */ +static PyObject *__pyx_pf_10functional_26paf_center_b(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma); /* proto */ +static PyObject *__pyx_pf_10functional_28paf_center(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma); /* proto */ +static PyObject *__pyx_pf_10functional_30caf_center_s(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_caf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma); /* proto */ +static PyObject *__pyx_pf_10functional_32grow_connection_blend(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_caf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_xy_scale, int __pyx_v_only_max); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */ @@ -2243,7 +2341,6 @@ static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_float_0_0; static PyObject *__pyx_int_0; static PyObject *__pyx_int_1; static PyObject *__pyx_int_184977713; @@ -2268,30 +2365,29 @@ static PyObject *__pyx_tuple__17; static PyObject *__pyx_tuple__18; static PyObject *__pyx_tuple__19; static PyObject *__pyx_tuple__20; -static PyObject *__pyx_tuple__21; -static PyObject *__pyx_tuple__23; -static PyObject *__pyx_tuple__25; -static PyObject *__pyx_tuple__27; -static PyObject *__pyx_tuple__29; -static PyObject *__pyx_tuple__31; -static PyObject *__pyx_tuple__33; +static PyObject *__pyx_tuple__22; +static PyObject *__pyx_tuple__24; +static PyObject *__pyx_tuple__26; +static PyObject *__pyx_tuple__28; +static PyObject *__pyx_tuple__30; +static PyObject *__pyx_tuple__32; +static PyObject *__pyx_tuple__34; static PyObject *__pyx_tuple__35; static PyObject *__pyx_tuple__36; static PyObject *__pyx_tuple__37; static PyObject *__pyx_tuple__38; static PyObject *__pyx_tuple__39; -static PyObject *__pyx_tuple__40; -static PyObject *__pyx_codeobj__22; -static PyObject *__pyx_codeobj__24; -static PyObject *__pyx_codeobj__26; -static PyObject *__pyx_codeobj__28; -static PyObject *__pyx_codeobj__30; -static PyObject *__pyx_codeobj__32; -static PyObject *__pyx_codeobj__34; -static PyObject *__pyx_codeobj__41; +static PyObject *__pyx_codeobj__21; +static PyObject *__pyx_codeobj__23; +static PyObject *__pyx_codeobj__25; +static PyObject *__pyx_codeobj__27; +static PyObject *__pyx_codeobj__29; +static PyObject *__pyx_codeobj__31; +static PyObject *__pyx_codeobj__33; +static PyObject *__pyx_codeobj__40; /* Late includes */ -/* "openpifpaf/functional.pyx":9 +/* "functional.pyx":9 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef void scalar_square_add_constant(float[:, :] field, float[:] x, float[:] y, float[:] width, float[:] v) nogil: # <<<<<<<<<<<<<< @@ -2299,8 +2395,8 @@ static PyObject *__pyx_codeobj__41; * cdef Py_ssize_t i, xx, yy */ -static PyObject *__pyx_pw_10openpifpaf_10functional_1scalar_square_add_constant(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v, CYTHON_UNUSED int __pyx_skip_dispatch) { +static PyObject *__pyx_pw_10functional_1scalar_square_add_constant(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static void __pyx_f_10functional_scalar_square_add_constant(__Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v, CYTHON_UNUSED int __pyx_skip_dispatch) { long __pyx_v_minx; long __pyx_v_miny; long __pyx_v_maxx; @@ -2324,7 +2420,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_m Py_ssize_t __pyx_t_10; Py_ssize_t __pyx_t_11; - /* "openpifpaf/functional.pyx":14 + /* "functional.pyx":14 * cdef float cx, cy, cv, cwidth * * for i in range(x.shape[0]): # <<<<<<<<<<<<<< @@ -2336,7 +2432,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_m for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; - /* "openpifpaf/functional.pyx":15 + /* "functional.pyx":15 * * for i in range(x.shape[0]): * cx = x[i] # <<<<<<<<<<<<<< @@ -2346,7 +2442,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_m __pyx_t_4 = __pyx_v_i; __pyx_v_cx = (*((float *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_4 * __pyx_v_x.strides[0]) ))); - /* "openpifpaf/functional.pyx":16 + /* "functional.pyx":16 * for i in range(x.shape[0]): * cx = x[i] * cy = y[i] # <<<<<<<<<<<<<< @@ -2356,7 +2452,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_m __pyx_t_4 = __pyx_v_i; __pyx_v_cy = (*((float *) ( /* dim=0 */ (__pyx_v_y.data + __pyx_t_4 * __pyx_v_y.strides[0]) ))); - /* "openpifpaf/functional.pyx":17 + /* "functional.pyx":17 * cx = x[i] * cy = y[i] * cv = v[i] # <<<<<<<<<<<<<< @@ -2366,7 +2462,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_m __pyx_t_4 = __pyx_v_i; __pyx_v_cv = (*((float *) ( /* dim=0 */ (__pyx_v_v.data + __pyx_t_4 * __pyx_v_v.strides[0]) ))); - /* "openpifpaf/functional.pyx":18 + /* "functional.pyx":18 * cy = y[i] * cv = v[i] * cwidth = width[i] # <<<<<<<<<<<<<< @@ -2376,43 +2472,43 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_m __pyx_t_4 = __pyx_v_i; __pyx_v_cwidth = (*((float *) ( /* dim=0 */ (__pyx_v_width.data + __pyx_t_4 * __pyx_v_width.strides[0]) ))); - /* "openpifpaf/functional.pyx":20 + /* "functional.pyx":20 * cwidth = width[i] * * minx = (clip(cx - cwidth, 0, field.shape[1] - 1)) # <<<<<<<<<<<<<< * maxx = (clip(cx + cwidth, minx + 1, field.shape[1])) * miny = (clip(cy - cwidth, 0, field.shape[0] - 1)) */ - __pyx_v_minx = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cx - __pyx_v_cwidth), 0.0, ((__pyx_v_field.shape[1]) - 1))); + __pyx_v_minx = ((long)__pyx_f_10functional_clip((__pyx_v_cx - __pyx_v_cwidth), 0.0, ((__pyx_v_field.shape[1]) - 1))); - /* "openpifpaf/functional.pyx":21 + /* "functional.pyx":21 * * minx = (clip(cx - cwidth, 0, field.shape[1] - 1)) * maxx = (clip(cx + cwidth, minx + 1, field.shape[1])) # <<<<<<<<<<<<<< * miny = (clip(cy - cwidth, 0, field.shape[0] - 1)) * maxy = (clip(cy + cwidth, miny + 1, field.shape[0])) */ - __pyx_v_maxx = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cx + __pyx_v_cwidth), (__pyx_v_minx + 1), (__pyx_v_field.shape[1]))); + __pyx_v_maxx = ((long)__pyx_f_10functional_clip((__pyx_v_cx + __pyx_v_cwidth), (__pyx_v_minx + 1), (__pyx_v_field.shape[1]))); - /* "openpifpaf/functional.pyx":22 + /* "functional.pyx":22 * minx = (clip(cx - cwidth, 0, field.shape[1] - 1)) * maxx = (clip(cx + cwidth, minx + 1, field.shape[1])) * miny = (clip(cy - cwidth, 0, field.shape[0] - 1)) # <<<<<<<<<<<<<< * maxy = (clip(cy + cwidth, miny + 1, field.shape[0])) * for xx in range(minx, maxx): */ - __pyx_v_miny = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cy - __pyx_v_cwidth), 0.0, ((__pyx_v_field.shape[0]) - 1))); + __pyx_v_miny = ((long)__pyx_f_10functional_clip((__pyx_v_cy - __pyx_v_cwidth), 0.0, ((__pyx_v_field.shape[0]) - 1))); - /* "openpifpaf/functional.pyx":23 + /* "functional.pyx":23 * maxx = (clip(cx + cwidth, minx + 1, field.shape[1])) * miny = (clip(cy - cwidth, 0, field.shape[0] - 1)) * maxy = (clip(cy + cwidth, miny + 1, field.shape[0])) # <<<<<<<<<<<<<< * for xx in range(minx, maxx): * for yy in range(miny, maxy): */ - __pyx_v_maxy = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cy + __pyx_v_cwidth), (__pyx_v_miny + 1), (__pyx_v_field.shape[0]))); + __pyx_v_maxy = ((long)__pyx_f_10functional_clip((__pyx_v_cy + __pyx_v_cwidth), (__pyx_v_miny + 1), (__pyx_v_field.shape[0]))); - /* "openpifpaf/functional.pyx":24 + /* "functional.pyx":24 * miny = (clip(cy - cwidth, 0, field.shape[0] - 1)) * maxy = (clip(cy + cwidth, miny + 1, field.shape[0])) * for xx in range(minx, maxx): # <<<<<<<<<<<<<< @@ -2424,7 +2520,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_m for (__pyx_t_7 = __pyx_v_minx; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) { __pyx_v_xx = __pyx_t_7; - /* "openpifpaf/functional.pyx":25 + /* "functional.pyx":25 * maxy = (clip(cy + cwidth, miny + 1, field.shape[0])) * for xx in range(minx, maxx): * for yy in range(miny, maxy): # <<<<<<<<<<<<<< @@ -2436,7 +2532,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_m for (__pyx_t_10 = __pyx_v_miny; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_yy = __pyx_t_10; - /* "openpifpaf/functional.pyx":26 + /* "functional.pyx":26 * for xx in range(minx, maxx): * for yy in range(miny, maxy): * field[yy, xx] += cv # <<<<<<<<<<<<<< @@ -2450,7 +2546,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_m } } - /* "openpifpaf/functional.pyx":9 + /* "functional.pyx":9 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef void scalar_square_add_constant(float[:, :] field, float[:] x, float[:] y, float[:] width, float[:] v) nogil: # <<<<<<<<<<<<<< @@ -2462,8 +2558,8 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__Pyx_m } /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_1scalar_square_add_constant(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_10openpifpaf_10functional_1scalar_square_add_constant(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_1scalar_square_add_constant(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_10functional_1scalar_square_add_constant(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_field = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_y = { 0, 0, { 0 }, { 0 }, { 0 } }; @@ -2547,18 +2643,18 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_1scalar_square_add_constant( __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("scalar_square_add_constant", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 9, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.scalar_square_add_constant", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_square_add_constant", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_scalar_square_add_constant(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_width, __pyx_v_v); + __pyx_r = __pyx_pf_10functional_scalar_square_add_constant(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_width, __pyx_v_v); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_scalar_square_add_constant(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v) { +static PyObject *__pyx_pf_10functional_scalar_square_add_constant(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -2572,7 +2668,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_scalar_square_add_constant(C if (unlikely(!__pyx_v_y.memview)) { __Pyx_RaiseUnboundLocalError("y"); __PYX_ERR(0, 9, __pyx_L1_error) } if (unlikely(!__pyx_v_width.memview)) { __Pyx_RaiseUnboundLocalError("width"); __PYX_ERR(0, 9, __pyx_L1_error) } if (unlikely(!__pyx_v_v.memview)) { __Pyx_RaiseUnboundLocalError("v"); __PYX_ERR(0, 9, __pyx_L1_error) } - __pyx_t_1 = __Pyx_void_to_None(__pyx_f_10openpifpaf_10functional_scalar_square_add_constant(__pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_width, __pyx_v_v, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error) + __pyx_t_1 = __Pyx_void_to_None(__pyx_f_10functional_scalar_square_add_constant(__pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_width, __pyx_v_v, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -2581,7 +2677,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_scalar_square_add_constant(C /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("openpifpaf.functional.scalar_square_add_constant", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_square_add_constant", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_field, 1); @@ -2594,7 +2690,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_scalar_square_add_constant(C return __pyx_r; } -/* "openpifpaf/functional.pyx":32 +/* "functional.pyx":32 * @cython.wraparound(False) * @cython.cdivision(True) * cpdef void cumulative_average(float[:, :] cuma, float[:, :] cumw, float[:] x, float[:] y, float[:] width, float[:] v, float[:] w) nogil: # <<<<<<<<<<<<<< @@ -2602,8 +2698,8 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_scalar_square_add_constant(C * cdef float cv, cw, cx, cy, cwidth */ -static PyObject *__pyx_pw_10openpifpaf_10functional_3cumulative_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewslice __pyx_v_cuma, __Pyx_memviewslice __pyx_v_cumw, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v, __Pyx_memviewslice __pyx_v_w, CYTHON_UNUSED int __pyx_skip_dispatch) { +static PyObject *__pyx_pw_10functional_3cumulative_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static void __pyx_f_10functional_cumulative_average(__Pyx_memviewslice __pyx_v_cuma, __Pyx_memviewslice __pyx_v_cumw, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v, __Pyx_memviewslice __pyx_v_w, CYTHON_UNUSED int __pyx_skip_dispatch) { long __pyx_v_minx; long __pyx_v_miny; long __pyx_v_maxx; @@ -2635,7 +2731,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl Py_ssize_t __pyx_t_17; Py_ssize_t __pyx_t_18; - /* "openpifpaf/functional.pyx":37 + /* "functional.pyx":37 * cdef Py_ssize_t i, xx, yy * * for i in range(x.shape[0]): # <<<<<<<<<<<<<< @@ -2647,7 +2743,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; - /* "openpifpaf/functional.pyx":38 + /* "functional.pyx":38 * * for i in range(x.shape[0]): * cw = w[i] # <<<<<<<<<<<<<< @@ -2657,7 +2753,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl __pyx_t_4 = __pyx_v_i; __pyx_v_cw = (*((float *) ( /* dim=0 */ (__pyx_v_w.data + __pyx_t_4 * __pyx_v_w.strides[0]) ))); - /* "openpifpaf/functional.pyx":39 + /* "functional.pyx":39 * for i in range(x.shape[0]): * cw = w[i] * if cw <= 0.0: # <<<<<<<<<<<<<< @@ -2667,7 +2763,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl __pyx_t_5 = ((__pyx_v_cw <= 0.0) != 0); if (__pyx_t_5) { - /* "openpifpaf/functional.pyx":40 + /* "functional.pyx":40 * cw = w[i] * if cw <= 0.0: * continue # <<<<<<<<<<<<<< @@ -2676,7 +2772,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":39 + /* "functional.pyx":39 * for i in range(x.shape[0]): * cw = w[i] * if cw <= 0.0: # <<<<<<<<<<<<<< @@ -2685,7 +2781,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl */ } - /* "openpifpaf/functional.pyx":42 + /* "functional.pyx":42 * continue * * cv = v[i] # <<<<<<<<<<<<<< @@ -2695,7 +2791,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl __pyx_t_4 = __pyx_v_i; __pyx_v_cv = (*((float *) ( /* dim=0 */ (__pyx_v_v.data + __pyx_t_4 * __pyx_v_v.strides[0]) ))); - /* "openpifpaf/functional.pyx":43 + /* "functional.pyx":43 * * cv = v[i] * cx = x[i] # <<<<<<<<<<<<<< @@ -2705,7 +2801,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl __pyx_t_4 = __pyx_v_i; __pyx_v_cx = (*((float *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_4 * __pyx_v_x.strides[0]) ))); - /* "openpifpaf/functional.pyx":44 + /* "functional.pyx":44 * cv = v[i] * cx = x[i] * cy = y[i] # <<<<<<<<<<<<<< @@ -2715,7 +2811,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl __pyx_t_4 = __pyx_v_i; __pyx_v_cy = (*((float *) ( /* dim=0 */ (__pyx_v_y.data + __pyx_t_4 * __pyx_v_y.strides[0]) ))); - /* "openpifpaf/functional.pyx":45 + /* "functional.pyx":45 * cx = x[i] * cy = y[i] * cwidth = width[i] # <<<<<<<<<<<<<< @@ -2725,43 +2821,43 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl __pyx_t_4 = __pyx_v_i; __pyx_v_cwidth = (*((float *) ( /* dim=0 */ (__pyx_v_width.data + __pyx_t_4 * __pyx_v_width.strides[0]) ))); - /* "openpifpaf/functional.pyx":47 + /* "functional.pyx":47 * cwidth = width[i] * * minx = (clip(cx - cwidth, 0, cuma.shape[1] - 1)) # <<<<<<<<<<<<<< * maxx = (clip(cx + cwidth, minx + 1, cuma.shape[1])) * miny = (clip(cy - cwidth, 0, cuma.shape[0] - 1)) */ - __pyx_v_minx = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cx - __pyx_v_cwidth), 0.0, ((__pyx_v_cuma.shape[1]) - 1))); + __pyx_v_minx = ((long)__pyx_f_10functional_clip((__pyx_v_cx - __pyx_v_cwidth), 0.0, ((__pyx_v_cuma.shape[1]) - 1))); - /* "openpifpaf/functional.pyx":48 + /* "functional.pyx":48 * * minx = (clip(cx - cwidth, 0, cuma.shape[1] - 1)) * maxx = (clip(cx + cwidth, minx + 1, cuma.shape[1])) # <<<<<<<<<<<<<< * miny = (clip(cy - cwidth, 0, cuma.shape[0] - 1)) * maxy = (clip(cy + cwidth, miny + 1, cuma.shape[0])) */ - __pyx_v_maxx = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cx + __pyx_v_cwidth), (__pyx_v_minx + 1), (__pyx_v_cuma.shape[1]))); + __pyx_v_maxx = ((long)__pyx_f_10functional_clip((__pyx_v_cx + __pyx_v_cwidth), (__pyx_v_minx + 1), (__pyx_v_cuma.shape[1]))); - /* "openpifpaf/functional.pyx":49 + /* "functional.pyx":49 * minx = (clip(cx - cwidth, 0, cuma.shape[1] - 1)) * maxx = (clip(cx + cwidth, minx + 1, cuma.shape[1])) * miny = (clip(cy - cwidth, 0, cuma.shape[0] - 1)) # <<<<<<<<<<<<<< * maxy = (clip(cy + cwidth, miny + 1, cuma.shape[0])) * for xx in range(minx, maxx): */ - __pyx_v_miny = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cy - __pyx_v_cwidth), 0.0, ((__pyx_v_cuma.shape[0]) - 1))); + __pyx_v_miny = ((long)__pyx_f_10functional_clip((__pyx_v_cy - __pyx_v_cwidth), 0.0, ((__pyx_v_cuma.shape[0]) - 1))); - /* "openpifpaf/functional.pyx":50 + /* "functional.pyx":50 * maxx = (clip(cx + cwidth, minx + 1, cuma.shape[1])) * miny = (clip(cy - cwidth, 0, cuma.shape[0] - 1)) * maxy = (clip(cy + cwidth, miny + 1, cuma.shape[0])) # <<<<<<<<<<<<<< * for xx in range(minx, maxx): * for yy in range(miny, maxy): */ - __pyx_v_maxy = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cy + __pyx_v_cwidth), (__pyx_v_miny + 1), (__pyx_v_cuma.shape[0]))); + __pyx_v_maxy = ((long)__pyx_f_10functional_clip((__pyx_v_cy + __pyx_v_cwidth), (__pyx_v_miny + 1), (__pyx_v_cuma.shape[0]))); - /* "openpifpaf/functional.pyx":51 + /* "functional.pyx":51 * miny = (clip(cy - cwidth, 0, cuma.shape[0] - 1)) * maxy = (clip(cy + cwidth, miny + 1, cuma.shape[0])) * for xx in range(minx, maxx): # <<<<<<<<<<<<<< @@ -2773,7 +2869,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl for (__pyx_t_8 = __pyx_v_minx; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { __pyx_v_xx = __pyx_t_8; - /* "openpifpaf/functional.pyx":52 + /* "functional.pyx":52 * maxy = (clip(cy + cwidth, miny + 1, cuma.shape[0])) * for xx in range(minx, maxx): * for yy in range(miny, maxy): # <<<<<<<<<<<<<< @@ -2785,7 +2881,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl for (__pyx_t_11 = __pyx_v_miny; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_yy = __pyx_t_11; - /* "openpifpaf/functional.pyx":53 + /* "functional.pyx":53 * for xx in range(minx, maxx): * for yy in range(miny, maxy): * cuma[yy, xx] = (cw * cv + cumw[yy, xx] * cuma[yy, xx]) / (cumw[yy, xx] + cw) # <<<<<<<<<<<<<< @@ -2802,7 +2898,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl __pyx_t_18 = __pyx_v_xx; *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_cuma.data + __pyx_t_17 * __pyx_v_cuma.strides[0]) ) + __pyx_t_18 * __pyx_v_cuma.strides[1]) )) = (((__pyx_v_cw * __pyx_v_cv) + ((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_cumw.data + __pyx_t_4 * __pyx_v_cumw.strides[0]) ) + __pyx_t_12 * __pyx_v_cumw.strides[1]) ))) * (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_cuma.data + __pyx_t_13 * __pyx_v_cuma.strides[0]) ) + __pyx_t_14 * __pyx_v_cuma.strides[1]) ))))) / ((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_cumw.data + __pyx_t_15 * __pyx_v_cumw.strides[0]) ) + __pyx_t_16 * __pyx_v_cumw.strides[1]) ))) + __pyx_v_cw)); - /* "openpifpaf/functional.pyx":54 + /* "functional.pyx":54 * for yy in range(miny, maxy): * cuma[yy, xx] = (cw * cv + cumw[yy, xx] * cuma[yy, xx]) / (cumw[yy, xx] + cw) * cumw[yy, xx] += cw # <<<<<<<<<<<<<< @@ -2817,7 +2913,7 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl __pyx_L3_continue:; } - /* "openpifpaf/functional.pyx":32 + /* "functional.pyx":32 * @cython.wraparound(False) * @cython.cdivision(True) * cpdef void cumulative_average(float[:, :] cuma, float[:, :] cumw, float[:] x, float[:] y, float[:] width, float[:] v, float[:] w) nogil: # <<<<<<<<<<<<<< @@ -2829,8 +2925,8 @@ static void __pyx_f_10openpifpaf_10functional_cumulative_average(__Pyx_memviewsl } /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_3cumulative_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_10openpifpaf_10functional_3cumulative_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_3cumulative_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_10functional_3cumulative_average(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_cuma = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_cumw = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } }; @@ -2936,18 +3032,18 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_3cumulative_average(PyObject __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("cumulative_average", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 32, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.cumulative_average", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.cumulative_average", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_2cumulative_average(__pyx_self, __pyx_v_cuma, __pyx_v_cumw, __pyx_v_x, __pyx_v_y, __pyx_v_width, __pyx_v_v, __pyx_v_w); + __pyx_r = __pyx_pf_10functional_2cumulative_average(__pyx_self, __pyx_v_cuma, __pyx_v_cumw, __pyx_v_x, __pyx_v_y, __pyx_v_width, __pyx_v_v, __pyx_v_w); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_2cumulative_average(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_cuma, __Pyx_memviewslice __pyx_v_cumw, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v, __Pyx_memviewslice __pyx_v_w) { +static PyObject *__pyx_pf_10functional_2cumulative_average(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_cuma, __Pyx_memviewslice __pyx_v_cumw, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_width, __Pyx_memviewslice __pyx_v_v, __Pyx_memviewslice __pyx_v_w) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -2963,7 +3059,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_2cumulative_average(CYTHON_U if (unlikely(!__pyx_v_width.memview)) { __Pyx_RaiseUnboundLocalError("width"); __PYX_ERR(0, 32, __pyx_L1_error) } if (unlikely(!__pyx_v_v.memview)) { __Pyx_RaiseUnboundLocalError("v"); __PYX_ERR(0, 32, __pyx_L1_error) } if (unlikely(!__pyx_v_w.memview)) { __Pyx_RaiseUnboundLocalError("w"); __PYX_ERR(0, 32, __pyx_L1_error) } - __pyx_t_1 = __Pyx_void_to_None(__pyx_f_10openpifpaf_10functional_cumulative_average(__pyx_v_cuma, __pyx_v_cumw, __pyx_v_x, __pyx_v_y, __pyx_v_width, __pyx_v_v, __pyx_v_w, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 32, __pyx_L1_error) + __pyx_t_1 = __Pyx_void_to_None(__pyx_f_10functional_cumulative_average(__pyx_v_cuma, __pyx_v_cumw, __pyx_v_x, __pyx_v_y, __pyx_v_width, __pyx_v_v, __pyx_v_w, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -2972,7 +3068,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_2cumulative_average(CYTHON_U /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("openpifpaf.functional.cumulative_average", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.cumulative_average", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_cuma, 1); @@ -2987,7 +3083,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_2cumulative_average(CYTHON_U return __pyx_r; } -/* "openpifpaf/functional.pyx":57 +/* "functional.pyx":57 * * * cdef inline float approx_exp(float x) nogil: # <<<<<<<<<<<<<< @@ -2995,12 +3091,12 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_2cumulative_average(CYTHON_U * return 0.0 */ -static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_approx_exp(float __pyx_v_x) { +static CYTHON_INLINE float __pyx_f_10functional_approx_exp(float __pyx_v_x) { float __pyx_r; int __pyx_t_1; int __pyx_t_2; - /* "openpifpaf/functional.pyx":58 + /* "functional.pyx":58 * * cdef inline float approx_exp(float x) nogil: * if x > 2.0 or x < -2.0: # <<<<<<<<<<<<<< @@ -3018,7 +3114,7 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_approx_exp(float __ __pyx_L4_bool_binop_done:; if (__pyx_t_1) { - /* "openpifpaf/functional.pyx":59 + /* "functional.pyx":59 * cdef inline float approx_exp(float x) nogil: * if x > 2.0 or x < -2.0: * return 0.0 # <<<<<<<<<<<<<< @@ -3028,7 +3124,7 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_approx_exp(float __ __pyx_r = 0.0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":58 + /* "functional.pyx":58 * * cdef inline float approx_exp(float x) nogil: * if x > 2.0 or x < -2.0: # <<<<<<<<<<<<<< @@ -3037,16 +3133,16 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_approx_exp(float __ */ } - /* "openpifpaf/functional.pyx":60 + /* "functional.pyx":60 * if x > 2.0 or x < -2.0: * return 0.0 * x = 1.0 + x / 8.0 # <<<<<<<<<<<<<< * x *= x * x *= x */ - __pyx_v_x = (1.0 + (((double)__pyx_v_x) / 8.0)); + __pyx_v_x = (1.0 + (__pyx_v_x / 8.0)); - /* "openpifpaf/functional.pyx":61 + /* "functional.pyx":61 * return 0.0 * x = 1.0 + x / 8.0 * x *= x # <<<<<<<<<<<<<< @@ -3055,7 +3151,7 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_approx_exp(float __ */ __pyx_v_x = (__pyx_v_x * __pyx_v_x); - /* "openpifpaf/functional.pyx":62 + /* "functional.pyx":62 * x = 1.0 + x / 8.0 * x *= x * x *= x # <<<<<<<<<<<<<< @@ -3064,7 +3160,7 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_approx_exp(float __ */ __pyx_v_x = (__pyx_v_x * __pyx_v_x); - /* "openpifpaf/functional.pyx":63 + /* "functional.pyx":63 * x *= x * x *= x * x *= x # <<<<<<<<<<<<<< @@ -3073,7 +3169,7 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_approx_exp(float __ */ __pyx_v_x = (__pyx_v_x * __pyx_v_x); - /* "openpifpaf/functional.pyx":64 + /* "functional.pyx":64 * x *= x * x *= x * return x # <<<<<<<<<<<<<< @@ -3083,7 +3179,7 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_approx_exp(float __ __pyx_r = __pyx_v_x; goto __pyx_L0; - /* "openpifpaf/functional.pyx":57 + /* "functional.pyx":57 * * * cdef inline float approx_exp(float x) nogil: # <<<<<<<<<<<<<< @@ -3096,7 +3192,7 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_approx_exp(float __ return __pyx_r; } -/* "openpifpaf/functional.pyx":67 +/* "functional.pyx":67 * * * cdef inline float clip(float v, float minv, float maxv) nogil: # <<<<<<<<<<<<<< @@ -3104,10 +3200,10 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_approx_exp(float __ * */ -static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_clip(float __pyx_v_v, float __pyx_v_minv, float __pyx_v_maxv) { +static CYTHON_INLINE float __pyx_f_10functional_clip(float __pyx_v_v, float __pyx_v_minv, float __pyx_v_maxv) { float __pyx_r; - /* "openpifpaf/functional.pyx":68 + /* "functional.pyx":68 * * cdef inline float clip(float v, float minv, float maxv) nogil: * return fmax(minv, fmin(maxv, v)) # <<<<<<<<<<<<<< @@ -3117,7 +3213,7 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_clip(float __pyx_v_ __pyx_r = fmax(__pyx_v_minv, fmin(__pyx_v_maxv, __pyx_v_v)); goto __pyx_L0; - /* "openpifpaf/functional.pyx":67 + /* "functional.pyx":67 * * * cdef inline float clip(float v, float minv, float maxv) nogil: # <<<<<<<<<<<<<< @@ -3130,7 +3226,7 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_clip(float __pyx_v_ return __pyx_r; } -/* "openpifpaf/functional.pyx":74 +/* "functional.pyx":74 * @cython.wraparound(False) * @cython.cdivision(True) * cpdef void scalar_square_add_gauss(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0) nogil: # <<<<<<<<<<<<<< @@ -3138,8 +3234,8 @@ static CYTHON_INLINE float __pyx_f_10openpifpaf_10functional_clip(float __pyx_v_ * cdef float vv, deltax2, deltay2 */ -static PyObject *__pyx_pw_10openpifpaf_10functional_5scalar_square_add_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_add_gauss *__pyx_optional_args) { +static PyObject *__pyx_pw_10functional_5scalar_square_add_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static void __pyx_f_10functional_scalar_square_add_gauss(__Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_10functional_scalar_square_add_gauss *__pyx_optional_args) { float __pyx_v_truncate = ((float)2.0); Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_xx; @@ -3175,7 +3271,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv } } - /* "openpifpaf/functional.pyx":80 + /* "functional.pyx":80 * cdef long minx, miny, maxx, maxy * * for i in range(x.shape[0]): # <<<<<<<<<<<<<< @@ -3187,7 +3283,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; - /* "openpifpaf/functional.pyx":81 + /* "functional.pyx":81 * * for i in range(x.shape[0]): * csigma = sigma[i] # <<<<<<<<<<<<<< @@ -3197,7 +3293,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv __pyx_t_4 = __pyx_v_i; __pyx_v_csigma = (*((float *) ( /* dim=0 */ (__pyx_v_sigma.data + __pyx_t_4 * __pyx_v_sigma.strides[0]) ))); - /* "openpifpaf/functional.pyx":82 + /* "functional.pyx":82 * for i in range(x.shape[0]): * csigma = sigma[i] * csigma2 = csigma * csigma # <<<<<<<<<<<<<< @@ -3206,7 +3302,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv */ __pyx_v_csigma2 = (__pyx_v_csigma * __pyx_v_csigma); - /* "openpifpaf/functional.pyx":83 + /* "functional.pyx":83 * csigma = sigma[i] * csigma2 = csigma * csigma * cx = x[i] # <<<<<<<<<<<<<< @@ -3216,7 +3312,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv __pyx_t_4 = __pyx_v_i; __pyx_v_cx = (*((float *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_4 * __pyx_v_x.strides[0]) ))); - /* "openpifpaf/functional.pyx":84 + /* "functional.pyx":84 * csigma2 = csigma * csigma * cx = x[i] * cy = y[i] # <<<<<<<<<<<<<< @@ -3226,7 +3322,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv __pyx_t_4 = __pyx_v_i; __pyx_v_cy = (*((float *) ( /* dim=0 */ (__pyx_v_y.data + __pyx_t_4 * __pyx_v_y.strides[0]) ))); - /* "openpifpaf/functional.pyx":85 + /* "functional.pyx":85 * cx = x[i] * cy = y[i] * cv = v[i] # <<<<<<<<<<<<<< @@ -3236,43 +3332,43 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv __pyx_t_4 = __pyx_v_i; __pyx_v_cv = (*((float *) ( /* dim=0 */ (__pyx_v_v.data + __pyx_t_4 * __pyx_v_v.strides[0]) ))); - /* "openpifpaf/functional.pyx":87 + /* "functional.pyx":87 * cv = v[i] * * minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) # <<<<<<<<<<<<<< * maxx = (clip(cx + truncate * csigma, minx + 1, field.shape[1])) * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) */ - __pyx_v_minx = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cx - (__pyx_v_truncate * __pyx_v_csigma)), 0.0, ((__pyx_v_field.shape[1]) - 1))); + __pyx_v_minx = ((long)__pyx_f_10functional_clip((__pyx_v_cx - (__pyx_v_truncate * __pyx_v_csigma)), 0.0, ((__pyx_v_field.shape[1]) - 1))); - /* "openpifpaf/functional.pyx":88 + /* "functional.pyx":88 * * minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) * maxx = (clip(cx + truncate * csigma, minx + 1, field.shape[1])) # <<<<<<<<<<<<<< * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) * maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) */ - __pyx_v_maxx = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cx + (__pyx_v_truncate * __pyx_v_csigma)), (__pyx_v_minx + 1), (__pyx_v_field.shape[1]))); + __pyx_v_maxx = ((long)__pyx_f_10functional_clip((__pyx_v_cx + (__pyx_v_truncate * __pyx_v_csigma)), (__pyx_v_minx + 1), (__pyx_v_field.shape[1]))); - /* "openpifpaf/functional.pyx":89 + /* "functional.pyx":89 * minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) * maxx = (clip(cx + truncate * csigma, minx + 1, field.shape[1])) * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) # <<<<<<<<<<<<<< * maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) * for xx in range(minx, maxx): */ - __pyx_v_miny = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cy - (__pyx_v_truncate * __pyx_v_csigma)), 0.0, ((__pyx_v_field.shape[0]) - 1))); + __pyx_v_miny = ((long)__pyx_f_10functional_clip((__pyx_v_cy - (__pyx_v_truncate * __pyx_v_csigma)), 0.0, ((__pyx_v_field.shape[0]) - 1))); - /* "openpifpaf/functional.pyx":90 + /* "functional.pyx":90 * maxx = (clip(cx + truncate * csigma, minx + 1, field.shape[1])) * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) * maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) # <<<<<<<<<<<<<< * for xx in range(minx, maxx): * deltax2 = (xx - cx)**2 */ - __pyx_v_maxy = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cy + (__pyx_v_truncate * __pyx_v_csigma)), (__pyx_v_miny + 1), (__pyx_v_field.shape[0]))); + __pyx_v_maxy = ((long)__pyx_f_10functional_clip((__pyx_v_cy + (__pyx_v_truncate * __pyx_v_csigma)), (__pyx_v_miny + 1), (__pyx_v_field.shape[0]))); - /* "openpifpaf/functional.pyx":91 + /* "functional.pyx":91 * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) * maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) * for xx in range(minx, maxx): # <<<<<<<<<<<<<< @@ -3284,7 +3380,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv for (__pyx_t_7 = __pyx_v_minx; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) { __pyx_v_xx = __pyx_t_7; - /* "openpifpaf/functional.pyx":92 + /* "functional.pyx":92 * maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) * for xx in range(minx, maxx): * deltax2 = (xx - cx)**2 # <<<<<<<<<<<<<< @@ -3293,7 +3389,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv */ __pyx_v_deltax2 = powf((__pyx_v_xx - __pyx_v_cx), 2.0); - /* "openpifpaf/functional.pyx":93 + /* "functional.pyx":93 * for xx in range(minx, maxx): * deltax2 = (xx - cx)**2 * for yy in range(miny, maxy): # <<<<<<<<<<<<<< @@ -3305,7 +3401,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv for (__pyx_t_10 = __pyx_v_miny; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_yy = __pyx_t_10; - /* "openpifpaf/functional.pyx":94 + /* "functional.pyx":94 * deltax2 = (xx - cx)**2 * for yy in range(miny, maxy): * deltay2 = (yy - cy)**2 # <<<<<<<<<<<<<< @@ -3314,7 +3410,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv */ __pyx_v_deltay2 = powf((__pyx_v_yy - __pyx_v_cy), 2.0); - /* "openpifpaf/functional.pyx":96 + /* "functional.pyx":96 * deltay2 = (yy - cy)**2 * * if deltax2 < 0.25 and deltay2 < 0.25: # <<<<<<<<<<<<<< @@ -3332,7 +3428,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv __pyx_L10_bool_binop_done:; if (__pyx_t_11) { - /* "openpifpaf/functional.pyx":98 + /* "functional.pyx":98 * if deltax2 < 0.25 and deltay2 < 0.25: * # this is the closest pixel * vv = cv # <<<<<<<<<<<<<< @@ -3341,7 +3437,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv */ __pyx_v_vv = __pyx_v_cv; - /* "openpifpaf/functional.pyx":96 + /* "functional.pyx":96 * deltay2 = (yy - cy)**2 * * if deltax2 < 0.25 and deltay2 < 0.25: # <<<<<<<<<<<<<< @@ -3351,7 +3447,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv goto __pyx_L9; } - /* "openpifpaf/functional.pyx":100 + /* "functional.pyx":100 * vv = cv * else: * vv = cv * approx_exp(-0.5 * (deltax2 + deltay2) / csigma2) # <<<<<<<<<<<<<< @@ -3359,11 +3455,11 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv * field[yy, xx] += vv */ /*else*/ { - __pyx_v_vv = (__pyx_v_cv * __pyx_f_10openpifpaf_10functional_approx_exp(((-0.5 * (__pyx_v_deltax2 + __pyx_v_deltay2)) / ((double)__pyx_v_csigma2)))); + __pyx_v_vv = (__pyx_v_cv * __pyx_f_10functional_approx_exp(((-0.5 * (__pyx_v_deltax2 + __pyx_v_deltay2)) / __pyx_v_csigma2))); } __pyx_L9:; - /* "openpifpaf/functional.pyx":102 + /* "functional.pyx":102 * vv = cv * approx_exp(-0.5 * (deltax2 + deltay2) / csigma2) * * field[yy, xx] += vv # <<<<<<<<<<<<<< @@ -3377,7 +3473,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv } } - /* "openpifpaf/functional.pyx":74 + /* "functional.pyx":74 * @cython.wraparound(False) * @cython.cdivision(True) * cpdef void scalar_square_add_gauss(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0) nogil: # <<<<<<<<<<<<<< @@ -3389,8 +3485,8 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__Pyx_memv } /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_5scalar_square_add_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_10openpifpaf_10functional_5scalar_square_add_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_5scalar_square_add_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_10functional_5scalar_square_add_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_field = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_y = { 0, 0, { 0 }, { 0 }, { 0 } }; @@ -3492,21 +3588,21 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_5scalar_square_add_gauss(PyO __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("scalar_square_add_gauss", 0, 5, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 74, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.scalar_square_add_gauss", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_square_add_gauss", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_4scalar_square_add_gauss(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, __pyx_v_truncate); + __pyx_r = __pyx_pf_10functional_4scalar_square_add_gauss(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, __pyx_v_truncate); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_4scalar_square_add_gauss(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate) { +static PyObject *__pyx_pf_10functional_4scalar_square_add_gauss(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_add_gauss __pyx_t_1; + struct __pyx_opt_args_10functional_scalar_square_add_gauss __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; @@ -3520,7 +3616,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_4scalar_square_add_gauss(CYT if (unlikely(!__pyx_v_v.memview)) { __Pyx_RaiseUnboundLocalError("v"); __PYX_ERR(0, 74, __pyx_L1_error) } __pyx_t_1.__pyx_n = 1; __pyx_t_1.truncate = __pyx_v_truncate; - __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss(__pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, 0, &__pyx_t_1); + __pyx_f_10functional_scalar_square_add_gauss(__pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, 0, &__pyx_t_1); __pyx_t_2 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; @@ -3530,7 +3626,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_4scalar_square_add_gauss(CYT /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("openpifpaf.functional.scalar_square_add_gauss", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_square_add_gauss", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_field, 1); @@ -3543,7 +3639,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_4scalar_square_add_gauss(CYT return __pyx_r; } -/* "openpifpaf/functional.pyx":108 +/* "functional.pyx":108 * @cython.wraparound(False) * @cython.cdivision(True) * cpdef void scalar_square_add_gauss_with_max(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0, float max_value=1.0) nogil: # <<<<<<<<<<<<<< @@ -3551,8 +3647,8 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_4scalar_square_add_gauss(CYT * cdef float vv, deltax2, deltay2 */ -static PyObject *__pyx_pw_10openpifpaf_10functional_7scalar_square_add_gauss_with_max(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(__Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_add_gauss_with_max *__pyx_optional_args) { +static PyObject *__pyx_pw_10functional_7scalar_square_add_gauss_with_max(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static void __pyx_f_10functional_scalar_square_add_gauss_with_max(__Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_10functional_scalar_square_add_gauss_with_max *__pyx_optional_args) { float __pyx_v_truncate = ((float)2.0); float __pyx_v_max_value = ((float)1.0); Py_ssize_t __pyx_v_i; @@ -3571,6 +3667,8 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ long __pyx_v_maxx; long __pyx_v_maxy; float __pyx_v_truncate2; + float __pyx_v_truncate_csigma; + float __pyx_v_truncate2_csigma2; Py_ssize_t __pyx_t_1; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; @@ -3596,17 +3694,17 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ } } - /* "openpifpaf/functional.pyx":113 + /* "functional.pyx":113 * cdef float cv, cx, cy, csigma, csigma2 * cdef long minx, miny, maxx, maxy * cdef float truncate2 = truncate * truncate # <<<<<<<<<<<<<< + * cdef float truncate_csigma, truncate2_csigma2 * - * for i in range(x.shape[0]): */ __pyx_v_truncate2 = (__pyx_v_truncate * __pyx_v_truncate); - /* "openpifpaf/functional.pyx":115 - * cdef float truncate2 = truncate * truncate + /* "functional.pyx":116 + * cdef float truncate_csigma, truncate2_csigma2 * * for i in range(x.shape[0]): # <<<<<<<<<<<<<< * csigma = sigma[i] @@ -3617,28 +3715,46 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; - /* "openpifpaf/functional.pyx":116 + /* "functional.pyx":117 * * for i in range(x.shape[0]): * csigma = sigma[i] # <<<<<<<<<<<<<< * csigma2 = csigma * csigma - * cx = x[i] + * truncate_csigma = truncate * csigma */ __pyx_t_4 = __pyx_v_i; __pyx_v_csigma = (*((float *) ( /* dim=0 */ (__pyx_v_sigma.data + __pyx_t_4 * __pyx_v_sigma.strides[0]) ))); - /* "openpifpaf/functional.pyx":117 + /* "functional.pyx":118 * for i in range(x.shape[0]): * csigma = sigma[i] * csigma2 = csigma * csigma # <<<<<<<<<<<<<< - * cx = x[i] - * cy = y[i] + * truncate_csigma = truncate * csigma + * truncate2_csigma2 = truncate2 * csigma2 */ __pyx_v_csigma2 = (__pyx_v_csigma * __pyx_v_csigma); - /* "openpifpaf/functional.pyx":118 + /* "functional.pyx":119 * csigma = sigma[i] * csigma2 = csigma * csigma + * truncate_csigma = truncate * csigma # <<<<<<<<<<<<<< + * truncate2_csigma2 = truncate2 * csigma2 + * cx = x[i] + */ + __pyx_v_truncate_csigma = (__pyx_v_truncate * __pyx_v_csigma); + + /* "functional.pyx":120 + * csigma2 = csigma * csigma + * truncate_csigma = truncate * csigma + * truncate2_csigma2 = truncate2 * csigma2 # <<<<<<<<<<<<<< + * cx = x[i] + * cy = y[i] + */ + __pyx_v_truncate2_csigma2 = (__pyx_v_truncate2 * __pyx_v_csigma2); + + /* "functional.pyx":121 + * truncate_csigma = truncate * csigma + * truncate2_csigma2 = truncate2 * csigma2 * cx = x[i] # <<<<<<<<<<<<<< * cy = y[i] * cv = v[i] @@ -3646,8 +3762,8 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ __pyx_t_4 = __pyx_v_i; __pyx_v_cx = (*((float *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_4 * __pyx_v_x.strides[0]) ))); - /* "openpifpaf/functional.pyx":119 - * csigma2 = csigma * csigma + /* "functional.pyx":122 + * truncate2_csigma2 = truncate2 * csigma2 * cx = x[i] * cy = y[i] # <<<<<<<<<<<<<< * cv = v[i] @@ -3656,55 +3772,55 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ __pyx_t_4 = __pyx_v_i; __pyx_v_cy = (*((float *) ( /* dim=0 */ (__pyx_v_y.data + __pyx_t_4 * __pyx_v_y.strides[0]) ))); - /* "openpifpaf/functional.pyx":120 + /* "functional.pyx":123 * cx = x[i] * cy = y[i] * cv = v[i] # <<<<<<<<<<<<<< * - * minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) + * minx = (clip(cx - truncate_csigma, 0, field.shape[1] - 1)) */ __pyx_t_4 = __pyx_v_i; __pyx_v_cv = (*((float *) ( /* dim=0 */ (__pyx_v_v.data + __pyx_t_4 * __pyx_v_v.strides[0]) ))); - /* "openpifpaf/functional.pyx":122 + /* "functional.pyx":125 * cv = v[i] * - * minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) # <<<<<<<<<<<<<< - * maxx = (clip(cx + truncate * csigma + 1, minx + 1, field.shape[1])) - * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) + * minx = (clip(cx - truncate_csigma, 0, field.shape[1] - 1)) # <<<<<<<<<<<<<< + * maxx = (clip(cx + truncate_csigma + 1, minx + 1, field.shape[1])) + * miny = (clip(cy - truncate_csigma, 0, field.shape[0] - 1)) */ - __pyx_v_minx = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cx - (__pyx_v_truncate * __pyx_v_csigma)), 0.0, ((__pyx_v_field.shape[1]) - 1))); + __pyx_v_minx = ((long)__pyx_f_10functional_clip((__pyx_v_cx - __pyx_v_truncate_csigma), 0.0, ((__pyx_v_field.shape[1]) - 1))); - /* "openpifpaf/functional.pyx":123 + /* "functional.pyx":126 * - * minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) - * maxx = (clip(cx + truncate * csigma + 1, minx + 1, field.shape[1])) # <<<<<<<<<<<<<< - * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) - * maxy = (clip(cy + truncate * csigma + 1, miny + 1, field.shape[0])) + * minx = (clip(cx - truncate_csigma, 0, field.shape[1] - 1)) + * maxx = (clip(cx + truncate_csigma + 1, minx + 1, field.shape[1])) # <<<<<<<<<<<<<< + * miny = (clip(cy - truncate_csigma, 0, field.shape[0] - 1)) + * maxy = (clip(cy + truncate_csigma + 1, miny + 1, field.shape[0])) */ - __pyx_v_maxx = ((long)__pyx_f_10openpifpaf_10functional_clip(((__pyx_v_cx + (__pyx_v_truncate * __pyx_v_csigma)) + 1.0), (__pyx_v_minx + 1), (__pyx_v_field.shape[1]))); + __pyx_v_maxx = ((long)__pyx_f_10functional_clip(((__pyx_v_cx + __pyx_v_truncate_csigma) + 1.0), (__pyx_v_minx + 1), (__pyx_v_field.shape[1]))); - /* "openpifpaf/functional.pyx":124 - * minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) - * maxx = (clip(cx + truncate * csigma + 1, minx + 1, field.shape[1])) - * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) # <<<<<<<<<<<<<< - * maxy = (clip(cy + truncate * csigma + 1, miny + 1, field.shape[0])) + /* "functional.pyx":127 + * minx = (clip(cx - truncate_csigma, 0, field.shape[1] - 1)) + * maxx = (clip(cx + truncate_csigma + 1, minx + 1, field.shape[1])) + * miny = (clip(cy - truncate_csigma, 0, field.shape[0] - 1)) # <<<<<<<<<<<<<< + * maxy = (clip(cy + truncate_csigma + 1, miny + 1, field.shape[0])) * for xx in range(minx, maxx): */ - __pyx_v_miny = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cy - (__pyx_v_truncate * __pyx_v_csigma)), 0.0, ((__pyx_v_field.shape[0]) - 1))); + __pyx_v_miny = ((long)__pyx_f_10functional_clip((__pyx_v_cy - __pyx_v_truncate_csigma), 0.0, ((__pyx_v_field.shape[0]) - 1))); - /* "openpifpaf/functional.pyx":125 - * maxx = (clip(cx + truncate * csigma + 1, minx + 1, field.shape[1])) - * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) - * maxy = (clip(cy + truncate * csigma + 1, miny + 1, field.shape[0])) # <<<<<<<<<<<<<< + /* "functional.pyx":128 + * maxx = (clip(cx + truncate_csigma + 1, minx + 1, field.shape[1])) + * miny = (clip(cy - truncate_csigma, 0, field.shape[0] - 1)) + * maxy = (clip(cy + truncate_csigma + 1, miny + 1, field.shape[0])) # <<<<<<<<<<<<<< * for xx in range(minx, maxx): * deltax2 = (xx - cx)**2 */ - __pyx_v_maxy = ((long)__pyx_f_10openpifpaf_10functional_clip(((__pyx_v_cy + (__pyx_v_truncate * __pyx_v_csigma)) + 1.0), (__pyx_v_miny + 1), (__pyx_v_field.shape[0]))); + __pyx_v_maxy = ((long)__pyx_f_10functional_clip(((__pyx_v_cy + __pyx_v_truncate_csigma) + 1.0), (__pyx_v_miny + 1), (__pyx_v_field.shape[0]))); - /* "openpifpaf/functional.pyx":126 - * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) - * maxy = (clip(cy + truncate * csigma + 1, miny + 1, field.shape[0])) + /* "functional.pyx":129 + * miny = (clip(cy - truncate_csigma, 0, field.shape[0] - 1)) + * maxy = (clip(cy + truncate_csigma + 1, miny + 1, field.shape[0])) * for xx in range(minx, maxx): # <<<<<<<<<<<<<< * deltax2 = (xx - cx)**2 * for yy in range(miny, maxy): @@ -3714,8 +3830,8 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ for (__pyx_t_7 = __pyx_v_minx; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) { __pyx_v_xx = __pyx_t_7; - /* "openpifpaf/functional.pyx":127 - * maxy = (clip(cy + truncate * csigma + 1, miny + 1, field.shape[0])) + /* "functional.pyx":130 + * maxy = (clip(cy + truncate_csigma + 1, miny + 1, field.shape[0])) * for xx in range(minx, maxx): * deltax2 = (xx - cx)**2 # <<<<<<<<<<<<<< * for yy in range(miny, maxy): @@ -3723,7 +3839,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ */ __pyx_v_deltax2 = powf((__pyx_v_xx - __pyx_v_cx), 2.0); - /* "openpifpaf/functional.pyx":128 + /* "functional.pyx":131 * for xx in range(minx, maxx): * deltax2 = (xx - cx)**2 * for yy in range(miny, maxy): # <<<<<<<<<<<<<< @@ -3735,44 +3851,44 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ for (__pyx_t_10 = __pyx_v_miny; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_yy = __pyx_t_10; - /* "openpifpaf/functional.pyx":129 + /* "functional.pyx":132 * deltax2 = (xx - cx)**2 * for yy in range(miny, maxy): * deltay2 = (yy - cy)**2 # <<<<<<<<<<<<<< * - * if deltax2 + deltay2 > truncate2 * csigma2: + * if deltax2 + deltay2 > truncate2_csigma2: */ __pyx_v_deltay2 = powf((__pyx_v_yy - __pyx_v_cy), 2.0); - /* "openpifpaf/functional.pyx":131 + /* "functional.pyx":134 * deltay2 = (yy - cy)**2 * - * if deltax2 + deltay2 > truncate2 * csigma2: # <<<<<<<<<<<<<< + * if deltax2 + deltay2 > truncate2_csigma2: # <<<<<<<<<<<<<< * continue * */ - __pyx_t_11 = (((__pyx_v_deltax2 + __pyx_v_deltay2) > (__pyx_v_truncate2 * __pyx_v_csigma2)) != 0); + __pyx_t_11 = (((__pyx_v_deltax2 + __pyx_v_deltay2) > __pyx_v_truncate2_csigma2) != 0); if (__pyx_t_11) { - /* "openpifpaf/functional.pyx":132 + /* "functional.pyx":135 * - * if deltax2 + deltay2 > truncate2 * csigma2: + * if deltax2 + deltay2 > truncate2_csigma2: * continue # <<<<<<<<<<<<<< * * if deltax2 < 0.25 and deltay2 < 0.25: */ goto __pyx_L7_continue; - /* "openpifpaf/functional.pyx":131 + /* "functional.pyx":134 * deltay2 = (yy - cy)**2 * - * if deltax2 + deltay2 > truncate2 * csigma2: # <<<<<<<<<<<<<< + * if deltax2 + deltay2 > truncate2_csigma2: # <<<<<<<<<<<<<< * continue * */ } - /* "openpifpaf/functional.pyx":134 + /* "functional.pyx":137 * continue * * if deltax2 < 0.25 and deltay2 < 0.25: # <<<<<<<<<<<<<< @@ -3790,7 +3906,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ __pyx_L11_bool_binop_done:; if (__pyx_t_11) { - /* "openpifpaf/functional.pyx":136 + /* "functional.pyx":139 * if deltax2 < 0.25 and deltay2 < 0.25: * # this is the closest pixel * vv = cv # <<<<<<<<<<<<<< @@ -3799,7 +3915,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ */ __pyx_v_vv = __pyx_v_cv; - /* "openpifpaf/functional.pyx":134 + /* "functional.pyx":137 * continue * * if deltax2 < 0.25 and deltay2 < 0.25: # <<<<<<<<<<<<<< @@ -3809,7 +3925,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ goto __pyx_L10; } - /* "openpifpaf/functional.pyx":138 + /* "functional.pyx":141 * vv = cv * else: * vv = cv * approx_exp(-0.5 * (deltax2 + deltay2) / csigma2) # <<<<<<<<<<<<<< @@ -3817,11 +3933,11 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ * field[yy, xx] += vv */ /*else*/ { - __pyx_v_vv = (__pyx_v_cv * __pyx_f_10openpifpaf_10functional_approx_exp(((-0.5 * (__pyx_v_deltax2 + __pyx_v_deltay2)) / ((double)__pyx_v_csigma2)))); + __pyx_v_vv = (__pyx_v_cv * __pyx_f_10functional_approx_exp(((-0.5 * (__pyx_v_deltax2 + __pyx_v_deltay2)) / __pyx_v_csigma2))); } __pyx_L10:; - /* "openpifpaf/functional.pyx":140 + /* "functional.pyx":143 * vv = cv * approx_exp(-0.5 * (deltax2 + deltay2) / csigma2) * * field[yy, xx] += vv # <<<<<<<<<<<<<< @@ -3832,7 +3948,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ __pyx_t_13 = __pyx_v_xx; *((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_field.data + __pyx_t_4 * __pyx_v_field.strides[0]) ) + __pyx_t_13 * __pyx_v_field.strides[1]) )) += __pyx_v_vv; - /* "openpifpaf/functional.pyx":141 + /* "functional.pyx":144 * * field[yy, xx] += vv * field[yy, xx] = min(max_value, field[yy, xx]) # <<<<<<<<<<<<<< @@ -3856,7 +3972,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ } } - /* "openpifpaf/functional.pyx":108 + /* "functional.pyx":108 * @cython.wraparound(False) * @cython.cdivision(True) * cpdef void scalar_square_add_gauss_with_max(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0, float max_value=1.0) nogil: # <<<<<<<<<<<<<< @@ -3868,8 +3984,8 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(_ } /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_7scalar_square_add_gauss_with_max(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_10openpifpaf_10functional_7scalar_square_add_gauss_with_max(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_7scalar_square_add_gauss_with_max(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_10functional_7scalar_square_add_gauss_with_max(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_field = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_y = { 0, 0, { 0 }, { 0 }, { 0 } }; @@ -3987,21 +4103,21 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_7scalar_square_add_gauss_wit __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("scalar_square_add_gauss_with_max", 0, 5, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 108, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.scalar_square_add_gauss_with_max", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_square_add_gauss_with_max", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_6scalar_square_add_gauss_with_max(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, __pyx_v_truncate, __pyx_v_max_value); + __pyx_r = __pyx_pf_10functional_6scalar_square_add_gauss_with_max(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, __pyx_v_truncate, __pyx_v_max_value); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_6scalar_square_add_gauss_with_max(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate, float __pyx_v_max_value) { +static PyObject *__pyx_pf_10functional_6scalar_square_add_gauss_with_max(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate, float __pyx_v_max_value) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_add_gauss_with_max __pyx_t_1; + struct __pyx_opt_args_10functional_scalar_square_add_gauss_with_max __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; @@ -4016,7 +4132,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_6scalar_square_add_gauss_wit __pyx_t_1.__pyx_n = 2; __pyx_t_1.truncate = __pyx_v_truncate; __pyx_t_1.max_value = __pyx_v_max_value; - __pyx_f_10openpifpaf_10functional_scalar_square_add_gauss_with_max(__pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, 0, &__pyx_t_1); + __pyx_f_10functional_scalar_square_add_gauss_with_max(__pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, 0, &__pyx_t_1); __pyx_t_2 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; @@ -4026,7 +4142,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_6scalar_square_add_gauss_wit /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("openpifpaf.functional.scalar_square_add_gauss_with_max", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_square_add_gauss_with_max", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_field, 1); @@ -4039,7 +4155,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_6scalar_square_add_gauss_wit return __pyx_r; } -/* "openpifpaf/functional.pyx":147 +/* "functional.pyx":150 * @cython.wraparound(False) * @cython.cdivision(True) * cpdef void scalar_square_max_gauss(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0) nogil: # <<<<<<<<<<<<<< @@ -4047,8 +4163,8 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_6scalar_square_add_gauss_wit * cdef float vv, deltax2, deltay2 */ -static PyObject *__pyx_pw_10openpifpaf_10functional_9scalar_square_max_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_max_gauss *__pyx_optional_args) { +static PyObject *__pyx_pw_10functional_9scalar_square_max_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static void __pyx_f_10functional_scalar_square_max_gauss(__Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_10functional_scalar_square_max_gauss *__pyx_optional_args) { float __pyx_v_truncate = ((float)2.0); Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_xx; @@ -4084,7 +4200,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv } } - /* "openpifpaf/functional.pyx":153 + /* "functional.pyx":156 * cdef long minx, miny, maxx, maxy * * for i in range(x.shape[0]): # <<<<<<<<<<<<<< @@ -4096,7 +4212,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; - /* "openpifpaf/functional.pyx":154 + /* "functional.pyx":157 * * for i in range(x.shape[0]): * csigma = sigma[i] # <<<<<<<<<<<<<< @@ -4106,7 +4222,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv __pyx_t_4 = __pyx_v_i; __pyx_v_csigma = (*((float *) ( /* dim=0 */ (__pyx_v_sigma.data + __pyx_t_4 * __pyx_v_sigma.strides[0]) ))); - /* "openpifpaf/functional.pyx":155 + /* "functional.pyx":158 * for i in range(x.shape[0]): * csigma = sigma[i] * csigma2 = csigma * csigma # <<<<<<<<<<<<<< @@ -4115,7 +4231,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv */ __pyx_v_csigma2 = (__pyx_v_csigma * __pyx_v_csigma); - /* "openpifpaf/functional.pyx":156 + /* "functional.pyx":159 * csigma = sigma[i] * csigma2 = csigma * csigma * cx = x[i] # <<<<<<<<<<<<<< @@ -4125,7 +4241,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv __pyx_t_4 = __pyx_v_i; __pyx_v_cx = (*((float *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_4 * __pyx_v_x.strides[0]) ))); - /* "openpifpaf/functional.pyx":157 + /* "functional.pyx":160 * csigma2 = csigma * csigma * cx = x[i] * cy = y[i] # <<<<<<<<<<<<<< @@ -4135,7 +4251,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv __pyx_t_4 = __pyx_v_i; __pyx_v_cy = (*((float *) ( /* dim=0 */ (__pyx_v_y.data + __pyx_t_4 * __pyx_v_y.strides[0]) ))); - /* "openpifpaf/functional.pyx":158 + /* "functional.pyx":161 * cx = x[i] * cy = y[i] * cv = v[i] # <<<<<<<<<<<<<< @@ -4145,43 +4261,43 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv __pyx_t_4 = __pyx_v_i; __pyx_v_cv = (*((float *) ( /* dim=0 */ (__pyx_v_v.data + __pyx_t_4 * __pyx_v_v.strides[0]) ))); - /* "openpifpaf/functional.pyx":160 + /* "functional.pyx":163 * cv = v[i] * * minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) # <<<<<<<<<<<<<< * maxx = (clip(cx + truncate * csigma, minx + 1, field.shape[1])) * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) */ - __pyx_v_minx = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cx - (__pyx_v_truncate * __pyx_v_csigma)), 0.0, ((__pyx_v_field.shape[1]) - 1))); + __pyx_v_minx = ((long)__pyx_f_10functional_clip((__pyx_v_cx - (__pyx_v_truncate * __pyx_v_csigma)), 0.0, ((__pyx_v_field.shape[1]) - 1))); - /* "openpifpaf/functional.pyx":161 + /* "functional.pyx":164 * * minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) * maxx = (clip(cx + truncate * csigma, minx + 1, field.shape[1])) # <<<<<<<<<<<<<< * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) * maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) */ - __pyx_v_maxx = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cx + (__pyx_v_truncate * __pyx_v_csigma)), (__pyx_v_minx + 1), (__pyx_v_field.shape[1]))); + __pyx_v_maxx = ((long)__pyx_f_10functional_clip((__pyx_v_cx + (__pyx_v_truncate * __pyx_v_csigma)), (__pyx_v_minx + 1), (__pyx_v_field.shape[1]))); - /* "openpifpaf/functional.pyx":162 + /* "functional.pyx":165 * minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) * maxx = (clip(cx + truncate * csigma, minx + 1, field.shape[1])) * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) # <<<<<<<<<<<<<< * maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) * for xx in range(minx, maxx): */ - __pyx_v_miny = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cy - (__pyx_v_truncate * __pyx_v_csigma)), 0.0, ((__pyx_v_field.shape[0]) - 1))); + __pyx_v_miny = ((long)__pyx_f_10functional_clip((__pyx_v_cy - (__pyx_v_truncate * __pyx_v_csigma)), 0.0, ((__pyx_v_field.shape[0]) - 1))); - /* "openpifpaf/functional.pyx":163 + /* "functional.pyx":166 * maxx = (clip(cx + truncate * csigma, minx + 1, field.shape[1])) * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) * maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) # <<<<<<<<<<<<<< * for xx in range(minx, maxx): * deltax2 = (xx - cx)**2 */ - __pyx_v_maxy = ((long)__pyx_f_10openpifpaf_10functional_clip((__pyx_v_cy + (__pyx_v_truncate * __pyx_v_csigma)), (__pyx_v_miny + 1), (__pyx_v_field.shape[0]))); + __pyx_v_maxy = ((long)__pyx_f_10functional_clip((__pyx_v_cy + (__pyx_v_truncate * __pyx_v_csigma)), (__pyx_v_miny + 1), (__pyx_v_field.shape[0]))); - /* "openpifpaf/functional.pyx":164 + /* "functional.pyx":167 * miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) * maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) * for xx in range(minx, maxx): # <<<<<<<<<<<<<< @@ -4193,7 +4309,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv for (__pyx_t_7 = __pyx_v_minx; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) { __pyx_v_xx = __pyx_t_7; - /* "openpifpaf/functional.pyx":165 + /* "functional.pyx":168 * maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) * for xx in range(minx, maxx): * deltax2 = (xx - cx)**2 # <<<<<<<<<<<<<< @@ -4202,7 +4318,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv */ __pyx_v_deltax2 = powf((__pyx_v_xx - __pyx_v_cx), 2.0); - /* "openpifpaf/functional.pyx":166 + /* "functional.pyx":169 * for xx in range(minx, maxx): * deltax2 = (xx - cx)**2 * for yy in range(miny, maxy): # <<<<<<<<<<<<<< @@ -4214,7 +4330,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv for (__pyx_t_10 = __pyx_v_miny; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_yy = __pyx_t_10; - /* "openpifpaf/functional.pyx":167 + /* "functional.pyx":170 * deltax2 = (xx - cx)**2 * for yy in range(miny, maxy): * deltay2 = (yy - cy)**2 # <<<<<<<<<<<<<< @@ -4223,16 +4339,16 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv */ __pyx_v_deltay2 = powf((__pyx_v_yy - __pyx_v_cy), 2.0); - /* "openpifpaf/functional.pyx":168 + /* "functional.pyx":171 * for yy in range(miny, maxy): * deltay2 = (yy - cy)**2 * vv = cv * approx_exp(-0.5 * (deltax2 + deltay2) / csigma2) # <<<<<<<<<<<<<< * field[yy, xx] = fmax(field[yy, xx], vv) * */ - __pyx_v_vv = (__pyx_v_cv * __pyx_f_10openpifpaf_10functional_approx_exp(((-0.5 * (__pyx_v_deltax2 + __pyx_v_deltay2)) / ((double)__pyx_v_csigma2)))); + __pyx_v_vv = (__pyx_v_cv * __pyx_f_10functional_approx_exp(((-0.5 * (__pyx_v_deltax2 + __pyx_v_deltay2)) / __pyx_v_csigma2))); - /* "openpifpaf/functional.pyx":169 + /* "functional.pyx":172 * deltay2 = (yy - cy)**2 * vv = cv * approx_exp(-0.5 * (deltax2 + deltay2) / csigma2) * field[yy, xx] = fmax(field[yy, xx], vv) # <<<<<<<<<<<<<< @@ -4248,7 +4364,7 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv } } - /* "openpifpaf/functional.pyx":147 + /* "functional.pyx":150 * @cython.wraparound(False) * @cython.cdivision(True) * cpdef void scalar_square_max_gauss(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0) nogil: # <<<<<<<<<<<<<< @@ -4260,8 +4376,8 @@ static void __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__Pyx_memv } /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_9scalar_square_max_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_10openpifpaf_10functional_9scalar_square_max_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_9scalar_square_max_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_10functional_9scalar_square_max_gauss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_field = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_y = { 0, 0, { 0 }, { 0 }, { 0 } }; @@ -4305,25 +4421,25 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_9scalar_square_max_gauss(PyO case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_square_max_gauss", 0, 5, 6, 1); __PYX_ERR(0, 147, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_square_max_gauss", 0, 5, 6, 1); __PYX_ERR(0, 150, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_square_max_gauss", 0, 5, 6, 2); __PYX_ERR(0, 147, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_square_max_gauss", 0, 5, 6, 2); __PYX_ERR(0, 150, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_square_max_gauss", 0, 5, 6, 3); __PYX_ERR(0, 147, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_square_max_gauss", 0, 5, 6, 3); __PYX_ERR(0, 150, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_square_max_gauss", 0, 5, 6, 4); __PYX_ERR(0, 147, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_square_max_gauss", 0, 5, 6, 4); __PYX_ERR(0, 150, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: @@ -4333,7 +4449,7 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_9scalar_square_max_gauss(PyO } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_square_max_gauss") < 0)) __PYX_ERR(0, 147, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_square_max_gauss") < 0)) __PYX_ERR(0, 150, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -4348,51 +4464,51 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_9scalar_square_max_gauss(PyO default: goto __pyx_L5_argtuple_error; } } - __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 147, __pyx_L3_error) - __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 147, __pyx_L3_error) - __pyx_v_y = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_y.memview)) __PYX_ERR(0, 147, __pyx_L3_error) - __pyx_v_sigma = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sigma.memview)) __PYX_ERR(0, 147, __pyx_L3_error) - __pyx_v_v = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_v.memview)) __PYX_ERR(0, 147, __pyx_L3_error) + __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 150, __pyx_L3_error) + __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 150, __pyx_L3_error) + __pyx_v_y = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_y.memview)) __PYX_ERR(0, 150, __pyx_L3_error) + __pyx_v_sigma = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sigma.memview)) __PYX_ERR(0, 150, __pyx_L3_error) + __pyx_v_v = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_v.memview)) __PYX_ERR(0, 150, __pyx_L3_error) if (values[5]) { - __pyx_v_truncate = __pyx_PyFloat_AsFloat(values[5]); if (unlikely((__pyx_v_truncate == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 147, __pyx_L3_error) + __pyx_v_truncate = __pyx_PyFloat_AsFloat(values[5]); if (unlikely((__pyx_v_truncate == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 150, __pyx_L3_error) } else { __pyx_v_truncate = ((float)2.0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("scalar_square_max_gauss", 0, 5, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 147, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_square_max_gauss", 0, 5, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 150, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.scalar_square_max_gauss", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_square_max_gauss", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_8scalar_square_max_gauss(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, __pyx_v_truncate); + __pyx_r = __pyx_pf_10functional_8scalar_square_max_gauss(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, __pyx_v_truncate); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_8scalar_square_max_gauss(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate) { +static PyObject *__pyx_pf_10functional_8scalar_square_max_gauss(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, __Pyx_memviewslice __pyx_v_sigma, __Pyx_memviewslice __pyx_v_v, float __pyx_v_truncate) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - struct __pyx_opt_args_10openpifpaf_10functional_scalar_square_max_gauss __pyx_t_1; + struct __pyx_opt_args_10functional_scalar_square_max_gauss __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("scalar_square_max_gauss", 0); __Pyx_XDECREF(__pyx_r); - if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 147, __pyx_L1_error) } - if (unlikely(!__pyx_v_x.memview)) { __Pyx_RaiseUnboundLocalError("x"); __PYX_ERR(0, 147, __pyx_L1_error) } - if (unlikely(!__pyx_v_y.memview)) { __Pyx_RaiseUnboundLocalError("y"); __PYX_ERR(0, 147, __pyx_L1_error) } - if (unlikely(!__pyx_v_sigma.memview)) { __Pyx_RaiseUnboundLocalError("sigma"); __PYX_ERR(0, 147, __pyx_L1_error) } - if (unlikely(!__pyx_v_v.memview)) { __Pyx_RaiseUnboundLocalError("v"); __PYX_ERR(0, 147, __pyx_L1_error) } + if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 150, __pyx_L1_error) } + if (unlikely(!__pyx_v_x.memview)) { __Pyx_RaiseUnboundLocalError("x"); __PYX_ERR(0, 150, __pyx_L1_error) } + if (unlikely(!__pyx_v_y.memview)) { __Pyx_RaiseUnboundLocalError("y"); __PYX_ERR(0, 150, __pyx_L1_error) } + if (unlikely(!__pyx_v_sigma.memview)) { __Pyx_RaiseUnboundLocalError("sigma"); __PYX_ERR(0, 150, __pyx_L1_error) } + if (unlikely(!__pyx_v_v.memview)) { __Pyx_RaiseUnboundLocalError("v"); __PYX_ERR(0, 150, __pyx_L1_error) } __pyx_t_1.__pyx_n = 1; __pyx_t_1.truncate = __pyx_v_truncate; - __pyx_f_10openpifpaf_10functional_scalar_square_max_gauss(__pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, 0, &__pyx_t_1); - __pyx_t_2 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_f_10functional_scalar_square_max_gauss(__pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma, __pyx_v_v, 0, &__pyx_t_1); + __pyx_t_2 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; @@ -4401,7 +4517,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_8scalar_square_max_gauss(CYT /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("openpifpaf.functional.scalar_square_max_gauss", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_square_max_gauss", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_field, 1); @@ -4414,7 +4530,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_8scalar_square_max_gauss(CYT return __pyx_r; } -/* "openpifpaf/functional.pyx":175 +/* "functional.pyx":178 * @cython.wraparound(False) * @cython.cdivision(True) * def weiszfeld_nd(x_np, y_np, float[:] weights=None, float epsilon=1e-8, Py_ssize_t max_steps=20): # <<<<<<<<<<<<<< @@ -4423,10 +4539,10 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_8scalar_square_max_gauss(CYT */ /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_11weiszfeld_nd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_10openpifpaf_10functional_10weiszfeld_nd[] = "Weighted Weiszfeld algorithm."; -static PyMethodDef __pyx_mdef_10openpifpaf_10functional_11weiszfeld_nd = {"weiszfeld_nd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_11weiszfeld_nd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_10openpifpaf_10functional_10weiszfeld_nd}; -static PyObject *__pyx_pw_10openpifpaf_10functional_11weiszfeld_nd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_11weiszfeld_nd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_10functional_10weiszfeld_nd[] = "Weighted Weiszfeld algorithm."; +static PyMethodDef __pyx_mdef_10functional_11weiszfeld_nd = {"weiszfeld_nd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_11weiszfeld_nd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_10functional_10weiszfeld_nd}; +static PyObject *__pyx_pw_10functional_11weiszfeld_nd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_x_np = 0; PyObject *__pyx_v_y_np = 0; __Pyx_memviewslice __pyx_v_weights = { 0, 0, { 0 }, { 0 }, { 0 } }; @@ -4467,7 +4583,7 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_11weiszfeld_nd(PyObject *__p case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y_np)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("weiszfeld_nd", 0, 2, 5, 1); __PYX_ERR(0, 175, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("weiszfeld_nd", 0, 2, 5, 1); __PYX_ERR(0, 178, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: @@ -4489,7 +4605,7 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_11weiszfeld_nd(PyObject *__p } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "weiszfeld_nd") < 0)) __PYX_ERR(0, 175, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "weiszfeld_nd") < 0)) __PYX_ERR(0, 178, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -4508,38 +4624,38 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_11weiszfeld_nd(PyObject *__p __pyx_v_x_np = values[0]; __pyx_v_y_np = values[1]; if (values[2]) { - __pyx_v_weights = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_weights.memview)) __PYX_ERR(0, 175, __pyx_L3_error) + __pyx_v_weights = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_weights.memview)) __PYX_ERR(0, 178, __pyx_L3_error) } else { __pyx_v_weights = __pyx_k_; __PYX_INC_MEMVIEW(&__pyx_v_weights, 1); } if (values[3]) { - __pyx_v_epsilon = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_epsilon == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 175, __pyx_L3_error) + __pyx_v_epsilon = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_epsilon == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 178, __pyx_L3_error) } else { __pyx_v_epsilon = ((float)1e-8); } if (values[4]) { - __pyx_v_max_steps = __Pyx_PyIndex_AsSsize_t(values[4]); if (unlikely((__pyx_v_max_steps == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 175, __pyx_L3_error) + __pyx_v_max_steps = __Pyx_PyIndex_AsSsize_t(values[4]); if (unlikely((__pyx_v_max_steps == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 178, __pyx_L3_error) } else { __pyx_v_max_steps = ((Py_ssize_t)20); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("weiszfeld_nd", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 175, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("weiszfeld_nd", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 178, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.weiszfeld_nd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.weiszfeld_nd", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(__pyx_self, __pyx_v_x_np, __pyx_v_y_np, __pyx_v_weights, __pyx_v_epsilon, __pyx_v_max_steps); + __pyx_r = __pyx_pf_10functional_10weiszfeld_nd(__pyx_self, __pyx_v_x_np, __pyx_v_y_np, __pyx_v_weights, __pyx_v_epsilon, __pyx_v_max_steps); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x_np, PyObject *__pyx_v_y_np, __Pyx_memviewslice __pyx_v_weights, float __pyx_v_epsilon, Py_ssize_t __pyx_v_max_steps) { +static PyObject *__pyx_pf_10functional_10weiszfeld_nd(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x_np, PyObject *__pyx_v_y_np, __Pyx_memviewslice __pyx_v_weights, float __pyx_v_epsilon, Py_ssize_t __pyx_v_max_steps) { __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_y = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_weights_x = { 0, 0, { 0 }, { 0 }, { 0 } }; @@ -4578,7 +4694,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("weiszfeld_nd", 0); - /* "openpifpaf/functional.pyx":177 + /* "functional.pyx":180 * def weiszfeld_nd(x_np, y_np, float[:] weights=None, float epsilon=1e-8, Py_ssize_t max_steps=20): * """Weighted Weiszfeld algorithm.""" * if weights is None: # <<<<<<<<<<<<<< @@ -4588,21 +4704,21 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_1 = ((((PyObject *) __pyx_v_weights.memview) == Py_None) != 0); if (__pyx_t_1) { - /* "openpifpaf/functional.pyx":178 + /* "functional.pyx":181 * """Weighted Weiszfeld algorithm.""" * if weights is None: * weights = np.ones(x_np.shape[0]) # <<<<<<<<<<<<<< * * cdef float[:, :] x = x_np */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 178, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 178, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x_np, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 178, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x_np, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 178, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -4618,17 +4734,17 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 178, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 178, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_weights, 1); __pyx_v_weights = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; - /* "openpifpaf/functional.pyx":177 + /* "functional.pyx":180 * def weiszfeld_nd(x_np, y_np, float[:] weights=None, float epsilon=1e-8, Py_ssize_t max_steps=20): * """Weighted Weiszfeld algorithm.""" * if weights is None: # <<<<<<<<<<<<<< @@ -4637,43 +4753,43 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED */ } - /* "openpifpaf/functional.pyx":180 + /* "functional.pyx":183 * weights = np.ones(x_np.shape[0]) * * cdef float[:, :] x = x_np # <<<<<<<<<<<<<< * cdef float[:] y = y_np * cdef float[:, :] weights_x = np.zeros_like(x) */ - __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_x_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 180, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_x_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 183, __pyx_L1_error) __pyx_v_x = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; - /* "openpifpaf/functional.pyx":181 + /* "functional.pyx":184 * * cdef float[:, :] x = x_np * cdef float[:] y = y_np # <<<<<<<<<<<<<< * cdef float[:, :] weights_x = np.zeros_like(x) * for i in range(weights_x.shape[0]): */ - __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_y_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 181, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_y_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 184, __pyx_L1_error) __pyx_v_y = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; - /* "openpifpaf/functional.pyx":182 + /* "functional.pyx":185 * cdef float[:, :] x = x_np * cdef float[:] y = y_np * cdef float[:, :] weights_x = np.zeros_like(x) # <<<<<<<<<<<<<< * for i in range(weights_x.shape[0]): * for j in range(weights_x.shape[1]): */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 182, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_x, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_x, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -4688,16 +4804,16 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_weights_x = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; - /* "openpifpaf/functional.pyx":183 + /* "functional.pyx":186 * cdef float[:] y = y_np * cdef float[:, :] weights_x = np.zeros_like(x) * for i in range(weights_x.shape[0]): # <<<<<<<<<<<<<< @@ -4709,7 +4825,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_i = __pyx_t_10; - /* "openpifpaf/functional.pyx":184 + /* "functional.pyx":187 * cdef float[:, :] weights_x = np.zeros_like(x) * for i in range(weights_x.shape[0]): * for j in range(weights_x.shape[1]): # <<<<<<<<<<<<<< @@ -4721,7 +4837,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { __pyx_v_j = __pyx_t_13; - /* "openpifpaf/functional.pyx":185 + /* "functional.pyx":188 * for i in range(weights_x.shape[0]): * for j in range(weights_x.shape[1]): * weights_x[i, j] = weights[i] * x[i, j] # <<<<<<<<<<<<<< @@ -4737,19 +4853,19 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED } } - /* "openpifpaf/functional.pyx":187 + /* "functional.pyx":190 * weights_x[i, j] = weights[i] * x[i, j] * * cdef float[:] prev_y = np.zeros_like(y) # <<<<<<<<<<<<<< * cdef float[:] y_top = np.zeros_like(y) * cdef float y_bottom */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 187, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_y, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_y, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -4764,28 +4880,28 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_prev_y = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; - /* "openpifpaf/functional.pyx":188 + /* "functional.pyx":191 * * cdef float[:] prev_y = np.zeros_like(y) * cdef float[:] y_top = np.zeros_like(y) # <<<<<<<<<<<<<< * cdef float y_bottom * denom_np = np.zeros_like(weights) */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 188, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 188, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_y, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 188, __pyx_L1_error) + __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_y, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { @@ -4800,28 +4916,28 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 188, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 188, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_y_top = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; - /* "openpifpaf/functional.pyx":190 + /* "functional.pyx":193 * cdef float[:] y_top = np.zeros_like(y) * cdef float y_bottom * denom_np = np.zeros_like(weights) # <<<<<<<<<<<<<< * cdef float[:] denom = denom_np * */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 190, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_weights, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_weights, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -4836,25 +4952,25 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_denom_np = __pyx_t_2; __pyx_t_2 = 0; - /* "openpifpaf/functional.pyx":191 + /* "functional.pyx":194 * cdef float y_bottom * denom_np = np.zeros_like(weights) * cdef float[:] denom = denom_np # <<<<<<<<<<<<<< * * for s in range(max_steps): */ - __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_denom_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 191, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_denom_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 194, __pyx_L1_error) __pyx_v_denom = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; - /* "openpifpaf/functional.pyx":193 + /* "functional.pyx":196 * cdef float[:] denom = denom_np * * for s in range(max_steps): # <<<<<<<<<<<<<< @@ -4866,16 +4982,16 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_s = __pyx_t_10; - /* "openpifpaf/functional.pyx":194 + /* "functional.pyx":197 * * for s in range(max_steps): * prev_y[:] = y # <<<<<<<<<<<<<< * * for i in range(denom.shape[0]): */ - if (unlikely(__pyx_memoryview_copy_contents(__pyx_v_y, __pyx_v_prev_y, 1, 1, 0) < 0)) __PYX_ERR(0, 194, __pyx_L1_error) + if (unlikely(__pyx_memoryview_copy_contents(__pyx_v_y, __pyx_v_prev_y, 1, 1, 0) < 0)) __PYX_ERR(0, 197, __pyx_L1_error) - /* "openpifpaf/functional.pyx":196 + /* "functional.pyx":199 * prev_y[:] = y * * for i in range(denom.shape[0]): # <<<<<<<<<<<<<< @@ -4887,7 +5003,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { __pyx_v_i = __pyx_t_13; - /* "openpifpaf/functional.pyx":197 + /* "functional.pyx":200 * * for i in range(denom.shape[0]): * denom[i] = sqrt((x[i][0] - prev_y[0])**2 + (x[i][1] - prev_y[1])**2) + epsilon # <<<<<<<<<<<<<< @@ -4904,7 +5020,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED *((float *) ( /* dim=0 */ (__pyx_v_denom.data + __pyx_t_20 * __pyx_v_denom.strides[0]) )) = (sqrt((powf(((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_x.data + __pyx_t_16 * __pyx_v_x.strides[0]) ) + __pyx_t_15 * __pyx_v_x.strides[1]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_prev_y.data + __pyx_t_14 * __pyx_v_prev_y.strides[0]) )))), 2.0) + powf(((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_x.data + __pyx_t_18 * __pyx_v_x.strides[0]) ) + __pyx_t_17 * __pyx_v_x.strides[1]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_prev_y.data + __pyx_t_19 * __pyx_v_prev_y.strides[0]) )))), 2.0))) + __pyx_v_epsilon); } - /* "openpifpaf/functional.pyx":199 + /* "functional.pyx":202 * denom[i] = sqrt((x[i][0] - prev_y[0])**2 + (x[i][1] - prev_y[1])**2) + epsilon * * y_top[:] = 0.0 # <<<<<<<<<<<<<< @@ -4926,7 +5042,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED } } - /* "openpifpaf/functional.pyx":200 + /* "functional.pyx":203 * * y_top[:] = 0.0 * y_bottom = 0.0 # <<<<<<<<<<<<<< @@ -4935,7 +5051,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED */ __pyx_v_y_bottom = 0.0; - /* "openpifpaf/functional.pyx":201 + /* "functional.pyx":204 * y_top[:] = 0.0 * y_bottom = 0.0 * for j in range(denom.shape[0]): # <<<<<<<<<<<<<< @@ -4947,7 +5063,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { __pyx_v_j = __pyx_t_13; - /* "openpifpaf/functional.pyx":202 + /* "functional.pyx":205 * y_bottom = 0.0 * for j in range(denom.shape[0]): * y_top[0] += weights_x[j, 0] / denom[j] # <<<<<<<<<<<<<< @@ -4960,7 +5076,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_14 = 0; *((float *) ( /* dim=0 */ (__pyx_v_y_top.data + __pyx_t_14 * __pyx_v_y_top.strides[0]) )) += ((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_weights_x.data + __pyx_t_19 * __pyx_v_weights_x.strides[0]) ) + __pyx_t_17 * __pyx_v_weights_x.strides[1]) ))) / (*((float *) ( /* dim=0 */ (__pyx_v_denom.data + __pyx_t_18 * __pyx_v_denom.strides[0]) )))); - /* "openpifpaf/functional.pyx":203 + /* "functional.pyx":206 * for j in range(denom.shape[0]): * y_top[0] += weights_x[j, 0] / denom[j] * y_top[1] += weights_x[j, 1] / denom[j] # <<<<<<<<<<<<<< @@ -4973,7 +5089,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_14 = 1; *((float *) ( /* dim=0 */ (__pyx_v_y_top.data + __pyx_t_14 * __pyx_v_y_top.strides[0]) )) += ((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_weights_x.data + __pyx_t_18 * __pyx_v_weights_x.strides[0]) ) + __pyx_t_17 * __pyx_v_weights_x.strides[1]) ))) / (*((float *) ( /* dim=0 */ (__pyx_v_denom.data + __pyx_t_19 * __pyx_v_denom.strides[0]) )))); - /* "openpifpaf/functional.pyx":204 + /* "functional.pyx":207 * y_top[0] += weights_x[j, 0] / denom[j] * y_top[1] += weights_x[j, 1] / denom[j] * y_bottom += weights[j] / denom[j] # <<<<<<<<<<<<<< @@ -4985,7 +5101,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_v_y_bottom = (__pyx_v_y_bottom + ((*((float *) ( /* dim=0 */ (__pyx_v_weights.data + __pyx_t_19 * __pyx_v_weights.strides[0]) ))) / (*((float *) ( /* dim=0 */ (__pyx_v_denom.data + __pyx_t_17 * __pyx_v_denom.strides[0]) ))))); } - /* "openpifpaf/functional.pyx":205 + /* "functional.pyx":208 * y_top[1] += weights_x[j, 1] / denom[j] * y_bottom += weights[j] / denom[j] * y[0] = y_top[0] / y_bottom # <<<<<<<<<<<<<< @@ -4996,7 +5112,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_19 = 0; *((float *) ( /* dim=0 */ (__pyx_v_y.data + __pyx_t_19 * __pyx_v_y.strides[0]) )) = ((*((float *) ( /* dim=0 */ (__pyx_v_y_top.data + __pyx_t_17 * __pyx_v_y_top.strides[0]) ))) / __pyx_v_y_bottom); - /* "openpifpaf/functional.pyx":206 + /* "functional.pyx":209 * y_bottom += weights[j] / denom[j] * y[0] = y_top[0] / y_bottom * y[1] = y_top[1] / y_bottom # <<<<<<<<<<<<<< @@ -5007,7 +5123,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_19 = 1; *((float *) ( /* dim=0 */ (__pyx_v_y.data + __pyx_t_19 * __pyx_v_y.strides[0]) )) = ((*((float *) ( /* dim=0 */ (__pyx_v_y_top.data + __pyx_t_17 * __pyx_v_y_top.strides[0]) ))) / __pyx_v_y_bottom); - /* "openpifpaf/functional.pyx":208 + /* "functional.pyx":211 * y[1] = y_top[1] / y_bottom * * if fabs(y[0] - prev_y[0]) + fabs(y[1] - prev_y[1]) < 1e-2: # <<<<<<<<<<<<<< @@ -5021,7 +5137,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_1 = (((fabs(((*((float *) ( /* dim=0 */ (__pyx_v_y.data + __pyx_t_17 * __pyx_v_y.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_prev_y.data + __pyx_t_19 * __pyx_v_prev_y.strides[0]) ))))) + fabs(((*((float *) ( /* dim=0 */ (__pyx_v_y.data + __pyx_t_18 * __pyx_v_y.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_prev_y.data + __pyx_t_14 * __pyx_v_prev_y.strides[0]) )))))) < 1e-2) != 0); if (__pyx_t_1) { - /* "openpifpaf/functional.pyx":209 + /* "functional.pyx":212 * * if fabs(y[0] - prev_y[0]) + fabs(y[1] - prev_y[1]) < 1e-2: * return y_np, denom_np # <<<<<<<<<<<<<< @@ -5029,7 +5145,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED * return y_np, denom_np */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 209, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_y_np); __Pyx_GIVEREF(__pyx_v_y_np); @@ -5041,7 +5157,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_2 = 0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":208 + /* "functional.pyx":211 * y[1] = y_top[1] / y_bottom * * if fabs(y[0] - prev_y[0]) + fabs(y[1] - prev_y[1]) < 1e-2: # <<<<<<<<<<<<<< @@ -5051,7 +5167,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED } } - /* "openpifpaf/functional.pyx":211 + /* "functional.pyx":214 * return y_np, denom_np * * return y_np, denom_np # <<<<<<<<<<<<<< @@ -5059,7 +5175,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 211, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_y_np); __Pyx_GIVEREF(__pyx_v_y_np); @@ -5071,7 +5187,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __pyx_t_2 = 0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":175 + /* "functional.pyx":178 * @cython.wraparound(False) * @cython.cdivision(True) * def weiszfeld_nd(x_np, y_np, float[:] weights=None, float epsilon=1e-8, Py_ssize_t max_steps=20): # <<<<<<<<<<<<<< @@ -5087,7 +5203,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED __Pyx_XDECREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1); - __Pyx_AddTraceback("openpifpaf.functional.weiszfeld_nd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.weiszfeld_nd", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_x, 1); @@ -5103,7 +5219,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED return __pyx_r; } -/* "openpifpaf/functional.pyx":216 +/* "functional.pyx":219 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_mask_center(float[:, :] paf_field, float x, float y, float sigma=1.0): # <<<<<<<<<<<<<< @@ -5112,9 +5228,9 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_10weiszfeld_nd(CYTHON_UNUSED */ /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_13paf_mask_center(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_10openpifpaf_10functional_13paf_mask_center = {"paf_mask_center", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_13paf_mask_center, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_10openpifpaf_10functional_13paf_mask_center(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_13paf_mask_center(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_10functional_13paf_mask_center = {"paf_mask_center", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_13paf_mask_center, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_10functional_13paf_mask_center(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_paf_field = { 0, 0, { 0 }, { 0 }, { 0 } }; float __pyx_v_x; float __pyx_v_y; @@ -5152,13 +5268,13 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_13paf_mask_center(PyObject * case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("paf_mask_center", 0, 3, 4, 1); __PYX_ERR(0, 216, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("paf_mask_center", 0, 3, 4, 1); __PYX_ERR(0, 219, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("paf_mask_center", 0, 3, 4, 2); __PYX_ERR(0, 216, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("paf_mask_center", 0, 3, 4, 2); __PYX_ERR(0, 219, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: @@ -5168,7 +5284,7 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_13paf_mask_center(PyObject * } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "paf_mask_center") < 0)) __PYX_ERR(0, 216, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "paf_mask_center") < 0)) __PYX_ERR(0, 219, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -5181,31 +5297,31 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_13paf_mask_center(PyObject * default: goto __pyx_L5_argtuple_error; } } - __pyx_v_paf_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_paf_field.memview)) __PYX_ERR(0, 216, __pyx_L3_error) - __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 216, __pyx_L3_error) - __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 216, __pyx_L3_error) + __pyx_v_paf_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_paf_field.memview)) __PYX_ERR(0, 219, __pyx_L3_error) + __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 219, __pyx_L3_error) + __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 219, __pyx_L3_error) if (values[3]) { - __pyx_v_sigma = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_sigma == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 216, __pyx_L3_error) + __pyx_v_sigma = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_sigma == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 219, __pyx_L3_error) } else { __pyx_v_sigma = ((float)1.0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("paf_mask_center", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 216, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("paf_mask_center", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 219, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.paf_mask_center", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.paf_mask_center", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_12paf_mask_center(__pyx_self, __pyx_v_paf_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma); + __pyx_r = __pyx_pf_10functional_12paf_mask_center(__pyx_self, __pyx_v_paf_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma) { +static PyObject *__pyx_pf_10functional_12paf_mask_center(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma) { PyObject *__pyx_v_mask_np = NULL; __Pyx_memviewslice __pyx_v_mask = { 0, 0, { 0 }, { 0 }, { 0 } }; Py_ssize_t __pyx_v_i; @@ -5231,40 +5347,40 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU int __pyx_clineno = 0; __Pyx_RefNannySetupContext("paf_mask_center", 0); - /* "openpifpaf/functional.pyx":217 + /* "functional.pyx":220 * @cython.wraparound(False) * def paf_mask_center(float[:, :] paf_field, float x, float y, float sigma=1.0): * mask_np = np.zeros((paf_field.shape[1],), dtype=np.uint8) # <<<<<<<<<<<<<< * cdef unsigned char[:] mask = mask_np * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromSsize_t((__pyx_v_paf_field.shape[1])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error) + __pyx_t_1 = PyInt_FromSsize_t((__pyx_v_paf_field.shape[1])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 217, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 217, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 217, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_uint8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 217, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_uint8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 217, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 217, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -5272,19 +5388,19 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU __pyx_v_mask_np = __pyx_t_5; __pyx_t_5 = 0; - /* "openpifpaf/functional.pyx":218 + /* "functional.pyx":221 * def paf_mask_center(float[:, :] paf_field, float x, float y, float sigma=1.0): * mask_np = np.zeros((paf_field.shape[1],), dtype=np.uint8) * cdef unsigned char[:] mask = mask_np # <<<<<<<<<<<<<< * * for i in range(mask.shape[0]): */ - __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_unsigned_char(__pyx_v_mask_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 218, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_unsigned_char(__pyx_v_mask_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 221, __pyx_L1_error) __pyx_v_mask = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; - /* "openpifpaf/functional.pyx":220 + /* "functional.pyx":223 * cdef unsigned char[:] mask = mask_np * * for i in range(mask.shape[0]): # <<<<<<<<<<<<<< @@ -5296,7 +5412,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; - /* "openpifpaf/functional.pyx":222 + /* "functional.pyx":225 * for i in range(mask.shape[0]): * mask[i] = ( * paf_field[1, i] > x - sigma * paf_field[3, i] and # <<<<<<<<<<<<<< @@ -5314,7 +5430,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU goto __pyx_L5_bool_binop_done; } - /* "openpifpaf/functional.pyx":223 + /* "functional.pyx":226 * mask[i] = ( * paf_field[1, i] > x - sigma * paf_field[3, i] and * paf_field[1, i] < x + sigma * paf_field[3, i] and # <<<<<<<<<<<<<< @@ -5332,7 +5448,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU goto __pyx_L5_bool_binop_done; } - /* "openpifpaf/functional.pyx":224 + /* "functional.pyx":227 * paf_field[1, i] > x - sigma * paf_field[3, i] and * paf_field[1, i] < x + sigma * paf_field[3, i] and * paf_field[2, i] > y - sigma * paf_field[3, i] and # <<<<<<<<<<<<<< @@ -5350,7 +5466,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU goto __pyx_L5_bool_binop_done; } - /* "openpifpaf/functional.pyx":225 + /* "functional.pyx":228 * paf_field[1, i] < x + sigma * paf_field[3, i] and * paf_field[2, i] > y - sigma * paf_field[3, i] and * paf_field[2, i] < y + sigma * paf_field[3, i] # <<<<<<<<<<<<<< @@ -5365,7 +5481,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU __pyx_t_10 = __pyx_t_15; __pyx_L5_bool_binop_done:; - /* "openpifpaf/functional.pyx":221 + /* "functional.pyx":224 * * for i in range(mask.shape[0]): * mask[i] = ( # <<<<<<<<<<<<<< @@ -5376,7 +5492,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU *((unsigned char *) ( /* dim=0 */ (__pyx_v_mask.data + __pyx_t_11 * __pyx_v_mask.strides[0]) )) = __pyx_t_10; } - /* "openpifpaf/functional.pyx":228 + /* "functional.pyx":231 * ) * * return mask_np != 0 # <<<<<<<<<<<<<< @@ -5384,13 +5500,13 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = __Pyx_PyInt_NeObjC(__pyx_v_mask_np, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 228, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_NeObjC(__pyx_v_mask_np, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":216 + /* "functional.pyx":219 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_mask_center(float[:, :] paf_field, float x, float y, float sigma=1.0): # <<<<<<<<<<<<<< @@ -5406,7 +5522,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); - __Pyx_AddTraceback("openpifpaf.functional.paf_mask_center", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.paf_mask_center", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_mask_np); @@ -5417,7 +5533,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU return __pyx_r; } -/* "openpifpaf/functional.pyx":233 +/* "functional.pyx":236 * @cython.boundscheck(False) * @cython.wraparound(False) * def scalar_values(float[:, :] field, float[:] x, float[:] y, float default=-1): # <<<<<<<<<<<<<< @@ -5426,9 +5542,9 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_12paf_mask_center(CYTHON_UNU */ /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_15scalar_values(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_10openpifpaf_10functional_15scalar_values = {"scalar_values", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_15scalar_values, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_10openpifpaf_10functional_15scalar_values(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_15scalar_values(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_10functional_15scalar_values = {"scalar_values", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_15scalar_values, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_10functional_15scalar_values(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_field = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_y = { 0, 0, { 0 }, { 0 }, { 0 } }; @@ -5466,13 +5582,13 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_15scalar_values(PyObject *__ case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_values", 0, 3, 4, 1); __PYX_ERR(0, 233, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_values", 0, 3, 4, 1); __PYX_ERR(0, 236, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_values", 0, 3, 4, 2); __PYX_ERR(0, 233, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_values", 0, 3, 4, 2); __PYX_ERR(0, 236, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: @@ -5482,7 +5598,7 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_15scalar_values(PyObject *__ } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_values") < 0)) __PYX_ERR(0, 233, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_values") < 0)) __PYX_ERR(0, 236, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -5495,31 +5611,31 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_15scalar_values(PyObject *__ default: goto __pyx_L5_argtuple_error; } } - __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 233, __pyx_L3_error) - __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 233, __pyx_L3_error) - __pyx_v_y = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_y.memview)) __PYX_ERR(0, 233, __pyx_L3_error) + __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 236, __pyx_L3_error) + __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 236, __pyx_L3_error) + __pyx_v_y = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_y.memview)) __PYX_ERR(0, 236, __pyx_L3_error) if (values[3]) { - __pyx_v_default = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_default == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 233, __pyx_L3_error) + __pyx_v_default = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_default == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 236, __pyx_L3_error) } else { __pyx_v_default = ((float)-1.0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("scalar_values", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 233, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_values", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 236, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.scalar_values", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_values", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_14scalar_values(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_default); + __pyx_r = __pyx_pf_10functional_14scalar_values(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_default); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, float __pyx_v_default) { +static PyObject *__pyx_pf_10functional_14scalar_values(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_y, float __pyx_v_default) { PyObject *__pyx_v_values_np = NULL; __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } }; float __pyx_v_maxx; @@ -5548,28 +5664,28 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE int __pyx_clineno = 0; __Pyx_RefNannySetupContext("scalar_values", 0); - /* "openpifpaf/functional.pyx":234 + /* "functional.pyx":237 * @cython.wraparound(False) * def scalar_values(float[:, :] field, float[:] x, float[:] y, float default=-1): * values_np = np.full((x.shape[0],), default, dtype=np.float32) # <<<<<<<<<<<<<< * cdef float[:] values = values_np * cdef float maxx = field.shape[1] - 1, maxy = field.shape[0] - 1 */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_full); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_full); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromSsize_t((__pyx_v_x.shape[0])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_1 = PyInt_FromSsize_t((__pyx_v_x.shape[0])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_default); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_default); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); @@ -5577,16 +5693,16 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __pyx_t_3 = 0; __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_float32); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_float32); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 234, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -5594,19 +5710,19 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE __pyx_v_values_np = __pyx_t_5; __pyx_t_5 = 0; - /* "openpifpaf/functional.pyx":235 + /* "functional.pyx":238 * def scalar_values(float[:, :] field, float[:] x, float[:] y, float default=-1): * values_np = np.full((x.shape[0],), default, dtype=np.float32) * cdef float[:] values = values_np # <<<<<<<<<<<<<< * cdef float maxx = field.shape[1] - 1, maxy = field.shape[0] - 1 * */ - __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_values_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_values_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 238, __pyx_L1_error) __pyx_v_values = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; - /* "openpifpaf/functional.pyx":236 + /* "functional.pyx":239 * values_np = np.full((x.shape[0],), default, dtype=np.float32) * cdef float[:] values = values_np * cdef float maxx = field.shape[1] - 1, maxy = field.shape[0] - 1 # <<<<<<<<<<<<<< @@ -5616,7 +5732,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE __pyx_v_maxx = (((float)(__pyx_v_field.shape[1])) - 1.0); __pyx_v_maxy = (((float)(__pyx_v_field.shape[0])) - 1.0); - /* "openpifpaf/functional.pyx":238 + /* "functional.pyx":241 * cdef float maxx = field.shape[1] - 1, maxy = field.shape[0] - 1 * * for i in range(values.shape[0]): # <<<<<<<<<<<<<< @@ -5628,7 +5744,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; - /* "openpifpaf/functional.pyx":239 + /* "functional.pyx":242 * * for i in range(values.shape[0]): * if x[i] < 0.0 or y[i] < 0.0 or x[i] > maxx or y[i] > maxy: # <<<<<<<<<<<<<< @@ -5662,7 +5778,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE __pyx_L6_bool_binop_done:; if (__pyx_t_10) { - /* "openpifpaf/functional.pyx":240 + /* "functional.pyx":243 * for i in range(values.shape[0]): * if x[i] < 0.0 or y[i] < 0.0 or x[i] > maxx or y[i] > maxy: * continue # <<<<<<<<<<<<<< @@ -5671,7 +5787,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":239 + /* "functional.pyx":242 * * for i in range(values.shape[0]): * if x[i] < 0.0 or y[i] < 0.0 or x[i] > maxx or y[i] > maxy: # <<<<<<<<<<<<<< @@ -5680,7 +5796,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE */ } - /* "openpifpaf/functional.pyx":242 + /* "functional.pyx":245 * continue * * values[i] = field[y[i], x[i]] # <<<<<<<<<<<<<< @@ -5696,7 +5812,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE __pyx_L3_continue:; } - /* "openpifpaf/functional.pyx":244 + /* "functional.pyx":247 * values[i] = field[y[i], x[i]] * * return values_np # <<<<<<<<<<<<<< @@ -5708,7 +5824,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE __pyx_r = __pyx_v_values_np; goto __pyx_L0; - /* "openpifpaf/functional.pyx":233 + /* "functional.pyx":236 * @cython.boundscheck(False) * @cython.wraparound(False) * def scalar_values(float[:, :] field, float[:] x, float[:] y, float default=-1): # <<<<<<<<<<<<<< @@ -5724,7 +5840,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); - __Pyx_AddTraceback("openpifpaf.functional.scalar_values", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_values", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_values_np); @@ -5737,7 +5853,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE return __pyx_r; } -/* "openpifpaf/functional.pyx":249 +/* "functional.pyx":252 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef float scalar_value(float[:, :] field, float x, float y, float default=-1): # <<<<<<<<<<<<<< @@ -5745,8 +5861,8 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_14scalar_values(CYTHON_UNUSE * return default */ -static PyObject *__pyx_pw_10openpifpaf_10functional_17scalar_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static float __pyx_f_10openpifpaf_10functional_scalar_value(__Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_10openpifpaf_10functional_scalar_value *__pyx_optional_args) { +static PyObject *__pyx_pw_10functional_17scalar_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static float __pyx_f_10functional_scalar_value(__Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_10functional_scalar_value *__pyx_optional_args) { float __pyx_v_default = ((float)-1.0); float __pyx_r; __Pyx_RefNannyDeclarations @@ -5761,7 +5877,7 @@ static float __pyx_f_10openpifpaf_10functional_scalar_value(__Pyx_memviewslice _ } } - /* "openpifpaf/functional.pyx":250 + /* "functional.pyx":253 * @cython.wraparound(False) * cpdef float scalar_value(float[:, :] field, float x, float y, float default=-1): * if x < 0.0 or y < 0.0 or x > field.shape[1] - 1 or y > field.shape[0] - 1: # <<<<<<<<<<<<<< @@ -5791,7 +5907,7 @@ static float __pyx_f_10openpifpaf_10functional_scalar_value(__Pyx_memviewslice _ __pyx_L4_bool_binop_done:; if (__pyx_t_1) { - /* "openpifpaf/functional.pyx":251 + /* "functional.pyx":254 * cpdef float scalar_value(float[:, :] field, float x, float y, float default=-1): * if x < 0.0 or y < 0.0 or x > field.shape[1] - 1 or y > field.shape[0] - 1: * return default # <<<<<<<<<<<<<< @@ -5801,7 +5917,7 @@ static float __pyx_f_10openpifpaf_10functional_scalar_value(__Pyx_memviewslice _ __pyx_r = __pyx_v_default; goto __pyx_L0; - /* "openpifpaf/functional.pyx":250 + /* "functional.pyx":253 * @cython.wraparound(False) * cpdef float scalar_value(float[:, :] field, float x, float y, float default=-1): * if x < 0.0 or y < 0.0 or x > field.shape[1] - 1 or y > field.shape[0] - 1: # <<<<<<<<<<<<<< @@ -5810,7 +5926,7 @@ static float __pyx_f_10openpifpaf_10functional_scalar_value(__Pyx_memviewslice _ */ } - /* "openpifpaf/functional.pyx":253 + /* "functional.pyx":256 * return default * * return field[y, x] # <<<<<<<<<<<<<< @@ -5822,7 +5938,7 @@ static float __pyx_f_10openpifpaf_10functional_scalar_value(__Pyx_memviewslice _ __pyx_r = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_field.data + __pyx_t_3 * __pyx_v_field.strides[0]) ) + __pyx_t_4 * __pyx_v_field.strides[1]) ))); goto __pyx_L0; - /* "openpifpaf/functional.pyx":249 + /* "functional.pyx":252 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef float scalar_value(float[:, :] field, float x, float y, float default=-1): # <<<<<<<<<<<<<< @@ -5837,8 +5953,8 @@ static float __pyx_f_10openpifpaf_10functional_scalar_value(__Pyx_memviewslice _ } /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_17scalar_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_10openpifpaf_10functional_17scalar_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_17scalar_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_10functional_17scalar_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_field = { 0, 0, { 0 }, { 0 }, { 0 } }; float __pyx_v_x; float __pyx_v_y; @@ -5876,13 +5992,13 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_17scalar_value(PyObject *__p case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_value", 0, 3, 4, 1); __PYX_ERR(0, 249, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_value", 0, 3, 4, 1); __PYX_ERR(0, 252, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_value", 0, 3, 4, 2); __PYX_ERR(0, 249, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_value", 0, 3, 4, 2); __PYX_ERR(0, 252, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: @@ -5892,7 +6008,7 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_17scalar_value(PyObject *__p } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_value") < 0)) __PYX_ERR(0, 249, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_value") < 0)) __PYX_ERR(0, 252, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -5905,46 +6021,46 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_17scalar_value(PyObject *__p default: goto __pyx_L5_argtuple_error; } } - __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 249, __pyx_L3_error) - __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 249, __pyx_L3_error) - __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 249, __pyx_L3_error) + __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 252, __pyx_L3_error) + __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 252, __pyx_L3_error) + __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 252, __pyx_L3_error) if (values[3]) { - __pyx_v_default = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_default == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 249, __pyx_L3_error) + __pyx_v_default = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_default == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 252, __pyx_L3_error) } else { __pyx_v_default = ((float)-1.0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("scalar_value", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 249, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_value", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 252, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.scalar_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_value", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_16scalar_value(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_default); + __pyx_r = __pyx_pf_10functional_16scalar_value(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_default); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_16scalar_value(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_default) { +static PyObject *__pyx_pf_10functional_16scalar_value(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_default) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations float __pyx_t_1; - struct __pyx_opt_args_10openpifpaf_10functional_scalar_value __pyx_t_2; + struct __pyx_opt_args_10functional_scalar_value __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("scalar_value", 0); __Pyx_XDECREF(__pyx_r); - if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 249, __pyx_L1_error) } + if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 252, __pyx_L1_error) } __pyx_t_2.__pyx_n = 1; __pyx_t_2.__pyx_default = __pyx_v_default; - __pyx_t_1 = __pyx_f_10openpifpaf_10functional_scalar_value(__pyx_v_field, __pyx_v_x, __pyx_v_y, 0, &__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error) + __pyx_t_1 = __pyx_f_10functional_scalar_value(__pyx_v_field, __pyx_v_x, __pyx_v_y, 0, &__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; @@ -5953,7 +6069,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_16scalar_value(CYTHON_UNUSED /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("openpifpaf.functional.scalar_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_value", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_field, 1); @@ -5962,7 +6078,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_16scalar_value(CYTHON_UNUSED return __pyx_r; } -/* "openpifpaf/functional.pyx":258 +/* "functional.pyx":261 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef float scalar_value_clipped(float[:, :] field, float x, float y): # <<<<<<<<<<<<<< @@ -5970,33 +6086,33 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_16scalar_value(CYTHON_UNUSED * y = clip(y, 0.0, field.shape[0] - 1) */ -static PyObject *__pyx_pw_10openpifpaf_10functional_19scalar_value_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static float __pyx_f_10openpifpaf_10functional_scalar_value_clipped(__Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, CYTHON_UNUSED int __pyx_skip_dispatch) { +static PyObject *__pyx_pw_10functional_19scalar_value_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static float __pyx_f_10functional_scalar_value_clipped(__Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, CYTHON_UNUSED int __pyx_skip_dispatch) { float __pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; Py_ssize_t __pyx_t_2; __Pyx_RefNannySetupContext("scalar_value_clipped", 0); - /* "openpifpaf/functional.pyx":259 + /* "functional.pyx":262 * @cython.wraparound(False) * cpdef float scalar_value_clipped(float[:, :] field, float x, float y): * x = clip(x, 0.0, field.shape[1] - 1) # <<<<<<<<<<<<<< * y = clip(y, 0.0, field.shape[0] - 1) * return field[y, x] */ - __pyx_v_x = __pyx_f_10openpifpaf_10functional_clip(__pyx_v_x, 0.0, ((__pyx_v_field.shape[1]) - 1)); + __pyx_v_x = __pyx_f_10functional_clip(__pyx_v_x, 0.0, ((__pyx_v_field.shape[1]) - 1)); - /* "openpifpaf/functional.pyx":260 + /* "functional.pyx":263 * cpdef float scalar_value_clipped(float[:, :] field, float x, float y): * x = clip(x, 0.0, field.shape[1] - 1) * y = clip(y, 0.0, field.shape[0] - 1) # <<<<<<<<<<<<<< * return field[y, x] * */ - __pyx_v_y = __pyx_f_10openpifpaf_10functional_clip(__pyx_v_y, 0.0, ((__pyx_v_field.shape[0]) - 1)); + __pyx_v_y = __pyx_f_10functional_clip(__pyx_v_y, 0.0, ((__pyx_v_field.shape[0]) - 1)); - /* "openpifpaf/functional.pyx":261 + /* "functional.pyx":264 * x = clip(x, 0.0, field.shape[1] - 1) * y = clip(y, 0.0, field.shape[0] - 1) * return field[y, x] # <<<<<<<<<<<<<< @@ -6008,7 +6124,7 @@ static float __pyx_f_10openpifpaf_10functional_scalar_value_clipped(__Pyx_memvie __pyx_r = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_field.data + __pyx_t_1 * __pyx_v_field.strides[0]) ) + __pyx_t_2 * __pyx_v_field.strides[1]) ))); goto __pyx_L0; - /* "openpifpaf/functional.pyx":258 + /* "functional.pyx":261 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef float scalar_value_clipped(float[:, :] field, float x, float y): # <<<<<<<<<<<<<< @@ -6023,8 +6139,8 @@ static float __pyx_f_10openpifpaf_10functional_scalar_value_clipped(__Pyx_memvie } /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_19scalar_value_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_10openpifpaf_10functional_19scalar_value_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_19scalar_value_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_10functional_19scalar_value_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_field = { 0, 0, { 0 }, { 0 }, { 0 } }; float __pyx_v_x; float __pyx_v_y; @@ -6059,17 +6175,17 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_19scalar_value_clipped(PyObj case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_value_clipped", 1, 3, 3, 1); __PYX_ERR(0, 258, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_value_clipped", 1, 3, 3, 1); __PYX_ERR(0, 261, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_value_clipped", 1, 3, 3, 2); __PYX_ERR(0, 258, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_value_clipped", 1, 3, 3, 2); __PYX_ERR(0, 261, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_value_clipped") < 0)) __PYX_ERR(0, 258, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_value_clipped") < 0)) __PYX_ERR(0, 261, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -6078,26 +6194,26 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_19scalar_value_clipped(PyObj values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } - __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 258, __pyx_L3_error) - __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 258, __pyx_L3_error) - __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 258, __pyx_L3_error) + __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 261, __pyx_L3_error) + __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 261, __pyx_L3_error) + __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 261, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("scalar_value_clipped", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 258, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_value_clipped", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 261, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.scalar_value_clipped", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_value_clipped", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_18scalar_value_clipped(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y); + __pyx_r = __pyx_pf_10functional_18scalar_value_clipped(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_18scalar_value_clipped(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y) { +static PyObject *__pyx_pf_10functional_18scalar_value_clipped(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -6106,8 +6222,8 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_18scalar_value_clipped(CYTHO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("scalar_value_clipped", 0); __Pyx_XDECREF(__pyx_r); - if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 258, __pyx_L1_error) } - __pyx_t_1 = PyFloat_FromDouble(__pyx_f_10openpifpaf_10functional_scalar_value_clipped(__pyx_v_field, __pyx_v_x, __pyx_v_y, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error) + if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 261, __pyx_L1_error) } + __pyx_t_1 = PyFloat_FromDouble(__pyx_f_10functional_scalar_value_clipped(__pyx_v_field, __pyx_v_x, __pyx_v_y, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -6116,7 +6232,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_18scalar_value_clipped(CYTHO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("openpifpaf.functional.scalar_value_clipped", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_value_clipped", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_field, 1); @@ -6125,7 +6241,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_18scalar_value_clipped(CYTHO return __pyx_r; } -/* "openpifpaf/functional.pyx":266 +/* "functional.pyx":269 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef unsigned char scalar_nonzero(unsigned char[:, :] field, float x, float y, unsigned char default=0): # <<<<<<<<<<<<<< @@ -6133,8 +6249,8 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_18scalar_value_clipped(CYTHO * return default */ -static PyObject *__pyx_pw_10openpifpaf_10functional_21scalar_nonzero(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero(__Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_10openpifpaf_10functional_scalar_nonzero *__pyx_optional_args) { +static PyObject *__pyx_pw_10functional_21scalar_nonzero(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static unsigned char __pyx_f_10functional_scalar_nonzero(__Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_10functional_scalar_nonzero *__pyx_optional_args) { unsigned char __pyx_v_default = ((unsigned char)0); unsigned char __pyx_r; __Pyx_RefNannyDeclarations @@ -6149,7 +6265,7 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero(__Pyx_memv } } - /* "openpifpaf/functional.pyx":267 + /* "functional.pyx":270 * @cython.wraparound(False) * cpdef unsigned char scalar_nonzero(unsigned char[:, :] field, float x, float y, unsigned char default=0): * if x < 0.0 or y < 0.0 or x > field.shape[1] - 1 or y > field.shape[0] - 1: # <<<<<<<<<<<<<< @@ -6179,7 +6295,7 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero(__Pyx_memv __pyx_L4_bool_binop_done:; if (__pyx_t_1) { - /* "openpifpaf/functional.pyx":268 + /* "functional.pyx":271 * cpdef unsigned char scalar_nonzero(unsigned char[:, :] field, float x, float y, unsigned char default=0): * if x < 0.0 or y < 0.0 or x > field.shape[1] - 1 or y > field.shape[0] - 1: * return default # <<<<<<<<<<<<<< @@ -6189,7 +6305,7 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero(__Pyx_memv __pyx_r = __pyx_v_default; goto __pyx_L0; - /* "openpifpaf/functional.pyx":267 + /* "functional.pyx":270 * @cython.wraparound(False) * cpdef unsigned char scalar_nonzero(unsigned char[:, :] field, float x, float y, unsigned char default=0): * if x < 0.0 or y < 0.0 or x > field.shape[1] - 1 or y > field.shape[0] - 1: # <<<<<<<<<<<<<< @@ -6198,7 +6314,7 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero(__Pyx_memv */ } - /* "openpifpaf/functional.pyx":270 + /* "functional.pyx":273 * return default * * return field[y, x] # <<<<<<<<<<<<<< @@ -6210,7 +6326,7 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero(__Pyx_memv __pyx_r = (*((unsigned char *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_field.data + __pyx_t_3 * __pyx_v_field.strides[0]) ) + __pyx_t_4 * __pyx_v_field.strides[1]) ))); goto __pyx_L0; - /* "openpifpaf/functional.pyx":266 + /* "functional.pyx":269 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef unsigned char scalar_nonzero(unsigned char[:, :] field, float x, float y, unsigned char default=0): # <<<<<<<<<<<<<< @@ -6225,8 +6341,8 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero(__Pyx_memv } /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_21scalar_nonzero(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_10openpifpaf_10functional_21scalar_nonzero(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_21scalar_nonzero(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_10functional_21scalar_nonzero(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_field = { 0, 0, { 0 }, { 0 }, { 0 } }; float __pyx_v_x; float __pyx_v_y; @@ -6264,13 +6380,13 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_21scalar_nonzero(PyObject *_ case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_nonzero", 0, 3, 4, 1); __PYX_ERR(0, 266, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_nonzero", 0, 3, 4, 1); __PYX_ERR(0, 269, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_nonzero", 0, 3, 4, 2); __PYX_ERR(0, 266, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_nonzero", 0, 3, 4, 2); __PYX_ERR(0, 269, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: @@ -6280,7 +6396,7 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_21scalar_nonzero(PyObject *_ } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_nonzero") < 0)) __PYX_ERR(0, 266, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_nonzero") < 0)) __PYX_ERR(0, 269, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -6293,46 +6409,46 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_21scalar_nonzero(PyObject *_ default: goto __pyx_L5_argtuple_error; } } - __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_unsigned_char(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 266, __pyx_L3_error) - __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L3_error) - __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L3_error) + __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_unsigned_char(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 269, __pyx_L3_error) + __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 269, __pyx_L3_error) + __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 269, __pyx_L3_error) if (values[3]) { - __pyx_v_default = __Pyx_PyInt_As_unsigned_char(values[3]); if (unlikely((__pyx_v_default == (unsigned char)-1) && PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L3_error) + __pyx_v_default = __Pyx_PyInt_As_unsigned_char(values[3]); if (unlikely((__pyx_v_default == (unsigned char)-1) && PyErr_Occurred())) __PYX_ERR(0, 269, __pyx_L3_error) } else { __pyx_v_default = ((unsigned char)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("scalar_nonzero", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 266, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_nonzero", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 269, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.scalar_nonzero", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_nonzero", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_20scalar_nonzero(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_default); + __pyx_r = __pyx_pf_10functional_20scalar_nonzero(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_default); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_20scalar_nonzero(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, unsigned char __pyx_v_default) { +static PyObject *__pyx_pf_10functional_20scalar_nonzero(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, unsigned char __pyx_v_default) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations unsigned char __pyx_t_1; - struct __pyx_opt_args_10openpifpaf_10functional_scalar_nonzero __pyx_t_2; + struct __pyx_opt_args_10functional_scalar_nonzero __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("scalar_nonzero", 0); __Pyx_XDECREF(__pyx_r); - if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 266, __pyx_L1_error) } + if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 269, __pyx_L1_error) } __pyx_t_2.__pyx_n = 1; __pyx_t_2.__pyx_default = __pyx_v_default; - __pyx_t_1 = __pyx_f_10openpifpaf_10functional_scalar_nonzero(__pyx_v_field, __pyx_v_x, __pyx_v_y, 0, &__pyx_t_2); - __pyx_t_3 = __Pyx_PyInt_From_unsigned_char(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 266, __pyx_L1_error) + __pyx_t_1 = __pyx_f_10functional_scalar_nonzero(__pyx_v_field, __pyx_v_x, __pyx_v_y, 0, &__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_unsigned_char(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; @@ -6341,7 +6457,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_20scalar_nonzero(CYTHON_UNUS /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("openpifpaf.functional.scalar_nonzero", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_nonzero", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_field, 1); @@ -6350,7 +6466,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_20scalar_nonzero(CYTHON_UNUS return __pyx_r; } -/* "openpifpaf/functional.pyx":275 +/* "functional.pyx":278 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef unsigned char scalar_nonzero_clipped(unsigned char[:, :] field, float x, float y): # <<<<<<<<<<<<<< @@ -6358,33 +6474,33 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_20scalar_nonzero(CYTHON_UNUS * y = clip(y, 0.0, field.shape[0] - 1) */ -static PyObject *__pyx_pw_10openpifpaf_10functional_23scalar_nonzero_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped(__Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, CYTHON_UNUSED int __pyx_skip_dispatch) { +static PyObject *__pyx_pw_10functional_23scalar_nonzero_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static unsigned char __pyx_f_10functional_scalar_nonzero_clipped(__Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, CYTHON_UNUSED int __pyx_skip_dispatch) { unsigned char __pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; Py_ssize_t __pyx_t_2; __Pyx_RefNannySetupContext("scalar_nonzero_clipped", 0); - /* "openpifpaf/functional.pyx":276 + /* "functional.pyx":279 * @cython.wraparound(False) * cpdef unsigned char scalar_nonzero_clipped(unsigned char[:, :] field, float x, float y): * x = clip(x, 0.0, field.shape[1] - 1) # <<<<<<<<<<<<<< * y = clip(y, 0.0, field.shape[0] - 1) * return field[y, x] */ - __pyx_v_x = __pyx_f_10openpifpaf_10functional_clip(__pyx_v_x, 0.0, ((__pyx_v_field.shape[1]) - 1)); + __pyx_v_x = __pyx_f_10functional_clip(__pyx_v_x, 0.0, ((__pyx_v_field.shape[1]) - 1)); - /* "openpifpaf/functional.pyx":277 + /* "functional.pyx":280 * cpdef unsigned char scalar_nonzero_clipped(unsigned char[:, :] field, float x, float y): * x = clip(x, 0.0, field.shape[1] - 1) * y = clip(y, 0.0, field.shape[0] - 1) # <<<<<<<<<<<<<< * return field[y, x] * */ - __pyx_v_y = __pyx_f_10openpifpaf_10functional_clip(__pyx_v_y, 0.0, ((__pyx_v_field.shape[0]) - 1)); + __pyx_v_y = __pyx_f_10functional_clip(__pyx_v_y, 0.0, ((__pyx_v_field.shape[0]) - 1)); - /* "openpifpaf/functional.pyx":278 + /* "functional.pyx":281 * x = clip(x, 0.0, field.shape[1] - 1) * y = clip(y, 0.0, field.shape[0] - 1) * return field[y, x] # <<<<<<<<<<<<<< @@ -6396,7 +6512,7 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped(__ __pyx_r = (*((unsigned char *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_field.data + __pyx_t_1 * __pyx_v_field.strides[0]) ) + __pyx_t_2 * __pyx_v_field.strides[1]) ))); goto __pyx_L0; - /* "openpifpaf/functional.pyx":275 + /* "functional.pyx":278 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef unsigned char scalar_nonzero_clipped(unsigned char[:, :] field, float x, float y): # <<<<<<<<<<<<<< @@ -6411,8 +6527,8 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped(__ } /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_23scalar_nonzero_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_10openpifpaf_10functional_23scalar_nonzero_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_23scalar_nonzero_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_10functional_23scalar_nonzero_clipped(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_field = { 0, 0, { 0 }, { 0 }, { 0 } }; float __pyx_v_x; float __pyx_v_y; @@ -6447,17 +6563,17 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_23scalar_nonzero_clipped(PyO case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped", 1, 3, 3, 1); __PYX_ERR(0, 275, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped", 1, 3, 3, 1); __PYX_ERR(0, 278, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped", 1, 3, 3, 2); __PYX_ERR(0, 275, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped", 1, 3, 3, 2); __PYX_ERR(0, 278, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_nonzero_clipped") < 0)) __PYX_ERR(0, 275, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_nonzero_clipped") < 0)) __PYX_ERR(0, 278, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -6466,26 +6582,26 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_23scalar_nonzero_clipped(PyO values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } - __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_unsigned_char(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 275, __pyx_L3_error) - __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 275, __pyx_L3_error) - __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 275, __pyx_L3_error) + __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_unsigned_char(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 278, __pyx_L3_error) + __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 278, __pyx_L3_error) + __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 278, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 275, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 278, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.scalar_nonzero_clipped", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_nonzero_clipped", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_22scalar_nonzero_clipped(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y); + __pyx_r = __pyx_pf_10functional_22scalar_nonzero_clipped(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_22scalar_nonzero_clipped(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y) { +static PyObject *__pyx_pf_10functional_22scalar_nonzero_clipped(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -6494,8 +6610,8 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_22scalar_nonzero_clipped(CYT int __pyx_clineno = 0; __Pyx_RefNannySetupContext("scalar_nonzero_clipped", 0); __Pyx_XDECREF(__pyx_r); - if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 275, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyInt_From_unsigned_char(__pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped(__pyx_v_field, __pyx_v_x, __pyx_v_y, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error) + if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 278, __pyx_L1_error) } + __pyx_t_1 = __Pyx_PyInt_From_unsigned_char(__pyx_f_10functional_scalar_nonzero_clipped(__pyx_v_field, __pyx_v_x, __pyx_v_y, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -6504,7 +6620,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_22scalar_nonzero_clipped(CYT /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("openpifpaf.functional.scalar_nonzero_clipped", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_nonzero_clipped", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_field, 1); @@ -6513,7 +6629,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_22scalar_nonzero_clipped(CYT return __pyx_r; } -/* "openpifpaf/functional.pyx":283 +/* "functional.pyx":286 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef unsigned char scalar_nonzero_clipped_with_reduction(unsigned char[:, :] field, float x, float y, float r): # <<<<<<<<<<<<<< @@ -6521,8 +6637,8 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_22scalar_nonzero_clipped(CYT * y = clip(y / r, 0.0, field.shape[0] - 1) */ -static PyObject *__pyx_pw_10openpifpaf_10functional_25scalar_nonzero_clipped_with_reduction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped_with_reduction(__Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_r, CYTHON_UNUSED int __pyx_skip_dispatch) { +static PyObject *__pyx_pw_10functional_25scalar_nonzero_clipped_with_reduction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static unsigned char __pyx_f_10functional_scalar_nonzero_clipped_with_reduction(__Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_r, CYTHON_UNUSED int __pyx_skip_dispatch) { unsigned char __pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; @@ -6532,7 +6648,7 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped_wi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("scalar_nonzero_clipped_with_reduction", 0); - /* "openpifpaf/functional.pyx":284 + /* "functional.pyx":287 * @cython.wraparound(False) * cpdef unsigned char scalar_nonzero_clipped_with_reduction(unsigned char[:, :] field, float x, float y, float r): * x = clip(x / r, 0.0, field.shape[1] - 1) # <<<<<<<<<<<<<< @@ -6541,11 +6657,11 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped_wi */ if (unlikely(__pyx_v_r == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 284, __pyx_L1_error) + __PYX_ERR(0, 287, __pyx_L1_error) } - __pyx_v_x = __pyx_f_10openpifpaf_10functional_clip((__pyx_v_x / __pyx_v_r), 0.0, ((__pyx_v_field.shape[1]) - 1)); + __pyx_v_x = __pyx_f_10functional_clip((__pyx_v_x / __pyx_v_r), 0.0, ((__pyx_v_field.shape[1]) - 1)); - /* "openpifpaf/functional.pyx":285 + /* "functional.pyx":288 * cpdef unsigned char scalar_nonzero_clipped_with_reduction(unsigned char[:, :] field, float x, float y, float r): * x = clip(x / r, 0.0, field.shape[1] - 1) * y = clip(y / r, 0.0, field.shape[0] - 1) # <<<<<<<<<<<<<< @@ -6554,11 +6670,11 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped_wi */ if (unlikely(__pyx_v_r == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); - __PYX_ERR(0, 285, __pyx_L1_error) + __PYX_ERR(0, 288, __pyx_L1_error) } - __pyx_v_y = __pyx_f_10openpifpaf_10functional_clip((__pyx_v_y / __pyx_v_r), 0.0, ((__pyx_v_field.shape[0]) - 1)); + __pyx_v_y = __pyx_f_10functional_clip((__pyx_v_y / __pyx_v_r), 0.0, ((__pyx_v_field.shape[0]) - 1)); - /* "openpifpaf/functional.pyx":286 + /* "functional.pyx":289 * x = clip(x / r, 0.0, field.shape[1] - 1) * y = clip(y / r, 0.0, field.shape[0] - 1) * return field[y, x] # <<<<<<<<<<<<<< @@ -6570,7 +6686,7 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped_wi __pyx_r = (*((unsigned char *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_field.data + __pyx_t_1 * __pyx_v_field.strides[0]) ) + __pyx_t_2 * __pyx_v_field.strides[1]) ))); goto __pyx_L0; - /* "openpifpaf/functional.pyx":283 + /* "functional.pyx":286 * @cython.boundscheck(False) * @cython.wraparound(False) * cpdef unsigned char scalar_nonzero_clipped_with_reduction(unsigned char[:, :] field, float x, float y, float r): # <<<<<<<<<<<<<< @@ -6580,7 +6696,7 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped_wi /* function exit code */ __pyx_L1_error:; - __Pyx_WriteUnraisable("openpifpaf.functional.scalar_nonzero_clipped_with_reduction", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __Pyx_WriteUnraisable("functional.scalar_nonzero_clipped_with_reduction", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); @@ -6588,8 +6704,8 @@ static unsigned char __pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped_wi } /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_25scalar_nonzero_clipped_with_reduction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_10openpifpaf_10functional_25scalar_nonzero_clipped_with_reduction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_25scalar_nonzero_clipped_with_reduction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_10functional_25scalar_nonzero_clipped_with_reduction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_field = { 0, 0, { 0 }, { 0 }, { 0 } }; float __pyx_v_x; float __pyx_v_y; @@ -6627,23 +6743,23 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_25scalar_nonzero_clipped_wit case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped_with_reduction", 1, 4, 4, 1); __PYX_ERR(0, 283, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped_with_reduction", 1, 4, 4, 1); __PYX_ERR(0, 286, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped_with_reduction", 1, 4, 4, 2); __PYX_ERR(0, 283, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped_with_reduction", 1, 4, 4, 2); __PYX_ERR(0, 286, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_r)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped_with_reduction", 1, 4, 4, 3); __PYX_ERR(0, 283, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped_with_reduction", 1, 4, 4, 3); __PYX_ERR(0, 286, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_nonzero_clipped_with_reduction") < 0)) __PYX_ERR(0, 283, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scalar_nonzero_clipped_with_reduction") < 0)) __PYX_ERR(0, 286, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -6653,27 +6769,27 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_25scalar_nonzero_clipped_wit values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } - __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_unsigned_char(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 283, __pyx_L3_error) - __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L3_error) - __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L3_error) - __pyx_v_r = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_r == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L3_error) + __pyx_v_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_unsigned_char(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_field.memview)) __PYX_ERR(0, 286, __pyx_L3_error) + __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 286, __pyx_L3_error) + __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 286, __pyx_L3_error) + __pyx_v_r = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_r == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 286, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped_with_reduction", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 283, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("scalar_nonzero_clipped_with_reduction", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 286, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.scalar_nonzero_clipped_with_reduction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_nonzero_clipped_with_reduction", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_24scalar_nonzero_clipped_with_reduction(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_r); + __pyx_r = __pyx_pf_10functional_24scalar_nonzero_clipped_with_reduction(__pyx_self, __pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_r); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_24scalar_nonzero_clipped_with_reduction(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_r) { +static PyObject *__pyx_pf_10functional_24scalar_nonzero_clipped_with_reduction(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_r) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -6682,8 +6798,8 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_24scalar_nonzero_clipped_wit int __pyx_clineno = 0; __Pyx_RefNannySetupContext("scalar_nonzero_clipped_with_reduction", 0); __Pyx_XDECREF(__pyx_r); - if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 283, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyInt_From_unsigned_char(__pyx_f_10openpifpaf_10functional_scalar_nonzero_clipped_with_reduction(__pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_r, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error) + if (unlikely(!__pyx_v_field.memview)) { __Pyx_RaiseUnboundLocalError("field"); __PYX_ERR(0, 286, __pyx_L1_error) } + __pyx_t_1 = __Pyx_PyInt_From_unsigned_char(__pyx_f_10functional_scalar_nonzero_clipped_with_reduction(__pyx_v_field, __pyx_v_x, __pyx_v_y, __pyx_v_r, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -6692,7 +6808,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_24scalar_nonzero_clipped_wit /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("openpifpaf.functional.scalar_nonzero_clipped_with_reduction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.scalar_nonzero_clipped_with_reduction", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_field, 1); @@ -6701,7 +6817,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_24scalar_nonzero_clipped_wit return __pyx_r; } -/* "openpifpaf/functional.pyx":291 +/* "functional.pyx":294 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_center_b(float[:, :] paf_field, float x, float y, float sigma=1.0): # <<<<<<<<<<<<<< @@ -6710,9 +6826,9 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_24scalar_nonzero_clipped_wit */ /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_27paf_center_b(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_10openpifpaf_10functional_27paf_center_b = {"paf_center_b", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_27paf_center_b, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_10openpifpaf_10functional_27paf_center_b(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_27paf_center_b(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_10functional_27paf_center_b = {"paf_center_b", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_27paf_center_b, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_10functional_27paf_center_b(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_paf_field = { 0, 0, { 0 }, { 0 }, { 0 } }; float __pyx_v_x; float __pyx_v_y; @@ -6750,13 +6866,13 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_27paf_center_b(PyObject *__p case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("paf_center_b", 0, 3, 4, 1); __PYX_ERR(0, 291, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("paf_center_b", 0, 3, 4, 1); __PYX_ERR(0, 294, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("paf_center_b", 0, 3, 4, 2); __PYX_ERR(0, 291, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("paf_center_b", 0, 3, 4, 2); __PYX_ERR(0, 294, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: @@ -6766,7 +6882,7 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_27paf_center_b(PyObject *__p } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "paf_center_b") < 0)) __PYX_ERR(0, 291, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "paf_center_b") < 0)) __PYX_ERR(0, 294, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -6779,31 +6895,31 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_27paf_center_b(PyObject *__p default: goto __pyx_L5_argtuple_error; } } - __pyx_v_paf_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_paf_field.memview)) __PYX_ERR(0, 291, __pyx_L3_error) - __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 291, __pyx_L3_error) - __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 291, __pyx_L3_error) + __pyx_v_paf_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_paf_field.memview)) __PYX_ERR(0, 294, __pyx_L3_error) + __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 294, __pyx_L3_error) + __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 294, __pyx_L3_error) if (values[3]) { - __pyx_v_sigma = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_sigma == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 291, __pyx_L3_error) + __pyx_v_sigma = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_sigma == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 294, __pyx_L3_error) } else { __pyx_v_sigma = ((float)1.0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("paf_center_b", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 291, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("paf_center_b", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 294, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.paf_center_b", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.paf_center_b", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_26paf_center_b(__pyx_self, __pyx_v_paf_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma); + __pyx_r = __pyx_pf_10functional_26paf_center_b(__pyx_self, __pyx_v_paf_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma) { +static PyObject *__pyx_pf_10functional_26paf_center_b(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma) { PyObject *__pyx_v_result_np = NULL; __Pyx_memviewslice __pyx_v_result = { 0, 0, { 0 }, { 0 }, { 0 } }; unsigned int __pyx_v_result_i; @@ -6832,19 +6948,19 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("paf_center_b", 0); - /* "openpifpaf/functional.pyx":292 + /* "functional.pyx":295 * @cython.wraparound(False) * def paf_center_b(float[:, :] paf_field, float x, float y, float sigma=1.0): * result_np = np.empty_like(paf_field) # <<<<<<<<<<<<<< * cdef float[:, :] result = result_np * cdef unsigned int result_i = 0 */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 292, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty_like); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty_like); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_paf_field, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_paf_field, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -6859,25 +6975,25 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result_np = __pyx_t_1; __pyx_t_1 = 0; - /* "openpifpaf/functional.pyx":293 + /* "functional.pyx":296 * def paf_center_b(float[:, :] paf_field, float x, float y, float sigma=1.0): * result_np = np.empty_like(paf_field) * cdef float[:, :] result = result_np # <<<<<<<<<<<<<< * cdef unsigned int result_i = 0 * cdef bint take */ - __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_result_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 293, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_result_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 296, __pyx_L1_error) __pyx_v_result = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; - /* "openpifpaf/functional.pyx":294 + /* "functional.pyx":297 * result_np = np.empty_like(paf_field) * cdef float[:, :] result = result_np * cdef unsigned int result_i = 0 # <<<<<<<<<<<<<< @@ -6886,7 +7002,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED */ __pyx_v_result_i = 0; - /* "openpifpaf/functional.pyx":297 + /* "functional.pyx":300 * cdef bint take * * for i in range(paf_field.shape[1]): # <<<<<<<<<<<<<< @@ -6898,7 +7014,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { __pyx_v_i = __pyx_t_8; - /* "openpifpaf/functional.pyx":299 + /* "functional.pyx":302 * for i in range(paf_field.shape[1]): * take = ( * paf_field[1, i] > x - sigma * paf_field[3, i] and # <<<<<<<<<<<<<< @@ -6916,7 +7032,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED goto __pyx_L5_bool_binop_done; } - /* "openpifpaf/functional.pyx":300 + /* "functional.pyx":303 * take = ( * paf_field[1, i] > x - sigma * paf_field[3, i] and * paf_field[1, i] < x + sigma * paf_field[3, i] and # <<<<<<<<<<<<<< @@ -6934,7 +7050,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED goto __pyx_L5_bool_binop_done; } - /* "openpifpaf/functional.pyx":301 + /* "functional.pyx":304 * paf_field[1, i] > x - sigma * paf_field[3, i] and * paf_field[1, i] < x + sigma * paf_field[3, i] and * paf_field[2, i] > y - sigma * paf_field[3, i] and # <<<<<<<<<<<<<< @@ -6952,7 +7068,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED goto __pyx_L5_bool_binop_done; } - /* "openpifpaf/functional.pyx":302 + /* "functional.pyx":305 * paf_field[1, i] < x + sigma * paf_field[3, i] and * paf_field[2, i] > y - sigma * paf_field[3, i] and * paf_field[2, i] < y + sigma * paf_field[3, i] # <<<<<<<<<<<<<< @@ -6968,7 +7084,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED __pyx_L5_bool_binop_done:; __pyx_v_take = __pyx_t_9; - /* "openpifpaf/functional.pyx":304 + /* "functional.pyx":307 * paf_field[2, i] < y + sigma * paf_field[3, i] * ) * if not take: # <<<<<<<<<<<<<< @@ -6978,7 +7094,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED __pyx_t_9 = ((!(__pyx_v_take != 0)) != 0); if (__pyx_t_9) { - /* "openpifpaf/functional.pyx":305 + /* "functional.pyx":308 * ) * if not take: * continue # <<<<<<<<<<<<<< @@ -6987,7 +7103,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":304 + /* "functional.pyx":307 * paf_field[2, i] < y + sigma * paf_field[3, i] * ) * if not take: # <<<<<<<<<<<<<< @@ -6996,7 +7112,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_26paf_center_b(CYTHON_UNUSED */ } - /* "openpifpaf/functional.pyx":307 + /* "functional.pyx":310 * continue * * result[:, result_i] = paf_field[:, i] # <<<<<<<<<<<<<< @@ -7029,7 +7145,7 @@ __pyx_t_16.strides[0] = __pyx_v_result.strides[0]; __pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride; } -if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_15, __pyx_t_16, 1, 1, 0) < 0)) __PYX_ERR(0, 307, __pyx_L1_error) +if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_15, __pyx_t_16, 1, 1, 0) < 0)) __PYX_ERR(0, 310, __pyx_L1_error) __PYX_XDEC_MEMVIEW(&__pyx_t_16, 1); __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL; @@ -7037,7 +7153,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_15, __pyx_t_16, 1, 1, 0) < 0 __pyx_t_15.memview = NULL; __pyx_t_15.data = NULL; - /* "openpifpaf/functional.pyx":308 + /* "functional.pyx":311 * * result[:, result_i] = paf_field[:, i] * result_i += 1 # <<<<<<<<<<<<<< @@ -7048,7 +7164,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_15, __pyx_t_16, 1, 1, 0) < 0 __pyx_L3_continue:; } - /* "openpifpaf/functional.pyx":310 + /* "functional.pyx":313 * result_i += 1 * * return result_np[:, :result_i] # <<<<<<<<<<<<<< @@ -7056,12 +7172,12 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_15, __pyx_t_16, 1, 1, 0) < 0 * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_result_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 310, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_result_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PySlice_New(Py_None, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) + __pyx_t_3 = PySlice_New(Py_None, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 310, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_slice__2); __Pyx_GIVEREF(__pyx_slice__2); @@ -7069,14 +7185,14 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_15, __pyx_t_16, 1, 1, 0) < 0 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_result_np, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_result_np, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":291 + /* "functional.pyx":294 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_center_b(float[:, :] paf_field, float x, float y, float sigma=1.0): # <<<<<<<<<<<<<< @@ -7093,7 +7209,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_15, __pyx_t_16, 1, 1, 0) < 0 __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_15, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_16, 1); - __Pyx_AddTraceback("openpifpaf.functional.paf_center_b", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.paf_center_b", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_result_np); @@ -7104,7 +7220,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_15, __pyx_t_16, 1, 1, 0) < 0 return __pyx_r; } -/* "openpifpaf/functional.pyx":315 +/* "functional.pyx":318 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_center(float[:, :] paf_field, float x, float y, float sigma): # <<<<<<<<<<<<<< @@ -7113,9 +7229,9 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_15, __pyx_t_16, 1, 1, 0) < 0 */ /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_29paf_center(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_10openpifpaf_10functional_29paf_center = {"paf_center", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_29paf_center, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_10openpifpaf_10functional_29paf_center(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_29paf_center(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_10functional_29paf_center = {"paf_center", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_29paf_center, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_10functional_29paf_center(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_paf_field = { 0, 0, { 0 }, { 0 }, { 0 } }; float __pyx_v_x; float __pyx_v_y; @@ -7153,23 +7269,23 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_29paf_center(PyObject *__pyx case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("paf_center", 1, 4, 4, 1); __PYX_ERR(0, 315, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("paf_center", 1, 4, 4, 1); __PYX_ERR(0, 318, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("paf_center", 1, 4, 4, 2); __PYX_ERR(0, 315, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("paf_center", 1, 4, 4, 2); __PYX_ERR(0, 318, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("paf_center", 1, 4, 4, 3); __PYX_ERR(0, 315, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("paf_center", 1, 4, 4, 3); __PYX_ERR(0, 318, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "paf_center") < 0)) __PYX_ERR(0, 315, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "paf_center") < 0)) __PYX_ERR(0, 318, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -7179,27 +7295,27 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_29paf_center(PyObject *__pyx values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } - __pyx_v_paf_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_paf_field.memview)) __PYX_ERR(0, 315, __pyx_L3_error) - __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 315, __pyx_L3_error) - __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 315, __pyx_L3_error) - __pyx_v_sigma = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_sigma == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 315, __pyx_L3_error) + __pyx_v_paf_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_paf_field.memview)) __PYX_ERR(0, 318, __pyx_L3_error) + __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 318, __pyx_L3_error) + __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 318, __pyx_L3_error) + __pyx_v_sigma = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_sigma == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 318, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("paf_center", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 315, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("paf_center", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 318, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.paf_center", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.paf_center", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_28paf_center(__pyx_self, __pyx_v_paf_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma); + __pyx_r = __pyx_pf_10functional_28paf_center(__pyx_self, __pyx_v_paf_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma) { +static PyObject *__pyx_pf_10functional_28paf_center(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_paf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma) { PyObject *__pyx_v_result_np = NULL; __Pyx_memviewslice __pyx_v_result = { 0, 0, { 0 }, { 0 }, { 0 } }; unsigned int __pyx_v_result_i; @@ -7224,19 +7340,19 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("paf_center", 0); - /* "openpifpaf/functional.pyx":316 + /* "functional.pyx":319 * @cython.wraparound(False) * def paf_center(float[:, :] paf_field, float x, float y, float sigma): * result_np = np.empty_like(paf_field) # <<<<<<<<<<<<<< * cdef float[:, :] result = result_np * cdef unsigned int result_i = 0 */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 316, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty_like); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 316, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty_like); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_paf_field, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 316, __pyx_L1_error) + __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_paf_field, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -7251,25 +7367,25 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 316, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result_np = __pyx_t_1; __pyx_t_1 = 0; - /* "openpifpaf/functional.pyx":317 + /* "functional.pyx":320 * def paf_center(float[:, :] paf_field, float x, float y, float sigma): * result_np = np.empty_like(paf_field) * cdef float[:, :] result = result_np # <<<<<<<<<<<<<< * cdef unsigned int result_i = 0 * cdef bint take */ - __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_result_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 317, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_result_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 320, __pyx_L1_error) __pyx_v_result = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; - /* "openpifpaf/functional.pyx":318 + /* "functional.pyx":321 * result_np = np.empty_like(paf_field) * cdef float[:, :] result = result_np * cdef unsigned int result_i = 0 # <<<<<<<<<<<<<< @@ -7278,7 +7394,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P */ __pyx_v_result_i = 0; - /* "openpifpaf/functional.pyx":322 + /* "functional.pyx":325 * cdef Py_ssize_t i * * for i in range(paf_field.shape[1]): # <<<<<<<<<<<<<< @@ -7290,7 +7406,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { __pyx_v_i = __pyx_t_8; - /* "openpifpaf/functional.pyx":323 + /* "functional.pyx":326 * * for i in range(paf_field.shape[1]): * if paf_field[1, i] < x - sigma: # <<<<<<<<<<<<<< @@ -7302,7 +7418,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P __pyx_t_11 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_paf_field.data + __pyx_t_9 * __pyx_v_paf_field.strides[0]) ) + __pyx_t_10 * __pyx_v_paf_field.strides[1]) ))) < (__pyx_v_x - __pyx_v_sigma)) != 0); if (__pyx_t_11) { - /* "openpifpaf/functional.pyx":324 + /* "functional.pyx":327 * for i in range(paf_field.shape[1]): * if paf_field[1, i] < x - sigma: * continue # <<<<<<<<<<<<<< @@ -7311,7 +7427,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":323 + /* "functional.pyx":326 * * for i in range(paf_field.shape[1]): * if paf_field[1, i] < x - sigma: # <<<<<<<<<<<<<< @@ -7320,7 +7436,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P */ } - /* "openpifpaf/functional.pyx":325 + /* "functional.pyx":328 * if paf_field[1, i] < x - sigma: * continue * if paf_field[1, i] > x + sigma: # <<<<<<<<<<<<<< @@ -7332,7 +7448,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P __pyx_t_11 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_paf_field.data + __pyx_t_10 * __pyx_v_paf_field.strides[0]) ) + __pyx_t_9 * __pyx_v_paf_field.strides[1]) ))) > (__pyx_v_x + __pyx_v_sigma)) != 0); if (__pyx_t_11) { - /* "openpifpaf/functional.pyx":326 + /* "functional.pyx":329 * continue * if paf_field[1, i] > x + sigma: * continue # <<<<<<<<<<<<<< @@ -7341,7 +7457,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":325 + /* "functional.pyx":328 * if paf_field[1, i] < x - sigma: * continue * if paf_field[1, i] > x + sigma: # <<<<<<<<<<<<<< @@ -7350,7 +7466,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P */ } - /* "openpifpaf/functional.pyx":327 + /* "functional.pyx":330 * if paf_field[1, i] > x + sigma: * continue * if paf_field[2, i] < y - sigma: # <<<<<<<<<<<<<< @@ -7362,7 +7478,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P __pyx_t_11 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_paf_field.data + __pyx_t_9 * __pyx_v_paf_field.strides[0]) ) + __pyx_t_10 * __pyx_v_paf_field.strides[1]) ))) < (__pyx_v_y - __pyx_v_sigma)) != 0); if (__pyx_t_11) { - /* "openpifpaf/functional.pyx":328 + /* "functional.pyx":331 * continue * if paf_field[2, i] < y - sigma: * continue # <<<<<<<<<<<<<< @@ -7371,7 +7487,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":327 + /* "functional.pyx":330 * if paf_field[1, i] > x + sigma: * continue * if paf_field[2, i] < y - sigma: # <<<<<<<<<<<<<< @@ -7380,7 +7496,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P */ } - /* "openpifpaf/functional.pyx":329 + /* "functional.pyx":332 * if paf_field[2, i] < y - sigma: * continue * if paf_field[2, i] > y + sigma: # <<<<<<<<<<<<<< @@ -7392,7 +7508,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P __pyx_t_11 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_paf_field.data + __pyx_t_10 * __pyx_v_paf_field.strides[0]) ) + __pyx_t_9 * __pyx_v_paf_field.strides[1]) ))) > (__pyx_v_y + __pyx_v_sigma)) != 0); if (__pyx_t_11) { - /* "openpifpaf/functional.pyx":330 + /* "functional.pyx":333 * continue * if paf_field[2, i] > y + sigma: * continue # <<<<<<<<<<<<<< @@ -7401,7 +7517,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":329 + /* "functional.pyx":332 * if paf_field[2, i] < y - sigma: * continue * if paf_field[2, i] > y + sigma: # <<<<<<<<<<<<<< @@ -7410,7 +7526,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_28paf_center(CYTHON_UNUSED P */ } - /* "openpifpaf/functional.pyx":332 + /* "functional.pyx":335 * continue * * result[:, result_i] = paf_field[:, i] # <<<<<<<<<<<<<< @@ -7443,7 +7559,7 @@ __pyx_t_13.strides[0] = __pyx_v_result.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } -if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0)) __PYX_ERR(0, 332, __pyx_L1_error) +if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0)) __PYX_ERR(0, 335, __pyx_L1_error) __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; @@ -7451,7 +7567,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; - /* "openpifpaf/functional.pyx":333 + /* "functional.pyx":336 * * result[:, result_i] = paf_field[:, i] * result_i += 1 # <<<<<<<<<<<<<< @@ -7462,7 +7578,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 __pyx_L3_continue:; } - /* "openpifpaf/functional.pyx":335 + /* "functional.pyx":338 * result_i += 1 * * return result_np[:, :result_i] # <<<<<<<<<<<<<< @@ -7470,12 +7586,12 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_result_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_result_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PySlice_New(Py_None, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_3 = PySlice_New(Py_None, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_slice__2); __Pyx_GIVEREF(__pyx_slice__2); @@ -7483,14 +7599,14 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_result_np, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_result_np, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":315 + /* "functional.pyx":318 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_center(float[:, :] paf_field, float x, float y, float sigma): # <<<<<<<<<<<<<< @@ -7507,7 +7623,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); - __Pyx_AddTraceback("openpifpaf.functional.paf_center", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.paf_center", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_result_np); @@ -7518,7 +7634,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 return __pyx_r; } -/* "openpifpaf/functional.pyx":340 +/* "functional.pyx":343 * @cython.boundscheck(False) * @cython.wraparound(False) * def caf_center_s(float[:, :] caf_field, float x, float y, float sigma): # <<<<<<<<<<<<<< @@ -7527,9 +7643,9 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 */ /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_31caf_center_s(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_10openpifpaf_10functional_31caf_center_s = {"caf_center_s", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_31caf_center_s, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_10openpifpaf_10functional_31caf_center_s(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_31caf_center_s(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_10functional_31caf_center_s = {"caf_center_s", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_31caf_center_s, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_10functional_31caf_center_s(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_caf_field = { 0, 0, { 0 }, { 0 }, { 0 } }; float __pyx_v_x; float __pyx_v_y; @@ -7567,23 +7683,23 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_31caf_center_s(PyObject *__p case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("caf_center_s", 1, 4, 4, 1); __PYX_ERR(0, 340, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("caf_center_s", 1, 4, 4, 1); __PYX_ERR(0, 343, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("caf_center_s", 1, 4, 4, 2); __PYX_ERR(0, 340, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("caf_center_s", 1, 4, 4, 2); __PYX_ERR(0, 343, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("caf_center_s", 1, 4, 4, 3); __PYX_ERR(0, 340, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("caf_center_s", 1, 4, 4, 3); __PYX_ERR(0, 343, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "caf_center_s") < 0)) __PYX_ERR(0, 340, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "caf_center_s") < 0)) __PYX_ERR(0, 343, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -7593,27 +7709,27 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_31caf_center_s(PyObject *__p values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } - __pyx_v_caf_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_caf_field.memview)) __PYX_ERR(0, 340, __pyx_L3_error) - __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error) - __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error) - __pyx_v_sigma = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_sigma == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error) + __pyx_v_caf_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_caf_field.memview)) __PYX_ERR(0, 343, __pyx_L3_error) + __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 343, __pyx_L3_error) + __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 343, __pyx_L3_error) + __pyx_v_sigma = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_sigma == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 343, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("caf_center_s", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 340, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("caf_center_s", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 343, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.caf_center_s", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.caf_center_s", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_30caf_center_s(__pyx_self, __pyx_v_caf_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma); + __pyx_r = __pyx_pf_10functional_30caf_center_s(__pyx_self, __pyx_v_caf_field, __pyx_v_x, __pyx_v_y, __pyx_v_sigma); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_caf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma) { +static PyObject *__pyx_pf_10functional_30caf_center_s(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_caf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_sigma) { PyObject *__pyx_v_result_np = NULL; __Pyx_memviewslice __pyx_v_result = { 0, 0, { 0 }, { 0 }, { 0 } }; unsigned int __pyx_v_result_i; @@ -7638,19 +7754,19 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("caf_center_s", 0); - /* "openpifpaf/functional.pyx":341 + /* "functional.pyx":344 * @cython.wraparound(False) * def caf_center_s(float[:, :] caf_field, float x, float y, float sigma): * result_np = np.empty_like(caf_field) # <<<<<<<<<<<<<< * cdef float[:, :] result = result_np * cdef unsigned int result_i = 0 */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 341, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty_like); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 341, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty_like); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_caf_field, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 341, __pyx_L1_error) + __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_caf_field, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -7665,25 +7781,25 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 341, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result_np = __pyx_t_1; __pyx_t_1 = 0; - /* "openpifpaf/functional.pyx":342 + /* "functional.pyx":345 * def caf_center_s(float[:, :] caf_field, float x, float y, float sigma): * result_np = np.empty_like(caf_field) * cdef float[:, :] result = result_np # <<<<<<<<<<<<<< * cdef unsigned int result_i = 0 * cdef Py_ssize_t i */ - __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_result_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 342, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(__pyx_v_result_np, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 345, __pyx_L1_error) __pyx_v_result = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; - /* "openpifpaf/functional.pyx":343 + /* "functional.pyx":346 * result_np = np.empty_like(caf_field) * cdef float[:, :] result = result_np * cdef unsigned int result_i = 0 # <<<<<<<<<<<<<< @@ -7692,7 +7808,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED */ __pyx_v_result_i = 0; - /* "openpifpaf/functional.pyx":346 + /* "functional.pyx":349 * cdef Py_ssize_t i * * for i in range(caf_field.shape[1]): # <<<<<<<<<<<<<< @@ -7704,7 +7820,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { __pyx_v_i = __pyx_t_8; - /* "openpifpaf/functional.pyx":347 + /* "functional.pyx":350 * * for i in range(caf_field.shape[1]): * if caf_field[1, i] < x - sigma: # <<<<<<<<<<<<<< @@ -7716,7 +7832,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED __pyx_t_11 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_9 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_10 * __pyx_v_caf_field.strides[1]) ))) < (__pyx_v_x - __pyx_v_sigma)) != 0); if (__pyx_t_11) { - /* "openpifpaf/functional.pyx":348 + /* "functional.pyx":351 * for i in range(caf_field.shape[1]): * if caf_field[1, i] < x - sigma: * continue # <<<<<<<<<<<<<< @@ -7725,7 +7841,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":347 + /* "functional.pyx":350 * * for i in range(caf_field.shape[1]): * if caf_field[1, i] < x - sigma: # <<<<<<<<<<<<<< @@ -7734,7 +7850,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED */ } - /* "openpifpaf/functional.pyx":349 + /* "functional.pyx":352 * if caf_field[1, i] < x - sigma: * continue * if caf_field[1, i] > x + sigma: # <<<<<<<<<<<<<< @@ -7746,7 +7862,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED __pyx_t_11 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_10 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_9 * __pyx_v_caf_field.strides[1]) ))) > (__pyx_v_x + __pyx_v_sigma)) != 0); if (__pyx_t_11) { - /* "openpifpaf/functional.pyx":350 + /* "functional.pyx":353 * continue * if caf_field[1, i] > x + sigma: * continue # <<<<<<<<<<<<<< @@ -7755,7 +7871,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":349 + /* "functional.pyx":352 * if caf_field[1, i] < x - sigma: * continue * if caf_field[1, i] > x + sigma: # <<<<<<<<<<<<<< @@ -7764,7 +7880,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED */ } - /* "openpifpaf/functional.pyx":351 + /* "functional.pyx":354 * if caf_field[1, i] > x + sigma: * continue * if caf_field[2, i] < y - sigma: # <<<<<<<<<<<<<< @@ -7776,7 +7892,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED __pyx_t_11 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_9 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_10 * __pyx_v_caf_field.strides[1]) ))) < (__pyx_v_y - __pyx_v_sigma)) != 0); if (__pyx_t_11) { - /* "openpifpaf/functional.pyx":352 + /* "functional.pyx":355 * continue * if caf_field[2, i] < y - sigma: * continue # <<<<<<<<<<<<<< @@ -7785,7 +7901,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":351 + /* "functional.pyx":354 * if caf_field[1, i] > x + sigma: * continue * if caf_field[2, i] < y - sigma: # <<<<<<<<<<<<<< @@ -7794,7 +7910,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED */ } - /* "openpifpaf/functional.pyx":353 + /* "functional.pyx":356 * if caf_field[2, i] < y - sigma: * continue * if caf_field[2, i] > y + sigma: # <<<<<<<<<<<<<< @@ -7806,7 +7922,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED __pyx_t_11 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_10 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_9 * __pyx_v_caf_field.strides[1]) ))) > (__pyx_v_y + __pyx_v_sigma)) != 0); if (__pyx_t_11) { - /* "openpifpaf/functional.pyx":354 + /* "functional.pyx":357 * continue * if caf_field[2, i] > y + sigma: * continue # <<<<<<<<<<<<<< @@ -7815,7 +7931,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":353 + /* "functional.pyx":356 * if caf_field[2, i] < y - sigma: * continue * if caf_field[2, i] > y + sigma: # <<<<<<<<<<<<<< @@ -7824,7 +7940,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_30caf_center_s(CYTHON_UNUSED */ } - /* "openpifpaf/functional.pyx":356 + /* "functional.pyx":359 * continue * * result[:, result_i] = caf_field[:, i] # <<<<<<<<<<<<<< @@ -7857,7 +7973,7 @@ __pyx_t_13.strides[0] = __pyx_v_result.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } -if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0)) __PYX_ERR(0, 356, __pyx_L1_error) +if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0)) __PYX_ERR(0, 359, __pyx_L1_error) __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; @@ -7865,7 +7981,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; - /* "openpifpaf/functional.pyx":357 + /* "functional.pyx":360 * * result[:, result_i] = caf_field[:, i] * result_i += 1 # <<<<<<<<<<<<<< @@ -7876,7 +7992,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 __pyx_L3_continue:; } - /* "openpifpaf/functional.pyx":359 + /* "functional.pyx":362 * result_i += 1 * * return result_np[:, :result_i] # <<<<<<<<<<<<<< @@ -7884,12 +8000,12 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_result_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 359, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_result_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PySlice_New(Py_None, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 359, __pyx_L1_error) + __pyx_t_3 = PySlice_New(Py_None, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 359, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_slice__2); __Pyx_GIVEREF(__pyx_slice__2); @@ -7897,14 +8013,14 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_result_np, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 359, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_result_np, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":340 + /* "functional.pyx":343 * @cython.boundscheck(False) * @cython.wraparound(False) * def caf_center_s(float[:, :] caf_field, float x, float y, float sigma): # <<<<<<<<<<<<<< @@ -7921,7 +8037,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); - __Pyx_AddTraceback("openpifpaf.functional.caf_center_s", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.caf_center_s", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_result_np); @@ -7932,7 +8048,7 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 return __pyx_r; } -/* "openpifpaf/functional.pyx":365 +/* "functional.pyx":368 * @cython.wraparound(False) * @cython.cdivision(True) * def grow_connection_blend(float[:, :] caf_field, float x, float y, float xy_scale, bint only_max=False): # <<<<<<<<<<<<<< @@ -7941,10 +8057,10 @@ if (unlikely(__pyx_memoryview_copy_contents(__pyx_t_12, __pyx_t_13, 1, 1, 0) < 0 */ /* Python wrapper */ -static PyObject *__pyx_pw_10openpifpaf_10functional_33grow_connection_blend(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static char __pyx_doc_10openpifpaf_10functional_32grow_connection_blend[] = "Blending the top two candidates with a weighted average.\n\n Similar to the post processing step in\n \"BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs\".\n "; -static PyMethodDef __pyx_mdef_10openpifpaf_10functional_33grow_connection_blend = {"grow_connection_blend", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_33grow_connection_blend, METH_VARARGS|METH_KEYWORDS, __pyx_doc_10openpifpaf_10functional_32grow_connection_blend}; -static PyObject *__pyx_pw_10openpifpaf_10functional_33grow_connection_blend(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_10functional_33grow_connection_blend(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_10functional_32grow_connection_blend[] = "Blending the top two candidates with a weighted average.\n\n Similar to the post processing step in\n \"BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs\".\n "; +static PyMethodDef __pyx_mdef_10functional_33grow_connection_blend = {"grow_connection_blend", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_33grow_connection_blend, METH_VARARGS|METH_KEYWORDS, __pyx_doc_10functional_32grow_connection_blend}; +static PyObject *__pyx_pw_10functional_33grow_connection_blend(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_caf_field = { 0, 0, { 0 }, { 0 }, { 0 } }; float __pyx_v_x; float __pyx_v_y; @@ -7985,19 +8101,19 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_33grow_connection_blend(PyOb case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("grow_connection_blend", 0, 4, 5, 1); __PYX_ERR(0, 365, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("grow_connection_blend", 0, 4, 5, 1); __PYX_ERR(0, 368, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("grow_connection_blend", 0, 4, 5, 2); __PYX_ERR(0, 365, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("grow_connection_blend", 0, 4, 5, 2); __PYX_ERR(0, 368, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xy_scale)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("grow_connection_blend", 0, 4, 5, 3); __PYX_ERR(0, 365, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("grow_connection_blend", 0, 4, 5, 3); __PYX_ERR(0, 368, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: @@ -8007,7 +8123,7 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_33grow_connection_blend(PyOb } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "grow_connection_blend") < 0)) __PYX_ERR(0, 365, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "grow_connection_blend") < 0)) __PYX_ERR(0, 368, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -8021,32 +8137,32 @@ static PyObject *__pyx_pw_10openpifpaf_10functional_33grow_connection_blend(PyOb default: goto __pyx_L5_argtuple_error; } } - __pyx_v_caf_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_caf_field.memview)) __PYX_ERR(0, 365, __pyx_L3_error) - __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 365, __pyx_L3_error) - __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 365, __pyx_L3_error) - __pyx_v_xy_scale = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_xy_scale == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 365, __pyx_L3_error) + __pyx_v_caf_field = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_caf_field.memview)) __PYX_ERR(0, 368, __pyx_L3_error) + __pyx_v_x = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 368, __pyx_L3_error) + __pyx_v_y = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_y == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 368, __pyx_L3_error) + __pyx_v_xy_scale = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_xy_scale == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 368, __pyx_L3_error) if (values[4]) { - __pyx_v_only_max = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_only_max == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 365, __pyx_L3_error) + __pyx_v_only_max = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_only_max == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 368, __pyx_L3_error) } else { __pyx_v_only_max = ((int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("grow_connection_blend", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 365, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("grow_connection_blend", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 368, __pyx_L3_error) __pyx_L3_error:; - __Pyx_AddTraceback("openpifpaf.functional.grow_connection_blend", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("functional.grow_connection_blend", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_10openpifpaf_10functional_32grow_connection_blend(__pyx_self, __pyx_v_caf_field, __pyx_v_x, __pyx_v_y, __pyx_v_xy_scale, __pyx_v_only_max); + __pyx_r = __pyx_pf_10functional_32grow_connection_blend(__pyx_self, __pyx_v_caf_field, __pyx_v_x, __pyx_v_y, __pyx_v_xy_scale, __pyx_v_only_max); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_caf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_xy_scale, int __pyx_v_only_max) { +static PyObject *__pyx_pf_10functional_32grow_connection_blend(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_caf_field, float __pyx_v_x, float __pyx_v_y, float __pyx_v_xy_scale, int __pyx_v_only_max) { float __pyx_v_sigma_filter; float __pyx_v_sigma2; float __pyx_v_d2; @@ -8056,8 +8172,9 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH float __pyx_v_score_1; float __pyx_v_score_2; Py_ssize_t __pyx_v_i; - __Pyx_memviewslice __pyx_v_entry_1 = { 0, 0, { 0 }, { 0 }, { 0 } }; - __Pyx_memviewslice __pyx_v_entry_2 = { 0, 0, { 0 }, { 0 }, { 0 } }; + __pyx_ctuple_float__and_float__and_float__and_float __pyx_v_r; + float __pyx_v_entry_1[4]; + float __pyx_v_entry_2[4]; float __pyx_v_blend_d2; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -8069,20 +8186,21 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH int __pyx_t_6; Py_ssize_t __pyx_t_7; Py_ssize_t __pyx_t_8; - __Pyx_memviewslice __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } }; - int __pyx_t_10; - PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; + __pyx_ctuple_float__and_float__and_float__and_float __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_11; + size_t __pyx_t_12; + size_t __pyx_t_13; + size_t __pyx_t_14; + float __pyx_t_15[4]; int __pyx_t_16; + float __pyx_t_17[4]; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("grow_connection_blend", 0); - /* "openpifpaf/functional.pyx":371 + /* "functional.pyx":374 * "BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs". * """ * cdef float sigma_filter = 2.0 * xy_scale # 2.0 = 4 sigma # <<<<<<<<<<<<<< @@ -8091,7 +8209,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ __pyx_v_sigma_filter = (2.0 * __pyx_v_xy_scale); - /* "openpifpaf/functional.pyx":372 + /* "functional.pyx":375 * """ * cdef float sigma_filter = 2.0 * xy_scale # 2.0 = 4 sigma * cdef float sigma2 = 0.25 * xy_scale * xy_scale # <<<<<<<<<<<<<< @@ -8100,7 +8218,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ __pyx_v_sigma2 = ((0.25 * __pyx_v_xy_scale) * __pyx_v_xy_scale); - /* "openpifpaf/functional.pyx":375 + /* "functional.pyx":378 * cdef float d2, v, score * * cdef unsigned int score_1_i = 0 # <<<<<<<<<<<<<< @@ -8109,7 +8227,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ __pyx_v_score_1_i = 0; - /* "openpifpaf/functional.pyx":376 + /* "functional.pyx":379 * * cdef unsigned int score_1_i = 0 * cdef unsigned int score_2_i = 0 # <<<<<<<<<<<<<< @@ -8118,7 +8236,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ __pyx_v_score_2_i = 0; - /* "openpifpaf/functional.pyx":377 + /* "functional.pyx":380 * cdef unsigned int score_1_i = 0 * cdef unsigned int score_2_i = 0 * cdef float score_1 = 0.0 # <<<<<<<<<<<<<< @@ -8127,7 +8245,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ __pyx_v_score_1 = 0.0; - /* "openpifpaf/functional.pyx":378 + /* "functional.pyx":381 * cdef unsigned int score_2_i = 0 * cdef float score_1 = 0.0 * cdef float score_2 = 0.0 # <<<<<<<<<<<<<< @@ -8136,7 +8254,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ __pyx_v_score_2 = 0.0; - /* "openpifpaf/functional.pyx":380 + /* "functional.pyx":383 * cdef float score_2 = 0.0 * cdef Py_ssize_t i * for i in range(caf_field.shape[1]): # <<<<<<<<<<<<<< @@ -8148,7 +8266,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; - /* "openpifpaf/functional.pyx":381 + /* "functional.pyx":384 * cdef Py_ssize_t i * for i in range(caf_field.shape[1]): * if caf_field[1, i] < x - sigma_filter: # <<<<<<<<<<<<<< @@ -8160,7 +8278,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH __pyx_t_6 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_4 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_5 * __pyx_v_caf_field.strides[1]) ))) < (__pyx_v_x - __pyx_v_sigma_filter)) != 0); if (__pyx_t_6) { - /* "openpifpaf/functional.pyx":382 + /* "functional.pyx":385 * for i in range(caf_field.shape[1]): * if caf_field[1, i] < x - sigma_filter: * continue # <<<<<<<<<<<<<< @@ -8169,7 +8287,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":381 + /* "functional.pyx":384 * cdef Py_ssize_t i * for i in range(caf_field.shape[1]): * if caf_field[1, i] < x - sigma_filter: # <<<<<<<<<<<<<< @@ -8178,7 +8296,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ } - /* "openpifpaf/functional.pyx":383 + /* "functional.pyx":386 * if caf_field[1, i] < x - sigma_filter: * continue * if caf_field[1, i] > x + sigma_filter: # <<<<<<<<<<<<<< @@ -8190,7 +8308,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH __pyx_t_6 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_5 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_4 * __pyx_v_caf_field.strides[1]) ))) > (__pyx_v_x + __pyx_v_sigma_filter)) != 0); if (__pyx_t_6) { - /* "openpifpaf/functional.pyx":384 + /* "functional.pyx":387 * continue * if caf_field[1, i] > x + sigma_filter: * continue # <<<<<<<<<<<<<< @@ -8199,7 +8317,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":383 + /* "functional.pyx":386 * if caf_field[1, i] < x - sigma_filter: * continue * if caf_field[1, i] > x + sigma_filter: # <<<<<<<<<<<<<< @@ -8208,7 +8326,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ } - /* "openpifpaf/functional.pyx":385 + /* "functional.pyx":388 * if caf_field[1, i] > x + sigma_filter: * continue * if caf_field[2, i] < y - sigma_filter: # <<<<<<<<<<<<<< @@ -8220,7 +8338,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH __pyx_t_6 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_4 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_5 * __pyx_v_caf_field.strides[1]) ))) < (__pyx_v_y - __pyx_v_sigma_filter)) != 0); if (__pyx_t_6) { - /* "openpifpaf/functional.pyx":386 + /* "functional.pyx":389 * continue * if caf_field[2, i] < y - sigma_filter: * continue # <<<<<<<<<<<<<< @@ -8229,7 +8347,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":385 + /* "functional.pyx":388 * if caf_field[1, i] > x + sigma_filter: * continue * if caf_field[2, i] < y - sigma_filter: # <<<<<<<<<<<<<< @@ -8238,7 +8356,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ } - /* "openpifpaf/functional.pyx":387 + /* "functional.pyx":390 * if caf_field[2, i] < y - sigma_filter: * continue * if caf_field[2, i] > y + sigma_filter: # <<<<<<<<<<<<<< @@ -8250,7 +8368,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH __pyx_t_6 = (((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_5 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_4 * __pyx_v_caf_field.strides[1]) ))) > (__pyx_v_y + __pyx_v_sigma_filter)) != 0); if (__pyx_t_6) { - /* "openpifpaf/functional.pyx":388 + /* "functional.pyx":391 * continue * if caf_field[2, i] > y + sigma_filter: * continue # <<<<<<<<<<<<<< @@ -8259,7 +8377,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ goto __pyx_L3_continue; - /* "openpifpaf/functional.pyx":387 + /* "functional.pyx":390 * if caf_field[2, i] < y - sigma_filter: * continue * if caf_field[2, i] > y + sigma_filter: # <<<<<<<<<<<<<< @@ -8268,7 +8386,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ } - /* "openpifpaf/functional.pyx":391 + /* "functional.pyx":394 * * # source distance * d2 = (caf_field[1, i] - x)**2 + (caf_field[2, i] - y)**2 # <<<<<<<<<<<<<< @@ -8281,38 +8399,38 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH __pyx_t_8 = __pyx_v_i; __pyx_v_d2 = (powf(((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_4 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_5 * __pyx_v_caf_field.strides[1]) ))) - __pyx_v_x), 2.0) + powf(((*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_7 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_8 * __pyx_v_caf_field.strides[1]) ))) - __pyx_v_y), 2.0)); - /* "openpifpaf/functional.pyx":394 + /* "functional.pyx":397 * * # combined value and source distance * score = exp(-0.5 * d2 / sigma2) * caf_field[0, i] # <<<<<<<<<<<<<< * - * if score > score_1: + * if score >= score_1: # if score is equal to score_1, make sure score_2 is filled */ __pyx_t_8 = 0; __pyx_t_7 = __pyx_v_i; - __pyx_v_score = (exp(((-0.5 * __pyx_v_d2) / ((double)__pyx_v_sigma2))) * (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_8 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_7 * __pyx_v_caf_field.strides[1]) )))); + __pyx_v_score = (exp(((-0.5 * __pyx_v_d2) / __pyx_v_sigma2)) * (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_8 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_7 * __pyx_v_caf_field.strides[1]) )))); - /* "openpifpaf/functional.pyx":396 + /* "functional.pyx":399 * score = exp(-0.5 * d2 / sigma2) * caf_field[0, i] * - * if score > score_1: # <<<<<<<<<<<<<< + * if score >= score_1: # if score is equal to score_1, make sure score_2 is filled # <<<<<<<<<<<<<< * score_2_i = score_1_i * score_2 = score_1 */ - __pyx_t_6 = ((__pyx_v_score > __pyx_v_score_1) != 0); + __pyx_t_6 = ((__pyx_v_score >= __pyx_v_score_1) != 0); if (__pyx_t_6) { - /* "openpifpaf/functional.pyx":397 + /* "functional.pyx":400 * - * if score > score_1: + * if score >= score_1: # if score is equal to score_1, make sure score_2 is filled * score_2_i = score_1_i # <<<<<<<<<<<<<< * score_2 = score_1 * score_1_i = i */ __pyx_v_score_2_i = __pyx_v_score_1_i; - /* "openpifpaf/functional.pyx":398 - * if score > score_1: + /* "functional.pyx":401 + * if score >= score_1: # if score is equal to score_1, make sure score_2 is filled * score_2_i = score_1_i * score_2 = score_1 # <<<<<<<<<<<<<< * score_1_i = i @@ -8320,7 +8438,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ __pyx_v_score_2 = __pyx_v_score_1; - /* "openpifpaf/functional.pyx":399 + /* "functional.pyx":402 * score_2_i = score_1_i * score_2 = score_1 * score_1_i = i # <<<<<<<<<<<<<< @@ -8329,7 +8447,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ __pyx_v_score_1_i = __pyx_v_i; - /* "openpifpaf/functional.pyx":400 + /* "functional.pyx":403 * score_2 = score_1 * score_1_i = i * score_1 = score # <<<<<<<<<<<<<< @@ -8338,17 +8456,17 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ __pyx_v_score_1 = __pyx_v_score; - /* "openpifpaf/functional.pyx":396 + /* "functional.pyx":399 * score = exp(-0.5 * d2 / sigma2) * caf_field[0, i] * - * if score > score_1: # <<<<<<<<<<<<<< + * if score >= score_1: # if score is equal to score_1, make sure score_2 is filled # <<<<<<<<<<<<<< * score_2_i = score_1_i * score_2 = score_1 */ goto __pyx_L9; } - /* "openpifpaf/functional.pyx":401 + /* "functional.pyx":404 * score_1_i = i * score_1 = score * elif score > score_2: # <<<<<<<<<<<<<< @@ -8358,7 +8476,7 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH __pyx_t_6 = ((__pyx_v_score > __pyx_v_score_2) != 0); if (__pyx_t_6) { - /* "openpifpaf/functional.pyx":402 + /* "functional.pyx":405 * score_1 = score * elif score > score_2: * score_2_i = i # <<<<<<<<<<<<<< @@ -8367,16 +8485,16 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH */ __pyx_v_score_2_i = __pyx_v_i; - /* "openpifpaf/functional.pyx":403 + /* "functional.pyx":406 * elif score > score_2: * score_2_i = i * score_2 = score # <<<<<<<<<<<<<< * - * if score_1 == 0.0: + * cdef (float, float, float, float) r = (0.0, 0.0, 0.0, 0.0) */ __pyx_v_score_2 = __pyx_v_score; - /* "openpifpaf/functional.pyx":401 + /* "functional.pyx":404 * score_1_i = i * score_1 = score * elif score > score_2: # <<<<<<<<<<<<<< @@ -8388,175 +8506,141 @@ static PyObject *__pyx_pf_10openpifpaf_10functional_32grow_connection_blend(CYTH __pyx_L3_continue:; } - /* "openpifpaf/functional.pyx":405 + /* "functional.pyx":408 * score_2 = score * + * cdef (float, float, float, float) r = (0.0, 0.0, 0.0, 0.0) # <<<<<<<<<<<<<< + * if score_1 == 0.0: + * return r + */ + __pyx_t_9.f0 = 0.0; + __pyx_t_9.f1 = 0.0; + __pyx_t_9.f2 = 0.0; + __pyx_t_9.f3 = 0.0; + __pyx_v_r = __pyx_t_9; + + /* "functional.pyx":409 + * + * cdef (float, float, float, float) r = (0.0, 0.0, 0.0, 0.0) * if score_1 == 0.0: # <<<<<<<<<<<<<< - * return 0.0, 0.0, 0.0, 0.0 + * return r * */ __pyx_t_6 = ((__pyx_v_score_1 == 0.0) != 0); if (__pyx_t_6) { - /* "openpifpaf/functional.pyx":406 - * + /* "functional.pyx":410 + * cdef (float, float, float, float) r = (0.0, 0.0, 0.0, 0.0) * if score_1 == 0.0: - * return 0.0, 0.0, 0.0, 0.0 # <<<<<<<<<<<<<< + * return r # <<<<<<<<<<<<<< * - * # only max + * cdef float[4] entry_1 = [ # xybs */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_tuple__3); - __pyx_r = __pyx_tuple__3; + __pyx_t_10 = __pyx_convert__to_py___pyx_ctuple_float__and_float__and_float__and_float(__pyx_v_r); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_r = __pyx_t_10; + __pyx_t_10 = 0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":405 - * score_2 = score + /* "functional.pyx":409 * + * cdef (float, float, float, float) r = (0.0, 0.0, 0.0, 0.0) * if score_1 == 0.0: # <<<<<<<<<<<<<< - * return 0.0, 0.0, 0.0, 0.0 + * return r * */ } - /* "openpifpaf/functional.pyx":409 + /* "functional.pyx":413 * - * # only max - * cdef float[:] entry_1 = caf_field[5:, score_1_i] # <<<<<<<<<<<<<< + * cdef float[4] entry_1 = [ # xybs + * caf_field[3, score_1_i], caf_field[4, score_1_i], # <<<<<<<<<<<<<< + * caf_field[6, score_1_i], caf_field[8, score_1_i]] * if only_max: - * return entry_1[0], entry_1[1], entry_1[3], score_1 - */ - __pyx_t_9.data = __pyx_v_caf_field.data; - __pyx_t_9.memview = __pyx_v_caf_field.memview; - __PYX_INC_MEMVIEW(&__pyx_t_9, 0); - __pyx_t_10 = -1; - if (unlikely(__pyx_memoryview_slice_memviewslice( - &__pyx_t_9, - __pyx_v_caf_field.shape[0], __pyx_v_caf_field.strides[0], __pyx_v_caf_field.suboffsets[0], - 0, - 0, - &__pyx_t_10, - 5, - 0, - 0, - 1, - 0, - 0, - 1) < 0)) -{ - __PYX_ERR(0, 409, __pyx_L1_error) -} + */ + __pyx_t_7 = 3; + __pyx_t_11 = __pyx_v_score_1_i; + __pyx_t_8 = 4; + __pyx_t_12 = __pyx_v_score_1_i; -{ - Py_ssize_t __pyx_tmp_idx = __pyx_v_score_1_i; - Py_ssize_t __pyx_tmp_stride = __pyx_v_caf_field.strides[1]; - __pyx_t_9.data += __pyx_tmp_idx * __pyx_tmp_stride; -} + /* "functional.pyx":414 + * cdef float[4] entry_1 = [ # xybs + * caf_field[3, score_1_i], caf_field[4, score_1_i], + * caf_field[6, score_1_i], caf_field[8, score_1_i]] # <<<<<<<<<<<<<< + * if only_max: + * r = entry_1[0], entry_1[1], entry_1[3], score_1 + */ + __pyx_t_5 = 6; + __pyx_t_13 = __pyx_v_score_1_i; + __pyx_t_4 = 8; + __pyx_t_14 = __pyx_v_score_1_i; -__pyx_v_entry_1 = __pyx_t_9; - __pyx_t_9.memview = NULL; - __pyx_t_9.data = NULL; + /* "functional.pyx":412 + * return r + * + * cdef float[4] entry_1 = [ # xybs # <<<<<<<<<<<<<< + * caf_field[3, score_1_i], caf_field[4, score_1_i], + * caf_field[6, score_1_i], caf_field[8, score_1_i]] + */ + __pyx_t_15[0] = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_7 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_11 * __pyx_v_caf_field.strides[1]) ))); + __pyx_t_15[1] = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_8 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_12 * __pyx_v_caf_field.strides[1]) ))); + __pyx_t_15[2] = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_5 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_13 * __pyx_v_caf_field.strides[1]) ))); + __pyx_t_15[3] = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_4 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_14 * __pyx_v_caf_field.strides[1]) ))); + memcpy(&(__pyx_v_entry_1[0]), __pyx_t_15, sizeof(__pyx_v_entry_1[0]) * (4)); - /* "openpifpaf/functional.pyx":410 - * # only max - * cdef float[:] entry_1 = caf_field[5:, score_1_i] + /* "functional.pyx":415 + * caf_field[3, score_1_i], caf_field[4, score_1_i], + * caf_field[6, score_1_i], caf_field[8, score_1_i]] * if only_max: # <<<<<<<<<<<<<< - * return entry_1[0], entry_1[1], entry_1[3], score_1 - * + * r = entry_1[0], entry_1[1], entry_1[3], score_1 + * return r */ __pyx_t_6 = (__pyx_v_only_max != 0); if (__pyx_t_6) { - /* "openpifpaf/functional.pyx":411 - * cdef float[:] entry_1 = caf_field[5:, score_1_i] + /* "functional.pyx":416 + * caf_field[6, score_1_i], caf_field[8, score_1_i]] * if only_max: - * return entry_1[0], entry_1[1], entry_1[3], score_1 # <<<<<<<<<<<<<< - * - * # blend + * r = entry_1[0], entry_1[1], entry_1[3], score_1 # <<<<<<<<<<<<<< + * return r + * if score_2 < 0.01 or score_2 < 0.5 * score_1: + */ + __pyx_t_9.f0 = (__pyx_v_entry_1[0]); + __pyx_t_9.f1 = (__pyx_v_entry_1[1]); + __pyx_t_9.f2 = (__pyx_v_entry_1[3]); + __pyx_t_9.f3 = __pyx_v_score_1; + __pyx_v_r = __pyx_t_9; + + /* "functional.pyx":417 + * if only_max: + * r = entry_1[0], entry_1[1], entry_1[3], score_1 + * return r # <<<<<<<<<<<<<< + * if score_2 < 0.01 or score_2 < 0.5 * score_1: + * r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 */ __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = 0; - __pyx_t_11 = PyFloat_FromDouble((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_7 * __pyx_v_entry_1.strides[0]) )))); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_7 = 1; - __pyx_t_12 = PyFloat_FromDouble((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_7 * __pyx_v_entry_1.strides[0]) )))); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_7 = 3; - __pyx_t_13 = PyFloat_FromDouble((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_7 * __pyx_v_entry_1.strides[0]) )))); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_14 = PyFloat_FromDouble(__pyx_v_score_1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_11); - PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_11); - __Pyx_GIVEREF(__pyx_t_12); - PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_12); - __Pyx_GIVEREF(__pyx_t_13); - PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_13); - __Pyx_GIVEREF(__pyx_t_14); - PyTuple_SET_ITEM(__pyx_t_15, 3, __pyx_t_14); - __pyx_t_11 = 0; - __pyx_t_12 = 0; - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_r = __pyx_t_15; - __pyx_t_15 = 0; + __pyx_t_10 = __pyx_convert__to_py___pyx_ctuple_float__and_float__and_float__and_float(__pyx_v_r); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_r = __pyx_t_10; + __pyx_t_10 = 0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":410 - * # only max - * cdef float[:] entry_1 = caf_field[5:, score_1_i] + /* "functional.pyx":415 + * caf_field[3, score_1_i], caf_field[4, score_1_i], + * caf_field[6, score_1_i], caf_field[8, score_1_i]] * if only_max: # <<<<<<<<<<<<<< - * return entry_1[0], entry_1[1], entry_1[3], score_1 - * + * r = entry_1[0], entry_1[1], entry_1[3], score_1 + * return r */ } - /* "openpifpaf/functional.pyx":414 - * - * # blend - * cdef float[:] entry_2 = caf_field[5:, score_2_i] # <<<<<<<<<<<<<< - * if score_2 < 0.01 or score_2 < 0.5 * score_1: - * return entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 - */ - __pyx_t_9.data = __pyx_v_caf_field.data; - __pyx_t_9.memview = __pyx_v_caf_field.memview; - __PYX_INC_MEMVIEW(&__pyx_t_9, 0); - __pyx_t_10 = -1; - if (unlikely(__pyx_memoryview_slice_memviewslice( - &__pyx_t_9, - __pyx_v_caf_field.shape[0], __pyx_v_caf_field.strides[0], __pyx_v_caf_field.suboffsets[0], - 0, - 0, - &__pyx_t_10, - 5, - 0, - 0, - 1, - 0, - 0, - 1) < 0)) -{ - __PYX_ERR(0, 414, __pyx_L1_error) -} - -{ - Py_ssize_t __pyx_tmp_idx = __pyx_v_score_2_i; - Py_ssize_t __pyx_tmp_stride = __pyx_v_caf_field.strides[1]; - __pyx_t_9.data += __pyx_tmp_idx * __pyx_tmp_stride; -} - -__pyx_v_entry_2 = __pyx_t_9; - __pyx_t_9.memview = NULL; - __pyx_t_9.data = NULL; - - /* "openpifpaf/functional.pyx":415 - * # blend - * cdef float[:] entry_2 = caf_field[5:, score_2_i] + /* "functional.pyx":418 + * r = entry_1[0], entry_1[1], entry_1[3], score_1 + * return r * if score_2 < 0.01 or score_2 < 0.5 * score_1: # <<<<<<<<<<<<<< - * return entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 - * + * r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 + * return r */ __pyx_t_16 = ((__pyx_v_score_2 < 0.01) != 0); if (!__pyx_t_16) { @@ -8569,202 +8653,160 @@ __pyx_v_entry_2 = __pyx_t_9; __pyx_L13_bool_binop_done:; if (__pyx_t_6) { - /* "openpifpaf/functional.pyx":416 - * cdef float[:] entry_2 = caf_field[5:, score_2_i] + /* "functional.pyx":419 + * return r * if score_2 < 0.01 or score_2 < 0.5 * score_1: - * return entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 # <<<<<<<<<<<<<< + * r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 # <<<<<<<<<<<<<< + * return r * - * cdef float blend_d2 = (entry_1[0] - entry_2[0])**2 + (entry_1[1] - entry_2[1])**2 + */ + __pyx_t_9.f0 = (__pyx_v_entry_1[0]); + __pyx_t_9.f1 = (__pyx_v_entry_1[1]); + __pyx_t_9.f2 = (__pyx_v_entry_1[3]); + __pyx_t_9.f3 = (__pyx_v_score_1 * 0.5); + __pyx_v_r = __pyx_t_9; + + /* "functional.pyx":420 + * if score_2 < 0.01 or score_2 < 0.5 * score_1: + * r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 + * return r # <<<<<<<<<<<<<< + * + * # blend */ __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = 0; - __pyx_t_15 = PyFloat_FromDouble((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_7 * __pyx_v_entry_1.strides[0]) )))); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_7 = 1; - __pyx_t_14 = PyFloat_FromDouble((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_7 * __pyx_v_entry_1.strides[0]) )))); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_7 = 3; - __pyx_t_13 = PyFloat_FromDouble((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_7 * __pyx_v_entry_1.strides[0]) )))); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_12 = PyFloat_FromDouble((__pyx_v_score_1 * 0.5)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_GIVEREF(__pyx_t_15); - PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_15); - __Pyx_GIVEREF(__pyx_t_14); - PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_14); - __Pyx_GIVEREF(__pyx_t_13); - PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_13); - __Pyx_GIVEREF(__pyx_t_12); - PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_12); - __pyx_t_15 = 0; - __pyx_t_14 = 0; - __pyx_t_13 = 0; - __pyx_t_12 = 0; - __pyx_r = __pyx_t_11; - __pyx_t_11 = 0; + __pyx_t_10 = __pyx_convert__to_py___pyx_ctuple_float__and_float__and_float__and_float(__pyx_v_r); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_r = __pyx_t_10; + __pyx_t_10 = 0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":415 - * # blend - * cdef float[:] entry_2 = caf_field[5:, score_2_i] + /* "functional.pyx":418 + * r = entry_1[0], entry_1[1], entry_1[3], score_1 + * return r * if score_2 < 0.01 or score_2 < 0.5 * score_1: # <<<<<<<<<<<<<< - * return entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 - * + * r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 + * return r */ } - /* "openpifpaf/functional.pyx":418 - * return entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 + /* "functional.pyx":424 + * # blend + * cdef float[4] entry_2 = [ # xybs + * caf_field[3, score_2_i], caf_field[4, score_2_i], # <<<<<<<<<<<<<< + * caf_field[6, score_2_i], caf_field[8, score_2_i]] + * + */ + __pyx_t_4 = 3; + __pyx_t_14 = __pyx_v_score_2_i; + __pyx_t_5 = 4; + __pyx_t_13 = __pyx_v_score_2_i; + + /* "functional.pyx":425 + * cdef float[4] entry_2 = [ # xybs + * caf_field[3, score_2_i], caf_field[4, score_2_i], + * caf_field[6, score_2_i], caf_field[8, score_2_i]] # <<<<<<<<<<<<<< + * + * cdef float blend_d2 = (entry_1[0] - entry_2[0])**2 + (entry_1[1] - entry_2[1])**2 + */ + __pyx_t_8 = 6; + __pyx_t_12 = __pyx_v_score_2_i; + __pyx_t_7 = 8; + __pyx_t_11 = __pyx_v_score_2_i; + + /* "functional.pyx":423 + * + * # blend + * cdef float[4] entry_2 = [ # xybs # <<<<<<<<<<<<<< + * caf_field[3, score_2_i], caf_field[4, score_2_i], + * caf_field[6, score_2_i], caf_field[8, score_2_i]] + */ + __pyx_t_17[0] = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_4 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_14 * __pyx_v_caf_field.strides[1]) ))); + __pyx_t_17[1] = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_5 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_13 * __pyx_v_caf_field.strides[1]) ))); + __pyx_t_17[2] = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_8 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_12 * __pyx_v_caf_field.strides[1]) ))); + __pyx_t_17[3] = (*((float *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_caf_field.data + __pyx_t_7 * __pyx_v_caf_field.strides[0]) ) + __pyx_t_11 * __pyx_v_caf_field.strides[1]) ))); + memcpy(&(__pyx_v_entry_2[0]), __pyx_t_17, sizeof(__pyx_v_entry_2[0]) * (4)); + + /* "functional.pyx":427 + * caf_field[6, score_2_i], caf_field[8, score_2_i]] * * cdef float blend_d2 = (entry_1[0] - entry_2[0])**2 + (entry_1[1] - entry_2[1])**2 # <<<<<<<<<<<<<< * if blend_d2 > entry_1[3]**2 / 4.0: - * return entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 + * r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 */ - __pyx_t_7 = 0; - __pyx_t_8 = 0; - __pyx_t_5 = 1; - __pyx_t_4 = 1; - __pyx_v_blend_d2 = (powf(((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_7 * __pyx_v_entry_1.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_entry_2.data + __pyx_t_8 * __pyx_v_entry_2.strides[0]) )))), 2.0) + powf(((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_5 * __pyx_v_entry_1.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_entry_2.data + __pyx_t_4 * __pyx_v_entry_2.strides[0]) )))), 2.0)); + __pyx_v_blend_d2 = (powf(((__pyx_v_entry_1[0]) - (__pyx_v_entry_2[0])), 2.0) + powf(((__pyx_v_entry_1[1]) - (__pyx_v_entry_2[1])), 2.0)); - /* "openpifpaf/functional.pyx":419 + /* "functional.pyx":428 * * cdef float blend_d2 = (entry_1[0] - entry_2[0])**2 + (entry_1[1] - entry_2[1])**2 * if blend_d2 > entry_1[3]**2 / 4.0: # <<<<<<<<<<<<<< - * return entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 - * + * r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 + * return r */ - __pyx_t_4 = 3; - __pyx_t_6 = ((__pyx_v_blend_d2 > (((double)powf((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_4 * __pyx_v_entry_1.strides[0]) ))), 2.0)) / 4.0)) != 0); + __pyx_t_6 = ((__pyx_v_blend_d2 > (powf((__pyx_v_entry_1[3]), 2.0) / 4.0)) != 0); if (__pyx_t_6) { - /* "openpifpaf/functional.pyx":420 + /* "functional.pyx":429 * cdef float blend_d2 = (entry_1[0] - entry_2[0])**2 + (entry_1[1] - entry_2[1])**2 * if blend_d2 > entry_1[3]**2 / 4.0: - * return entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 # <<<<<<<<<<<<<< + * r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 # <<<<<<<<<<<<<< + * return r + * + */ + __pyx_t_9.f0 = (__pyx_v_entry_1[0]); + __pyx_t_9.f1 = (__pyx_v_entry_1[1]); + __pyx_t_9.f2 = (__pyx_v_entry_1[3]); + __pyx_t_9.f3 = (__pyx_v_score_1 * 0.5); + __pyx_v_r = __pyx_t_9; + + /* "functional.pyx":430 + * if blend_d2 > entry_1[3]**2 / 4.0: + * r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 + * return r # <<<<<<<<<<<<<< * - * return ( + * r = ( # xysv */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = 0; - __pyx_t_11 = PyFloat_FromDouble((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_4 * __pyx_v_entry_1.strides[0]) )))); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_4 = 1; - __pyx_t_12 = PyFloat_FromDouble((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_4 * __pyx_v_entry_1.strides[0]) )))); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_4 = 3; - __pyx_t_13 = PyFloat_FromDouble((*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_4 * __pyx_v_entry_1.strides[0]) )))); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_14 = PyFloat_FromDouble((__pyx_v_score_1 * 0.5)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_11); - PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_11); - __Pyx_GIVEREF(__pyx_t_12); - PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_12); - __Pyx_GIVEREF(__pyx_t_13); - PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_13); - __Pyx_GIVEREF(__pyx_t_14); - PyTuple_SET_ITEM(__pyx_t_15, 3, __pyx_t_14); - __pyx_t_11 = 0; - __pyx_t_12 = 0; - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_r = __pyx_t_15; - __pyx_t_15 = 0; + __pyx_t_10 = __pyx_convert__to_py___pyx_ctuple_float__and_float__and_float__and_float(__pyx_v_r); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_r = __pyx_t_10; + __pyx_t_10 = 0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":419 + /* "functional.pyx":428 * * cdef float blend_d2 = (entry_1[0] - entry_2[0])**2 + (entry_1[1] - entry_2[1])**2 * if blend_d2 > entry_1[3]**2 / 4.0: # <<<<<<<<<<<<<< - * return entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 - * + * r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 + * return r */ } - /* "openpifpaf/functional.pyx":422 - * return entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 - * - * return ( # <<<<<<<<<<<<<< - * (score_1 * entry_1[0] + score_2 * entry_2[0]) / (score_1 + score_2), - * (score_1 * entry_1[1] + score_2 * entry_2[1]) / (score_1 + score_2), - */ - __Pyx_XDECREF(__pyx_r); - - /* "openpifpaf/functional.pyx":423 + /* "functional.pyx":433 * - * return ( + * r = ( # xysv * (score_1 * entry_1[0] + score_2 * entry_2[0]) / (score_1 + score_2), # <<<<<<<<<<<<<< * (score_1 * entry_1[1] + score_2 * entry_2[1]) / (score_1 + score_2), * (score_1 * entry_1[3] + score_2 * entry_2[3]) / (score_1 + score_2), */ - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_t_15 = PyFloat_FromDouble((((__pyx_v_score_1 * (*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_4 * __pyx_v_entry_1.strides[0]) )))) + (__pyx_v_score_2 * (*((float *) ( /* dim=0 */ (__pyx_v_entry_2.data + __pyx_t_5 * __pyx_v_entry_2.strides[0]) ))))) / (__pyx_v_score_1 + __pyx_v_score_2))); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - - /* "openpifpaf/functional.pyx":424 - * return ( - * (score_1 * entry_1[0] + score_2 * entry_2[0]) / (score_1 + score_2), - * (score_1 * entry_1[1] + score_2 * entry_2[1]) / (score_1 + score_2), # <<<<<<<<<<<<<< - * (score_1 * entry_1[3] + score_2 * entry_2[3]) / (score_1 + score_2), - * 0.5 * (score_1 + score_2), - */ - __pyx_t_5 = 1; - __pyx_t_4 = 1; - __pyx_t_14 = PyFloat_FromDouble((((__pyx_v_score_1 * (*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_5 * __pyx_v_entry_1.strides[0]) )))) + (__pyx_v_score_2 * (*((float *) ( /* dim=0 */ (__pyx_v_entry_2.data + __pyx_t_4 * __pyx_v_entry_2.strides[0]) ))))) / (__pyx_v_score_1 + __pyx_v_score_2))); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); + __pyx_t_9.f0 = (((__pyx_v_score_1 * (__pyx_v_entry_1[0])) + (__pyx_v_score_2 * (__pyx_v_entry_2[0]))) / (__pyx_v_score_1 + __pyx_v_score_2)); + __pyx_t_9.f1 = (((__pyx_v_score_1 * (__pyx_v_entry_1[1])) + (__pyx_v_score_2 * (__pyx_v_entry_2[1]))) / (__pyx_v_score_1 + __pyx_v_score_2)); + __pyx_t_9.f2 = (((__pyx_v_score_1 * (__pyx_v_entry_1[3])) + (__pyx_v_score_2 * (__pyx_v_entry_2[3]))) / (__pyx_v_score_1 + __pyx_v_score_2)); + __pyx_t_9.f3 = (0.5 * (__pyx_v_score_1 + __pyx_v_score_2)); + __pyx_v_r = __pyx_t_9; - /* "openpifpaf/functional.pyx":425 - * (score_1 * entry_1[0] + score_2 * entry_2[0]) / (score_1 + score_2), - * (score_1 * entry_1[1] + score_2 * entry_2[1]) / (score_1 + score_2), - * (score_1 * entry_1[3] + score_2 * entry_2[3]) / (score_1 + score_2), # <<<<<<<<<<<<<< + /* "functional.pyx":438 * 0.5 * (score_1 + score_2), * ) + * return r # <<<<<<<<<<<<<< */ - __pyx_t_4 = 3; - __pyx_t_5 = 3; - __pyx_t_13 = PyFloat_FromDouble((((__pyx_v_score_1 * (*((float *) ( /* dim=0 */ (__pyx_v_entry_1.data + __pyx_t_4 * __pyx_v_entry_1.strides[0]) )))) + (__pyx_v_score_2 * (*((float *) ( /* dim=0 */ (__pyx_v_entry_2.data + __pyx_t_5 * __pyx_v_entry_2.strides[0]) ))))) / (__pyx_v_score_1 + __pyx_v_score_2))); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - - /* "openpifpaf/functional.pyx":426 - * (score_1 * entry_1[1] + score_2 * entry_2[1]) / (score_1 + score_2), - * (score_1 * entry_1[3] + score_2 * entry_2[3]) / (score_1 + score_2), - * 0.5 * (score_1 + score_2), # <<<<<<<<<<<<<< - * ) - */ - __pyx_t_12 = PyFloat_FromDouble((0.5 * (__pyx_v_score_1 + __pyx_v_score_2))); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 426, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - - /* "openpifpaf/functional.pyx":423 - * - * return ( - * (score_1 * entry_1[0] + score_2 * entry_2[0]) / (score_1 + score_2), # <<<<<<<<<<<<<< - * (score_1 * entry_1[1] + score_2 * entry_2[1]) / (score_1 + score_2), - * (score_1 * entry_1[3] + score_2 * entry_2[3]) / (score_1 + score_2), - */ - __pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_GIVEREF(__pyx_t_15); - PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_15); - __Pyx_GIVEREF(__pyx_t_14); - PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_14); - __Pyx_GIVEREF(__pyx_t_13); - PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_13); - __Pyx_GIVEREF(__pyx_t_12); - PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_12); - __pyx_t_15 = 0; - __pyx_t_14 = 0; - __pyx_t_13 = 0; - __pyx_t_12 = 0; - __pyx_r = __pyx_t_11; - __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_r); + __pyx_t_10 = __pyx_convert__to_py___pyx_ctuple_float__and_float__and_float__and_float(__pyx_v_r); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_r = __pyx_t_10; + __pyx_t_10 = 0; goto __pyx_L0; - /* "openpifpaf/functional.pyx":365 + /* "functional.pyx":368 * @cython.wraparound(False) * @cython.cdivision(True) * def grow_connection_blend(float[:, :] caf_field, float x, float y, float xy_scale, bint only_max=False): # <<<<<<<<<<<<<< @@ -8774,17 +8816,10 @@ __pyx_v_entry_2 = __pyx_t_9; /* function exit code */ __pyx_L1_error:; - __PYX_XDEC_MEMVIEW(&__pyx_t_9, 1); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_XDECREF(__pyx_t_12); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("openpifpaf.functional.grow_connection_blend", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("functional.grow_connection_blend", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __PYX_XDEC_MEMVIEW(&__pyx_v_entry_1, 1); - __PYX_XDEC_MEMVIEW(&__pyx_v_entry_2, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_caf_field, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -8994,7 +9029,7 @@ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __ * * if itemsize <= 0: */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 133, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -9026,7 +9061,7 @@ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __ * * if not isinstance(format, bytes): */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 136, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -9153,7 +9188,7 @@ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __ * * */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 148, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -9427,7 +9462,7 @@ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __ * * if self.dtype_is_object: */ - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 176, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -9671,7 +9706,7 @@ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(stru * info.buf = self.data * info.len = self.len */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 192, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -10405,7 +10440,7 @@ static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __p * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -10461,7 +10496,7 @@ static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -12171,7 +12206,7 @@ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setit * * have_slices, index = _unellipsify(index, self.view.ndim) */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 418, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -13219,7 +13254,7 @@ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview * else: * if len(self.view.format) == 1: */ - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 495, __pyx_L5_except_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 495, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -13581,7 +13616,7 @@ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbu * * if flags & PyBUF_ND: */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 520, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -14130,7 +14165,7 @@ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(st * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 570, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -14247,7 +14282,7 @@ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get_ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__15, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 577, __pyx_L1_error) + __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__14, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; @@ -15285,7 +15320,7 @@ static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struc * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -15341,7 +15376,7 @@ static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED st * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -16002,7 +16037,7 @@ static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __ * * */ - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 703, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -18186,7 +18221,7 @@ static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -18242,7 +18277,7 @@ static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUS * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -21931,7 +21966,7 @@ static PyBufferProcs __pyx_tp_as_buffer_array = { static PyTypeObject __pyx_type___pyx_array = { PyVarObject_HEAD_INIT(0, 0) - "openpifpaf.functional.array", /*tp_name*/ + "functional.array", /*tp_name*/ sizeof(struct __pyx_array_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_array, /*tp_dealloc*/ @@ -21990,12 +22025,15 @@ static PyTypeObject __pyx_type___pyx_array = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { @@ -22050,7 +22088,7 @@ static PyMethodDef __pyx_methods_Enum[] = { static PyTypeObject __pyx_type___pyx_MemviewEnum = { PyVarObject_HEAD_INIT(0, 0) - "openpifpaf.functional.Enum", /*tp_name*/ + "functional.Enum", /*tp_name*/ sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_Enum, /*tp_dealloc*/ @@ -22109,12 +22147,15 @@ static PyTypeObject __pyx_type___pyx_MemviewEnum = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview; @@ -22311,7 +22352,7 @@ static PyBufferProcs __pyx_tp_as_buffer_memoryview = { static PyTypeObject __pyx_type___pyx_memoryview = { PyVarObject_HEAD_INIT(0, 0) - "openpifpaf.functional.memoryview", /*tp_name*/ + "functional.memoryview", /*tp_name*/ sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_memoryview, /*tp_dealloc*/ @@ -22370,12 +22411,15 @@ static PyTypeObject __pyx_type___pyx_memoryview = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice; @@ -22449,7 +22493,7 @@ static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = { static PyTypeObject __pyx_type___pyx_memoryviewslice = { PyVarObject_HEAD_INIT(0, 0) - "openpifpaf.functional._memoryviewslice", /*tp_name*/ + "functional._memoryviewslice", /*tp_name*/ sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/ @@ -22516,25 +22560,28 @@ static PyTypeObject __pyx_type___pyx_memoryviewslice = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static PyMethodDef __pyx_methods[] = { - {"scalar_square_add_constant", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_1scalar_square_add_constant, METH_VARARGS|METH_KEYWORDS, 0}, - {"cumulative_average", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_3cumulative_average, METH_VARARGS|METH_KEYWORDS, 0}, - {"scalar_square_add_gauss", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_5scalar_square_add_gauss, METH_VARARGS|METH_KEYWORDS, 0}, - {"scalar_square_add_gauss_with_max", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_7scalar_square_add_gauss_with_max, METH_VARARGS|METH_KEYWORDS, 0}, - {"scalar_square_max_gauss", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_9scalar_square_max_gauss, METH_VARARGS|METH_KEYWORDS, 0}, - {"scalar_value", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_17scalar_value, METH_VARARGS|METH_KEYWORDS, 0}, - {"scalar_value_clipped", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_19scalar_value_clipped, METH_VARARGS|METH_KEYWORDS, 0}, - {"scalar_nonzero", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_21scalar_nonzero, METH_VARARGS|METH_KEYWORDS, 0}, - {"scalar_nonzero_clipped", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_23scalar_nonzero_clipped, METH_VARARGS|METH_KEYWORDS, 0}, - {"scalar_nonzero_clipped_with_reduction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10openpifpaf_10functional_25scalar_nonzero_clipped_with_reduction, METH_VARARGS|METH_KEYWORDS, 0}, + {"scalar_square_add_constant", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_1scalar_square_add_constant, METH_VARARGS|METH_KEYWORDS, 0}, + {"cumulative_average", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_3cumulative_average, METH_VARARGS|METH_KEYWORDS, 0}, + {"scalar_square_add_gauss", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_5scalar_square_add_gauss, METH_VARARGS|METH_KEYWORDS, 0}, + {"scalar_square_add_gauss_with_max", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_7scalar_square_add_gauss_with_max, METH_VARARGS|METH_KEYWORDS, 0}, + {"scalar_square_max_gauss", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_9scalar_square_max_gauss, METH_VARARGS|METH_KEYWORDS, 0}, + {"scalar_value", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_17scalar_value, METH_VARARGS|METH_KEYWORDS, 0}, + {"scalar_value_clipped", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_19scalar_value_clipped, METH_VARARGS|METH_KEYWORDS, 0}, + {"scalar_nonzero", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_21scalar_nonzero, METH_VARARGS|METH_KEYWORDS, 0}, + {"scalar_nonzero_clipped", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_23scalar_nonzero_clipped, METH_VARARGS|METH_KEYWORDS, 0}, + {"scalar_nonzero_clipped_with_reduction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_10functional_25scalar_nonzero_clipped_with_reduction, METH_VARARGS|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; @@ -22637,6 +22684,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1}, {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1}, {&__pyx_n_s_full, __pyx_k_full, sizeof(__pyx_k_full), 0, 0, 1, 1}, + {&__pyx_n_s_functional, __pyx_k_functional, sizeof(__pyx_k_functional), 0, 0, 1, 1}, + {&__pyx_kp_s_functional_pyx, __pyx_k_functional_pyx, sizeof(__pyx_k_functional_pyx), 0, 0, 1, 0}, {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0}, {&__pyx_n_s_grow_connection_blend, __pyx_k_grow_connection_blend, sizeof(__pyx_k_grow_connection_blend), 0, 0, 1, 1}, @@ -22665,8 +22714,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1}, {&__pyx_n_s_ones, __pyx_k_ones, sizeof(__pyx_k_ones), 0, 0, 1, 1}, {&__pyx_n_s_only_max, __pyx_k_only_max, sizeof(__pyx_k_only_max), 0, 0, 1, 1}, - {&__pyx_n_s_openpifpaf_functional, __pyx_k_openpifpaf_functional, sizeof(__pyx_k_openpifpaf_functional), 0, 0, 1, 1}, - {&__pyx_kp_s_openpifpaf_functional_pyx, __pyx_k_openpifpaf_functional_pyx, sizeof(__pyx_k_openpifpaf_functional_pyx), 0, 0, 1, 0}, {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1}, {&__pyx_n_s_paf_center, __pyx_k_paf_center, sizeof(__pyx_k_paf_center), 0, 0, 1, 1}, {&__pyx_n_s_paf_center_b, __pyx_k_paf_center_b, sizeof(__pyx_k_paf_center_b), 0, 0, 1, 1}, @@ -22757,28 +22804,17 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "openpifpaf/functional.pyx":310 + /* "functional.pyx":313 * result_i += 1 * * return result_np[:, :result_i] # <<<<<<<<<<<<<< * * */ - __pyx_slice__2 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__2)) __PYX_ERR(0, 310, __pyx_L1_error) + __pyx_slice__2 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__2)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__2); __Pyx_GIVEREF(__pyx_slice__2); - /* "openpifpaf/functional.pyx":406 - * - * if score_1 == 0.0: - * return 0.0, 0.0, 0.0, 0.0 # <<<<<<<<<<<<<< - * - * # only max - */ - __pyx_tuple__3 = PyTuple_Pack(4, __pyx_float_0_0, __pyx_float_0_0, __pyx_float_0_0, __pyx_float_0_0); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 406, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - /* "View.MemoryView":133 * * if not self.ndim: @@ -22786,9 +22822,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * * if itemsize <= 0: */ - __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 133, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__4); - __Pyx_GIVEREF(__pyx_tuple__4); + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__3); + __Pyx_GIVEREF(__pyx_tuple__3); /* "View.MemoryView":136 * @@ -22797,9 +22833,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * * if not isinstance(format, bytes): */ - __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 136, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__5); - __Pyx_GIVEREF(__pyx_tuple__5); + __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__4); + __Pyx_GIVEREF(__pyx_tuple__4); /* "View.MemoryView":148 * @@ -22808,9 +22844,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * * */ - __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__6); - __Pyx_GIVEREF(__pyx_tuple__6); + __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__5); + __Pyx_GIVEREF(__pyx_tuple__5); /* "View.MemoryView":176 * self.data = malloc(self.len) @@ -22819,9 +22855,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * * if self.dtype_is_object: */ - __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__7); - __Pyx_GIVEREF(__pyx_tuple__7); + __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__6); + __Pyx_GIVEREF(__pyx_tuple__6); /* "View.MemoryView":192 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS @@ -22830,9 +22866,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * info.buf = self.data * info.len = self.len */ - __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 192, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); + __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__7); + __Pyx_GIVEREF(__pyx_tuple__7); /* "(tree fragment)":2 * def __reduce_cython__(self): @@ -22840,18 +22876,18 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__9); - __Pyx_GIVEREF(__pyx_tuple__9); + __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__8); + __Pyx_GIVEREF(__pyx_tuple__8); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__10); - __Pyx_GIVEREF(__pyx_tuple__10); + __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__9); + __Pyx_GIVEREF(__pyx_tuple__9); /* "View.MemoryView":418 * def __setitem__(memoryview self, object index, object value): @@ -22860,9 +22896,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * * have_slices, index = _unellipsify(index, self.view.ndim) */ - __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_Cannot_assign_to_read_only_memor); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__11); - __Pyx_GIVEREF(__pyx_tuple__11); + __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_Cannot_assign_to_read_only_memor); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__10); + __Pyx_GIVEREF(__pyx_tuple__10); /* "View.MemoryView":495 * result = struct.unpack(self.view.format, bytesitem) @@ -22871,9 +22907,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * else: * if len(self.view.format) == 1: */ - __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 495, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__12); - __Pyx_GIVEREF(__pyx_tuple__12); + __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__11); + __Pyx_GIVEREF(__pyx_tuple__11); /* "View.MemoryView":520 * def __getbuffer__(self, Py_buffer *info, int flags): @@ -22882,9 +22918,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * * if flags & PyBUF_ND: */ - __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_Cannot_create_writable_memory_vi); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__13); - __Pyx_GIVEREF(__pyx_tuple__13); + __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_Cannot_create_writable_memory_vi); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__12); + __Pyx_GIVEREF(__pyx_tuple__12); /* "View.MemoryView":570 * if self.view.strides == NULL: @@ -22893,9 +22929,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ - __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 570, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__14); - __Pyx_GIVEREF(__pyx_tuple__14); + __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__13); + __Pyx_GIVEREF(__pyx_tuple__13); /* "View.MemoryView":577 * def suboffsets(self): @@ -22904,12 +22940,12 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ - __pyx_tuple__15 = PyTuple_New(1); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__15); + __pyx_tuple__14 = PyTuple_New(1); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__14); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); - PyTuple_SET_ITEM(__pyx_tuple__15, 0, __pyx_int_neg_1); - __Pyx_GIVEREF(__pyx_tuple__15); + PyTuple_SET_ITEM(__pyx_tuple__14, 0, __pyx_int_neg_1); + __Pyx_GIVEREF(__pyx_tuple__14); /* "(tree fragment)":2 * def __reduce_cython__(self): @@ -22917,18 +22953,18 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__16); - __Pyx_GIVEREF(__pyx_tuple__16); + __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__15); + __Pyx_GIVEREF(__pyx_tuple__15); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__17); - __Pyx_GIVEREF(__pyx_tuple__17); + __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__16); + __Pyx_GIVEREF(__pyx_tuple__16); /* "View.MemoryView":703 * for suboffset in suboffsets[:ndim]: @@ -22937,112 +22973,112 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * * */ - __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__18); - __Pyx_GIVEREF(__pyx_tuple__18); - + __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__17); + __Pyx_GIVEREF(__pyx_tuple__17); + /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__19); - __Pyx_GIVEREF(__pyx_tuple__19); + __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__18); + __Pyx_GIVEREF(__pyx_tuple__18); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__20); - __Pyx_GIVEREF(__pyx_tuple__20); + __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__19); + __Pyx_GIVEREF(__pyx_tuple__19); - /* "openpifpaf/functional.pyx":175 + /* "functional.pyx":178 * @cython.wraparound(False) * @cython.cdivision(True) * def weiszfeld_nd(x_np, y_np, float[:] weights=None, float epsilon=1e-8, Py_ssize_t max_steps=20): # <<<<<<<<<<<<<< * """Weighted Weiszfeld algorithm.""" * if weights is None: */ - __pyx_tuple__21 = PyTuple_Pack(16, __pyx_n_s_x_np, __pyx_n_s_y_np, __pyx_n_s_weights, __pyx_n_s_epsilon, __pyx_n_s_max_steps, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_weights_x, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_prev_y, __pyx_n_s_y_top, __pyx_n_s_y_bottom, __pyx_n_s_denom_np, __pyx_n_s_denom, __pyx_n_s_s); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__21); - __Pyx_GIVEREF(__pyx_tuple__21); - __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(5, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_openpifpaf_functional_pyx, __pyx_n_s_weiszfeld_nd, 175, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 175, __pyx_L1_error) + __pyx_tuple__20 = PyTuple_Pack(16, __pyx_n_s_x_np, __pyx_n_s_y_np, __pyx_n_s_weights, __pyx_n_s_epsilon, __pyx_n_s_max_steps, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_weights_x, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_prev_y, __pyx_n_s_y_top, __pyx_n_s_y_bottom, __pyx_n_s_denom_np, __pyx_n_s_denom, __pyx_n_s_s); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__20); + __Pyx_GIVEREF(__pyx_tuple__20); + __pyx_codeobj__21 = (PyObject*)__Pyx_PyCode_New(5, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__20, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_functional_pyx, __pyx_n_s_weiszfeld_nd, 178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__21)) __PYX_ERR(0, 178, __pyx_L1_error) - /* "openpifpaf/functional.pyx":216 + /* "functional.pyx":219 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_mask_center(float[:, :] paf_field, float x, float y, float sigma=1.0): # <<<<<<<<<<<<<< * mask_np = np.zeros((paf_field.shape[1],), dtype=np.uint8) * cdef unsigned char[:] mask = mask_np */ - __pyx_tuple__23 = PyTuple_Pack(7, __pyx_n_s_paf_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_sigma, __pyx_n_s_mask_np, __pyx_n_s_mask, __pyx_n_s_i); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__23); - __Pyx_GIVEREF(__pyx_tuple__23); - __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_openpifpaf_functional_pyx, __pyx_n_s_paf_mask_center, 216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 216, __pyx_L1_error) + __pyx_tuple__22 = PyTuple_Pack(7, __pyx_n_s_paf_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_sigma, __pyx_n_s_mask_np, __pyx_n_s_mask, __pyx_n_s_i); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__22); + __Pyx_GIVEREF(__pyx_tuple__22); + __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_functional_pyx, __pyx_n_s_paf_mask_center, 219, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(0, 219, __pyx_L1_error) - /* "openpifpaf/functional.pyx":233 + /* "functional.pyx":236 * @cython.boundscheck(False) * @cython.wraparound(False) * def scalar_values(float[:, :] field, float[:] x, float[:] y, float default=-1): # <<<<<<<<<<<<<< * values_np = np.full((x.shape[0],), default, dtype=np.float32) * cdef float[:] values = values_np */ - __pyx_tuple__25 = PyTuple_Pack(9, __pyx_n_s_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_default, __pyx_n_s_values_np, __pyx_n_s_values, __pyx_n_s_maxx, __pyx_n_s_maxy, __pyx_n_s_i); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 233, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__25); - __Pyx_GIVEREF(__pyx_tuple__25); - __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(4, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_openpifpaf_functional_pyx, __pyx_n_s_scalar_values, 233, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 233, __pyx_L1_error) + __pyx_tuple__24 = PyTuple_Pack(9, __pyx_n_s_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_default, __pyx_n_s_values_np, __pyx_n_s_values, __pyx_n_s_maxx, __pyx_n_s_maxy, __pyx_n_s_i); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__24); + __Pyx_GIVEREF(__pyx_tuple__24); + __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(4, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__24, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_functional_pyx, __pyx_n_s_scalar_values, 236, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__25)) __PYX_ERR(0, 236, __pyx_L1_error) - /* "openpifpaf/functional.pyx":291 + /* "functional.pyx":294 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_center_b(float[:, :] paf_field, float x, float y, float sigma=1.0): # <<<<<<<<<<<<<< * result_np = np.empty_like(paf_field) * cdef float[:, :] result = result_np */ - __pyx_tuple__27 = PyTuple_Pack(9, __pyx_n_s_paf_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_sigma, __pyx_n_s_result_np, __pyx_n_s_result, __pyx_n_s_result_i, __pyx_n_s_take, __pyx_n_s_i); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__27); - __Pyx_GIVEREF(__pyx_tuple__27); - __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(4, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_openpifpaf_functional_pyx, __pyx_n_s_paf_center_b, 291, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_tuple__26 = PyTuple_Pack(9, __pyx_n_s_paf_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_sigma, __pyx_n_s_result_np, __pyx_n_s_result, __pyx_n_s_result_i, __pyx_n_s_take, __pyx_n_s_i); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__26); + __Pyx_GIVEREF(__pyx_tuple__26); + __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(4, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_functional_pyx, __pyx_n_s_paf_center_b, 294, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(0, 294, __pyx_L1_error) - /* "openpifpaf/functional.pyx":315 + /* "functional.pyx":318 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_center(float[:, :] paf_field, float x, float y, float sigma): # <<<<<<<<<<<<<< * result_np = np.empty_like(paf_field) * cdef float[:, :] result = result_np */ - __pyx_tuple__29 = PyTuple_Pack(9, __pyx_n_s_paf_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_sigma, __pyx_n_s_result_np, __pyx_n_s_result, __pyx_n_s_result_i, __pyx_n_s_take, __pyx_n_s_i); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__29); - __Pyx_GIVEREF(__pyx_tuple__29); - __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(4, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_openpifpaf_functional_pyx, __pyx_n_s_paf_center, 315, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_tuple__28 = PyTuple_Pack(9, __pyx_n_s_paf_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_sigma, __pyx_n_s_result_np, __pyx_n_s_result, __pyx_n_s_result_i, __pyx_n_s_take, __pyx_n_s_i); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__28); + __Pyx_GIVEREF(__pyx_tuple__28); + __pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(4, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_functional_pyx, __pyx_n_s_paf_center, 318, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__29)) __PYX_ERR(0, 318, __pyx_L1_error) - /* "openpifpaf/functional.pyx":340 + /* "functional.pyx":343 * @cython.boundscheck(False) * @cython.wraparound(False) * def caf_center_s(float[:, :] caf_field, float x, float y, float sigma): # <<<<<<<<<<<<<< * result_np = np.empty_like(caf_field) * cdef float[:, :] result = result_np */ - __pyx_tuple__31 = PyTuple_Pack(8, __pyx_n_s_caf_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_sigma, __pyx_n_s_result_np, __pyx_n_s_result, __pyx_n_s_result_i, __pyx_n_s_i); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 340, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__31); - __Pyx_GIVEREF(__pyx_tuple__31); - __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_openpifpaf_functional_pyx, __pyx_n_s_caf_center_s, 340, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 340, __pyx_L1_error) + __pyx_tuple__30 = PyTuple_Pack(8, __pyx_n_s_caf_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_sigma, __pyx_n_s_result_np, __pyx_n_s_result, __pyx_n_s_result_i, __pyx_n_s_i); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__30); + __Pyx_GIVEREF(__pyx_tuple__30); + __pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__30, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_functional_pyx, __pyx_n_s_caf_center_s, 343, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__31)) __PYX_ERR(0, 343, __pyx_L1_error) - /* "openpifpaf/functional.pyx":365 + /* "functional.pyx":368 * @cython.wraparound(False) * @cython.cdivision(True) * def grow_connection_blend(float[:, :] caf_field, float x, float y, float xy_scale, bint only_max=False): # <<<<<<<<<<<<<< * """Blending the top two candidates with a weighted average. * */ - __pyx_tuple__33 = PyTuple_Pack(18, __pyx_n_s_caf_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_xy_scale, __pyx_n_s_only_max, __pyx_n_s_sigma_filter, __pyx_n_s_sigma2, __pyx_n_s_d2, __pyx_n_s_v, __pyx_n_s_score, __pyx_n_s_score_1_i, __pyx_n_s_score_2_i, __pyx_n_s_score_1, __pyx_n_s_score_2, __pyx_n_s_i, __pyx_n_s_entry_1, __pyx_n_s_entry_2, __pyx_n_s_blend_d2); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 365, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__33); - __Pyx_GIVEREF(__pyx_tuple__33); - __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(5, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_openpifpaf_functional_pyx, __pyx_n_s_grow_connection_blend, 365, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 365, __pyx_L1_error) + __pyx_tuple__32 = PyTuple_Pack(19, __pyx_n_s_caf_field, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_xy_scale, __pyx_n_s_only_max, __pyx_n_s_sigma_filter, __pyx_n_s_sigma2, __pyx_n_s_d2, __pyx_n_s_v, __pyx_n_s_score, __pyx_n_s_score_1_i, __pyx_n_s_score_2_i, __pyx_n_s_score_1, __pyx_n_s_score_2, __pyx_n_s_i, __pyx_n_s_r, __pyx_n_s_entry_1, __pyx_n_s_entry_2, __pyx_n_s_blend_d2); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__32); + __Pyx_GIVEREF(__pyx_tuple__32); + __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(5, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__32, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_functional_pyx, __pyx_n_s_grow_connection_blend, 368, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(0, 368, __pyx_L1_error) /* "View.MemoryView":286 * return self.name @@ -23051,9 +23087,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * cdef strided = Enum("") # default * cdef indirect = Enum("") */ - __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(1, 286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__35); - __Pyx_GIVEREF(__pyx_tuple__35); + __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(1, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__34); + __Pyx_GIVEREF(__pyx_tuple__34); /* "View.MemoryView":287 * @@ -23062,9 +23098,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * cdef indirect = Enum("") * */ - __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(1, 287, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__36); - __Pyx_GIVEREF(__pyx_tuple__36); + __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(1, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__35); + __Pyx_GIVEREF(__pyx_tuple__35); /* "View.MemoryView":288 * cdef generic = Enum("") @@ -23073,9 +23109,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * * */ - __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(1, 288, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__37); - __Pyx_GIVEREF(__pyx_tuple__37); + __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(1, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__36); + __Pyx_GIVEREF(__pyx_tuple__36); /* "View.MemoryView":291 * @@ -23084,9 +23120,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * cdef indirect_contiguous = Enum("") * */ - __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(1, 291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__38); - __Pyx_GIVEREF(__pyx_tuple__38); + __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(1, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__37); + __Pyx_GIVEREF(__pyx_tuple__37); /* "View.MemoryView":292 * @@ -23095,19 +23131,19 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * * */ - __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(1, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__39); - __Pyx_GIVEREF(__pyx_tuple__39); + __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(1, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__38); + __Pyx_GIVEREF(__pyx_tuple__38); /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ - __pyx_tuple__40 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__40); - __Pyx_GIVEREF(__pyx_tuple__40); - __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_tuple__39 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__39); + __Pyx_GIVEREF(__pyx_tuple__39); + __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -23117,7 +23153,6 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); - __pyx_float_0_0 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_float_0_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(0, 1, __pyx_L1_error) @@ -23400,11 +23435,9 @@ if (!__Pyx_RefNanny) { #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS PyEval_InitThreads(); #endif - #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; @@ -23429,14 +23462,14 @@ if (!__Pyx_RefNanny) { #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif - if (__pyx_module_is_main_openpifpaf__functional) { + if (__pyx_module_is_main_functional) { if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) } #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) - if (!PyDict_GetItemString(modules, "openpifpaf.functional")) { - if (unlikely(PyDict_SetItemString(modules, "openpifpaf.functional", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "functional")) { + if (unlikely(PyDict_SetItemString(modules, "functional", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) } } #endif @@ -23457,107 +23490,107 @@ if (!__Pyx_RefNanny) { if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif - /* "openpifpaf/functional.pyx":4 + /* "functional.pyx":4 * cimport cython * from libc.math cimport exp, fabs, sqrt, fmin, fmax * import numpy as np # <<<<<<<<<<<<<< * * */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "openpifpaf/functional.pyx":175 + /* "functional.pyx":178 * @cython.wraparound(False) * @cython.cdivision(True) * def weiszfeld_nd(x_np, y_np, float[:] weights=None, float epsilon=1e-8, Py_ssize_t max_steps=20): # <<<<<<<<<<<<<< * """Weighted Weiszfeld algorithm.""" * if weights is None: */ - __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(0, 175, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(0, 178, __pyx_L1_error) __pyx_k_ = __pyx_t_2; __pyx_t_2.memview = NULL; __pyx_t_2.data = NULL; - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10openpifpaf_10functional_11weiszfeld_nd, NULL, __pyx_n_s_openpifpaf_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 175, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10functional_11weiszfeld_nd, NULL, __pyx_n_s_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_weiszfeld_nd, __pyx_t_1) < 0) __PYX_ERR(0, 175, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_weiszfeld_nd, __pyx_t_1) < 0) __PYX_ERR(0, 178, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "openpifpaf/functional.pyx":216 + /* "functional.pyx":219 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_mask_center(float[:, :] paf_field, float x, float y, float sigma=1.0): # <<<<<<<<<<<<<< * mask_np = np.zeros((paf_field.shape[1],), dtype=np.uint8) * cdef unsigned char[:] mask = mask_np */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10openpifpaf_10functional_13paf_mask_center, NULL, __pyx_n_s_openpifpaf_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 216, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10functional_13paf_mask_center, NULL, __pyx_n_s_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_paf_mask_center, __pyx_t_1) < 0) __PYX_ERR(0, 216, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_paf_mask_center, __pyx_t_1) < 0) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "openpifpaf/functional.pyx":233 + /* "functional.pyx":236 * @cython.boundscheck(False) * @cython.wraparound(False) * def scalar_values(float[:, :] field, float[:] x, float[:] y, float default=-1): # <<<<<<<<<<<<<< * values_np = np.full((x.shape[0],), default, dtype=np.float32) * cdef float[:] values = values_np */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10openpifpaf_10functional_15scalar_values, NULL, __pyx_n_s_openpifpaf_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 233, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10functional_15scalar_values, NULL, __pyx_n_s_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_scalar_values, __pyx_t_1) < 0) __PYX_ERR(0, 233, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_scalar_values, __pyx_t_1) < 0) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "openpifpaf/functional.pyx":291 + /* "functional.pyx":294 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_center_b(float[:, :] paf_field, float x, float y, float sigma=1.0): # <<<<<<<<<<<<<< * result_np = np.empty_like(paf_field) * cdef float[:, :] result = result_np */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10openpifpaf_10functional_27paf_center_b, NULL, __pyx_n_s_openpifpaf_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10functional_27paf_center_b, NULL, __pyx_n_s_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_paf_center_b, __pyx_t_1) < 0) __PYX_ERR(0, 291, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_paf_center_b, __pyx_t_1) < 0) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "openpifpaf/functional.pyx":315 + /* "functional.pyx":318 * @cython.boundscheck(False) * @cython.wraparound(False) * def paf_center(float[:, :] paf_field, float x, float y, float sigma): # <<<<<<<<<<<<<< * result_np = np.empty_like(paf_field) * cdef float[:, :] result = result_np */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10openpifpaf_10functional_29paf_center, NULL, __pyx_n_s_openpifpaf_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10functional_29paf_center, NULL, __pyx_n_s_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_paf_center, __pyx_t_1) < 0) __PYX_ERR(0, 315, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_paf_center, __pyx_t_1) < 0) __PYX_ERR(0, 318, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "openpifpaf/functional.pyx":340 + /* "functional.pyx":343 * @cython.boundscheck(False) * @cython.wraparound(False) * def caf_center_s(float[:, :] caf_field, float x, float y, float sigma): # <<<<<<<<<<<<<< * result_np = np.empty_like(caf_field) * cdef float[:, :] result = result_np */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10openpifpaf_10functional_31caf_center_s, NULL, __pyx_n_s_openpifpaf_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 340, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10functional_31caf_center_s, NULL, __pyx_n_s_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_caf_center_s, __pyx_t_1) < 0) __PYX_ERR(0, 340, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_caf_center_s, __pyx_t_1) < 0) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "openpifpaf/functional.pyx":365 + /* "functional.pyx":368 * @cython.wraparound(False) * @cython.cdivision(True) * def grow_connection_blend(float[:, :] caf_field, float x, float y, float xy_scale, bint only_max=False): # <<<<<<<<<<<<<< * """Blending the top two candidates with a weighted average. * */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10openpifpaf_10functional_33grow_connection_blend, NULL, __pyx_n_s_openpifpaf_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 365, __pyx_L1_error) + __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10functional_33grow_connection_blend, NULL, __pyx_n_s_functional); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_grow_connection_blend, __pyx_t_1) < 0) __PYX_ERR(0, 365, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_grow_connection_blend, __pyx_t_1) < 0) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "openpifpaf/functional.pyx":1 + /* "functional.pyx":1 * # cython: infer_types=True # <<<<<<<<<<<<<< * cimport cython * from libc.math cimport exp, fabs, sqrt, fmin, fmax @@ -23587,7 +23620,7 @@ if (!__Pyx_RefNanny) { * cdef strided = Enum("") # default * cdef indirect = Enum("") */ - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 286, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XGOTREF(generic); __Pyx_DECREF_SET(generic, __pyx_t_1); @@ -23601,7 +23634,7 @@ if (!__Pyx_RefNanny) { * cdef indirect = Enum("") * */ - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 287, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XGOTREF(strided); __Pyx_DECREF_SET(strided, __pyx_t_1); @@ -23615,7 +23648,7 @@ if (!__Pyx_RefNanny) { * * */ - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 288, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XGOTREF(indirect); __Pyx_DECREF_SET(indirect, __pyx_t_1); @@ -23629,7 +23662,7 @@ if (!__Pyx_RefNanny) { * cdef indirect_contiguous = Enum("") * */ - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XGOTREF(contiguous); __Pyx_DECREF_SET(contiguous, __pyx_t_1); @@ -23643,7 +23676,7 @@ if (!__Pyx_RefNanny) { * * */ - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 292, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XGOTREF(indirect_contiguous); __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_1); @@ -23728,11 +23761,11 @@ if (!__Pyx_RefNanny) { __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1); if (__pyx_m) { if (__pyx_d) { - __Pyx_AddTraceback("init openpifpaf.functional", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("init functional", __pyx_clineno, __pyx_lineno, __pyx_filename); } Py_CLEAR(__pyx_m); } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init openpifpaf.functional"); + PyErr_SetString(PyExc_ImportError, "init functional"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); @@ -24364,7 +24397,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; - ternaryfunc call = func->ob_type->tp_call; + ternaryfunc call = Py_TYPE(func)->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) @@ -24451,7 +24484,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); #if CYTHON_FAST_PYCCALL - } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { + } else if (__Pyx_PyFastCFunction_Check(func)) { return __Pyx_PyCFunction_FastCall(func, &arg, 1); #endif } @@ -24960,7 +24993,7 @@ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int #endif } -/* None */ +/* DivInt[Py_ssize_t] */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) { Py_ssize_t q = a / b; Py_ssize_t r = a - q*b; @@ -25539,7 +25572,7 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED } #endif -/* None */ +/* DivInt[long] */ static CYTHON_INLINE long __Pyx_div_long(long a, long b) { long q = a / b; long r = a - q*b; @@ -25785,7 +25818,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int } if (!use_cline) { c_line = 0; - PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; @@ -25882,30 +25915,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; + PyCodeObject *py_code = NULL; + PyObject *py_funcname = NULL; #if PY_MAJOR_VERSION < 3 + PyObject *py_srcfile = NULL; py_srcfile = PyString_FromString(filename); - #else - py_srcfile = PyUnicode_FromString(filename); - #endif if (!py_srcfile) goto bad; + #endif if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; + funcname = PyUnicode_AsUTF8(py_funcname); + if (!funcname) goto bad; #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); + if (!py_funcname) goto bad; #endif } - if (!py_funcname) goto bad; + #if PY_MAJOR_VERSION < 3 py_code = __Pyx_PyCode_New( 0, 0, @@ -25924,11 +25958,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); - Py_DECREF(py_funcname); + #else + py_code = PyCode_NewEmpty(filename, funcname, py_line); + #endif + Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline return py_code; bad: - Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_srcfile); + #endif return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, @@ -26879,37 +26918,6 @@ static int __Pyx_ValidateAndInit_memviewslice( return (target_type) value;\ } -/* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } -} - /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get_float(const char *itemp) { return (PyObject *) PyFloat_FromDouble(*(float *) itemp); @@ -26922,66 +26930,51 @@ static CYTHON_INLINE int __pyx_memview_set_float(const char *itemp, PyObject *ob return 1; } -/* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) { - const unsigned char neg_one = (unsigned char) ((unsigned char) 0 - (unsigned char) 1), const_zero = (unsigned char) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(unsigned char) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(unsigned char) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(unsigned char) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(unsigned char), - little, !is_unsigned); +/* ObjectToMemviewSlice */ + static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_unsigned_char(PyObject *obj, int writable_flag) { + __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_BufFmt_StackElem stack[1]; + int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) }; + int retcode; + if (obj == Py_None) { + result.memview = (struct __pyx_memoryview_obj *) Py_None; + return result; } + retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0, + PyBUF_RECORDS_RO | writable_flag, 1, + &__Pyx_TypeInfo_unsigned_char, stack, + &result, obj); + if (unlikely(retcode == -1)) + goto __pyx_fail; + return result; +__pyx_fail: + result.memview = NULL; + result.data = NULL; + return result; } -/* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) { - const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(unsigned int) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(unsigned int) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(unsigned int), - little, !is_unsigned); - } +/* ToPyCTupleUtility */ + static PyObject* __pyx_convert__to_py___pyx_ctuple_float__and_float__and_float__and_float(__pyx_ctuple_float__and_float__and_float__and_float value) { + PyObject* item = NULL; + PyObject* result = PyTuple_New(4); + if (!result) goto bad; + item = PyFloat_FromDouble(value.f0); + if (!item) goto bad; + PyTuple_SET_ITEM(result, 0, item); + item = PyFloat_FromDouble(value.f1); + if (!item) goto bad; + PyTuple_SET_ITEM(result, 1, item); + item = PyFloat_FromDouble(value.f2); + if (!item) goto bad; + PyTuple_SET_ITEM(result, 2, item); + item = PyFloat_FromDouble(value.f3); + if (!item) goto bad; + PyTuple_SET_ITEM(result, 3, item); + return result; +bad: + Py_XDECREF(item); + Py_XDECREF(result); + return NULL; } /* MemviewSliceCopyTemplate */ @@ -27053,7 +27046,14 @@ __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, /* CIntFromPy */ static CYTHON_INLINE unsigned char __Pyx_PyInt_As_unsigned_char(PyObject *x) { - const unsigned char neg_one = (unsigned char) ((unsigned char) 0 - (unsigned char) 1), const_zero = (unsigned char) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const unsigned char neg_one = (unsigned char) -1, const_zero = (unsigned char) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -27240,9 +27240,130 @@ __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, return (unsigned char) -1; } +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(long) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(long), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const unsigned char neg_one = (unsigned char) -1, const_zero = (unsigned char) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(unsigned char) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(unsigned char) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(unsigned char) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(unsigned char), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(unsigned int) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(unsigned int) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(unsigned int), + little, !is_unsigned); + } +} + /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -27431,7 +27552,14 @@ __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -27620,7 +27748,14 @@ __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(int) < sizeof(long)) { @@ -27651,7 +27786,14 @@ __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, /* CIntFromPy */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) { - const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const char neg_one = (char) -1, const_zero = (char) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -27838,29 +27980,6 @@ __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, return (char) -1; } -/* ObjectToMemviewSlice */ - static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_unsigned_char(PyObject *obj, int writable_flag) { - __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; - __Pyx_BufFmt_StackElem stack[1]; - int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) }; - int retcode; - if (obj == Py_None) { - result.memview = (struct __pyx_memoryview_obj *) Py_None; - return result; - } - retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0, - PyBUF_RECORDS_RO | writable_flag, 1, - &__Pyx_TypeInfo_unsigned_char, stack, - &result, obj); - if (unlikely(retcode == -1)) - goto __pyx_fail; - return result; -__pyx_fail: - result.memview = NULL; - result.data = NULL; - return result; -} - /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; @@ -28125,6 +28244,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_DECREF(x); return ival; } +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { + if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { + return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); +#if PY_MAJOR_VERSION < 3 + } else if (likely(PyInt_CheckExact(o))) { + return PyInt_AS_LONG(o); +#endif + } else { + Py_ssize_t ival; + PyObject *x; + x = PyNumber_Index(o); + if (!x) return -1; + ival = PyInt_AsLong(x); + Py_DECREF(x); + return ival; + } +} static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } diff --git a/functional.pyx b/functional.pyx new file mode 100644 index 0000000..ee24dca --- /dev/null +++ b/functional.pyx @@ -0,0 +1,438 @@ +# cython: infer_types=True +cimport cython +from libc.math cimport exp, fabs, sqrt, fmin, fmax +import numpy as np + + +@cython.boundscheck(False) +@cython.wraparound(False) +cpdef void scalar_square_add_constant(float[:, :] field, float[:] x, float[:] y, float[:] width, float[:] v) nogil: + cdef long minx, miny, maxx, maxy + cdef Py_ssize_t i, xx, yy + cdef float cx, cy, cv, cwidth + + for i in range(x.shape[0]): + cx = x[i] + cy = y[i] + cv = v[i] + cwidth = width[i] + + minx = (clip(cx - cwidth, 0, field.shape[1] - 1)) + maxx = (clip(cx + cwidth, minx + 1, field.shape[1])) + miny = (clip(cy - cwidth, 0, field.shape[0] - 1)) + maxy = (clip(cy + cwidth, miny + 1, field.shape[0])) + for xx in range(minx, maxx): + for yy in range(miny, maxy): + field[yy, xx] += cv + + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) +cpdef void cumulative_average(float[:, :] cuma, float[:, :] cumw, float[:] x, float[:] y, float[:] width, float[:] v, float[:] w) nogil: + cdef long minx, miny, maxx, maxy + cdef float cv, cw, cx, cy, cwidth + cdef Py_ssize_t i, xx, yy + + for i in range(x.shape[0]): + cw = w[i] + if cw <= 0.0: + continue + + cv = v[i] + cx = x[i] + cy = y[i] + cwidth = width[i] + + minx = (clip(cx - cwidth, 0, cuma.shape[1] - 1)) + maxx = (clip(cx + cwidth, minx + 1, cuma.shape[1])) + miny = (clip(cy - cwidth, 0, cuma.shape[0] - 1)) + maxy = (clip(cy + cwidth, miny + 1, cuma.shape[0])) + for xx in range(minx, maxx): + for yy in range(miny, maxy): + cuma[yy, xx] = (cw * cv + cumw[yy, xx] * cuma[yy, xx]) / (cumw[yy, xx] + cw) + cumw[yy, xx] += cw + + +cdef inline float approx_exp(float x) nogil: + if x > 2.0 or x < -2.0: + return 0.0 + x = 1.0 + x / 8.0 + x *= x + x *= x + x *= x + return x + + +cdef inline float clip(float v, float minv, float maxv) nogil: + return fmax(minv, fmin(maxv, v)) + + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) +cpdef void scalar_square_add_gauss(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0) nogil: + cdef Py_ssize_t i, xx, yy + cdef float vv, deltax2, deltay2 + cdef float cv, cx, cy, csigma, csigma2 + cdef long minx, miny, maxx, maxy + + for i in range(x.shape[0]): + csigma = sigma[i] + csigma2 = csigma * csigma + cx = x[i] + cy = y[i] + cv = v[i] + + minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) + maxx = (clip(cx + truncate * csigma, minx + 1, field.shape[1])) + miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) + maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) + for xx in range(minx, maxx): + deltax2 = (xx - cx)**2 + for yy in range(miny, maxy): + deltay2 = (yy - cy)**2 + + if deltax2 < 0.25 and deltay2 < 0.25: + # this is the closest pixel + vv = cv + else: + vv = cv * approx_exp(-0.5 * (deltax2 + deltay2) / csigma2) + + field[yy, xx] += vv + + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) +cpdef void scalar_square_add_gauss_with_max(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0, float max_value=1.0) nogil: + cdef Py_ssize_t i, xx, yy + cdef float vv, deltax2, deltay2 + cdef float cv, cx, cy, csigma, csigma2 + cdef long minx, miny, maxx, maxy + cdef float truncate2 = truncate * truncate + cdef float truncate_csigma, truncate2_csigma2 + + for i in range(x.shape[0]): + csigma = sigma[i] + csigma2 = csigma * csigma + truncate_csigma = truncate * csigma + truncate2_csigma2 = truncate2 * csigma2 + cx = x[i] + cy = y[i] + cv = v[i] + + minx = (clip(cx - truncate_csigma, 0, field.shape[1] - 1)) + maxx = (clip(cx + truncate_csigma + 1, minx + 1, field.shape[1])) + miny = (clip(cy - truncate_csigma, 0, field.shape[0] - 1)) + maxy = (clip(cy + truncate_csigma + 1, miny + 1, field.shape[0])) + for xx in range(minx, maxx): + deltax2 = (xx - cx)**2 + for yy in range(miny, maxy): + deltay2 = (yy - cy)**2 + + if deltax2 + deltay2 > truncate2_csigma2: + continue + + if deltax2 < 0.25 and deltay2 < 0.25: + # this is the closest pixel + vv = cv + else: + vv = cv * approx_exp(-0.5 * (deltax2 + deltay2) / csigma2) + + field[yy, xx] += vv + field[yy, xx] = min(max_value, field[yy, xx]) + + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) +cpdef void scalar_square_max_gauss(float[:, :] field, float[:] x, float[:] y, float[:] sigma, float[:] v, float truncate=2.0) nogil: + cdef Py_ssize_t i, xx, yy + cdef float vv, deltax2, deltay2 + cdef float cv, cx, cy, csigma, csigma2 + cdef long minx, miny, maxx, maxy + + for i in range(x.shape[0]): + csigma = sigma[i] + csigma2 = csigma * csigma + cx = x[i] + cy = y[i] + cv = v[i] + + minx = (clip(cx - truncate * csigma, 0, field.shape[1] - 1)) + maxx = (clip(cx + truncate * csigma, minx + 1, field.shape[1])) + miny = (clip(cy - truncate * csigma, 0, field.shape[0] - 1)) + maxy = (clip(cy + truncate * csigma, miny + 1, field.shape[0])) + for xx in range(minx, maxx): + deltax2 = (xx - cx)**2 + for yy in range(miny, maxy): + deltay2 = (yy - cy)**2 + vv = cv * approx_exp(-0.5 * (deltax2 + deltay2) / csigma2) + field[yy, xx] = fmax(field[yy, xx], vv) + + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) +def weiszfeld_nd(x_np, y_np, float[:] weights=None, float epsilon=1e-8, Py_ssize_t max_steps=20): + """Weighted Weiszfeld algorithm.""" + if weights is None: + weights = np.ones(x_np.shape[0]) + + cdef float[:, :] x = x_np + cdef float[:] y = y_np + cdef float[:, :] weights_x = np.zeros_like(x) + for i in range(weights_x.shape[0]): + for j in range(weights_x.shape[1]): + weights_x[i, j] = weights[i] * x[i, j] + + cdef float[:] prev_y = np.zeros_like(y) + cdef float[:] y_top = np.zeros_like(y) + cdef float y_bottom + denom_np = np.zeros_like(weights) + cdef float[:] denom = denom_np + + for s in range(max_steps): + prev_y[:] = y + + for i in range(denom.shape[0]): + denom[i] = sqrt((x[i][0] - prev_y[0])**2 + (x[i][1] - prev_y[1])**2) + epsilon + + y_top[:] = 0.0 + y_bottom = 0.0 + for j in range(denom.shape[0]): + y_top[0] += weights_x[j, 0] / denom[j] + y_top[1] += weights_x[j, 1] / denom[j] + y_bottom += weights[j] / denom[j] + y[0] = y_top[0] / y_bottom + y[1] = y_top[1] / y_bottom + + if fabs(y[0] - prev_y[0]) + fabs(y[1] - prev_y[1]) < 1e-2: + return y_np, denom_np + + return y_np, denom_np + + +@cython.boundscheck(False) +@cython.wraparound(False) +def paf_mask_center(float[:, :] paf_field, float x, float y, float sigma=1.0): + mask_np = np.zeros((paf_field.shape[1],), dtype=np.uint8) + cdef unsigned char[:] mask = mask_np + + for i in range(mask.shape[0]): + mask[i] = ( + paf_field[1, i] > x - sigma * paf_field[3, i] and + paf_field[1, i] < x + sigma * paf_field[3, i] and + paf_field[2, i] > y - sigma * paf_field[3, i] and + paf_field[2, i] < y + sigma * paf_field[3, i] + ) + + return mask_np != 0 + + +@cython.boundscheck(False) +@cython.wraparound(False) +def scalar_values(float[:, :] field, float[:] x, float[:] y, float default=-1): + values_np = np.full((x.shape[0],), default, dtype=np.float32) + cdef float[:] values = values_np + cdef float maxx = field.shape[1] - 1, maxy = field.shape[0] - 1 + + for i in range(values.shape[0]): + if x[i] < 0.0 or y[i] < 0.0 or x[i] > maxx or y[i] > maxy: + continue + + values[i] = field[y[i], x[i]] + + return values_np + + +@cython.boundscheck(False) +@cython.wraparound(False) +cpdef float scalar_value(float[:, :] field, float x, float y, float default=-1): + if x < 0.0 or y < 0.0 or x > field.shape[1] - 1 or y > field.shape[0] - 1: + return default + + return field[y, x] + + +@cython.boundscheck(False) +@cython.wraparound(False) +cpdef float scalar_value_clipped(float[:, :] field, float x, float y): + x = clip(x, 0.0, field.shape[1] - 1) + y = clip(y, 0.0, field.shape[0] - 1) + return field[y, x] + + +@cython.boundscheck(False) +@cython.wraparound(False) +cpdef unsigned char scalar_nonzero(unsigned char[:, :] field, float x, float y, unsigned char default=0): + if x < 0.0 or y < 0.0 or x > field.shape[1] - 1 or y > field.shape[0] - 1: + return default + + return field[y, x] + + +@cython.boundscheck(False) +@cython.wraparound(False) +cpdef unsigned char scalar_nonzero_clipped(unsigned char[:, :] field, float x, float y): + x = clip(x, 0.0, field.shape[1] - 1) + y = clip(y, 0.0, field.shape[0] - 1) + return field[y, x] + + +@cython.boundscheck(False) +@cython.wraparound(False) +cpdef unsigned char scalar_nonzero_clipped_with_reduction(unsigned char[:, :] field, float x, float y, float r): + x = clip(x / r, 0.0, field.shape[1] - 1) + y = clip(y / r, 0.0, field.shape[0] - 1) + return field[y, x] + + +@cython.boundscheck(False) +@cython.wraparound(False) +def paf_center_b(float[:, :] paf_field, float x, float y, float sigma=1.0): + result_np = np.empty_like(paf_field) + cdef float[:, :] result = result_np + cdef unsigned int result_i = 0 + cdef bint take + + for i in range(paf_field.shape[1]): + take = ( + paf_field[1, i] > x - sigma * paf_field[3, i] and + paf_field[1, i] < x + sigma * paf_field[3, i] and + paf_field[2, i] > y - sigma * paf_field[3, i] and + paf_field[2, i] < y + sigma * paf_field[3, i] + ) + if not take: + continue + + result[:, result_i] = paf_field[:, i] + result_i += 1 + + return result_np[:, :result_i] + + +@cython.boundscheck(False) +@cython.wraparound(False) +def paf_center(float[:, :] paf_field, float x, float y, float sigma): + result_np = np.empty_like(paf_field) + cdef float[:, :] result = result_np + cdef unsigned int result_i = 0 + cdef bint take + cdef Py_ssize_t i + + for i in range(paf_field.shape[1]): + if paf_field[1, i] < x - sigma: + continue + if paf_field[1, i] > x + sigma: + continue + if paf_field[2, i] < y - sigma: + continue + if paf_field[2, i] > y + sigma: + continue + + result[:, result_i] = paf_field[:, i] + result_i += 1 + + return result_np[:, :result_i] + + +@cython.boundscheck(False) +@cython.wraparound(False) +def caf_center_s(float[:, :] caf_field, float x, float y, float sigma): + result_np = np.empty_like(caf_field) + cdef float[:, :] result = result_np + cdef unsigned int result_i = 0 + cdef Py_ssize_t i + + for i in range(caf_field.shape[1]): + if caf_field[1, i] < x - sigma: + continue + if caf_field[1, i] > x + sigma: + continue + if caf_field[2, i] < y - sigma: + continue + if caf_field[2, i] > y + sigma: + continue + + result[:, result_i] = caf_field[:, i] + result_i += 1 + + return result_np[:, :result_i] + + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) +def grow_connection_blend(float[:, :] caf_field, float x, float y, float xy_scale, bint only_max=False): + """Blending the top two candidates with a weighted average. + + Similar to the post processing step in + "BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs". + """ + cdef float sigma_filter = 2.0 * xy_scale # 2.0 = 4 sigma + cdef float sigma2 = 0.25 * xy_scale * xy_scale + cdef float d2, v, score + + cdef unsigned int score_1_i = 0 + cdef unsigned int score_2_i = 0 + cdef float score_1 = 0.0 + cdef float score_2 = 0.0 + cdef Py_ssize_t i + for i in range(caf_field.shape[1]): + if caf_field[1, i] < x - sigma_filter: + continue + if caf_field[1, i] > x + sigma_filter: + continue + if caf_field[2, i] < y - sigma_filter: + continue + if caf_field[2, i] > y + sigma_filter: + continue + + # source distance + d2 = (caf_field[1, i] - x)**2 + (caf_field[2, i] - y)**2 + + # combined value and source distance + score = exp(-0.5 * d2 / sigma2) * caf_field[0, i] + + if score >= score_1: # if score is equal to score_1, make sure score_2 is filled + score_2_i = score_1_i + score_2 = score_1 + score_1_i = i + score_1 = score + elif score > score_2: + score_2_i = i + score_2 = score + + cdef (float, float, float, float) r = (0.0, 0.0, 0.0, 0.0) + if score_1 == 0.0: + return r + + cdef float[4] entry_1 = [ # xybs + caf_field[3, score_1_i], caf_field[4, score_1_i], + caf_field[6, score_1_i], caf_field[8, score_1_i]] + if only_max: + r = entry_1[0], entry_1[1], entry_1[3], score_1 + return r + if score_2 < 0.01 or score_2 < 0.5 * score_1: + r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 + return r + + # blend + cdef float[4] entry_2 = [ # xybs + caf_field[3, score_2_i], caf_field[4, score_2_i], + caf_field[6, score_2_i], caf_field[8, score_2_i]] + + cdef float blend_d2 = (entry_1[0] - entry_2[0])**2 + (entry_1[1] - entry_2[1])**2 + if blend_d2 > entry_1[3]**2 / 4.0: + r = entry_1[0], entry_1[1], entry_1[3], score_1 * 0.5 + return r + + r = ( # xysv + (score_1 * entry_1[0] + score_2 * entry_2[0]) / (score_1 + score_2), + (score_1 * entry_1[1] + score_2 * entry_2[1]) / (score_1 + score_2), + (score_1 * entry_1[3] + score_2 * entry_2[3]) / (score_1 + score_2), + 0.5 * (score_1 + score_2), + ) + return r diff --git a/logger/debug.log b/logger/debug.log index 6402a84..cf89323 100644 --- a/logger/debug.log +++ b/logger/debug.log @@ -1 +1,88 @@ -2020-08-27 21:46:45,694 [INFO]: MainProcess video.py(cli:109) >> neural network device: cuda +2022-02-11 21:22:31,454 [INFO]: MainProcess video.py(cli:111) >> neural network device: cuda +2022-02-11 21:22:33,107 [INFO]: MainProcess animation_frame.py(__init__:47) >> video output = None +2022-02-11 21:22:33,261 [INFO]: MainProcess video.py(inference:170) >> Loaded stream: 0 +2022-02-11 21:22:34,132 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:34,651 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:34,964 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:35,297 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:35,633 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:35,887 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:36,141 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:36,397 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:36,656 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:36,913 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:37,173 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:37,427 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:37,688 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:37,953 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:38,215 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:38,492 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:38,860 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:39,117 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:39,377 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:39,638 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:39,906 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:40,173 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:40,433 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:40,699 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:40,958 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:41,217 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:41,482 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:41,754 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:42,017 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:42,318 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:42,583 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:42,842 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:43,111 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:43,374 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:43,631 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:43,904 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:44,250 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:44,512 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:44,774 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:45,031 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:45,301 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:45,560 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:45,818 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:46,080 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:46,345 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:46,616 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:46,883 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:47,142 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:47,418 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:47,680 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:47,984 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:48,247 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:48,516 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:48,774 [INFO]: MainProcess cifcaf.py(__call__:119) >> 2 annotations: [1, 1] +2022-02-11 21:22:49,059 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:49,329 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:49,627 [INFO]: MainProcess cifcaf.py(__call__:119) >> 2 annotations: [1, 1] +2022-02-11 21:22:49,943 [INFO]: MainProcess cifcaf.py(__call__:119) >> 2 annotations: [1, 1] +2022-02-11 21:22:50,280 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:50,547 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:50,810 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:51,075 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:51,357 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:51,617 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:51,882 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:52,148 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:52,414 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:52,683 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:53,005 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:53,251 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:53,497 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:53,737 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:53,973 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:54,213 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:54,460 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:54,704 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:54,940 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:55,179 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:55,422 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:55,664 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:55,899 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:56,135 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:56,410 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] +2022-02-11 21:22:56,646 [INFO]: MainProcess cifcaf.py(__call__:119) >> 1 annotations: [1] +2022-02-11 21:22:56,932 [INFO]: MainProcess cifcaf.py(__call__:119) >> 0 annotations: [] diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..56456cf --- /dev/null +++ b/setup.py @@ -0,0 +1,6 @@ +from distutils.core import setup, Extension +from Cython.Build import cythonize +import numpy + +package = Extension('functional', ['functional.pyx'], include_dirs=[numpy.get_include()]) +setup(ext_modules=cythonize([package])) \ No newline at end of file diff --git a/video.py b/video.py index 3927815..5ed8318 100644 --- a/video.py +++ b/video.py @@ -182,7 +182,7 @@ def inference(args, stream): grabbed, image = capture.read() input_fps = capture.get(cv2.CAP_PROP_FPS) - if RTSPURL.startswith('rtsp'): + if (ID!="webcam" and RTSPURL.startswith('rtsp')): if grabbed: droppedFrames = 0 else:

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≪mPNJCeW8?drRdZ-VzGzn9O|_ah$#A4a~ipsOE6 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
3k0;~HW;`4JIvLN#;UGEl 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 z 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