Spaces:
Sleeping
Sleeping
| /* Generated by Cython 0.29.10 */ | |
| /* BEGIN: Cython Metadata | |
| { | |
| "distutils": { | |
| "depends": [], | |
| "name": "bbox", | |
| "sources": [ | |
| "bbox.pyx" | |
| ] | |
| }, | |
| "module_name": "bbox" | |
| } | |
| END: Cython Metadata */ | |
| enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; | |
| template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } | |
| typedef unsigned char uint8_t; | |
| typedef unsigned int uint32_t; | |
| typedef unsigned __int8 uint8_t; | |
| typedef unsigned __int32 uint32_t; | |
| typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); | |
| typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, | |
| Py_ssize_t nargs, PyObject *kwnames); | |
| typedef int Py_tss_t; | |
| static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { | |
| *key = PyThread_create_key(); | |
| return 0; | |
| } | |
| static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { | |
| Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); | |
| *key = Py_tss_NEEDS_INIT; | |
| return key; | |
| } | |
| static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { | |
| PyObject_Free(key); | |
| } | |
| static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { | |
| return *key != Py_tss_NEEDS_INIT; | |
| } | |
| static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { | |
| PyThread_delete_key(*key); | |
| *key = Py_tss_NEEDS_INIT; | |
| } | |
| static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { | |
| return PyThread_set_key_value(*key, value); | |
| } | |
| static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { | |
| return PyThread_get_key_value(*key); | |
| } | |
| typedef long Py_hash_t; | |
| typedef struct { | |
| unaryfunc am_await; | |
| unaryfunc am_aiter; | |
| unaryfunc am_anext; | |
| } __Pyx_PyAsyncMethodsStruct; | |
| static CYTHON_INLINE float __PYX_NAN() { | |
| float value; | |
| memset(&value, 0xFF, sizeof(value)); | |
| return value; | |
| } | |
| /* Early includes */ | |
| typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; | |
| const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; | |
| static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { | |
| return (size_t) i < (size_t) limit; | |
| } | |
| static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); | |
| static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); | |
| static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); | |
| static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { | |
| const Py_UNICODE *u_end = u; | |
| while (*u_end++) ; | |
| return (size_t)(u_end - u - 1); | |
| } | |
| static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); | |
| static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); | |
| static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); | |
| static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); | |
| static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); | |
| static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); | |
| static int __Pyx_sys_getdefaultencoding_not_ascii; | |
| static int __Pyx_init_sys_getdefaultencoding_params(void) { | |
| PyObject* sys; | |
| PyObject* default_encoding = NULL; | |
| PyObject* ascii_chars_u = NULL; | |
| PyObject* ascii_chars_b = NULL; | |
| const char* default_encoding_c; | |
| sys = PyImport_ImportModule("sys"); | |
| if (!sys) goto bad; | |
| default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); | |
| Py_DECREF(sys); | |
| if (!default_encoding) goto bad; | |
| default_encoding_c = PyBytes_AsString(default_encoding); | |
| if (!default_encoding_c) goto bad; | |
| if (strcmp(default_encoding_c, "ascii") == 0) { | |
| __Pyx_sys_getdefaultencoding_not_ascii = 0; | |
| } else { | |
| char ascii_chars[128]; | |
| int c; | |
| for (c = 0; c < 128; c++) { | |
| ascii_chars[c] = c; | |
| } | |
| __Pyx_sys_getdefaultencoding_not_ascii = 1; | |
| ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); | |
| if (!ascii_chars_u) goto bad; | |
| ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); | |
| if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { | |
| PyErr_Format( | |
| PyExc_ValueError, | |
| "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", | |
| default_encoding_c); | |
| goto bad; | |
| } | |
| Py_DECREF(ascii_chars_u); | |
| Py_DECREF(ascii_chars_b); | |
| } | |
| Py_DECREF(default_encoding); | |
| return 0; | |
| bad: | |
| Py_XDECREF(default_encoding); | |
| Py_XDECREF(ascii_chars_u); | |
| Py_XDECREF(ascii_chars_b); | |
| return -1; | |
| } | |
| static char* __PYX_DEFAULT_STRING_ENCODING; | |
| static int __Pyx_init_sys_getdefaultencoding_params(void) { | |
| PyObject* sys; | |
| PyObject* default_encoding = NULL; | |
| char* default_encoding_c; | |
| sys = PyImport_ImportModule("sys"); | |
| if (!sys) goto bad; | |
| default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); | |
| Py_DECREF(sys); | |
| if (!default_encoding) goto bad; | |
| default_encoding_c = PyBytes_AsString(default_encoding); | |
| if (!default_encoding_c) goto bad; | |
| __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); | |
| if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; | |
| strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); | |
| Py_DECREF(default_encoding); | |
| return 0; | |
| bad: | |
| Py_XDECREF(default_encoding); | |
| return -1; | |
| } | |
| /* Test for GCC > 2.95 */ | |
| static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } | |
| static PyObject *__pyx_m = NULL; | |
| static PyObject *__pyx_d; | |
| static PyObject *__pyx_b; | |
| static PyObject *__pyx_cython_runtime = NULL; | |
| static PyObject *__pyx_empty_tuple; | |
| static PyObject *__pyx_empty_bytes; | |
| static PyObject *__pyx_empty_unicode; | |
| static int __pyx_lineno; | |
| static int __pyx_clineno = 0; | |
| static const char * __pyx_cfilenm= __FILE__; | |
| static const char *__pyx_filename; | |
| /* Header.proto */ | |
| static const char *__pyx_f[] = { | |
| "bbox.pyx", | |
| "__init__.pxd", | |
| "type.pxd", | |
| }; | |
| /* BufferFormatStructs.proto */ | |
| struct __Pyx_StructField_; | |
| typedef struct { | |
| const char* name; | |
| struct __Pyx_StructField_* fields; | |
| size_t size; | |
| size_t arraysize[8]; | |
| int ndim; | |
| char typegroup; | |
| char is_unsigned; | |
| int flags; | |
| } __Pyx_TypeInfo; | |
| typedef struct __Pyx_StructField_ { | |
| __Pyx_TypeInfo* type; | |
| const char* name; | |
| size_t offset; | |
| } __Pyx_StructField; | |
| typedef struct { | |
| __Pyx_StructField* field; | |
| size_t parent_offset; | |
| } __Pyx_BufFmt_StackElem; | |
| typedef struct { | |
| __Pyx_StructField root; | |
| __Pyx_BufFmt_StackElem* head; | |
| size_t fmt_offset; | |
| size_t new_count, enc_count; | |
| size_t struct_alignment; | |
| int is_complex; | |
| char enc_type; | |
| char new_packmode; | |
| char enc_packmode; | |
| char is_valid_array; | |
| } __Pyx_BufFmt_Context; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":776 | |
| * # in Cython to enable them only on the right systems. | |
| * | |
| * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_int16 int16_t | |
| * ctypedef npy_int32 int32_t | |
| */ | |
| typedef npy_int8 __pyx_t_5numpy_int8_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":777 | |
| * | |
| * ctypedef npy_int8 int8_t | |
| * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_int32 int32_t | |
| * ctypedef npy_int64 int64_t | |
| */ | |
| typedef npy_int16 __pyx_t_5numpy_int16_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":778 | |
| * ctypedef npy_int8 int8_t | |
| * ctypedef npy_int16 int16_t | |
| * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_int64 int64_t | |
| * #ctypedef npy_int96 int96_t | |
| */ | |
| typedef npy_int32 __pyx_t_5numpy_int32_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":779 | |
| * ctypedef npy_int16 int16_t | |
| * ctypedef npy_int32 int32_t | |
| * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< | |
| * #ctypedef npy_int96 int96_t | |
| * #ctypedef npy_int128 int128_t | |
| */ | |
| typedef npy_int64 __pyx_t_5numpy_int64_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":783 | |
| * #ctypedef npy_int128 int128_t | |
| * | |
| * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_uint16 uint16_t | |
| * ctypedef npy_uint32 uint32_t | |
| */ | |
| typedef npy_uint8 __pyx_t_5numpy_uint8_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":784 | |
| * | |
| * ctypedef npy_uint8 uint8_t | |
| * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_uint32 uint32_t | |
| * ctypedef npy_uint64 uint64_t | |
| */ | |
| typedef npy_uint16 __pyx_t_5numpy_uint16_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":785 | |
| * ctypedef npy_uint8 uint8_t | |
| * ctypedef npy_uint16 uint16_t | |
| * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_uint64 uint64_t | |
| * #ctypedef npy_uint96 uint96_t | |
| */ | |
| typedef npy_uint32 __pyx_t_5numpy_uint32_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":786 | |
| * ctypedef npy_uint16 uint16_t | |
| * ctypedef npy_uint32 uint32_t | |
| * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< | |
| * #ctypedef npy_uint96 uint96_t | |
| * #ctypedef npy_uint128 uint128_t | |
| */ | |
| typedef npy_uint64 __pyx_t_5numpy_uint64_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":790 | |
| * #ctypedef npy_uint128 uint128_t | |
| * | |
| * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_float64 float64_t | |
| * #ctypedef npy_float80 float80_t | |
| */ | |
| typedef npy_float32 __pyx_t_5numpy_float32_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":791 | |
| * | |
| * ctypedef npy_float32 float32_t | |
| * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< | |
| * #ctypedef npy_float80 float80_t | |
| * #ctypedef npy_float128 float128_t | |
| */ | |
| typedef npy_float64 __pyx_t_5numpy_float64_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":800 | |
| * # The int types are mapped a bit surprising -- | |
| * # numpy.int corresponds to 'l' and numpy.long to 'q' | |
| * ctypedef npy_long int_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_longlong long_t | |
| * ctypedef npy_longlong longlong_t | |
| */ | |
| typedef npy_long __pyx_t_5numpy_int_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":801 | |
| * # numpy.int corresponds to 'l' and numpy.long to 'q' | |
| * ctypedef npy_long int_t | |
| * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_longlong longlong_t | |
| * | |
| */ | |
| typedef npy_longlong __pyx_t_5numpy_long_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":802 | |
| * ctypedef npy_long int_t | |
| * ctypedef npy_longlong long_t | |
| * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< | |
| * | |
| * ctypedef npy_ulong uint_t | |
| */ | |
| typedef npy_longlong __pyx_t_5numpy_longlong_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":804 | |
| * ctypedef npy_longlong longlong_t | |
| * | |
| * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_ulonglong ulong_t | |
| * ctypedef npy_ulonglong ulonglong_t | |
| */ | |
| typedef npy_ulong __pyx_t_5numpy_uint_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":805 | |
| * | |
| * ctypedef npy_ulong uint_t | |
| * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_ulonglong ulonglong_t | |
| * | |
| */ | |
| typedef npy_ulonglong __pyx_t_5numpy_ulong_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":806 | |
| * ctypedef npy_ulong uint_t | |
| * ctypedef npy_ulonglong ulong_t | |
| * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< | |
| * | |
| * ctypedef npy_intp intp_t | |
| */ | |
| typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":808 | |
| * ctypedef npy_ulonglong ulonglong_t | |
| * | |
| * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_uintp uintp_t | |
| * | |
| */ | |
| typedef npy_intp __pyx_t_5numpy_intp_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":809 | |
| * | |
| * ctypedef npy_intp intp_t | |
| * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< | |
| * | |
| * ctypedef npy_double float_t | |
| */ | |
| typedef npy_uintp __pyx_t_5numpy_uintp_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":811 | |
| * ctypedef npy_uintp uintp_t | |
| * | |
| * ctypedef npy_double float_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_double double_t | |
| * ctypedef npy_longdouble longdouble_t | |
| */ | |
| typedef npy_double __pyx_t_5numpy_float_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":812 | |
| * | |
| * ctypedef npy_double float_t | |
| * ctypedef npy_double double_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_longdouble longdouble_t | |
| * | |
| */ | |
| typedef npy_double __pyx_t_5numpy_double_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":813 | |
| * ctypedef npy_double float_t | |
| * ctypedef npy_double double_t | |
| * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< | |
| * | |
| * ctypedef npy_cfloat cfloat_t | |
| */ | |
| typedef npy_longdouble __pyx_t_5numpy_longdouble_t; | |
| /* "bbox.pyx":13 | |
| * | |
| * DTYPE = np.float | |
| * ctypedef np.float_t DTYPE_t # <<<<<<<<<<<<<< | |
| * | |
| * def bbox_overlaps(boxes, query_boxes): | |
| */ | |
| typedef __pyx_t_5numpy_float_t __pyx_t_4bbox_DTYPE_t; | |
| /* Declarations.proto */ | |
| typedef ::std::complex< float > __pyx_t_float_complex; | |
| typedef float _Complex __pyx_t_float_complex; | |
| typedef struct { float real, imag; } __pyx_t_float_complex; | |
| static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float); | |
| /* Declarations.proto */ | |
| typedef ::std::complex< double > __pyx_t_double_complex; | |
| typedef double _Complex __pyx_t_double_complex; | |
| typedef struct { double real, imag; } __pyx_t_double_complex; | |
| static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double); | |
| /*--- Type declarations ---*/ | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":815 | |
| * ctypedef npy_longdouble longdouble_t | |
| * | |
| * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_cdouble cdouble_t | |
| * ctypedef npy_clongdouble clongdouble_t | |
| */ | |
| typedef npy_cfloat __pyx_t_5numpy_cfloat_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":816 | |
| * | |
| * ctypedef npy_cfloat cfloat_t | |
| * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< | |
| * ctypedef npy_clongdouble clongdouble_t | |
| * | |
| */ | |
| typedef npy_cdouble __pyx_t_5numpy_cdouble_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":817 | |
| * ctypedef npy_cfloat cfloat_t | |
| * ctypedef npy_cdouble cdouble_t | |
| * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< | |
| * | |
| * ctypedef npy_cdouble complex_t | |
| */ | |
| typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":819 | |
| * ctypedef npy_clongdouble clongdouble_t | |
| * | |
| * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline object PyArray_MultiIterNew1(a): | |
| */ | |
| typedef npy_cdouble __pyx_t_5numpy_complex_t; | |
| /* --- Runtime support code (head) --- */ | |
| /* Refnanny.proto */ | |
| typedef struct { | |
| void (*INCREF)(void*, PyObject*, int); | |
| void (*DECREF)(void*, PyObject*, int); | |
| void (*GOTREF)(void*, PyObject*, int); | |
| void (*GIVEREF)(void*, PyObject*, int); | |
| void* (*SetupContext)(const char*, int, const char*); | |
| void (*FinishContext)(void**); | |
| } __Pyx_RefNannyAPIStruct; | |
| static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; | |
| static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); | |
| /* PyObjectGetAttrStr.proto */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); | |
| /* GetBuiltinName.proto */ | |
| static PyObject *__Pyx_GetBuiltinName(PyObject *name); | |
| /* RaiseArgTupleInvalid.proto */ | |
| static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, | |
| Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); | |
| /* RaiseDoubleKeywords.proto */ | |
| static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); | |
| /* ParseKeywords.proto */ | |
| static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ | |
| PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ | |
| const char* function_name); | |
| /* PyDictVersioning.proto */ | |
| static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); | |
| static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); | |
| static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); | |
| /* GetModuleGlobalName.proto */ | |
| static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); | |
| static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); | |
| /* PyObjectCall.proto */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); | |
| /* ExtTypeTest.proto */ | |
| static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); | |
| /* IsLittleEndian.proto */ | |
| static CYTHON_INLINE int __Pyx_Is_Little_Endian(void); | |
| /* BufferFormatCheck.proto */ | |
| static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts); | |
| static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, | |
| __Pyx_BufFmt_StackElem* stack, | |
| __Pyx_TypeInfo* type); | |
| /* BufferGetAndValidate.proto */ | |
| static int __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj, | |
| __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); | |
| static void __Pyx_ZeroBuffer(Py_buffer* buf); | |
| static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); | |
| static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 }; | |
| static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; | |
| /* PyThreadStateGet.proto */ | |
| /* PyErrFetchRestore.proto */ | |
| static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); | |
| static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); | |
| /* BufferIndexError.proto */ | |
| static void __Pyx_RaiseBufferIndexError(int axis); | |
| /* RaiseException.proto */ | |
| static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); | |
| /* PyCFunctionFastCall.proto */ | |
| static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); | |
| /* PyFunctionFastCall.proto */ | |
| static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, int nargs, PyObject *kwargs); | |
| static size_t __pyx_pyframe_localsplus_offset = 0; | |
| /* PyObjectCallMethO.proto */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); | |
| /* PyObjectCallOneArg.proto */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); | |
| /* DictGetItem.proto */ | |
| static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key); | |
| /* RaiseTooManyValuesToUnpack.proto */ | |
| static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); | |
| /* RaiseNeedMoreValuesToUnpack.proto */ | |
| static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); | |
| /* RaiseNoneIterError.proto */ | |
| static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); | |
| /* GetTopmostException.proto */ | |
| static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); | |
| /* SaveResetException.proto */ | |
| static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); | |
| static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); | |
| /* PyErrExceptionMatches.proto */ | |
| static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); | |
| /* GetException.proto */ | |
| static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); | |
| static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); | |
| /* TypeImport.proto */ | |
| enum __Pyx_ImportType_CheckSize { | |
| __Pyx_ImportType_CheckSize_Error = 0, | |
| __Pyx_ImportType_CheckSize_Warn = 1, | |
| __Pyx_ImportType_CheckSize_Ignore = 2 | |
| }; | |
| static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size); | |
| /* Import.proto */ | |
| static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); | |
| /* CLineInTraceback.proto */ | |
| static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); | |
| /* CodeObjectCache.proto */ | |
| typedef struct { | |
| PyCodeObject* code_object; | |
| int code_line; | |
| } __Pyx_CodeObjectCacheEntry; | |
| struct __Pyx_CodeObjectCache { | |
| int count; | |
| int max_count; | |
| __Pyx_CodeObjectCacheEntry* entries; | |
| }; | |
| static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; | |
| static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); | |
| static PyCodeObject *__pyx_find_code_object(int code_line); | |
| static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); | |
| /* AddTraceback.proto */ | |
| static void __Pyx_AddTraceback(const char *funcname, int c_line, | |
| int py_line, const char *filename); | |
| /* BufferStructDeclare.proto */ | |
| typedef struct { | |
| Py_ssize_t shape, strides, suboffsets; | |
| } __Pyx_Buf_DimInfo; | |
| typedef struct { | |
| size_t refcount; | |
| Py_buffer pybuffer; | |
| } __Pyx_Buffer; | |
| typedef struct { | |
| __Pyx_Buffer *rcbuffer; | |
| char *data; | |
| __Pyx_Buf_DimInfo diminfo[8]; | |
| } __Pyx_LocalBuf_ND; | |
| static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); | |
| static void __Pyx_ReleaseBuffer(Py_buffer *view); | |
| /* CIntToPy.proto */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value); | |
| /* RealImag.proto */ | |
| /* Arithmetic.proto */ | |
| static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex); | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex); | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex); | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex); | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex); | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex); | |
| static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex); | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex); | |
| static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex); | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex); | |
| /* Arithmetic.proto */ | |
| static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex); | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex); | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex); | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex); | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex); | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex); | |
| static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex); | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex); | |
| static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex); | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex); | |
| /* CIntToPy.proto */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); | |
| /* CIntToPy.proto */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); | |
| /* CIntFromPy.proto */ | |
| static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *); | |
| /* CIntFromPy.proto */ | |
| static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); | |
| /* CIntToPy.proto */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); | |
| /* CIntFromPy.proto */ | |
| static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); | |
| /* FastTypeChecks.proto */ | |
| static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); | |
| static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); | |
| static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); | |
| /* CheckBinaryVersion.proto */ | |
| static int __Pyx_check_binary_version(void); | |
| /* InitStrings.proto */ | |
| static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); | |
| /* Module declarations from 'cython' */ | |
| /* Module declarations from 'cpython.buffer' */ | |
| /* Module declarations from 'libc.string' */ | |
| /* Module declarations from 'libc.stdio' */ | |
| /* Module declarations from '__builtin__' */ | |
| /* Module declarations from 'cpython.type' */ | |
| static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0; | |
| /* Module declarations from 'cpython' */ | |
| /* Module declarations from 'cpython.object' */ | |
| /* Module declarations from 'cpython.ref' */ | |
| /* Module declarations from 'cpython.mem' */ | |
| /* Module declarations from 'numpy' */ | |
| /* Module declarations from 'numpy' */ | |
| static PyTypeObject *__pyx_ptype_5numpy_dtype = 0; | |
| static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0; | |
| static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0; | |
| static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0; | |
| static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0; | |
| static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/ | |
| /* Module declarations from 'bbox' */ | |
| static PyArrayObject *__pyx_f_4bbox_bbox_overlaps_c(PyArrayObject *, PyArrayObject *); /*proto*/ | |
| static PyArrayObject *__pyx_f_4bbox_bbox_intersections_c(PyArrayObject *, PyArrayObject *); /*proto*/ | |
| static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_4bbox_DTYPE_t = { "DTYPE_t", NULL, sizeof(__pyx_t_4bbox_DTYPE_t), { 0 }, 0, 'R', 0, 0 }; | |
| extern int __pyx_module_is_main_bbox; | |
| int __pyx_module_is_main_bbox = 0; | |
| /* Implementation of 'bbox' */ | |
| static PyObject *__pyx_builtin_range; | |
| static PyObject *__pyx_builtin_ValueError; | |
| static PyObject *__pyx_builtin_RuntimeError; | |
| static PyObject *__pyx_builtin_ImportError; | |
| static const char __pyx_k_np[] = "np"; | |
| static const char __pyx_k_bbox[] = "bbox"; | |
| static const char __pyx_k_main[] = "__main__"; | |
| static const char __pyx_k_name[] = "__name__"; | |
| static const char __pyx_k_test[] = "__test__"; | |
| static const char __pyx_k_DTYPE[] = "DTYPE"; | |
| static const char __pyx_k_boxes[] = "boxes"; | |
| static const char __pyx_k_dtype[] = "dtype"; | |
| static const char __pyx_k_float[] = "float"; | |
| static const char __pyx_k_numpy[] = "numpy"; | |
| static const char __pyx_k_range[] = "range"; | |
| static const char __pyx_k_zeros[] = "zeros"; | |
| static const char __pyx_k_import[] = "__import__"; | |
| static const char __pyx_k_bbox_pyx[] = "bbox.pyx"; | |
| static const char __pyx_k_ValueError[] = "ValueError"; | |
| static const char __pyx_k_ImportError[] = "ImportError"; | |
| static const char __pyx_k_query_boxes[] = "query_boxes"; | |
| static const char __pyx_k_RuntimeError[] = "RuntimeError"; | |
| static const char __pyx_k_boxes_contig[] = "boxes_contig"; | |
| static const char __pyx_k_query_contig[] = "query_contig"; | |
| static const char __pyx_k_bbox_overlaps[] = "bbox_overlaps"; | |
| static const char __pyx_k_ascontiguousarray[] = "ascontiguousarray"; | |
| static const char __pyx_k_bbox_intersections[] = "bbox_intersections"; | |
| static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; | |
| static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; | |
| static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; | |
| static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; | |
| static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; | |
| static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; | |
| static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; | |
| static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; | |
| static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; | |
| static PyObject *__pyx_n_s_DTYPE; | |
| static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; | |
| static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; | |
| static PyObject *__pyx_n_s_ImportError; | |
| static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; | |
| static PyObject *__pyx_n_s_RuntimeError; | |
| static PyObject *__pyx_n_s_ValueError; | |
| static PyObject *__pyx_n_s_ascontiguousarray; | |
| static PyObject *__pyx_n_s_bbox; | |
| static PyObject *__pyx_n_s_bbox_intersections; | |
| static PyObject *__pyx_n_s_bbox_overlaps; | |
| static PyObject *__pyx_kp_s_bbox_pyx; | |
| static PyObject *__pyx_n_s_boxes; | |
| static PyObject *__pyx_n_s_boxes_contig; | |
| static PyObject *__pyx_n_s_cline_in_traceback; | |
| static PyObject *__pyx_n_s_dtype; | |
| static PyObject *__pyx_n_s_float; | |
| static PyObject *__pyx_n_s_import; | |
| static PyObject *__pyx_n_s_main; | |
| static PyObject *__pyx_n_s_name; | |
| static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; | |
| static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; | |
| static PyObject *__pyx_n_s_np; | |
| static PyObject *__pyx_n_s_numpy; | |
| static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; | |
| static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; | |
| static PyObject *__pyx_n_s_query_boxes; | |
| static PyObject *__pyx_n_s_query_contig; | |
| static PyObject *__pyx_n_s_range; | |
| static PyObject *__pyx_n_s_test; | |
| static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; | |
| static PyObject *__pyx_n_s_zeros; | |
| static PyObject *__pyx_pf_4bbox_bbox_overlaps(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_boxes, PyObject *__pyx_v_query_boxes); /* proto */ | |
| static PyObject *__pyx_pf_4bbox_2bbox_intersections(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_boxes, PyObject *__pyx_v_query_boxes); /* proto */ | |
| static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ | |
| static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */ | |
| static PyObject *__pyx_tuple_; | |
| static PyObject *__pyx_tuple__2; | |
| static PyObject *__pyx_tuple__3; | |
| static PyObject *__pyx_tuple__4; | |
| static PyObject *__pyx_tuple__5; | |
| static PyObject *__pyx_tuple__6; | |
| static PyObject *__pyx_tuple__7; | |
| static PyObject *__pyx_tuple__8; | |
| static PyObject *__pyx_tuple__10; | |
| static PyObject *__pyx_codeobj__9; | |
| static PyObject *__pyx_codeobj__11; | |
| /* Late includes */ | |
| /* "bbox.pyx":15 | |
| * ctypedef np.float_t DTYPE_t | |
| * | |
| * def bbox_overlaps(boxes, query_boxes): # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| */ | |
| /* Python wrapper */ | |
| static PyObject *__pyx_pw_4bbox_1bbox_overlaps(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ | |
| static PyMethodDef __pyx_mdef_4bbox_1bbox_overlaps = {"bbox_overlaps", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4bbox_1bbox_overlaps, METH_VARARGS|METH_KEYWORDS, 0}; | |
| static PyObject *__pyx_pw_4bbox_1bbox_overlaps(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { | |
| PyObject *__pyx_v_boxes = 0; | |
| PyObject *__pyx_v_query_boxes = 0; | |
| PyObject *__pyx_r = 0; | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("bbox_overlaps (wrapper)", 0); | |
| { | |
| static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_boxes,&__pyx_n_s_query_boxes,0}; | |
| PyObject* values[2] = {0,0}; | |
| if (unlikely(__pyx_kwds)) { | |
| Py_ssize_t kw_args; | |
| const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); | |
| switch (pos_args) { | |
| case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); | |
| CYTHON_FALLTHROUGH; | |
| case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); | |
| CYTHON_FALLTHROUGH; | |
| case 0: break; | |
| default: goto __pyx_L5_argtuple_error; | |
| } | |
| kw_args = PyDict_Size(__pyx_kwds); | |
| switch (pos_args) { | |
| case 0: | |
| if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_boxes)) != 0)) kw_args--; | |
| else goto __pyx_L5_argtuple_error; | |
| CYTHON_FALLTHROUGH; | |
| case 1: | |
| if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_query_boxes)) != 0)) kw_args--; | |
| else { | |
| __Pyx_RaiseArgtupleInvalid("bbox_overlaps", 1, 2, 2, 1); __PYX_ERR(0, 15, __pyx_L3_error) | |
| } | |
| } | |
| if (unlikely(kw_args > 0)) { | |
| if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "bbox_overlaps") < 0)) __PYX_ERR(0, 15, __pyx_L3_error) | |
| } | |
| } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { | |
| goto __pyx_L5_argtuple_error; | |
| } else { | |
| values[0] = PyTuple_GET_ITEM(__pyx_args, 0); | |
| values[1] = PyTuple_GET_ITEM(__pyx_args, 1); | |
| } | |
| __pyx_v_boxes = values[0]; | |
| __pyx_v_query_boxes = values[1]; | |
| } | |
| goto __pyx_L4_argument_unpacking_done; | |
| __pyx_L5_argtuple_error:; | |
| __Pyx_RaiseArgtupleInvalid("bbox_overlaps", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 15, __pyx_L3_error) | |
| __pyx_L3_error:; | |
| __Pyx_AddTraceback("bbox.bbox_overlaps", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __Pyx_RefNannyFinishContext(); | |
| return NULL; | |
| __pyx_L4_argument_unpacking_done:; | |
| __pyx_r = __pyx_pf_4bbox_bbox_overlaps(__pyx_self, __pyx_v_boxes, __pyx_v_query_boxes); | |
| /* function exit code */ | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| static PyObject *__pyx_pf_4bbox_bbox_overlaps(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_boxes, PyObject *__pyx_v_query_boxes) { | |
| PyArrayObject *__pyx_v_boxes_contig = 0; | |
| PyArrayObject *__pyx_v_query_contig = 0; | |
| __Pyx_LocalBuf_ND __pyx_pybuffernd_boxes_contig; | |
| __Pyx_Buffer __pyx_pybuffer_boxes_contig; | |
| __Pyx_LocalBuf_ND __pyx_pybuffernd_query_contig; | |
| __Pyx_Buffer __pyx_pybuffer_query_contig; | |
| PyObject *__pyx_r = NULL; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| PyObject *__pyx_t_2 = NULL; | |
| PyObject *__pyx_t_3 = NULL; | |
| PyObject *__pyx_t_4 = NULL; | |
| PyArrayObject *__pyx_t_5 = NULL; | |
| PyArrayObject *__pyx_t_6 = NULL; | |
| __Pyx_RefNannySetupContext("bbox_overlaps", 0); | |
| __pyx_pybuffer_boxes_contig.pybuffer.buf = NULL; | |
| __pyx_pybuffer_boxes_contig.refcount = 0; | |
| __pyx_pybuffernd_boxes_contig.data = NULL; | |
| __pyx_pybuffernd_boxes_contig.rcbuffer = &__pyx_pybuffer_boxes_contig; | |
| __pyx_pybuffer_query_contig.pybuffer.buf = NULL; | |
| __pyx_pybuffer_query_contig.refcount = 0; | |
| __pyx_pybuffernd_query_contig.data = NULL; | |
| __pyx_pybuffernd_query_contig.rcbuffer = &__pyx_pybuffer_query_contig; | |
| /* "bbox.pyx":16 | |
| * | |
| * def bbox_overlaps(boxes, query_boxes): | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| * | |
| */ | |
| __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ascontiguousarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __Pyx_INCREF(__pyx_v_boxes); | |
| __Pyx_GIVEREF(__pyx_v_boxes); | |
| PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_boxes); | |
| __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_DTYPE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 16, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 16, __pyx_L1_error) | |
| __pyx_t_5 = ((PyArrayObject *)__pyx_t_4); | |
| { | |
| __Pyx_BufFmt_StackElem __pyx_stack[1]; | |
| if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_4bbox_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { | |
| __pyx_v_boxes_contig = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer.buf = NULL; | |
| __PYX_ERR(0, 16, __pyx_L1_error) | |
| } else {__pyx_pybuffernd_boxes_contig.diminfo[0].strides = __pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_boxes_contig.diminfo[0].shape = __pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_boxes_contig.diminfo[1].strides = __pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_boxes_contig.diminfo[1].shape = __pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer.shape[1]; | |
| } | |
| } | |
| __pyx_t_5 = 0; | |
| __pyx_v_boxes_contig = ((PyArrayObject *)__pyx_t_4); | |
| __pyx_t_4 = 0; | |
| /* "bbox.pyx":17 | |
| * def bbox_overlaps(boxes, query_boxes): | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) # <<<<<<<<<<<<<< | |
| * | |
| * return bbox_overlaps_c(boxes_contig, query_contig) | |
| */ | |
| __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ascontiguousarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __Pyx_INCREF(__pyx_v_query_boxes); | |
| __Pyx_GIVEREF(__pyx_v_query_boxes); | |
| PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_query_boxes); | |
| __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DTYPE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 17, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 17, __pyx_L1_error) | |
| __pyx_t_6 = ((PyArrayObject *)__pyx_t_2); | |
| { | |
| __Pyx_BufFmt_StackElem __pyx_stack[1]; | |
| if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_query_contig.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_4bbox_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { | |
| __pyx_v_query_contig = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_query_contig.rcbuffer->pybuffer.buf = NULL; | |
| __PYX_ERR(0, 17, __pyx_L1_error) | |
| } else {__pyx_pybuffernd_query_contig.diminfo[0].strides = __pyx_pybuffernd_query_contig.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_query_contig.diminfo[0].shape = __pyx_pybuffernd_query_contig.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_query_contig.diminfo[1].strides = __pyx_pybuffernd_query_contig.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_query_contig.diminfo[1].shape = __pyx_pybuffernd_query_contig.rcbuffer->pybuffer.shape[1]; | |
| } | |
| } | |
| __pyx_t_6 = 0; | |
| __pyx_v_query_contig = ((PyArrayObject *)__pyx_t_2); | |
| __pyx_t_2 = 0; | |
| /* "bbox.pyx":19 | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| * | |
| * return bbox_overlaps_c(boxes_contig, query_contig) # <<<<<<<<<<<<<< | |
| * | |
| * cdef np.ndarray[DTYPE_t, ndim=2] bbox_overlaps_c( | |
| */ | |
| __Pyx_XDECREF(__pyx_r); | |
| __pyx_t_2 = ((PyObject *)__pyx_f_4bbox_bbox_overlaps_c(((PyArrayObject *)__pyx_v_boxes_contig), ((PyArrayObject *)__pyx_v_query_contig))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| __pyx_r = __pyx_t_2; | |
| __pyx_t_2 = 0; | |
| goto __pyx_L0; | |
| /* "bbox.pyx":15 | |
| * ctypedef np.float_t DTYPE_t | |
| * | |
| * def bbox_overlaps(boxes, query_boxes): # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| */ | |
| /* function exit code */ | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_XDECREF(__pyx_t_2); | |
| __Pyx_XDECREF(__pyx_t_3); | |
| __Pyx_XDECREF(__pyx_t_4); | |
| { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; | |
| __Pyx_PyThreadState_declare | |
| __Pyx_PyThreadState_assign | |
| __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_query_contig.rcbuffer->pybuffer); | |
| __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} | |
| __Pyx_AddTraceback("bbox.bbox_overlaps", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = NULL; | |
| goto __pyx_L2; | |
| __pyx_L0:; | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_query_contig.rcbuffer->pybuffer); | |
| __pyx_L2:; | |
| __Pyx_XDECREF((PyObject *)__pyx_v_boxes_contig); | |
| __Pyx_XDECREF((PyObject *)__pyx_v_query_contig); | |
| __Pyx_XGIVEREF(__pyx_r); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "bbox.pyx":21 | |
| * return bbox_overlaps_c(boxes_contig, query_contig) | |
| * | |
| * cdef np.ndarray[DTYPE_t, ndim=2] bbox_overlaps_c( # <<<<<<<<<<<<<< | |
| * np.ndarray[DTYPE_t, ndim=2] boxes, | |
| * np.ndarray[DTYPE_t, ndim=2] query_boxes): | |
| */ | |
| static PyArrayObject *__pyx_f_4bbox_bbox_overlaps_c(PyArrayObject *__pyx_v_boxes, PyArrayObject *__pyx_v_query_boxes) { | |
| unsigned int __pyx_v_N; | |
| unsigned int __pyx_v_K; | |
| PyArrayObject *__pyx_v_overlaps = 0; | |
| __pyx_t_4bbox_DTYPE_t __pyx_v_iw; | |
| __pyx_t_4bbox_DTYPE_t __pyx_v_ih; | |
| __pyx_t_4bbox_DTYPE_t __pyx_v_box_area; | |
| __pyx_t_4bbox_DTYPE_t __pyx_v_ua; | |
| unsigned int __pyx_v_k; | |
| unsigned int __pyx_v_n; | |
| __Pyx_LocalBuf_ND __pyx_pybuffernd_boxes; | |
| __Pyx_Buffer __pyx_pybuffer_boxes; | |
| __Pyx_LocalBuf_ND __pyx_pybuffernd_overlaps; | |
| __Pyx_Buffer __pyx_pybuffer_overlaps; | |
| __Pyx_LocalBuf_ND __pyx_pybuffernd_query_boxes; | |
| __Pyx_Buffer __pyx_pybuffer_query_boxes; | |
| PyArrayObject *__pyx_r = NULL; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| PyObject *__pyx_t_2 = NULL; | |
| PyObject *__pyx_t_3 = NULL; | |
| PyObject *__pyx_t_4 = NULL; | |
| PyArrayObject *__pyx_t_5 = NULL; | |
| unsigned int __pyx_t_6; | |
| unsigned int __pyx_t_7; | |
| unsigned int __pyx_t_8; | |
| size_t __pyx_t_9; | |
| Py_ssize_t __pyx_t_10; | |
| int __pyx_t_11; | |
| size_t __pyx_t_12; | |
| Py_ssize_t __pyx_t_13; | |
| size_t __pyx_t_14; | |
| Py_ssize_t __pyx_t_15; | |
| size_t __pyx_t_16; | |
| Py_ssize_t __pyx_t_17; | |
| unsigned int __pyx_t_18; | |
| unsigned int __pyx_t_19; | |
| unsigned int __pyx_t_20; | |
| size_t __pyx_t_21; | |
| Py_ssize_t __pyx_t_22; | |
| __pyx_t_4bbox_DTYPE_t __pyx_t_23; | |
| size_t __pyx_t_24; | |
| Py_ssize_t __pyx_t_25; | |
| __pyx_t_4bbox_DTYPE_t __pyx_t_26; | |
| __pyx_t_4bbox_DTYPE_t __pyx_t_27; | |
| size_t __pyx_t_28; | |
| Py_ssize_t __pyx_t_29; | |
| size_t __pyx_t_30; | |
| Py_ssize_t __pyx_t_31; | |
| __pyx_t_4bbox_DTYPE_t __pyx_t_32; | |
| int __pyx_t_33; | |
| size_t __pyx_t_34; | |
| Py_ssize_t __pyx_t_35; | |
| size_t __pyx_t_36; | |
| Py_ssize_t __pyx_t_37; | |
| size_t __pyx_t_38; | |
| Py_ssize_t __pyx_t_39; | |
| size_t __pyx_t_40; | |
| Py_ssize_t __pyx_t_41; | |
| size_t __pyx_t_42; | |
| Py_ssize_t __pyx_t_43; | |
| size_t __pyx_t_44; | |
| Py_ssize_t __pyx_t_45; | |
| size_t __pyx_t_46; | |
| Py_ssize_t __pyx_t_47; | |
| size_t __pyx_t_48; | |
| Py_ssize_t __pyx_t_49; | |
| size_t __pyx_t_50; | |
| size_t __pyx_t_51; | |
| __Pyx_RefNannySetupContext("bbox_overlaps_c", 0); | |
| __pyx_pybuffer_overlaps.pybuffer.buf = NULL; | |
| __pyx_pybuffer_overlaps.refcount = 0; | |
| __pyx_pybuffernd_overlaps.data = NULL; | |
| __pyx_pybuffernd_overlaps.rcbuffer = &__pyx_pybuffer_overlaps; | |
| __pyx_pybuffer_boxes.pybuffer.buf = NULL; | |
| __pyx_pybuffer_boxes.refcount = 0; | |
| __pyx_pybuffernd_boxes.data = NULL; | |
| __pyx_pybuffernd_boxes.rcbuffer = &__pyx_pybuffer_boxes; | |
| __pyx_pybuffer_query_boxes.pybuffer.buf = NULL; | |
| __pyx_pybuffer_query_boxes.refcount = 0; | |
| __pyx_pybuffernd_query_boxes.data = NULL; | |
| __pyx_pybuffernd_query_boxes.rcbuffer = &__pyx_pybuffer_query_boxes; | |
| { | |
| __Pyx_BufFmt_StackElem __pyx_stack[1]; | |
| if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_boxes.rcbuffer->pybuffer, (PyObject*)__pyx_v_boxes, &__Pyx_TypeInfo_nn___pyx_t_4bbox_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 21, __pyx_L1_error) | |
| } | |
| __pyx_pybuffernd_boxes.diminfo[0].strides = __pyx_pybuffernd_boxes.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_boxes.diminfo[0].shape = __pyx_pybuffernd_boxes.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_boxes.diminfo[1].strides = __pyx_pybuffernd_boxes.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_boxes.diminfo[1].shape = __pyx_pybuffernd_boxes.rcbuffer->pybuffer.shape[1]; | |
| { | |
| __Pyx_BufFmt_StackElem __pyx_stack[1]; | |
| if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_query_boxes.rcbuffer->pybuffer, (PyObject*)__pyx_v_query_boxes, &__Pyx_TypeInfo_nn___pyx_t_4bbox_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 21, __pyx_L1_error) | |
| } | |
| __pyx_pybuffernd_query_boxes.diminfo[0].strides = __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_query_boxes.diminfo[0].shape = __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_query_boxes.diminfo[1].strides = __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_query_boxes.diminfo[1].shape = __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.shape[1]; | |
| /* "bbox.pyx":33 | |
| * overlaps: (N, K) ndarray of overlap between boxes and query_boxes | |
| * """ | |
| * cdef unsigned int N = boxes.shape[0] # <<<<<<<<<<<<<< | |
| * cdef unsigned int K = query_boxes.shape[0] | |
| * cdef np.ndarray[DTYPE_t, ndim=2] overlaps = np.zeros((N, K), dtype=DTYPE) | |
| */ | |
| __pyx_v_N = (__pyx_v_boxes->dimensions[0]); | |
| /* "bbox.pyx":34 | |
| * """ | |
| * cdef unsigned int N = boxes.shape[0] | |
| * cdef unsigned int K = query_boxes.shape[0] # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] overlaps = np.zeros((N, K), dtype=DTYPE) | |
| * cdef DTYPE_t iw, ih, box_area | |
| */ | |
| __pyx_v_K = (__pyx_v_query_boxes->dimensions[0]); | |
| /* "bbox.pyx":35 | |
| * cdef unsigned int N = boxes.shape[0] | |
| * cdef unsigned int K = query_boxes.shape[0] | |
| * cdef np.ndarray[DTYPE_t, ndim=2] overlaps = np.zeros((N, K), dtype=DTYPE) # <<<<<<<<<<<<<< | |
| * cdef DTYPE_t iw, ih, box_area | |
| * cdef DTYPE_t ua | |
| */ | |
| __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __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, 35, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_K); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 35, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 35, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __Pyx_GIVEREF(__pyx_t_1); | |
| PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); | |
| __Pyx_GIVEREF(__pyx_t_3); | |
| PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); | |
| __pyx_t_1 = 0; | |
| __pyx_t_3 = 0; | |
| __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 35, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __Pyx_GIVEREF(__pyx_t_4); | |
| PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); | |
| __pyx_t_4 = 0; | |
| __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 35, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DTYPE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 35, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 35, __pyx_L1_error) | |
| __pyx_t_5 = ((PyArrayObject *)__pyx_t_1); | |
| { | |
| __Pyx_BufFmt_StackElem __pyx_stack[1]; | |
| if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_overlaps.rcbuffer->pybuffer, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_4bbox_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { | |
| __pyx_v_overlaps = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_overlaps.rcbuffer->pybuffer.buf = NULL; | |
| __PYX_ERR(0, 35, __pyx_L1_error) | |
| } else {__pyx_pybuffernd_overlaps.diminfo[0].strides = __pyx_pybuffernd_overlaps.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_overlaps.diminfo[0].shape = __pyx_pybuffernd_overlaps.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_overlaps.diminfo[1].strides = __pyx_pybuffernd_overlaps.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_overlaps.diminfo[1].shape = __pyx_pybuffernd_overlaps.rcbuffer->pybuffer.shape[1]; | |
| } | |
| } | |
| __pyx_t_5 = 0; | |
| __pyx_v_overlaps = ((PyArrayObject *)__pyx_t_1); | |
| __pyx_t_1 = 0; | |
| /* "bbox.pyx":39 | |
| * cdef DTYPE_t ua | |
| * cdef unsigned int k, n | |
| * for k in range(K): # <<<<<<<<<<<<<< | |
| * box_area = ( | |
| * (query_boxes[k, 2] - query_boxes[k, 0] + 1) * | |
| */ | |
| __pyx_t_6 = __pyx_v_K; | |
| __pyx_t_7 = __pyx_t_6; | |
| for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { | |
| __pyx_v_k = __pyx_t_8; | |
| /* "bbox.pyx":41 | |
| * for k in range(K): | |
| * box_area = ( | |
| * (query_boxes[k, 2] - query_boxes[k, 0] + 1) * # <<<<<<<<<<<<<< | |
| * (query_boxes[k, 3] - query_boxes[k, 1] + 1) | |
| * ) | |
| */ | |
| __pyx_t_9 = __pyx_v_k; | |
| __pyx_t_10 = 2; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_9 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_10 < 0) { | |
| __pyx_t_10 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_10 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 41, __pyx_L1_error) | |
| } | |
| __pyx_t_12 = __pyx_v_k; | |
| __pyx_t_13 = 0; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_12 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_13 < 0) { | |
| __pyx_t_13 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_13 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 41, __pyx_L1_error) | |
| } | |
| /* "bbox.pyx":42 | |
| * box_area = ( | |
| * (query_boxes[k, 2] - query_boxes[k, 0] + 1) * | |
| * (query_boxes[k, 3] - query_boxes[k, 1] + 1) # <<<<<<<<<<<<<< | |
| * ) | |
| * for n in range(N): | |
| */ | |
| __pyx_t_14 = __pyx_v_k; | |
| __pyx_t_15 = 3; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_14 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_15 < 0) { | |
| __pyx_t_15 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 42, __pyx_L1_error) | |
| } | |
| __pyx_t_16 = __pyx_v_k; | |
| __pyx_t_17 = 1; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_16 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_17 < 0) { | |
| __pyx_t_17 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 42, __pyx_L1_error) | |
| } | |
| /* "bbox.pyx":41 | |
| * for k in range(K): | |
| * box_area = ( | |
| * (query_boxes[k, 2] - query_boxes[k, 0] + 1) * # <<<<<<<<<<<<<< | |
| * (query_boxes[k, 3] - query_boxes[k, 1] + 1) | |
| * ) | |
| */ | |
| __pyx_v_box_area = ((((*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_query_boxes.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_13, __pyx_pybuffernd_query_boxes.diminfo[1].strides))) + 1.0) * (((*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_query_boxes.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_17, __pyx_pybuffernd_query_boxes.diminfo[1].strides))) + 1.0)); | |
| /* "bbox.pyx":44 | |
| * (query_boxes[k, 3] - query_boxes[k, 1] + 1) | |
| * ) | |
| * for n in range(N): # <<<<<<<<<<<<<< | |
| * iw = ( | |
| * min(boxes[n, 2], query_boxes[k, 2]) - | |
| */ | |
| __pyx_t_18 = __pyx_v_N; | |
| __pyx_t_19 = __pyx_t_18; | |
| for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) { | |
| __pyx_v_n = __pyx_t_20; | |
| /* "bbox.pyx":46 | |
| * for n in range(N): | |
| * iw = ( | |
| * min(boxes[n, 2], query_boxes[k, 2]) - # <<<<<<<<<<<<<< | |
| * max(boxes[n, 0], query_boxes[k, 0]) + 1 | |
| * ) | |
| */ | |
| __pyx_t_21 = __pyx_v_k; | |
| __pyx_t_22 = 2; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_21 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_22 < 0) { | |
| __pyx_t_22 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 46, __pyx_L1_error) | |
| } | |
| __pyx_t_23 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_query_boxes.diminfo[1].strides)); | |
| __pyx_t_24 = __pyx_v_n; | |
| __pyx_t_25 = 2; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_24 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_25 < 0) { | |
| __pyx_t_25 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 46, __pyx_L1_error) | |
| } | |
| __pyx_t_26 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_25, __pyx_pybuffernd_boxes.diminfo[1].strides)); | |
| if (((__pyx_t_23 < __pyx_t_26) != 0)) { | |
| __pyx_t_27 = __pyx_t_23; | |
| } else { | |
| __pyx_t_27 = __pyx_t_26; | |
| } | |
| /* "bbox.pyx":47 | |
| * iw = ( | |
| * min(boxes[n, 2], query_boxes[k, 2]) - | |
| * max(boxes[n, 0], query_boxes[k, 0]) + 1 # <<<<<<<<<<<<<< | |
| * ) | |
| * if iw > 0: | |
| */ | |
| __pyx_t_28 = __pyx_v_k; | |
| __pyx_t_29 = 0; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_28 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_29 < 0) { | |
| __pyx_t_29 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_29 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_29 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 47, __pyx_L1_error) | |
| } | |
| __pyx_t_23 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_29, __pyx_pybuffernd_query_boxes.diminfo[1].strides)); | |
| __pyx_t_30 = __pyx_v_n; | |
| __pyx_t_31 = 0; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_30 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_31 < 0) { | |
| __pyx_t_31 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_31 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 47, __pyx_L1_error) | |
| } | |
| __pyx_t_26 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_31, __pyx_pybuffernd_boxes.diminfo[1].strides)); | |
| if (((__pyx_t_23 > __pyx_t_26) != 0)) { | |
| __pyx_t_32 = __pyx_t_23; | |
| } else { | |
| __pyx_t_32 = __pyx_t_26; | |
| } | |
| /* "bbox.pyx":46 | |
| * for n in range(N): | |
| * iw = ( | |
| * min(boxes[n, 2], query_boxes[k, 2]) - # <<<<<<<<<<<<<< | |
| * max(boxes[n, 0], query_boxes[k, 0]) + 1 | |
| * ) | |
| */ | |
| __pyx_v_iw = ((__pyx_t_27 - __pyx_t_32) + 1.0); | |
| /* "bbox.pyx":49 | |
| * max(boxes[n, 0], query_boxes[k, 0]) + 1 | |
| * ) | |
| * if iw > 0: # <<<<<<<<<<<<<< | |
| * ih = ( | |
| * min(boxes[n, 3], query_boxes[k, 3]) - | |
| */ | |
| __pyx_t_33 = ((__pyx_v_iw > 0.0) != 0); | |
| if (__pyx_t_33) { | |
| /* "bbox.pyx":51 | |
| * if iw > 0: | |
| * ih = ( | |
| * min(boxes[n, 3], query_boxes[k, 3]) - # <<<<<<<<<<<<<< | |
| * max(boxes[n, 1], query_boxes[k, 1]) + 1 | |
| * ) | |
| */ | |
| __pyx_t_34 = __pyx_v_k; | |
| __pyx_t_35 = 3; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_34 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_35 < 0) { | |
| __pyx_t_35 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_35 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 51, __pyx_L1_error) | |
| } | |
| __pyx_t_32 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_35, __pyx_pybuffernd_query_boxes.diminfo[1].strides)); | |
| __pyx_t_36 = __pyx_v_n; | |
| __pyx_t_37 = 3; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_36 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_37 < 0) { | |
| __pyx_t_37 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_37 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 51, __pyx_L1_error) | |
| } | |
| __pyx_t_27 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_37, __pyx_pybuffernd_boxes.diminfo[1].strides)); | |
| if (((__pyx_t_32 < __pyx_t_27) != 0)) { | |
| __pyx_t_23 = __pyx_t_32; | |
| } else { | |
| __pyx_t_23 = __pyx_t_27; | |
| } | |
| /* "bbox.pyx":52 | |
| * ih = ( | |
| * min(boxes[n, 3], query_boxes[k, 3]) - | |
| * max(boxes[n, 1], query_boxes[k, 1]) + 1 # <<<<<<<<<<<<<< | |
| * ) | |
| * if ih > 0: | |
| */ | |
| __pyx_t_38 = __pyx_v_k; | |
| __pyx_t_39 = 1; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_38 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_39 < 0) { | |
| __pyx_t_39 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_39 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 52, __pyx_L1_error) | |
| } | |
| __pyx_t_32 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_39, __pyx_pybuffernd_query_boxes.diminfo[1].strides)); | |
| __pyx_t_40 = __pyx_v_n; | |
| __pyx_t_41 = 1; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_40 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_41 < 0) { | |
| __pyx_t_41 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_41 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 52, __pyx_L1_error) | |
| } | |
| __pyx_t_27 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_41, __pyx_pybuffernd_boxes.diminfo[1].strides)); | |
| if (((__pyx_t_32 > __pyx_t_27) != 0)) { | |
| __pyx_t_26 = __pyx_t_32; | |
| } else { | |
| __pyx_t_26 = __pyx_t_27; | |
| } | |
| /* "bbox.pyx":51 | |
| * if iw > 0: | |
| * ih = ( | |
| * min(boxes[n, 3], query_boxes[k, 3]) - # <<<<<<<<<<<<<< | |
| * max(boxes[n, 1], query_boxes[k, 1]) + 1 | |
| * ) | |
| */ | |
| __pyx_v_ih = ((__pyx_t_23 - __pyx_t_26) + 1.0); | |
| /* "bbox.pyx":54 | |
| * max(boxes[n, 1], query_boxes[k, 1]) + 1 | |
| * ) | |
| * if ih > 0: # <<<<<<<<<<<<<< | |
| * ua = float( | |
| * (boxes[n, 2] - boxes[n, 0] + 1) * | |
| */ | |
| __pyx_t_33 = ((__pyx_v_ih > 0.0) != 0); | |
| if (__pyx_t_33) { | |
| /* "bbox.pyx":56 | |
| * if ih > 0: | |
| * ua = float( | |
| * (boxes[n, 2] - boxes[n, 0] + 1) * # <<<<<<<<<<<<<< | |
| * (boxes[n, 3] - boxes[n, 1] + 1) + | |
| * box_area - iw * ih | |
| */ | |
| __pyx_t_42 = __pyx_v_n; | |
| __pyx_t_43 = 2; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_42 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_43 < 0) { | |
| __pyx_t_43 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_43 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_43 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 56, __pyx_L1_error) | |
| } | |
| __pyx_t_44 = __pyx_v_n; | |
| __pyx_t_45 = 0; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_44 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_45 < 0) { | |
| __pyx_t_45 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_45 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_45 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 56, __pyx_L1_error) | |
| } | |
| /* "bbox.pyx":57 | |
| * ua = float( | |
| * (boxes[n, 2] - boxes[n, 0] + 1) * | |
| * (boxes[n, 3] - boxes[n, 1] + 1) + # <<<<<<<<<<<<<< | |
| * box_area - iw * ih | |
| * ) | |
| */ | |
| __pyx_t_46 = __pyx_v_n; | |
| __pyx_t_47 = 3; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_46 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_47 < 0) { | |
| __pyx_t_47 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_47 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_47 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 57, __pyx_L1_error) | |
| } | |
| __pyx_t_48 = __pyx_v_n; | |
| __pyx_t_49 = 1; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_48 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_49 < 0) { | |
| __pyx_t_49 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_49 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_49 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 57, __pyx_L1_error) | |
| } | |
| /* "bbox.pyx":55 | |
| * ) | |
| * if ih > 0: | |
| * ua = float( # <<<<<<<<<<<<<< | |
| * (boxes[n, 2] - boxes[n, 0] + 1) * | |
| * (boxes[n, 3] - boxes[n, 1] + 1) + | |
| */ | |
| __pyx_v_ua = ((double)((((((*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_43, __pyx_pybuffernd_boxes.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_45, __pyx_pybuffernd_boxes.diminfo[1].strides))) + 1.0) * (((*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_47, __pyx_pybuffernd_boxes.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_49, __pyx_pybuffernd_boxes.diminfo[1].strides))) + 1.0)) + __pyx_v_box_area) - (__pyx_v_iw * __pyx_v_ih))); | |
| /* "bbox.pyx":60 | |
| * box_area - iw * ih | |
| * ) | |
| * overlaps[n, k] = iw * ih / ua # <<<<<<<<<<<<<< | |
| * return overlaps | |
| * | |
| */ | |
| __pyx_t_26 = (__pyx_v_iw * __pyx_v_ih); | |
| if (unlikely(__pyx_v_ua == 0)) { | |
| PyErr_SetString(PyExc_ZeroDivisionError, "float division"); | |
| __PYX_ERR(0, 60, __pyx_L1_error) | |
| } | |
| __pyx_t_50 = __pyx_v_n; | |
| __pyx_t_51 = __pyx_v_k; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_50 >= (size_t)__pyx_pybuffernd_overlaps.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (unlikely(__pyx_t_51 >= (size_t)__pyx_pybuffernd_overlaps.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 60, __pyx_L1_error) | |
| } | |
| *__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_overlaps.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_overlaps.diminfo[0].strides, __pyx_t_51, __pyx_pybuffernd_overlaps.diminfo[1].strides) = (__pyx_t_26 / __pyx_v_ua); | |
| /* "bbox.pyx":54 | |
| * max(boxes[n, 1], query_boxes[k, 1]) + 1 | |
| * ) | |
| * if ih > 0: # <<<<<<<<<<<<<< | |
| * ua = float( | |
| * (boxes[n, 2] - boxes[n, 0] + 1) * | |
| */ | |
| } | |
| /* "bbox.pyx":49 | |
| * max(boxes[n, 0], query_boxes[k, 0]) + 1 | |
| * ) | |
| * if iw > 0: # <<<<<<<<<<<<<< | |
| * ih = ( | |
| * min(boxes[n, 3], query_boxes[k, 3]) - | |
| */ | |
| } | |
| } | |
| } | |
| /* "bbox.pyx":61 | |
| * ) | |
| * overlaps[n, k] = iw * ih / ua | |
| * return overlaps # <<<<<<<<<<<<<< | |
| * | |
| * | |
| */ | |
| __Pyx_XDECREF(((PyObject *)__pyx_r)); | |
| __Pyx_INCREF(((PyObject *)__pyx_v_overlaps)); | |
| __pyx_r = ((PyArrayObject *)__pyx_v_overlaps); | |
| goto __pyx_L0; | |
| /* "bbox.pyx":21 | |
| * return bbox_overlaps_c(boxes_contig, query_contig) | |
| * | |
| * cdef np.ndarray[DTYPE_t, ndim=2] bbox_overlaps_c( # <<<<<<<<<<<<<< | |
| * np.ndarray[DTYPE_t, ndim=2] boxes, | |
| * np.ndarray[DTYPE_t, ndim=2] query_boxes): | |
| */ | |
| /* function exit code */ | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_XDECREF(__pyx_t_2); | |
| __Pyx_XDECREF(__pyx_t_3); | |
| __Pyx_XDECREF(__pyx_t_4); | |
| { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; | |
| __Pyx_PyThreadState_declare | |
| __Pyx_PyThreadState_assign | |
| __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_boxes.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_overlaps.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_query_boxes.rcbuffer->pybuffer); | |
| __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} | |
| __Pyx_AddTraceback("bbox.bbox_overlaps_c", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = 0; | |
| goto __pyx_L2; | |
| __pyx_L0:; | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_boxes.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_overlaps.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_query_boxes.rcbuffer->pybuffer); | |
| __pyx_L2:; | |
| __Pyx_XDECREF((PyObject *)__pyx_v_overlaps); | |
| __Pyx_XGIVEREF((PyObject *)__pyx_r); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "bbox.pyx":64 | |
| * | |
| * | |
| * def bbox_intersections(boxes, query_boxes): # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| */ | |
| /* Python wrapper */ | |
| static PyObject *__pyx_pw_4bbox_3bbox_intersections(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ | |
| static PyMethodDef __pyx_mdef_4bbox_3bbox_intersections = {"bbox_intersections", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4bbox_3bbox_intersections, METH_VARARGS|METH_KEYWORDS, 0}; | |
| static PyObject *__pyx_pw_4bbox_3bbox_intersections(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { | |
| PyObject *__pyx_v_boxes = 0; | |
| PyObject *__pyx_v_query_boxes = 0; | |
| PyObject *__pyx_r = 0; | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("bbox_intersections (wrapper)", 0); | |
| { | |
| static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_boxes,&__pyx_n_s_query_boxes,0}; | |
| PyObject* values[2] = {0,0}; | |
| if (unlikely(__pyx_kwds)) { | |
| Py_ssize_t kw_args; | |
| const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); | |
| switch (pos_args) { | |
| case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); | |
| CYTHON_FALLTHROUGH; | |
| case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); | |
| CYTHON_FALLTHROUGH; | |
| case 0: break; | |
| default: goto __pyx_L5_argtuple_error; | |
| } | |
| kw_args = PyDict_Size(__pyx_kwds); | |
| switch (pos_args) { | |
| case 0: | |
| if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_boxes)) != 0)) kw_args--; | |
| else goto __pyx_L5_argtuple_error; | |
| CYTHON_FALLTHROUGH; | |
| case 1: | |
| if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_query_boxes)) != 0)) kw_args--; | |
| else { | |
| __Pyx_RaiseArgtupleInvalid("bbox_intersections", 1, 2, 2, 1); __PYX_ERR(0, 64, __pyx_L3_error) | |
| } | |
| } | |
| if (unlikely(kw_args > 0)) { | |
| if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "bbox_intersections") < 0)) __PYX_ERR(0, 64, __pyx_L3_error) | |
| } | |
| } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { | |
| goto __pyx_L5_argtuple_error; | |
| } else { | |
| values[0] = PyTuple_GET_ITEM(__pyx_args, 0); | |
| values[1] = PyTuple_GET_ITEM(__pyx_args, 1); | |
| } | |
| __pyx_v_boxes = values[0]; | |
| __pyx_v_query_boxes = values[1]; | |
| } | |
| goto __pyx_L4_argument_unpacking_done; | |
| __pyx_L5_argtuple_error:; | |
| __Pyx_RaiseArgtupleInvalid("bbox_intersections", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 64, __pyx_L3_error) | |
| __pyx_L3_error:; | |
| __Pyx_AddTraceback("bbox.bbox_intersections", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __Pyx_RefNannyFinishContext(); | |
| return NULL; | |
| __pyx_L4_argument_unpacking_done:; | |
| __pyx_r = __pyx_pf_4bbox_2bbox_intersections(__pyx_self, __pyx_v_boxes, __pyx_v_query_boxes); | |
| /* function exit code */ | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| static PyObject *__pyx_pf_4bbox_2bbox_intersections(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_boxes, PyObject *__pyx_v_query_boxes) { | |
| PyArrayObject *__pyx_v_boxes_contig = 0; | |
| PyArrayObject *__pyx_v_query_contig = 0; | |
| __Pyx_LocalBuf_ND __pyx_pybuffernd_boxes_contig; | |
| __Pyx_Buffer __pyx_pybuffer_boxes_contig; | |
| __Pyx_LocalBuf_ND __pyx_pybuffernd_query_contig; | |
| __Pyx_Buffer __pyx_pybuffer_query_contig; | |
| PyObject *__pyx_r = NULL; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| PyObject *__pyx_t_2 = NULL; | |
| PyObject *__pyx_t_3 = NULL; | |
| PyObject *__pyx_t_4 = NULL; | |
| PyArrayObject *__pyx_t_5 = NULL; | |
| PyArrayObject *__pyx_t_6 = NULL; | |
| __Pyx_RefNannySetupContext("bbox_intersections", 0); | |
| __pyx_pybuffer_boxes_contig.pybuffer.buf = NULL; | |
| __pyx_pybuffer_boxes_contig.refcount = 0; | |
| __pyx_pybuffernd_boxes_contig.data = NULL; | |
| __pyx_pybuffernd_boxes_contig.rcbuffer = &__pyx_pybuffer_boxes_contig; | |
| __pyx_pybuffer_query_contig.pybuffer.buf = NULL; | |
| __pyx_pybuffer_query_contig.refcount = 0; | |
| __pyx_pybuffernd_query_contig.data = NULL; | |
| __pyx_pybuffernd_query_contig.rcbuffer = &__pyx_pybuffer_query_contig; | |
| /* "bbox.pyx":65 | |
| * | |
| * def bbox_intersections(boxes, query_boxes): | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| * | |
| */ | |
| __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ascontiguousarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 65, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __Pyx_INCREF(__pyx_v_boxes); | |
| __Pyx_GIVEREF(__pyx_v_boxes); | |
| PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_boxes); | |
| __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 65, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_DTYPE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 65, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 65, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 65, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 65, __pyx_L1_error) | |
| __pyx_t_5 = ((PyArrayObject *)__pyx_t_4); | |
| { | |
| __Pyx_BufFmt_StackElem __pyx_stack[1]; | |
| if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_4bbox_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { | |
| __pyx_v_boxes_contig = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer.buf = NULL; | |
| __PYX_ERR(0, 65, __pyx_L1_error) | |
| } else {__pyx_pybuffernd_boxes_contig.diminfo[0].strides = __pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_boxes_contig.diminfo[0].shape = __pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_boxes_contig.diminfo[1].strides = __pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_boxes_contig.diminfo[1].shape = __pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer.shape[1]; | |
| } | |
| } | |
| __pyx_t_5 = 0; | |
| __pyx_v_boxes_contig = ((PyArrayObject *)__pyx_t_4); | |
| __pyx_t_4 = 0; | |
| /* "bbox.pyx":66 | |
| * def bbox_intersections(boxes, query_boxes): | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) # <<<<<<<<<<<<<< | |
| * | |
| * return bbox_intersections_c(boxes_contig, query_contig) | |
| */ | |
| __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 66, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ascontiguousarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 66, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 66, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __Pyx_INCREF(__pyx_v_query_boxes); | |
| __Pyx_GIVEREF(__pyx_v_query_boxes); | |
| PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_query_boxes); | |
| __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DTYPE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 66, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 66, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 66, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 66, __pyx_L1_error) | |
| __pyx_t_6 = ((PyArrayObject *)__pyx_t_2); | |
| { | |
| __Pyx_BufFmt_StackElem __pyx_stack[1]; | |
| if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_query_contig.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_nn___pyx_t_4bbox_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { | |
| __pyx_v_query_contig = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_query_contig.rcbuffer->pybuffer.buf = NULL; | |
| __PYX_ERR(0, 66, __pyx_L1_error) | |
| } else {__pyx_pybuffernd_query_contig.diminfo[0].strides = __pyx_pybuffernd_query_contig.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_query_contig.diminfo[0].shape = __pyx_pybuffernd_query_contig.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_query_contig.diminfo[1].strides = __pyx_pybuffernd_query_contig.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_query_contig.diminfo[1].shape = __pyx_pybuffernd_query_contig.rcbuffer->pybuffer.shape[1]; | |
| } | |
| } | |
| __pyx_t_6 = 0; | |
| __pyx_v_query_contig = ((PyArrayObject *)__pyx_t_2); | |
| __pyx_t_2 = 0; | |
| /* "bbox.pyx":68 | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| * | |
| * return bbox_intersections_c(boxes_contig, query_contig) # <<<<<<<<<<<<<< | |
| * | |
| * | |
| */ | |
| __Pyx_XDECREF(__pyx_r); | |
| __pyx_t_2 = ((PyObject *)__pyx_f_4bbox_bbox_intersections_c(((PyArrayObject *)__pyx_v_boxes_contig), ((PyArrayObject *)__pyx_v_query_contig))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| __pyx_r = __pyx_t_2; | |
| __pyx_t_2 = 0; | |
| goto __pyx_L0; | |
| /* "bbox.pyx":64 | |
| * | |
| * | |
| * def bbox_intersections(boxes, query_boxes): # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| */ | |
| /* function exit code */ | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_XDECREF(__pyx_t_2); | |
| __Pyx_XDECREF(__pyx_t_3); | |
| __Pyx_XDECREF(__pyx_t_4); | |
| { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; | |
| __Pyx_PyThreadState_declare | |
| __Pyx_PyThreadState_assign | |
| __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_query_contig.rcbuffer->pybuffer); | |
| __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} | |
| __Pyx_AddTraceback("bbox.bbox_intersections", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = NULL; | |
| goto __pyx_L2; | |
| __pyx_L0:; | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_boxes_contig.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_query_contig.rcbuffer->pybuffer); | |
| __pyx_L2:; | |
| __Pyx_XDECREF((PyObject *)__pyx_v_boxes_contig); | |
| __Pyx_XDECREF((PyObject *)__pyx_v_query_contig); | |
| __Pyx_XGIVEREF(__pyx_r); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "bbox.pyx":71 | |
| * | |
| * | |
| * cdef np.ndarray[DTYPE_t, ndim=2] bbox_intersections_c( # <<<<<<<<<<<<<< | |
| * np.ndarray[DTYPE_t, ndim=2] boxes, | |
| * np.ndarray[DTYPE_t, ndim=2] query_boxes): | |
| */ | |
| static PyArrayObject *__pyx_f_4bbox_bbox_intersections_c(PyArrayObject *__pyx_v_boxes, PyArrayObject *__pyx_v_query_boxes) { | |
| unsigned int __pyx_v_N; | |
| unsigned int __pyx_v_K; | |
| PyArrayObject *__pyx_v_intersec = 0; | |
| __pyx_t_4bbox_DTYPE_t __pyx_v_iw; | |
| __pyx_t_4bbox_DTYPE_t __pyx_v_ih; | |
| __pyx_t_4bbox_DTYPE_t __pyx_v_box_area; | |
| unsigned int __pyx_v_k; | |
| unsigned int __pyx_v_n; | |
| __Pyx_LocalBuf_ND __pyx_pybuffernd_boxes; | |
| __Pyx_Buffer __pyx_pybuffer_boxes; | |
| __Pyx_LocalBuf_ND __pyx_pybuffernd_intersec; | |
| __Pyx_Buffer __pyx_pybuffer_intersec; | |
| __Pyx_LocalBuf_ND __pyx_pybuffernd_query_boxes; | |
| __Pyx_Buffer __pyx_pybuffer_query_boxes; | |
| PyArrayObject *__pyx_r = NULL; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| PyObject *__pyx_t_2 = NULL; | |
| PyObject *__pyx_t_3 = NULL; | |
| PyObject *__pyx_t_4 = NULL; | |
| PyArrayObject *__pyx_t_5 = NULL; | |
| unsigned int __pyx_t_6; | |
| unsigned int __pyx_t_7; | |
| unsigned int __pyx_t_8; | |
| size_t __pyx_t_9; | |
| Py_ssize_t __pyx_t_10; | |
| int __pyx_t_11; | |
| size_t __pyx_t_12; | |
| Py_ssize_t __pyx_t_13; | |
| size_t __pyx_t_14; | |
| Py_ssize_t __pyx_t_15; | |
| size_t __pyx_t_16; | |
| Py_ssize_t __pyx_t_17; | |
| unsigned int __pyx_t_18; | |
| unsigned int __pyx_t_19; | |
| unsigned int __pyx_t_20; | |
| size_t __pyx_t_21; | |
| Py_ssize_t __pyx_t_22; | |
| __pyx_t_4bbox_DTYPE_t __pyx_t_23; | |
| size_t __pyx_t_24; | |
| Py_ssize_t __pyx_t_25; | |
| __pyx_t_4bbox_DTYPE_t __pyx_t_26; | |
| __pyx_t_4bbox_DTYPE_t __pyx_t_27; | |
| size_t __pyx_t_28; | |
| Py_ssize_t __pyx_t_29; | |
| size_t __pyx_t_30; | |
| Py_ssize_t __pyx_t_31; | |
| __pyx_t_4bbox_DTYPE_t __pyx_t_32; | |
| int __pyx_t_33; | |
| size_t __pyx_t_34; | |
| Py_ssize_t __pyx_t_35; | |
| size_t __pyx_t_36; | |
| Py_ssize_t __pyx_t_37; | |
| size_t __pyx_t_38; | |
| Py_ssize_t __pyx_t_39; | |
| size_t __pyx_t_40; | |
| Py_ssize_t __pyx_t_41; | |
| size_t __pyx_t_42; | |
| size_t __pyx_t_43; | |
| __Pyx_RefNannySetupContext("bbox_intersections_c", 0); | |
| __pyx_pybuffer_intersec.pybuffer.buf = NULL; | |
| __pyx_pybuffer_intersec.refcount = 0; | |
| __pyx_pybuffernd_intersec.data = NULL; | |
| __pyx_pybuffernd_intersec.rcbuffer = &__pyx_pybuffer_intersec; | |
| __pyx_pybuffer_boxes.pybuffer.buf = NULL; | |
| __pyx_pybuffer_boxes.refcount = 0; | |
| __pyx_pybuffernd_boxes.data = NULL; | |
| __pyx_pybuffernd_boxes.rcbuffer = &__pyx_pybuffer_boxes; | |
| __pyx_pybuffer_query_boxes.pybuffer.buf = NULL; | |
| __pyx_pybuffer_query_boxes.refcount = 0; | |
| __pyx_pybuffernd_query_boxes.data = NULL; | |
| __pyx_pybuffernd_query_boxes.rcbuffer = &__pyx_pybuffer_query_boxes; | |
| { | |
| __Pyx_BufFmt_StackElem __pyx_stack[1]; | |
| if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_boxes.rcbuffer->pybuffer, (PyObject*)__pyx_v_boxes, &__Pyx_TypeInfo_nn___pyx_t_4bbox_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 71, __pyx_L1_error) | |
| } | |
| __pyx_pybuffernd_boxes.diminfo[0].strides = __pyx_pybuffernd_boxes.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_boxes.diminfo[0].shape = __pyx_pybuffernd_boxes.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_boxes.diminfo[1].strides = __pyx_pybuffernd_boxes.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_boxes.diminfo[1].shape = __pyx_pybuffernd_boxes.rcbuffer->pybuffer.shape[1]; | |
| { | |
| __Pyx_BufFmt_StackElem __pyx_stack[1]; | |
| if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_query_boxes.rcbuffer->pybuffer, (PyObject*)__pyx_v_query_boxes, &__Pyx_TypeInfo_nn___pyx_t_4bbox_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 71, __pyx_L1_error) | |
| } | |
| __pyx_pybuffernd_query_boxes.diminfo[0].strides = __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_query_boxes.diminfo[0].shape = __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_query_boxes.diminfo[1].strides = __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_query_boxes.diminfo[1].shape = __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.shape[1]; | |
| /* "bbox.pyx":85 | |
| * overlaps: (N, K) ndarray of intersec between boxes and query_boxes | |
| * """ | |
| * cdef unsigned int N = boxes.shape[0] # <<<<<<<<<<<<<< | |
| * cdef unsigned int K = query_boxes.shape[0] | |
| * cdef np.ndarray[DTYPE_t, ndim=2] intersec = np.zeros((N, K), dtype=DTYPE) | |
| */ | |
| __pyx_v_N = (__pyx_v_boxes->dimensions[0]); | |
| /* "bbox.pyx":86 | |
| * """ | |
| * cdef unsigned int N = boxes.shape[0] | |
| * cdef unsigned int K = query_boxes.shape[0] # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] intersec = np.zeros((N, K), dtype=DTYPE) | |
| * cdef DTYPE_t iw, ih, box_area | |
| */ | |
| __pyx_v_K = (__pyx_v_query_boxes->dimensions[0]); | |
| /* "bbox.pyx":87 | |
| * cdef unsigned int N = boxes.shape[0] | |
| * cdef unsigned int K = query_boxes.shape[0] | |
| * cdef np.ndarray[DTYPE_t, ndim=2] intersec = np.zeros((N, K), dtype=DTYPE) # <<<<<<<<<<<<<< | |
| * cdef DTYPE_t iw, ih, box_area | |
| * cdef DTYPE_t ua | |
| */ | |
| __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __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, 87, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_K); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 87, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 87, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __Pyx_GIVEREF(__pyx_t_1); | |
| PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); | |
| __Pyx_GIVEREF(__pyx_t_3); | |
| PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); | |
| __pyx_t_1 = 0; | |
| __pyx_t_3 = 0; | |
| __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 87, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __Pyx_GIVEREF(__pyx_t_4); | |
| PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); | |
| __pyx_t_4 = 0; | |
| __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 87, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DTYPE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 87, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 87, __pyx_L1_error) | |
| __pyx_t_5 = ((PyArrayObject *)__pyx_t_1); | |
| { | |
| __Pyx_BufFmt_StackElem __pyx_stack[1]; | |
| if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_intersec.rcbuffer->pybuffer, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_nn___pyx_t_4bbox_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { | |
| __pyx_v_intersec = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_intersec.rcbuffer->pybuffer.buf = NULL; | |
| __PYX_ERR(0, 87, __pyx_L1_error) | |
| } else {__pyx_pybuffernd_intersec.diminfo[0].strides = __pyx_pybuffernd_intersec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_intersec.diminfo[0].shape = __pyx_pybuffernd_intersec.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_intersec.diminfo[1].strides = __pyx_pybuffernd_intersec.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_intersec.diminfo[1].shape = __pyx_pybuffernd_intersec.rcbuffer->pybuffer.shape[1]; | |
| } | |
| } | |
| __pyx_t_5 = 0; | |
| __pyx_v_intersec = ((PyArrayObject *)__pyx_t_1); | |
| __pyx_t_1 = 0; | |
| /* "bbox.pyx":91 | |
| * cdef DTYPE_t ua | |
| * cdef unsigned int k, n | |
| * for k in range(K): # <<<<<<<<<<<<<< | |
| * box_area = ( | |
| * (query_boxes[k, 2] - query_boxes[k, 0] + 1) * | |
| */ | |
| __pyx_t_6 = __pyx_v_K; | |
| __pyx_t_7 = __pyx_t_6; | |
| for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { | |
| __pyx_v_k = __pyx_t_8; | |
| /* "bbox.pyx":93 | |
| * for k in range(K): | |
| * box_area = ( | |
| * (query_boxes[k, 2] - query_boxes[k, 0] + 1) * # <<<<<<<<<<<<<< | |
| * (query_boxes[k, 3] - query_boxes[k, 1] + 1) | |
| * ) | |
| */ | |
| __pyx_t_9 = __pyx_v_k; | |
| __pyx_t_10 = 2; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_9 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_10 < 0) { | |
| __pyx_t_10 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_10 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 93, __pyx_L1_error) | |
| } | |
| __pyx_t_12 = __pyx_v_k; | |
| __pyx_t_13 = 0; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_12 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_13 < 0) { | |
| __pyx_t_13 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_13 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_13 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 93, __pyx_L1_error) | |
| } | |
| /* "bbox.pyx":94 | |
| * box_area = ( | |
| * (query_boxes[k, 2] - query_boxes[k, 0] + 1) * | |
| * (query_boxes[k, 3] - query_boxes[k, 1] + 1) # <<<<<<<<<<<<<< | |
| * ) | |
| * for n in range(N): | |
| */ | |
| __pyx_t_14 = __pyx_v_k; | |
| __pyx_t_15 = 3; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_14 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_15 < 0) { | |
| __pyx_t_15 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 94, __pyx_L1_error) | |
| } | |
| __pyx_t_16 = __pyx_v_k; | |
| __pyx_t_17 = 1; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_16 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_17 < 0) { | |
| __pyx_t_17 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 94, __pyx_L1_error) | |
| } | |
| /* "bbox.pyx":93 | |
| * for k in range(K): | |
| * box_area = ( | |
| * (query_boxes[k, 2] - query_boxes[k, 0] + 1) * # <<<<<<<<<<<<<< | |
| * (query_boxes[k, 3] - query_boxes[k, 1] + 1) | |
| * ) | |
| */ | |
| __pyx_v_box_area = ((((*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_query_boxes.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_13, __pyx_pybuffernd_query_boxes.diminfo[1].strides))) + 1.0) * (((*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_query_boxes.diminfo[1].strides)) - (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_17, __pyx_pybuffernd_query_boxes.diminfo[1].strides))) + 1.0)); | |
| /* "bbox.pyx":96 | |
| * (query_boxes[k, 3] - query_boxes[k, 1] + 1) | |
| * ) | |
| * for n in range(N): # <<<<<<<<<<<<<< | |
| * iw = ( | |
| * min(boxes[n, 2], query_boxes[k, 2]) - | |
| */ | |
| __pyx_t_18 = __pyx_v_N; | |
| __pyx_t_19 = __pyx_t_18; | |
| for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) { | |
| __pyx_v_n = __pyx_t_20; | |
| /* "bbox.pyx":98 | |
| * for n in range(N): | |
| * iw = ( | |
| * min(boxes[n, 2], query_boxes[k, 2]) - # <<<<<<<<<<<<<< | |
| * max(boxes[n, 0], query_boxes[k, 0]) + 1 | |
| * ) | |
| */ | |
| __pyx_t_21 = __pyx_v_k; | |
| __pyx_t_22 = 2; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_21 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_22 < 0) { | |
| __pyx_t_22 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 98, __pyx_L1_error) | |
| } | |
| __pyx_t_23 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_query_boxes.diminfo[1].strides)); | |
| __pyx_t_24 = __pyx_v_n; | |
| __pyx_t_25 = 2; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_24 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_25 < 0) { | |
| __pyx_t_25 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 98, __pyx_L1_error) | |
| } | |
| __pyx_t_26 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_25, __pyx_pybuffernd_boxes.diminfo[1].strides)); | |
| if (((__pyx_t_23 < __pyx_t_26) != 0)) { | |
| __pyx_t_27 = __pyx_t_23; | |
| } else { | |
| __pyx_t_27 = __pyx_t_26; | |
| } | |
| /* "bbox.pyx":99 | |
| * iw = ( | |
| * min(boxes[n, 2], query_boxes[k, 2]) - | |
| * max(boxes[n, 0], query_boxes[k, 0]) + 1 # <<<<<<<<<<<<<< | |
| * ) | |
| * if iw > 0: | |
| */ | |
| __pyx_t_28 = __pyx_v_k; | |
| __pyx_t_29 = 0; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_28 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_29 < 0) { | |
| __pyx_t_29 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_29 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_29 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 99, __pyx_L1_error) | |
| } | |
| __pyx_t_23 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_29, __pyx_pybuffernd_query_boxes.diminfo[1].strides)); | |
| __pyx_t_30 = __pyx_v_n; | |
| __pyx_t_31 = 0; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_30 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_31 < 0) { | |
| __pyx_t_31 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_31 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 99, __pyx_L1_error) | |
| } | |
| __pyx_t_26 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_31, __pyx_pybuffernd_boxes.diminfo[1].strides)); | |
| if (((__pyx_t_23 > __pyx_t_26) != 0)) { | |
| __pyx_t_32 = __pyx_t_23; | |
| } else { | |
| __pyx_t_32 = __pyx_t_26; | |
| } | |
| /* "bbox.pyx":98 | |
| * for n in range(N): | |
| * iw = ( | |
| * min(boxes[n, 2], query_boxes[k, 2]) - # <<<<<<<<<<<<<< | |
| * max(boxes[n, 0], query_boxes[k, 0]) + 1 | |
| * ) | |
| */ | |
| __pyx_v_iw = ((__pyx_t_27 - __pyx_t_32) + 1.0); | |
| /* "bbox.pyx":101 | |
| * max(boxes[n, 0], query_boxes[k, 0]) + 1 | |
| * ) | |
| * if iw > 0: # <<<<<<<<<<<<<< | |
| * ih = ( | |
| * min(boxes[n, 3], query_boxes[k, 3]) - | |
| */ | |
| __pyx_t_33 = ((__pyx_v_iw > 0.0) != 0); | |
| if (__pyx_t_33) { | |
| /* "bbox.pyx":103 | |
| * if iw > 0: | |
| * ih = ( | |
| * min(boxes[n, 3], query_boxes[k, 3]) - # <<<<<<<<<<<<<< | |
| * max(boxes[n, 1], query_boxes[k, 1]) + 1 | |
| * ) | |
| */ | |
| __pyx_t_34 = __pyx_v_k; | |
| __pyx_t_35 = 3; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_34 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_35 < 0) { | |
| __pyx_t_35 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_35 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 103, __pyx_L1_error) | |
| } | |
| __pyx_t_32 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_35, __pyx_pybuffernd_query_boxes.diminfo[1].strides)); | |
| __pyx_t_36 = __pyx_v_n; | |
| __pyx_t_37 = 3; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_36 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_37 < 0) { | |
| __pyx_t_37 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_37 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 103, __pyx_L1_error) | |
| } | |
| __pyx_t_27 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_37, __pyx_pybuffernd_boxes.diminfo[1].strides)); | |
| if (((__pyx_t_32 < __pyx_t_27) != 0)) { | |
| __pyx_t_23 = __pyx_t_32; | |
| } else { | |
| __pyx_t_23 = __pyx_t_27; | |
| } | |
| /* "bbox.pyx":104 | |
| * ih = ( | |
| * min(boxes[n, 3], query_boxes[k, 3]) - | |
| * max(boxes[n, 1], query_boxes[k, 1]) + 1 # <<<<<<<<<<<<<< | |
| * ) | |
| * if ih > 0: | |
| */ | |
| __pyx_t_38 = __pyx_v_k; | |
| __pyx_t_39 = 1; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_38 >= (size_t)__pyx_pybuffernd_query_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_39 < 0) { | |
| __pyx_t_39 += __pyx_pybuffernd_query_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_39 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_query_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 104, __pyx_L1_error) | |
| } | |
| __pyx_t_32 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_query_boxes.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_query_boxes.diminfo[0].strides, __pyx_t_39, __pyx_pybuffernd_query_boxes.diminfo[1].strides)); | |
| __pyx_t_40 = __pyx_v_n; | |
| __pyx_t_41 = 1; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_40 >= (size_t)__pyx_pybuffernd_boxes.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (__pyx_t_41 < 0) { | |
| __pyx_t_41 += __pyx_pybuffernd_boxes.diminfo[1].shape; | |
| if (unlikely(__pyx_t_41 < 0)) __pyx_t_11 = 1; | |
| } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_boxes.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 104, __pyx_L1_error) | |
| } | |
| __pyx_t_27 = (*__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_boxes.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_boxes.diminfo[0].strides, __pyx_t_41, __pyx_pybuffernd_boxes.diminfo[1].strides)); | |
| if (((__pyx_t_32 > __pyx_t_27) != 0)) { | |
| __pyx_t_26 = __pyx_t_32; | |
| } else { | |
| __pyx_t_26 = __pyx_t_27; | |
| } | |
| /* "bbox.pyx":103 | |
| * if iw > 0: | |
| * ih = ( | |
| * min(boxes[n, 3], query_boxes[k, 3]) - # <<<<<<<<<<<<<< | |
| * max(boxes[n, 1], query_boxes[k, 1]) + 1 | |
| * ) | |
| */ | |
| __pyx_v_ih = ((__pyx_t_23 - __pyx_t_26) + 1.0); | |
| /* "bbox.pyx":106 | |
| * max(boxes[n, 1], query_boxes[k, 1]) + 1 | |
| * ) | |
| * if ih > 0: # <<<<<<<<<<<<<< | |
| * intersec[n, k] = iw * ih / box_area | |
| * return intersec | |
| */ | |
| __pyx_t_33 = ((__pyx_v_ih > 0.0) != 0); | |
| if (__pyx_t_33) { | |
| /* "bbox.pyx":107 | |
| * ) | |
| * if ih > 0: | |
| * intersec[n, k] = iw * ih / box_area # <<<<<<<<<<<<<< | |
| * return intersec | |
| */ | |
| __pyx_t_26 = (__pyx_v_iw * __pyx_v_ih); | |
| if (unlikely(__pyx_v_box_area == 0)) { | |
| PyErr_SetString(PyExc_ZeroDivisionError, "float division"); | |
| __PYX_ERR(0, 107, __pyx_L1_error) | |
| } | |
| __pyx_t_42 = __pyx_v_n; | |
| __pyx_t_43 = __pyx_v_k; | |
| __pyx_t_11 = -1; | |
| if (unlikely(__pyx_t_42 >= (size_t)__pyx_pybuffernd_intersec.diminfo[0].shape)) __pyx_t_11 = 0; | |
| if (unlikely(__pyx_t_43 >= (size_t)__pyx_pybuffernd_intersec.diminfo[1].shape)) __pyx_t_11 = 1; | |
| if (unlikely(__pyx_t_11 != -1)) { | |
| __Pyx_RaiseBufferIndexError(__pyx_t_11); | |
| __PYX_ERR(0, 107, __pyx_L1_error) | |
| } | |
| *__Pyx_BufPtrStrided2d(__pyx_t_4bbox_DTYPE_t *, __pyx_pybuffernd_intersec.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_intersec.diminfo[0].strides, __pyx_t_43, __pyx_pybuffernd_intersec.diminfo[1].strides) = (__pyx_t_26 / __pyx_v_box_area); | |
| /* "bbox.pyx":106 | |
| * max(boxes[n, 1], query_boxes[k, 1]) + 1 | |
| * ) | |
| * if ih > 0: # <<<<<<<<<<<<<< | |
| * intersec[n, k] = iw * ih / box_area | |
| * return intersec | |
| */ | |
| } | |
| /* "bbox.pyx":101 | |
| * max(boxes[n, 0], query_boxes[k, 0]) + 1 | |
| * ) | |
| * if iw > 0: # <<<<<<<<<<<<<< | |
| * ih = ( | |
| * min(boxes[n, 3], query_boxes[k, 3]) - | |
| */ | |
| } | |
| } | |
| } | |
| /* "bbox.pyx":108 | |
| * if ih > 0: | |
| * intersec[n, k] = iw * ih / box_area | |
| * return intersec # <<<<<<<<<<<<<< | |
| */ | |
| __Pyx_XDECREF(((PyObject *)__pyx_r)); | |
| __Pyx_INCREF(((PyObject *)__pyx_v_intersec)); | |
| __pyx_r = ((PyArrayObject *)__pyx_v_intersec); | |
| goto __pyx_L0; | |
| /* "bbox.pyx":71 | |
| * | |
| * | |
| * cdef np.ndarray[DTYPE_t, ndim=2] bbox_intersections_c( # <<<<<<<<<<<<<< | |
| * np.ndarray[DTYPE_t, ndim=2] boxes, | |
| * np.ndarray[DTYPE_t, ndim=2] query_boxes): | |
| */ | |
| /* function exit code */ | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_XDECREF(__pyx_t_2); | |
| __Pyx_XDECREF(__pyx_t_3); | |
| __Pyx_XDECREF(__pyx_t_4); | |
| { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; | |
| __Pyx_PyThreadState_declare | |
| __Pyx_PyThreadState_assign | |
| __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_boxes.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_intersec.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_query_boxes.rcbuffer->pybuffer); | |
| __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} | |
| __Pyx_AddTraceback("bbox.bbox_intersections_c", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = 0; | |
| goto __pyx_L2; | |
| __pyx_L0:; | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_boxes.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_intersec.rcbuffer->pybuffer); | |
| __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_query_boxes.rcbuffer->pybuffer); | |
| __pyx_L2:; | |
| __Pyx_XDECREF((PyObject *)__pyx_v_intersec); | |
| __Pyx_XGIVEREF((PyObject *)__pyx_r); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":258 | |
| * # experimental exception made for __getbuffer__ and __releasebuffer__ | |
| * # -- the details of this may change. | |
| * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< | |
| * # This implementation of getbuffer is geared towards Cython | |
| * # requirements, and does not yet fulfill the PEP. | |
| */ | |
| /* Python wrapper */ | |
| static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ | |
| static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { | |
| int __pyx_r; | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); | |
| __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); | |
| /* function exit code */ | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { | |
| int __pyx_v_i; | |
| int __pyx_v_ndim; | |
| int __pyx_v_endian_detector; | |
| int __pyx_v_little_endian; | |
| int __pyx_v_t; | |
| char *__pyx_v_f; | |
| PyArray_Descr *__pyx_v_descr = 0; | |
| int __pyx_v_offset; | |
| int __pyx_r; | |
| __Pyx_RefNannyDeclarations | |
| int __pyx_t_1; | |
| int __pyx_t_2; | |
| PyObject *__pyx_t_3 = NULL; | |
| int __pyx_t_4; | |
| int __pyx_t_5; | |
| int __pyx_t_6; | |
| PyArray_Descr *__pyx_t_7; | |
| PyObject *__pyx_t_8 = NULL; | |
| char *__pyx_t_9; | |
| if (__pyx_v_info == NULL) { | |
| PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); | |
| return -1; | |
| } | |
| __Pyx_RefNannySetupContext("__getbuffer__", 0); | |
| __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); | |
| __Pyx_GIVEREF(__pyx_v_info->obj); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":265 | |
| * | |
| * cdef int i, ndim | |
| * cdef int endian_detector = 1 # <<<<<<<<<<<<<< | |
| * cdef bint little_endian = ((<char*>&endian_detector)[0] != 0) | |
| * | |
| */ | |
| __pyx_v_endian_detector = 1; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":266 | |
| * cdef int i, ndim | |
| * cdef int endian_detector = 1 | |
| * cdef bint little_endian = ((<char*>&endian_detector)[0] != 0) # <<<<<<<<<<<<<< | |
| * | |
| * ndim = PyArray_NDIM(self) | |
| */ | |
| __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":268 | |
| * cdef bint little_endian = ((<char*>&endian_detector)[0] != 0) | |
| * | |
| * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< | |
| * | |
| * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) | |
| */ | |
| __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":270 | |
| * ndim = PyArray_NDIM(self) | |
| * | |
| * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): | |
| * raise ValueError(u"ndarray is not C contiguous") | |
| */ | |
| __pyx_t_2 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0); | |
| if (__pyx_t_2) { | |
| } else { | |
| __pyx_t_1 = __pyx_t_2; | |
| goto __pyx_L4_bool_binop_done; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":271 | |
| * | |
| * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< | |
| * raise ValueError(u"ndarray is not C contiguous") | |
| * | |
| */ | |
| __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); | |
| __pyx_t_1 = __pyx_t_2; | |
| __pyx_L4_bool_binop_done:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":270 | |
| * ndim = PyArray_NDIM(self) | |
| * | |
| * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): | |
| * raise ValueError(u"ndarray is not C contiguous") | |
| */ | |
| if (unlikely(__pyx_t_1)) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":272 | |
| * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): | |
| * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< | |
| * | |
| * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) | |
| */ | |
| __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 272, __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; | |
| __PYX_ERR(1, 272, __pyx_L1_error) | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":270 | |
| * ndim = PyArray_NDIM(self) | |
| * | |
| * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): | |
| * raise ValueError(u"ndarray is not C contiguous") | |
| */ | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 | |
| * raise ValueError(u"ndarray is not C contiguous") | |
| * | |
| * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): | |
| * raise ValueError(u"ndarray is not Fortran contiguous") | |
| */ | |
| __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); | |
| if (__pyx_t_2) { | |
| } else { | |
| __pyx_t_1 = __pyx_t_2; | |
| goto __pyx_L7_bool_binop_done; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":275 | |
| * | |
| * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< | |
| * raise ValueError(u"ndarray is not Fortran contiguous") | |
| * | |
| */ | |
| __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); | |
| __pyx_t_1 = __pyx_t_2; | |
| __pyx_L7_bool_binop_done:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 | |
| * raise ValueError(u"ndarray is not C contiguous") | |
| * | |
| * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): | |
| * raise ValueError(u"ndarray is not Fortran contiguous") | |
| */ | |
| if (unlikely(__pyx_t_1)) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":276 | |
| * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): | |
| * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< | |
| * | |
| * info.buf = PyArray_DATA(self) | |
| */ | |
| __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 276, __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; | |
| __PYX_ERR(1, 276, __pyx_L1_error) | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":274 | |
| * raise ValueError(u"ndarray is not C contiguous") | |
| * | |
| * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): | |
| * raise ValueError(u"ndarray is not Fortran contiguous") | |
| */ | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":278 | |
| * raise ValueError(u"ndarray is not Fortran contiguous") | |
| * | |
| * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< | |
| * info.ndim = ndim | |
| * if sizeof(npy_intp) != sizeof(Py_ssize_t): | |
| */ | |
| __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":279 | |
| * | |
| * info.buf = PyArray_DATA(self) | |
| * info.ndim = ndim # <<<<<<<<<<<<<< | |
| * if sizeof(npy_intp) != sizeof(Py_ssize_t): | |
| * # Allocate new buffer for strides and shape info. | |
| */ | |
| __pyx_v_info->ndim = __pyx_v_ndim; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":280 | |
| * info.buf = PyArray_DATA(self) | |
| * info.ndim = ndim | |
| * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< | |
| * # Allocate new buffer for strides and shape info. | |
| * # This is allocated as one block, strides first. | |
| */ | |
| __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); | |
| if (__pyx_t_1) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":283 | |
| * # Allocate new buffer for strides and shape info. | |
| * # This is allocated as one block, strides first. | |
| * info.strides = <Py_ssize_t*>PyObject_Malloc(sizeof(Py_ssize_t) * 2 * <size_t>ndim) # <<<<<<<<<<<<<< | |
| * info.shape = info.strides + ndim | |
| * for i in range(ndim): | |
| */ | |
| __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":284 | |
| * # This is allocated as one block, strides first. | |
| * info.strides = <Py_ssize_t*>PyObject_Malloc(sizeof(Py_ssize_t) * 2 * <size_t>ndim) | |
| * info.shape = info.strides + ndim # <<<<<<<<<<<<<< | |
| * for i in range(ndim): | |
| * info.strides[i] = PyArray_STRIDES(self)[i] | |
| */ | |
| __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":285 | |
| * info.strides = <Py_ssize_t*>PyObject_Malloc(sizeof(Py_ssize_t) * 2 * <size_t>ndim) | |
| * info.shape = info.strides + ndim | |
| * for i in range(ndim): # <<<<<<<<<<<<<< | |
| * info.strides[i] = PyArray_STRIDES(self)[i] | |
| * info.shape[i] = PyArray_DIMS(self)[i] | |
| */ | |
| __pyx_t_4 = __pyx_v_ndim; | |
| __pyx_t_5 = __pyx_t_4; | |
| for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { | |
| __pyx_v_i = __pyx_t_6; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":286 | |
| * info.shape = info.strides + ndim | |
| * for i in range(ndim): | |
| * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< | |
| * info.shape[i] = PyArray_DIMS(self)[i] | |
| * else: | |
| */ | |
| (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":287 | |
| * for i in range(ndim): | |
| * info.strides[i] = PyArray_STRIDES(self)[i] | |
| * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< | |
| * else: | |
| * info.strides = <Py_ssize_t*>PyArray_STRIDES(self) | |
| */ | |
| (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":280 | |
| * info.buf = PyArray_DATA(self) | |
| * info.ndim = ndim | |
| * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< | |
| * # Allocate new buffer for strides and shape info. | |
| * # This is allocated as one block, strides first. | |
| */ | |
| goto __pyx_L9; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":289 | |
| * info.shape[i] = PyArray_DIMS(self)[i] | |
| * else: | |
| * info.strides = <Py_ssize_t*>PyArray_STRIDES(self) # <<<<<<<<<<<<<< | |
| * info.shape = <Py_ssize_t*>PyArray_DIMS(self) | |
| * info.suboffsets = NULL | |
| */ | |
| /*else*/ { | |
| __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":290 | |
| * else: | |
| * info.strides = <Py_ssize_t*>PyArray_STRIDES(self) | |
| * info.shape = <Py_ssize_t*>PyArray_DIMS(self) # <<<<<<<<<<<<<< | |
| * info.suboffsets = NULL | |
| * info.itemsize = PyArray_ITEMSIZE(self) | |
| */ | |
| __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); | |
| } | |
| __pyx_L9:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":291 | |
| * info.strides = <Py_ssize_t*>PyArray_STRIDES(self) | |
| * info.shape = <Py_ssize_t*>PyArray_DIMS(self) | |
| * info.suboffsets = NULL # <<<<<<<<<<<<<< | |
| * info.itemsize = PyArray_ITEMSIZE(self) | |
| * info.readonly = not PyArray_ISWRITEABLE(self) | |
| */ | |
| __pyx_v_info->suboffsets = NULL; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":292 | |
| * info.shape = <Py_ssize_t*>PyArray_DIMS(self) | |
| * info.suboffsets = NULL | |
| * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< | |
| * info.readonly = not PyArray_ISWRITEABLE(self) | |
| * | |
| */ | |
| __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":293 | |
| * info.suboffsets = NULL | |
| * info.itemsize = PyArray_ITEMSIZE(self) | |
| * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< | |
| * | |
| * cdef int t | |
| */ | |
| __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":296 | |
| * | |
| * cdef int t | |
| * cdef char* f = NULL # <<<<<<<<<<<<<< | |
| * cdef dtype descr = <dtype>PyArray_DESCR(self) | |
| * cdef int offset | |
| */ | |
| __pyx_v_f = NULL; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":297 | |
| * cdef int t | |
| * cdef char* f = NULL | |
| * cdef dtype descr = <dtype>PyArray_DESCR(self) # <<<<<<<<<<<<<< | |
| * cdef int offset | |
| * | |
| */ | |
| __pyx_t_7 = PyArray_DESCR(__pyx_v_self); | |
| __pyx_t_3 = ((PyObject *)__pyx_t_7); | |
| __Pyx_INCREF(__pyx_t_3); | |
| __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); | |
| __pyx_t_3 = 0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":300 | |
| * cdef int offset | |
| * | |
| * info.obj = self # <<<<<<<<<<<<<< | |
| * | |
| * if not PyDataType_HASFIELDS(descr): | |
| */ | |
| __Pyx_INCREF(((PyObject *)__pyx_v_self)); | |
| __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); | |
| __Pyx_GOTREF(__pyx_v_info->obj); | |
| __Pyx_DECREF(__pyx_v_info->obj); | |
| __pyx_v_info->obj = ((PyObject *)__pyx_v_self); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":302 | |
| * info.obj = self | |
| * | |
| * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< | |
| * t = descr.type_num | |
| * if ((descr.byteorder == c'>' and little_endian) or | |
| */ | |
| __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); | |
| if (__pyx_t_1) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":303 | |
| * | |
| * if not PyDataType_HASFIELDS(descr): | |
| * t = descr.type_num # <<<<<<<<<<<<<< | |
| * if ((descr.byteorder == c'>' and little_endian) or | |
| * (descr.byteorder == c'<' and not little_endian)): | |
| */ | |
| __pyx_t_4 = __pyx_v_descr->type_num; | |
| __pyx_v_t = __pyx_t_4; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":304 | |
| * if not PyDataType_HASFIELDS(descr): | |
| * t = descr.type_num | |
| * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< | |
| * (descr.byteorder == c'<' and not little_endian)): | |
| * raise ValueError(u"Non-native byte order not supported") | |
| */ | |
| __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0); | |
| if (!__pyx_t_2) { | |
| goto __pyx_L15_next_or; | |
| } else { | |
| } | |
| __pyx_t_2 = (__pyx_v_little_endian != 0); | |
| if (!__pyx_t_2) { | |
| } else { | |
| __pyx_t_1 = __pyx_t_2; | |
| goto __pyx_L14_bool_binop_done; | |
| } | |
| __pyx_L15_next_or:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":305 | |
| * t = descr.type_num | |
| * if ((descr.byteorder == c'>' and little_endian) or | |
| * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< | |
| * raise ValueError(u"Non-native byte order not supported") | |
| * if t == NPY_BYTE: f = "b" | |
| */ | |
| __pyx_t_2 = ((__pyx_v_descr->byteorder == '<') != 0); | |
| if (__pyx_t_2) { | |
| } else { | |
| __pyx_t_1 = __pyx_t_2; | |
| goto __pyx_L14_bool_binop_done; | |
| } | |
| __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); | |
| __pyx_t_1 = __pyx_t_2; | |
| __pyx_L14_bool_binop_done:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":304 | |
| * if not PyDataType_HASFIELDS(descr): | |
| * t = descr.type_num | |
| * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< | |
| * (descr.byteorder == c'<' and not little_endian)): | |
| * raise ValueError(u"Non-native byte order not supported") | |
| */ | |
| if (unlikely(__pyx_t_1)) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":306 | |
| * if ((descr.byteorder == c'>' and little_endian) or | |
| * (descr.byteorder == c'<' and not little_endian)): | |
| * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< | |
| * if t == NPY_BYTE: f = "b" | |
| * elif t == NPY_UBYTE: f = "B" | |
| */ | |
| __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 306, __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; | |
| __PYX_ERR(1, 306, __pyx_L1_error) | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":304 | |
| * if not PyDataType_HASFIELDS(descr): | |
| * t = descr.type_num | |
| * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< | |
| * (descr.byteorder == c'<' and not little_endian)): | |
| * raise ValueError(u"Non-native byte order not supported") | |
| */ | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":307 | |
| * (descr.byteorder == c'<' and not little_endian)): | |
| * raise ValueError(u"Non-native byte order not supported") | |
| * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< | |
| * elif t == NPY_UBYTE: f = "B" | |
| * elif t == NPY_SHORT: f = "h" | |
| */ | |
| switch (__pyx_v_t) { | |
| case NPY_BYTE: | |
| __pyx_v_f = ((char *)"b"); | |
| break; | |
| case NPY_UBYTE: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":308 | |
| * raise ValueError(u"Non-native byte order not supported") | |
| * if t == NPY_BYTE: f = "b" | |
| * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< | |
| * elif t == NPY_SHORT: f = "h" | |
| * elif t == NPY_USHORT: f = "H" | |
| */ | |
| __pyx_v_f = ((char *)"B"); | |
| break; | |
| case NPY_SHORT: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":309 | |
| * if t == NPY_BYTE: f = "b" | |
| * elif t == NPY_UBYTE: f = "B" | |
| * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< | |
| * elif t == NPY_USHORT: f = "H" | |
| * elif t == NPY_INT: f = "i" | |
| */ | |
| __pyx_v_f = ((char *)"h"); | |
| break; | |
| case NPY_USHORT: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":310 | |
| * elif t == NPY_UBYTE: f = "B" | |
| * elif t == NPY_SHORT: f = "h" | |
| * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< | |
| * elif t == NPY_INT: f = "i" | |
| * elif t == NPY_UINT: f = "I" | |
| */ | |
| __pyx_v_f = ((char *)"H"); | |
| break; | |
| case NPY_INT: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":311 | |
| * elif t == NPY_SHORT: f = "h" | |
| * elif t == NPY_USHORT: f = "H" | |
| * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< | |
| * elif t == NPY_UINT: f = "I" | |
| * elif t == NPY_LONG: f = "l" | |
| */ | |
| __pyx_v_f = ((char *)"i"); | |
| break; | |
| case NPY_UINT: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":312 | |
| * elif t == NPY_USHORT: f = "H" | |
| * elif t == NPY_INT: f = "i" | |
| * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< | |
| * elif t == NPY_LONG: f = "l" | |
| * elif t == NPY_ULONG: f = "L" | |
| */ | |
| __pyx_v_f = ((char *)"I"); | |
| break; | |
| case NPY_LONG: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":313 | |
| * elif t == NPY_INT: f = "i" | |
| * elif t == NPY_UINT: f = "I" | |
| * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< | |
| * elif t == NPY_ULONG: f = "L" | |
| * elif t == NPY_LONGLONG: f = "q" | |
| */ | |
| __pyx_v_f = ((char *)"l"); | |
| break; | |
| case NPY_ULONG: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":314 | |
| * elif t == NPY_UINT: f = "I" | |
| * elif t == NPY_LONG: f = "l" | |
| * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< | |
| * elif t == NPY_LONGLONG: f = "q" | |
| * elif t == NPY_ULONGLONG: f = "Q" | |
| */ | |
| __pyx_v_f = ((char *)"L"); | |
| break; | |
| case NPY_LONGLONG: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":315 | |
| * elif t == NPY_LONG: f = "l" | |
| * elif t == NPY_ULONG: f = "L" | |
| * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< | |
| * elif t == NPY_ULONGLONG: f = "Q" | |
| * elif t == NPY_FLOAT: f = "f" | |
| */ | |
| __pyx_v_f = ((char *)"q"); | |
| break; | |
| case NPY_ULONGLONG: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":316 | |
| * elif t == NPY_ULONG: f = "L" | |
| * elif t == NPY_LONGLONG: f = "q" | |
| * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< | |
| * elif t == NPY_FLOAT: f = "f" | |
| * elif t == NPY_DOUBLE: f = "d" | |
| */ | |
| __pyx_v_f = ((char *)"Q"); | |
| break; | |
| case NPY_FLOAT: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":317 | |
| * elif t == NPY_LONGLONG: f = "q" | |
| * elif t == NPY_ULONGLONG: f = "Q" | |
| * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< | |
| * elif t == NPY_DOUBLE: f = "d" | |
| * elif t == NPY_LONGDOUBLE: f = "g" | |
| */ | |
| __pyx_v_f = ((char *)"f"); | |
| break; | |
| case NPY_DOUBLE: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":318 | |
| * elif t == NPY_ULONGLONG: f = "Q" | |
| * elif t == NPY_FLOAT: f = "f" | |
| * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< | |
| * elif t == NPY_LONGDOUBLE: f = "g" | |
| * elif t == NPY_CFLOAT: f = "Zf" | |
| */ | |
| __pyx_v_f = ((char *)"d"); | |
| break; | |
| case NPY_LONGDOUBLE: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":319 | |
| * elif t == NPY_FLOAT: f = "f" | |
| * elif t == NPY_DOUBLE: f = "d" | |
| * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< | |
| * elif t == NPY_CFLOAT: f = "Zf" | |
| * elif t == NPY_CDOUBLE: f = "Zd" | |
| */ | |
| __pyx_v_f = ((char *)"g"); | |
| break; | |
| case NPY_CFLOAT: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":320 | |
| * elif t == NPY_DOUBLE: f = "d" | |
| * elif t == NPY_LONGDOUBLE: f = "g" | |
| * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< | |
| * elif t == NPY_CDOUBLE: f = "Zd" | |
| * elif t == NPY_CLONGDOUBLE: f = "Zg" | |
| */ | |
| __pyx_v_f = ((char *)"Zf"); | |
| break; | |
| case NPY_CDOUBLE: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":321 | |
| * elif t == NPY_LONGDOUBLE: f = "g" | |
| * elif t == NPY_CFLOAT: f = "Zf" | |
| * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< | |
| * elif t == NPY_CLONGDOUBLE: f = "Zg" | |
| * elif t == NPY_OBJECT: f = "O" | |
| */ | |
| __pyx_v_f = ((char *)"Zd"); | |
| break; | |
| case NPY_CLONGDOUBLE: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":322 | |
| * elif t == NPY_CFLOAT: f = "Zf" | |
| * elif t == NPY_CDOUBLE: f = "Zd" | |
| * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< | |
| * elif t == NPY_OBJECT: f = "O" | |
| * else: | |
| */ | |
| __pyx_v_f = ((char *)"Zg"); | |
| break; | |
| case NPY_OBJECT: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":323 | |
| * elif t == NPY_CDOUBLE: f = "Zd" | |
| * elif t == NPY_CLONGDOUBLE: f = "Zg" | |
| * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< | |
| * else: | |
| * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) | |
| */ | |
| __pyx_v_f = ((char *)"O"); | |
| break; | |
| default: | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":325 | |
| * elif t == NPY_OBJECT: f = "O" | |
| * else: | |
| * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< | |
| * info.format = f | |
| * return | |
| */ | |
| __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 325, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 325, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_8); | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 325, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; | |
| __Pyx_Raise(__pyx_t_3, 0, 0, 0); | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __PYX_ERR(1, 325, __pyx_L1_error) | |
| break; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":326 | |
| * else: | |
| * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) | |
| * info.format = f # <<<<<<<<<<<<<< | |
| * return | |
| * else: | |
| */ | |
| __pyx_v_info->format = __pyx_v_f; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":327 | |
| * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) | |
| * info.format = f | |
| * return # <<<<<<<<<<<<<< | |
| * else: | |
| * info.format = <char*>PyObject_Malloc(_buffer_format_string_len) | |
| */ | |
| __pyx_r = 0; | |
| goto __pyx_L0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":302 | |
| * info.obj = self | |
| * | |
| * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< | |
| * t = descr.type_num | |
| * if ((descr.byteorder == c'>' and little_endian) or | |
| */ | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":329 | |
| * return | |
| * else: | |
| * info.format = <char*>PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< | |
| * info.format[0] = c'^' # Native data types, manual alignment | |
| * offset = 0 | |
| */ | |
| /*else*/ { | |
| __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":330 | |
| * else: | |
| * info.format = <char*>PyObject_Malloc(_buffer_format_string_len) | |
| * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< | |
| * offset = 0 | |
| * f = _util_dtypestring(descr, info.format + 1, | |
| */ | |
| (__pyx_v_info->format[0]) = '^'; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":331 | |
| * info.format = <char*>PyObject_Malloc(_buffer_format_string_len) | |
| * info.format[0] = c'^' # Native data types, manual alignment | |
| * offset = 0 # <<<<<<<<<<<<<< | |
| * f = _util_dtypestring(descr, info.format + 1, | |
| * info.format + _buffer_format_string_len, | |
| */ | |
| __pyx_v_offset = 0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":332 | |
| * info.format[0] = c'^' # Native data types, manual alignment | |
| * offset = 0 | |
| * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< | |
| * info.format + _buffer_format_string_len, | |
| * &offset) | |
| */ | |
| __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 0xFF), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(1, 332, __pyx_L1_error) | |
| __pyx_v_f = __pyx_t_9; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":335 | |
| * info.format + _buffer_format_string_len, | |
| * &offset) | |
| * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< | |
| * | |
| * def __releasebuffer__(ndarray self, Py_buffer* info): | |
| */ | |
| (__pyx_v_f[0]) = '\x00'; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":258 | |
| * # experimental exception made for __getbuffer__ and __releasebuffer__ | |
| * # -- the details of this may change. | |
| * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< | |
| * # This implementation of getbuffer is geared towards Cython | |
| * # requirements, and does not yet fulfill the PEP. | |
| */ | |
| /* function exit code */ | |
| __pyx_r = 0; | |
| goto __pyx_L0; | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_3); | |
| __Pyx_XDECREF(__pyx_t_8); | |
| __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = -1; | |
| if (__pyx_v_info->obj != NULL) { | |
| __Pyx_GOTREF(__pyx_v_info->obj); | |
| __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; | |
| } | |
| goto __pyx_L2; | |
| __pyx_L0:; | |
| if (__pyx_v_info->obj == Py_None) { | |
| __Pyx_GOTREF(__pyx_v_info->obj); | |
| __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; | |
| } | |
| __pyx_L2:; | |
| __Pyx_XDECREF((PyObject *)__pyx_v_descr); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":337 | |
| * f[0] = c'\0' # Terminate format string | |
| * | |
| * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< | |
| * if PyArray_HASFIELDS(self): | |
| * PyObject_Free(info.format) | |
| */ | |
| /* Python wrapper */ | |
| static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/ | |
| static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) { | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0); | |
| __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info)); | |
| /* function exit code */ | |
| __Pyx_RefNannyFinishContext(); | |
| } | |
| static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) { | |
| __Pyx_RefNannyDeclarations | |
| int __pyx_t_1; | |
| __Pyx_RefNannySetupContext("__releasebuffer__", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":338 | |
| * | |
| * def __releasebuffer__(ndarray self, Py_buffer* info): | |
| * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< | |
| * PyObject_Free(info.format) | |
| * if sizeof(npy_intp) != sizeof(Py_ssize_t): | |
| */ | |
| __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); | |
| if (__pyx_t_1) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":339 | |
| * def __releasebuffer__(ndarray self, Py_buffer* info): | |
| * if PyArray_HASFIELDS(self): | |
| * PyObject_Free(info.format) # <<<<<<<<<<<<<< | |
| * if sizeof(npy_intp) != sizeof(Py_ssize_t): | |
| * PyObject_Free(info.strides) | |
| */ | |
| PyObject_Free(__pyx_v_info->format); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":338 | |
| * | |
| * def __releasebuffer__(ndarray self, Py_buffer* info): | |
| * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< | |
| * PyObject_Free(info.format) | |
| * if sizeof(npy_intp) != sizeof(Py_ssize_t): | |
| */ | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":340 | |
| * if PyArray_HASFIELDS(self): | |
| * PyObject_Free(info.format) | |
| * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< | |
| * PyObject_Free(info.strides) | |
| * # info.shape was stored after info.strides in the same block | |
| */ | |
| __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); | |
| if (__pyx_t_1) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":341 | |
| * PyObject_Free(info.format) | |
| * if sizeof(npy_intp) != sizeof(Py_ssize_t): | |
| * PyObject_Free(info.strides) # <<<<<<<<<<<<<< | |
| * # info.shape was stored after info.strides in the same block | |
| * | |
| */ | |
| PyObject_Free(__pyx_v_info->strides); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":340 | |
| * if PyArray_HASFIELDS(self): | |
| * PyObject_Free(info.format) | |
| * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< | |
| * PyObject_Free(info.strides) | |
| * # info.shape was stored after info.strides in the same block | |
| */ | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":337 | |
| * f[0] = c'\0' # Terminate format string | |
| * | |
| * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< | |
| * if PyArray_HASFIELDS(self): | |
| * PyObject_Free(info.format) | |
| */ | |
| /* function exit code */ | |
| __Pyx_RefNannyFinishContext(); | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":821 | |
| * ctypedef npy_cdouble complex_t | |
| * | |
| * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< | |
| * return PyArray_MultiIterNew(1, <void*>a) | |
| * | |
| */ | |
| static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { | |
| PyObject *__pyx_r = NULL; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":822 | |
| * | |
| * cdef inline object PyArray_MultiIterNew1(a): | |
| * return PyArray_MultiIterNew(1, <void*>a) # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline object PyArray_MultiIterNew2(a, b): | |
| */ | |
| __Pyx_XDECREF(__pyx_r); | |
| __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 822, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_r = __pyx_t_1; | |
| __pyx_t_1 = 0; | |
| goto __pyx_L0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":821 | |
| * ctypedef npy_cdouble complex_t | |
| * | |
| * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< | |
| * return PyArray_MultiIterNew(1, <void*>a) | |
| * | |
| */ | |
| /* function exit code */ | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = 0; | |
| __pyx_L0:; | |
| __Pyx_XGIVEREF(__pyx_r); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":824 | |
| * return PyArray_MultiIterNew(1, <void*>a) | |
| * | |
| * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< | |
| * return PyArray_MultiIterNew(2, <void*>a, <void*>b) | |
| * | |
| */ | |
| static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { | |
| PyObject *__pyx_r = NULL; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":825 | |
| * | |
| * cdef inline object PyArray_MultiIterNew2(a, b): | |
| * return PyArray_MultiIterNew(2, <void*>a, <void*>b) # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline object PyArray_MultiIterNew3(a, b, c): | |
| */ | |
| __Pyx_XDECREF(__pyx_r); | |
| __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 825, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_r = __pyx_t_1; | |
| __pyx_t_1 = 0; | |
| goto __pyx_L0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":824 | |
| * return PyArray_MultiIterNew(1, <void*>a) | |
| * | |
| * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< | |
| * return PyArray_MultiIterNew(2, <void*>a, <void*>b) | |
| * | |
| */ | |
| /* function exit code */ | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = 0; | |
| __pyx_L0:; | |
| __Pyx_XGIVEREF(__pyx_r); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":827 | |
| * return PyArray_MultiIterNew(2, <void*>a, <void*>b) | |
| * | |
| * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< | |
| * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) | |
| * | |
| */ | |
| static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { | |
| PyObject *__pyx_r = NULL; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":828 | |
| * | |
| * cdef inline object PyArray_MultiIterNew3(a, b, c): | |
| * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline object PyArray_MultiIterNew4(a, b, c, d): | |
| */ | |
| __Pyx_XDECREF(__pyx_r); | |
| __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 828, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_r = __pyx_t_1; | |
| __pyx_t_1 = 0; | |
| goto __pyx_L0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":827 | |
| * return PyArray_MultiIterNew(2, <void*>a, <void*>b) | |
| * | |
| * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< | |
| * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) | |
| * | |
| */ | |
| /* function exit code */ | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = 0; | |
| __pyx_L0:; | |
| __Pyx_XGIVEREF(__pyx_r); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":830 | |
| * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) | |
| * | |
| * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< | |
| * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) | |
| * | |
| */ | |
| static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { | |
| PyObject *__pyx_r = NULL; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":831 | |
| * | |
| * cdef inline object PyArray_MultiIterNew4(a, b, c, d): | |
| * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): | |
| */ | |
| __Pyx_XDECREF(__pyx_r); | |
| __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 831, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_r = __pyx_t_1; | |
| __pyx_t_1 = 0; | |
| goto __pyx_L0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":830 | |
| * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) | |
| * | |
| * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< | |
| * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) | |
| * | |
| */ | |
| /* function exit code */ | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = 0; | |
| __pyx_L0:; | |
| __Pyx_XGIVEREF(__pyx_r); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":833 | |
| * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) | |
| * | |
| * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< | |
| * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) | |
| * | |
| */ | |
| static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { | |
| PyObject *__pyx_r = NULL; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":834 | |
| * | |
| * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): | |
| * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline tuple PyDataType_SHAPE(dtype d): | |
| */ | |
| __Pyx_XDECREF(__pyx_r); | |
| __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 834, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_r = __pyx_t_1; | |
| __pyx_t_1 = 0; | |
| goto __pyx_L0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":833 | |
| * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) | |
| * | |
| * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< | |
| * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) | |
| * | |
| */ | |
| /* function exit code */ | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = 0; | |
| __pyx_L0:; | |
| __Pyx_XGIVEREF(__pyx_r); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":836 | |
| * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) | |
| * | |
| * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< | |
| * if PyDataType_HASSUBARRAY(d): | |
| * return <tuple>d.subarray.shape | |
| */ | |
| static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) { | |
| PyObject *__pyx_r = NULL; | |
| __Pyx_RefNannyDeclarations | |
| int __pyx_t_1; | |
| __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":837 | |
| * | |
| * cdef inline tuple PyDataType_SHAPE(dtype d): | |
| * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< | |
| * return <tuple>d.subarray.shape | |
| * else: | |
| */ | |
| __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); | |
| if (__pyx_t_1) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":838 | |
| * cdef inline tuple PyDataType_SHAPE(dtype d): | |
| * if PyDataType_HASSUBARRAY(d): | |
| * return <tuple>d.subarray.shape # <<<<<<<<<<<<<< | |
| * else: | |
| * return () | |
| */ | |
| __Pyx_XDECREF(__pyx_r); | |
| __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape)); | |
| __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); | |
| goto __pyx_L0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":837 | |
| * | |
| * cdef inline tuple PyDataType_SHAPE(dtype d): | |
| * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< | |
| * return <tuple>d.subarray.shape | |
| * else: | |
| */ | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":840 | |
| * return <tuple>d.subarray.shape | |
| * else: | |
| * return () # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: | |
| */ | |
| /*else*/ { | |
| __Pyx_XDECREF(__pyx_r); | |
| __Pyx_INCREF(__pyx_empty_tuple); | |
| __pyx_r = __pyx_empty_tuple; | |
| goto __pyx_L0; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":836 | |
| * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) | |
| * | |
| * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< | |
| * if PyDataType_HASSUBARRAY(d): | |
| * return <tuple>d.subarray.shape | |
| */ | |
| /* function exit code */ | |
| __pyx_L0:; | |
| __Pyx_XGIVEREF(__pyx_r); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":842 | |
| * return () | |
| * | |
| * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< | |
| * # Recursive utility function used in __getbuffer__ to get format | |
| * # string. The new location in the format string is returned. | |
| */ | |
| static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { | |
| PyArray_Descr *__pyx_v_child = 0; | |
| int __pyx_v_endian_detector; | |
| int __pyx_v_little_endian; | |
| PyObject *__pyx_v_fields = 0; | |
| PyObject *__pyx_v_childname = NULL; | |
| PyObject *__pyx_v_new_offset = NULL; | |
| PyObject *__pyx_v_t = NULL; | |
| char *__pyx_r; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| Py_ssize_t __pyx_t_2; | |
| PyObject *__pyx_t_3 = NULL; | |
| PyObject *__pyx_t_4 = NULL; | |
| int __pyx_t_5; | |
| int __pyx_t_6; | |
| int __pyx_t_7; | |
| long __pyx_t_8; | |
| char *__pyx_t_9; | |
| __Pyx_RefNannySetupContext("_util_dtypestring", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":847 | |
| * | |
| * cdef dtype child | |
| * cdef int endian_detector = 1 # <<<<<<<<<<<<<< | |
| * cdef bint little_endian = ((<char*>&endian_detector)[0] != 0) | |
| * cdef tuple fields | |
| */ | |
| __pyx_v_endian_detector = 1; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":848 | |
| * cdef dtype child | |
| * cdef int endian_detector = 1 | |
| * cdef bint little_endian = ((<char*>&endian_detector)[0] != 0) # <<<<<<<<<<<<<< | |
| * cdef tuple fields | |
| * | |
| */ | |
| __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":851 | |
| * cdef tuple fields | |
| * | |
| * for childname in descr.names: # <<<<<<<<<<<<<< | |
| * fields = descr.fields[childname] | |
| * child, new_offset = fields | |
| */ | |
| if (unlikely(__pyx_v_descr->names == Py_None)) { | |
| PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); | |
| __PYX_ERR(1, 851, __pyx_L1_error) | |
| } | |
| __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; | |
| for (;;) { | |
| if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; | |
| __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 851, __pyx_L1_error) | |
| __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 851, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); | |
| __pyx_t_3 = 0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":852 | |
| * | |
| * for childname in descr.names: | |
| * fields = descr.fields[childname] # <<<<<<<<<<<<<< | |
| * child, new_offset = fields | |
| * | |
| */ | |
| if (unlikely(__pyx_v_descr->fields == Py_None)) { | |
| PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); | |
| __PYX_ERR(1, 852, __pyx_L1_error) | |
| } | |
| __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 852, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(1, 852, __pyx_L1_error) | |
| __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); | |
| __pyx_t_3 = 0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":853 | |
| * for childname in descr.names: | |
| * fields = descr.fields[childname] | |
| * child, new_offset = fields # <<<<<<<<<<<<<< | |
| * | |
| * if (end - f) - <int>(new_offset - offset[0]) < 15: | |
| */ | |
| if (likely(__pyx_v_fields != Py_None)) { | |
| PyObject* sequence = __pyx_v_fields; | |
| Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); | |
| if (unlikely(size != 2)) { | |
| if (size > 2) __Pyx_RaiseTooManyValuesError(2); | |
| else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); | |
| __PYX_ERR(1, 853, __pyx_L1_error) | |
| } | |
| __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); | |
| __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); | |
| __Pyx_INCREF(__pyx_t_3); | |
| __Pyx_INCREF(__pyx_t_4); | |
| __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 853, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 853, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| } else { | |
| __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 853, __pyx_L1_error) | |
| } | |
| if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 853, __pyx_L1_error) | |
| __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); | |
| __pyx_t_3 = 0; | |
| __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); | |
| __pyx_t_4 = 0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":855 | |
| * child, new_offset = fields | |
| * | |
| * if (end - f) - <int>(new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< | |
| * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") | |
| * | |
| */ | |
| __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 855, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 855, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); | |
| if (unlikely(__pyx_t_6)) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":856 | |
| * | |
| * if (end - f) - <int>(new_offset - offset[0]) < 15: | |
| * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< | |
| * | |
| * if ((child.byteorder == c'>' and little_endian) or | |
| */ | |
| __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 856, __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; | |
| __PYX_ERR(1, 856, __pyx_L1_error) | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":855 | |
| * child, new_offset = fields | |
| * | |
| * if (end - f) - <int>(new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< | |
| * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") | |
| * | |
| */ | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":858 | |
| * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") | |
| * | |
| * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< | |
| * (child.byteorder == c'<' and not little_endian)): | |
| * raise ValueError(u"Non-native byte order not supported") | |
| */ | |
| __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); | |
| if (!__pyx_t_7) { | |
| goto __pyx_L8_next_or; | |
| } else { | |
| } | |
| __pyx_t_7 = (__pyx_v_little_endian != 0); | |
| if (!__pyx_t_7) { | |
| } else { | |
| __pyx_t_6 = __pyx_t_7; | |
| goto __pyx_L7_bool_binop_done; | |
| } | |
| __pyx_L8_next_or:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":859 | |
| * | |
| * if ((child.byteorder == c'>' and little_endian) or | |
| * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< | |
| * raise ValueError(u"Non-native byte order not supported") | |
| * # One could encode it in the format string and have Cython | |
| */ | |
| __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); | |
| if (__pyx_t_7) { | |
| } else { | |
| __pyx_t_6 = __pyx_t_7; | |
| goto __pyx_L7_bool_binop_done; | |
| } | |
| __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); | |
| __pyx_t_6 = __pyx_t_7; | |
| __pyx_L7_bool_binop_done:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":858 | |
| * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") | |
| * | |
| * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< | |
| * (child.byteorder == c'<' and not little_endian)): | |
| * raise ValueError(u"Non-native byte order not supported") | |
| */ | |
| if (unlikely(__pyx_t_6)) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":860 | |
| * if ((child.byteorder == c'>' and little_endian) or | |
| * (child.byteorder == c'<' and not little_endian)): | |
| * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< | |
| * # One could encode it in the format string and have Cython | |
| * # complain instead, BUT: < and > in format strings also imply | |
| */ | |
| __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 860, __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; | |
| __PYX_ERR(1, 860, __pyx_L1_error) | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":858 | |
| * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") | |
| * | |
| * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< | |
| * (child.byteorder == c'<' and not little_endian)): | |
| * raise ValueError(u"Non-native byte order not supported") | |
| */ | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":870 | |
| * | |
| * # Output padding bytes | |
| * while offset[0] < new_offset: # <<<<<<<<<<<<<< | |
| * f[0] = 120 # "x"; pad byte | |
| * f += 1 | |
| */ | |
| while (1) { | |
| __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 870, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 870, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 870, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| if (!__pyx_t_6) break; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":871 | |
| * # Output padding bytes | |
| * while offset[0] < new_offset: | |
| * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< | |
| * f += 1 | |
| * offset[0] += 1 | |
| */ | |
| (__pyx_v_f[0]) = 0x78; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":872 | |
| * while offset[0] < new_offset: | |
| * f[0] = 120 # "x"; pad byte | |
| * f += 1 # <<<<<<<<<<<<<< | |
| * offset[0] += 1 | |
| * | |
| */ | |
| __pyx_v_f = (__pyx_v_f + 1); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":873 | |
| * f[0] = 120 # "x"; pad byte | |
| * f += 1 | |
| * offset[0] += 1 # <<<<<<<<<<<<<< | |
| * | |
| * offset[0] += child.itemsize | |
| */ | |
| __pyx_t_8 = 0; | |
| (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":875 | |
| * offset[0] += 1 | |
| * | |
| * offset[0] += child.itemsize # <<<<<<<<<<<<<< | |
| * | |
| * if not PyDataType_HASFIELDS(child): | |
| */ | |
| __pyx_t_8 = 0; | |
| (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":877 | |
| * offset[0] += child.itemsize | |
| * | |
| * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< | |
| * t = child.type_num | |
| * if end - f < 5: | |
| */ | |
| __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); | |
| if (__pyx_t_6) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":878 | |
| * | |
| * if not PyDataType_HASFIELDS(child): | |
| * t = child.type_num # <<<<<<<<<<<<<< | |
| * if end - f < 5: | |
| * raise RuntimeError(u"Format string allocated too short.") | |
| */ | |
| __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 878, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); | |
| __pyx_t_4 = 0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":879 | |
| * if not PyDataType_HASFIELDS(child): | |
| * t = child.type_num | |
| * if end - f < 5: # <<<<<<<<<<<<<< | |
| * raise RuntimeError(u"Format string allocated too short.") | |
| * | |
| */ | |
| __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); | |
| if (unlikely(__pyx_t_6)) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":880 | |
| * t = child.type_num | |
| * if end - f < 5: | |
| * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< | |
| * | |
| * # Until ticket #99 is fixed, use integers to avoid warnings | |
| */ | |
| __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 880, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __Pyx_Raise(__pyx_t_4, 0, 0, 0); | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __PYX_ERR(1, 880, __pyx_L1_error) | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":879 | |
| * if not PyDataType_HASFIELDS(child): | |
| * t = child.type_num | |
| * if end - f < 5: # <<<<<<<<<<<<<< | |
| * raise RuntimeError(u"Format string allocated too short.") | |
| * | |
| */ | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":883 | |
| * | |
| * # Until ticket #99 is fixed, use integers to avoid warnings | |
| * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< | |
| * elif t == NPY_UBYTE: f[0] = 66 #"B" | |
| * elif t == NPY_SHORT: f[0] = 104 #"h" | |
| */ | |
| __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 883, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 883, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 883, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 98; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":884 | |
| * # Until ticket #99 is fixed, use integers to avoid warnings | |
| * if t == NPY_BYTE: f[0] = 98 #"b" | |
| * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< | |
| * elif t == NPY_SHORT: f[0] = 104 #"h" | |
| * elif t == NPY_USHORT: f[0] = 72 #"H" | |
| */ | |
| __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 884, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 884, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 884, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 66; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":885 | |
| * if t == NPY_BYTE: f[0] = 98 #"b" | |
| * elif t == NPY_UBYTE: f[0] = 66 #"B" | |
| * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< | |
| * elif t == NPY_USHORT: f[0] = 72 #"H" | |
| * elif t == NPY_INT: f[0] = 105 #"i" | |
| */ | |
| __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 885, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 885, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 885, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 0x68; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":886 | |
| * elif t == NPY_UBYTE: f[0] = 66 #"B" | |
| * elif t == NPY_SHORT: f[0] = 104 #"h" | |
| * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< | |
| * elif t == NPY_INT: f[0] = 105 #"i" | |
| * elif t == NPY_UINT: f[0] = 73 #"I" | |
| */ | |
| __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 886, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 886, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 886, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 72; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":887 | |
| * elif t == NPY_SHORT: f[0] = 104 #"h" | |
| * elif t == NPY_USHORT: f[0] = 72 #"H" | |
| * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< | |
| * elif t == NPY_UINT: f[0] = 73 #"I" | |
| * elif t == NPY_LONG: f[0] = 108 #"l" | |
| */ | |
| __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 887, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 887, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 887, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 0x69; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":888 | |
| * elif t == NPY_USHORT: f[0] = 72 #"H" | |
| * elif t == NPY_INT: f[0] = 105 #"i" | |
| * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< | |
| * elif t == NPY_LONG: f[0] = 108 #"l" | |
| * elif t == NPY_ULONG: f[0] = 76 #"L" | |
| */ | |
| __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 888, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 888, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 888, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 73; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":889 | |
| * elif t == NPY_INT: f[0] = 105 #"i" | |
| * elif t == NPY_UINT: f[0] = 73 #"I" | |
| * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< | |
| * elif t == NPY_ULONG: f[0] = 76 #"L" | |
| * elif t == NPY_LONGLONG: f[0] = 113 #"q" | |
| */ | |
| __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 889, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 889, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 889, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 0x6C; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":890 | |
| * elif t == NPY_UINT: f[0] = 73 #"I" | |
| * elif t == NPY_LONG: f[0] = 108 #"l" | |
| * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< | |
| * elif t == NPY_LONGLONG: f[0] = 113 #"q" | |
| * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" | |
| */ | |
| __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 890, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 890, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 890, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 76; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":891 | |
| * elif t == NPY_LONG: f[0] = 108 #"l" | |
| * elif t == NPY_ULONG: f[0] = 76 #"L" | |
| * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< | |
| * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" | |
| * elif t == NPY_FLOAT: f[0] = 102 #"f" | |
| */ | |
| __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 891, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 891, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 891, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 0x71; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":892 | |
| * elif t == NPY_ULONG: f[0] = 76 #"L" | |
| * elif t == NPY_LONGLONG: f[0] = 113 #"q" | |
| * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< | |
| * elif t == NPY_FLOAT: f[0] = 102 #"f" | |
| * elif t == NPY_DOUBLE: f[0] = 100 #"d" | |
| */ | |
| __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 892, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 892, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 892, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 81; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":893 | |
| * elif t == NPY_LONGLONG: f[0] = 113 #"q" | |
| * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" | |
| * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< | |
| * elif t == NPY_DOUBLE: f[0] = 100 #"d" | |
| * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" | |
| */ | |
| __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 893, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 893, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 893, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 0x66; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":894 | |
| * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" | |
| * elif t == NPY_FLOAT: f[0] = 102 #"f" | |
| * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< | |
| * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" | |
| * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf | |
| */ | |
| __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 894, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 894, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 894, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 0x64; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":895 | |
| * elif t == NPY_FLOAT: f[0] = 102 #"f" | |
| * elif t == NPY_DOUBLE: f[0] = 100 #"d" | |
| * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< | |
| * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf | |
| * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd | |
| */ | |
| __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 895, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 895, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 895, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 0x67; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":896 | |
| * elif t == NPY_DOUBLE: f[0] = 100 #"d" | |
| * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" | |
| * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< | |
| * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd | |
| * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg | |
| */ | |
| __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 896, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 896, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 896, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 90; | |
| (__pyx_v_f[1]) = 0x66; | |
| __pyx_v_f = (__pyx_v_f + 1); | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":897 | |
| * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" | |
| * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf | |
| * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< | |
| * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg | |
| * elif t == NPY_OBJECT: f[0] = 79 #"O" | |
| */ | |
| __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 897, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 897, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 897, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 90; | |
| (__pyx_v_f[1]) = 0x64; | |
| __pyx_v_f = (__pyx_v_f + 1); | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":898 | |
| * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf | |
| * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd | |
| * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< | |
| * elif t == NPY_OBJECT: f[0] = 79 #"O" | |
| * else: | |
| */ | |
| __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 898, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 898, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 898, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| if (__pyx_t_6) { | |
| (__pyx_v_f[0]) = 90; | |
| (__pyx_v_f[1]) = 0x67; | |
| __pyx_v_f = (__pyx_v_f + 1); | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":899 | |
| * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd | |
| * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg | |
| * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< | |
| * else: | |
| * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) | |
| */ | |
| __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 899, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 899, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 899, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| if (likely(__pyx_t_6)) { | |
| (__pyx_v_f[0]) = 79; | |
| goto __pyx_L15; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":901 | |
| * elif t == NPY_OBJECT: f[0] = 79 #"O" | |
| * else: | |
| * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< | |
| * f += 1 | |
| * else: | |
| */ | |
| /*else*/ { | |
| __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 901, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_3); | |
| __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 901, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_4); | |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| __Pyx_Raise(__pyx_t_4, 0, 0, 0); | |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; | |
| __PYX_ERR(1, 901, __pyx_L1_error) | |
| } | |
| __pyx_L15:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":902 | |
| * else: | |
| * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) | |
| * f += 1 # <<<<<<<<<<<<<< | |
| * else: | |
| * # Cython ignores struct boundary information ("T{...}"), | |
| */ | |
| __pyx_v_f = (__pyx_v_f + 1); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":877 | |
| * offset[0] += child.itemsize | |
| * | |
| * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< | |
| * t = child.type_num | |
| * if end - f < 5: | |
| */ | |
| goto __pyx_L13; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":906 | |
| * # Cython ignores struct boundary information ("T{...}"), | |
| * # so don't output it | |
| * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< | |
| * return f | |
| * | |
| */ | |
| /*else*/ { | |
| __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(1, 906, __pyx_L1_error) | |
| __pyx_v_f = __pyx_t_9; | |
| } | |
| __pyx_L13:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":851 | |
| * cdef tuple fields | |
| * | |
| * for childname in descr.names: # <<<<<<<<<<<<<< | |
| * fields = descr.fields[childname] | |
| * child, new_offset = fields | |
| */ | |
| } | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":907 | |
| * # so don't output it | |
| * f = _util_dtypestring(child, f, end, offset) | |
| * return f # <<<<<<<<<<<<<< | |
| * | |
| * | |
| */ | |
| __pyx_r = __pyx_v_f; | |
| goto __pyx_L0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":842 | |
| * return () | |
| * | |
| * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< | |
| * # Recursive utility function used in __getbuffer__ to get format | |
| * # string. The new location in the format string is returned. | |
| */ | |
| /* function exit code */ | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_XDECREF(__pyx_t_3); | |
| __Pyx_XDECREF(__pyx_t_4); | |
| __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = NULL; | |
| __pyx_L0:; | |
| __Pyx_XDECREF((PyObject *)__pyx_v_child); | |
| __Pyx_XDECREF(__pyx_v_fields); | |
| __Pyx_XDECREF(__pyx_v_childname); | |
| __Pyx_XDECREF(__pyx_v_new_offset); | |
| __Pyx_XDECREF(__pyx_v_t); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1022 | |
| * int _import_umath() except -1 | |
| * | |
| * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< | |
| * Py_INCREF(base) # important to do this before stealing the reference below! | |
| * PyArray_SetBaseObject(arr, base) | |
| */ | |
| static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("set_array_base", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1023 | |
| * | |
| * cdef inline void set_array_base(ndarray arr, object base): | |
| * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<< | |
| * PyArray_SetBaseObject(arr, base) | |
| * | |
| */ | |
| Py_INCREF(__pyx_v_base); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1024 | |
| * cdef inline void set_array_base(ndarray arr, object base): | |
| * Py_INCREF(base) # important to do this before stealing the reference below! | |
| * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline object get_array_base(ndarray arr): | |
| */ | |
| (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1022 | |
| * int _import_umath() except -1 | |
| * | |
| * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< | |
| * Py_INCREF(base) # important to do this before stealing the reference below! | |
| * PyArray_SetBaseObject(arr, base) | |
| */ | |
| /* function exit code */ | |
| __Pyx_RefNannyFinishContext(); | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1026 | |
| * PyArray_SetBaseObject(arr, base) | |
| * | |
| * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< | |
| * base = PyArray_BASE(arr) | |
| * if base is NULL: | |
| */ | |
| static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { | |
| PyObject *__pyx_v_base; | |
| PyObject *__pyx_r = NULL; | |
| __Pyx_RefNannyDeclarations | |
| int __pyx_t_1; | |
| __Pyx_RefNannySetupContext("get_array_base", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1027 | |
| * | |
| * cdef inline object get_array_base(ndarray arr): | |
| * base = PyArray_BASE(arr) # <<<<<<<<<<<<<< | |
| * if base is NULL: | |
| * return None | |
| */ | |
| __pyx_v_base = PyArray_BASE(__pyx_v_arr); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1028 | |
| * cdef inline object get_array_base(ndarray arr): | |
| * base = PyArray_BASE(arr) | |
| * if base is NULL: # <<<<<<<<<<<<<< | |
| * return None | |
| * return <object>base | |
| */ | |
| __pyx_t_1 = ((__pyx_v_base == NULL) != 0); | |
| if (__pyx_t_1) { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1029 | |
| * base = PyArray_BASE(arr) | |
| * if base is NULL: | |
| * return None # <<<<<<<<<<<<<< | |
| * return <object>base | |
| * | |
| */ | |
| __Pyx_XDECREF(__pyx_r); | |
| __pyx_r = Py_None; __Pyx_INCREF(Py_None); | |
| goto __pyx_L0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1028 | |
| * cdef inline object get_array_base(ndarray arr): | |
| * base = PyArray_BASE(arr) | |
| * if base is NULL: # <<<<<<<<<<<<<< | |
| * return None | |
| * return <object>base | |
| */ | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1030 | |
| * if base is NULL: | |
| * return None | |
| * return <object>base # <<<<<<<<<<<<<< | |
| * | |
| * # Versions of the import_* functions which are more suitable for | |
| */ | |
| __Pyx_XDECREF(__pyx_r); | |
| __Pyx_INCREF(((PyObject *)__pyx_v_base)); | |
| __pyx_r = ((PyObject *)__pyx_v_base); | |
| goto __pyx_L0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1026 | |
| * PyArray_SetBaseObject(arr, base) | |
| * | |
| * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< | |
| * base = PyArray_BASE(arr) | |
| * if base is NULL: | |
| */ | |
| /* function exit code */ | |
| __pyx_L0:; | |
| __Pyx_XGIVEREF(__pyx_r); | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1034 | |
| * # Versions of the import_* functions which are more suitable for | |
| * # Cython code. | |
| * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< | |
| * try: | |
| * _import_array() | |
| */ | |
| static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { | |
| int __pyx_r; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| PyObject *__pyx_t_2 = NULL; | |
| PyObject *__pyx_t_3 = NULL; | |
| int __pyx_t_4; | |
| PyObject *__pyx_t_5 = NULL; | |
| PyObject *__pyx_t_6 = NULL; | |
| PyObject *__pyx_t_7 = NULL; | |
| PyObject *__pyx_t_8 = NULL; | |
| __Pyx_RefNannySetupContext("import_array", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1035 | |
| * # Cython code. | |
| * cdef inline int import_array() except -1: | |
| * try: # <<<<<<<<<<<<<< | |
| * _import_array() | |
| * except Exception: | |
| */ | |
| { | |
| __Pyx_PyThreadState_declare | |
| __Pyx_PyThreadState_assign | |
| __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); | |
| __Pyx_XGOTREF(__pyx_t_1); | |
| __Pyx_XGOTREF(__pyx_t_2); | |
| __Pyx_XGOTREF(__pyx_t_3); | |
| /*try:*/ { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1036 | |
| * cdef inline int import_array() except -1: | |
| * try: | |
| * _import_array() # <<<<<<<<<<<<<< | |
| * except Exception: | |
| * raise ImportError("numpy.core.multiarray failed to import") | |
| */ | |
| __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1036, __pyx_L3_error) | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1035 | |
| * # Cython code. | |
| * cdef inline int import_array() except -1: | |
| * try: # <<<<<<<<<<<<<< | |
| * _import_array() | |
| * except Exception: | |
| */ | |
| } | |
| __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| goto __pyx_L8_try_end; | |
| __pyx_L3_error:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1037 | |
| * try: | |
| * _import_array() | |
| * except Exception: # <<<<<<<<<<<<<< | |
| * raise ImportError("numpy.core.multiarray failed to import") | |
| * | |
| */ | |
| __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); | |
| if (__pyx_t_4) { | |
| __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1037, __pyx_L5_except_error) | |
| __Pyx_GOTREF(__pyx_t_5); | |
| __Pyx_GOTREF(__pyx_t_6); | |
| __Pyx_GOTREF(__pyx_t_7); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1038 | |
| * _import_array() | |
| * except Exception: | |
| * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline int import_umath() except -1: | |
| */ | |
| __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1038, __pyx_L5_except_error) | |
| __Pyx_GOTREF(__pyx_t_8); | |
| __Pyx_Raise(__pyx_t_8, 0, 0, 0); | |
| __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; | |
| __PYX_ERR(1, 1038, __pyx_L5_except_error) | |
| } | |
| goto __pyx_L5_except_error; | |
| __pyx_L5_except_error:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1035 | |
| * # Cython code. | |
| * cdef inline int import_array() except -1: | |
| * try: # <<<<<<<<<<<<<< | |
| * _import_array() | |
| * except Exception: | |
| */ | |
| __Pyx_XGIVEREF(__pyx_t_1); | |
| __Pyx_XGIVEREF(__pyx_t_2); | |
| __Pyx_XGIVEREF(__pyx_t_3); | |
| __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); | |
| goto __pyx_L1_error; | |
| __pyx_L8_try_end:; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1034 | |
| * # Versions of the import_* functions which are more suitable for | |
| * # Cython code. | |
| * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< | |
| * try: | |
| * _import_array() | |
| */ | |
| /* function exit code */ | |
| __pyx_r = 0; | |
| goto __pyx_L0; | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_5); | |
| __Pyx_XDECREF(__pyx_t_6); | |
| __Pyx_XDECREF(__pyx_t_7); | |
| __Pyx_XDECREF(__pyx_t_8); | |
| __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = -1; | |
| __pyx_L0:; | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1040 | |
| * raise ImportError("numpy.core.multiarray failed to import") | |
| * | |
| * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< | |
| * try: | |
| * _import_umath() | |
| */ | |
| static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { | |
| int __pyx_r; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| PyObject *__pyx_t_2 = NULL; | |
| PyObject *__pyx_t_3 = NULL; | |
| int __pyx_t_4; | |
| PyObject *__pyx_t_5 = NULL; | |
| PyObject *__pyx_t_6 = NULL; | |
| PyObject *__pyx_t_7 = NULL; | |
| PyObject *__pyx_t_8 = NULL; | |
| __Pyx_RefNannySetupContext("import_umath", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1041 | |
| * | |
| * cdef inline int import_umath() except -1: | |
| * try: # <<<<<<<<<<<<<< | |
| * _import_umath() | |
| * except Exception: | |
| */ | |
| { | |
| __Pyx_PyThreadState_declare | |
| __Pyx_PyThreadState_assign | |
| __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); | |
| __Pyx_XGOTREF(__pyx_t_1); | |
| __Pyx_XGOTREF(__pyx_t_2); | |
| __Pyx_XGOTREF(__pyx_t_3); | |
| /*try:*/ { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1042 | |
| * cdef inline int import_umath() except -1: | |
| * try: | |
| * _import_umath() # <<<<<<<<<<<<<< | |
| * except Exception: | |
| * raise ImportError("numpy.core.umath failed to import") | |
| */ | |
| __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1042, __pyx_L3_error) | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1041 | |
| * | |
| * cdef inline int import_umath() except -1: | |
| * try: # <<<<<<<<<<<<<< | |
| * _import_umath() | |
| * except Exception: | |
| */ | |
| } | |
| __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| goto __pyx_L8_try_end; | |
| __pyx_L3_error:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1043 | |
| * try: | |
| * _import_umath() | |
| * except Exception: # <<<<<<<<<<<<<< | |
| * raise ImportError("numpy.core.umath failed to import") | |
| * | |
| */ | |
| __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); | |
| if (__pyx_t_4) { | |
| __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1043, __pyx_L5_except_error) | |
| __Pyx_GOTREF(__pyx_t_5); | |
| __Pyx_GOTREF(__pyx_t_6); | |
| __Pyx_GOTREF(__pyx_t_7); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1044 | |
| * _import_umath() | |
| * except Exception: | |
| * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline int import_ufunc() except -1: | |
| */ | |
| __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1044, __pyx_L5_except_error) | |
| __Pyx_GOTREF(__pyx_t_8); | |
| __Pyx_Raise(__pyx_t_8, 0, 0, 0); | |
| __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; | |
| __PYX_ERR(1, 1044, __pyx_L5_except_error) | |
| } | |
| goto __pyx_L5_except_error; | |
| __pyx_L5_except_error:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1041 | |
| * | |
| * cdef inline int import_umath() except -1: | |
| * try: # <<<<<<<<<<<<<< | |
| * _import_umath() | |
| * except Exception: | |
| */ | |
| __Pyx_XGIVEREF(__pyx_t_1); | |
| __Pyx_XGIVEREF(__pyx_t_2); | |
| __Pyx_XGIVEREF(__pyx_t_3); | |
| __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); | |
| goto __pyx_L1_error; | |
| __pyx_L8_try_end:; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1040 | |
| * raise ImportError("numpy.core.multiarray failed to import") | |
| * | |
| * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< | |
| * try: | |
| * _import_umath() | |
| */ | |
| /* function exit code */ | |
| __pyx_r = 0; | |
| goto __pyx_L0; | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_5); | |
| __Pyx_XDECREF(__pyx_t_6); | |
| __Pyx_XDECREF(__pyx_t_7); | |
| __Pyx_XDECREF(__pyx_t_8); | |
| __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = -1; | |
| __pyx_L0:; | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1046 | |
| * raise ImportError("numpy.core.umath failed to import") | |
| * | |
| * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< | |
| * try: | |
| * _import_umath() | |
| */ | |
| static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { | |
| int __pyx_r; | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| PyObject *__pyx_t_2 = NULL; | |
| PyObject *__pyx_t_3 = NULL; | |
| int __pyx_t_4; | |
| PyObject *__pyx_t_5 = NULL; | |
| PyObject *__pyx_t_6 = NULL; | |
| PyObject *__pyx_t_7 = NULL; | |
| PyObject *__pyx_t_8 = NULL; | |
| __Pyx_RefNannySetupContext("import_ufunc", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1047 | |
| * | |
| * cdef inline int import_ufunc() except -1: | |
| * try: # <<<<<<<<<<<<<< | |
| * _import_umath() | |
| * except Exception: | |
| */ | |
| { | |
| __Pyx_PyThreadState_declare | |
| __Pyx_PyThreadState_assign | |
| __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); | |
| __Pyx_XGOTREF(__pyx_t_1); | |
| __Pyx_XGOTREF(__pyx_t_2); | |
| __Pyx_XGOTREF(__pyx_t_3); | |
| /*try:*/ { | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1048 | |
| * cdef inline int import_ufunc() except -1: | |
| * try: | |
| * _import_umath() # <<<<<<<<<<<<<< | |
| * except Exception: | |
| * raise ImportError("numpy.core.umath failed to import") | |
| */ | |
| __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1048, __pyx_L3_error) | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1047 | |
| * | |
| * cdef inline int import_ufunc() except -1: | |
| * try: # <<<<<<<<<<<<<< | |
| * _import_umath() | |
| * except Exception: | |
| */ | |
| } | |
| __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; | |
| goto __pyx_L8_try_end; | |
| __pyx_L3_error:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1049 | |
| * try: | |
| * _import_umath() | |
| * except Exception: # <<<<<<<<<<<<<< | |
| * raise ImportError("numpy.core.umath failed to import") | |
| */ | |
| __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); | |
| if (__pyx_t_4) { | |
| __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1049, __pyx_L5_except_error) | |
| __Pyx_GOTREF(__pyx_t_5); | |
| __Pyx_GOTREF(__pyx_t_6); | |
| __Pyx_GOTREF(__pyx_t_7); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1050 | |
| * _import_umath() | |
| * except Exception: | |
| * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< | |
| */ | |
| __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1050, __pyx_L5_except_error) | |
| __Pyx_GOTREF(__pyx_t_8); | |
| __Pyx_Raise(__pyx_t_8, 0, 0, 0); | |
| __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; | |
| __PYX_ERR(1, 1050, __pyx_L5_except_error) | |
| } | |
| goto __pyx_L5_except_error; | |
| __pyx_L5_except_error:; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1047 | |
| * | |
| * cdef inline int import_ufunc() except -1: | |
| * try: # <<<<<<<<<<<<<< | |
| * _import_umath() | |
| * except Exception: | |
| */ | |
| __Pyx_XGIVEREF(__pyx_t_1); | |
| __Pyx_XGIVEREF(__pyx_t_2); | |
| __Pyx_XGIVEREF(__pyx_t_3); | |
| __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); | |
| goto __pyx_L1_error; | |
| __pyx_L8_try_end:; | |
| } | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1046 | |
| * raise ImportError("numpy.core.umath failed to import") | |
| * | |
| * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< | |
| * try: | |
| * _import_umath() | |
| */ | |
| /* function exit code */ | |
| __pyx_r = 0; | |
| goto __pyx_L0; | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_5); | |
| __Pyx_XDECREF(__pyx_t_6); | |
| __Pyx_XDECREF(__pyx_t_7); | |
| __Pyx_XDECREF(__pyx_t_8); | |
| __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| __pyx_r = -1; | |
| __pyx_L0:; | |
| __Pyx_RefNannyFinishContext(); | |
| return __pyx_r; | |
| } | |
| static PyMethodDef __pyx_methods[] = { | |
| {0, 0, 0, 0} | |
| }; | |
| static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ | |
| static int __pyx_pymod_exec_bbox(PyObject* module); /*proto*/ | |
| static PyModuleDef_Slot __pyx_moduledef_slots[] = { | |
| {Py_mod_create, (void*)__pyx_pymod_create}, | |
| {Py_mod_exec, (void*)__pyx_pymod_exec_bbox}, | |
| {0, NULL} | |
| }; | |
| static struct PyModuleDef __pyx_moduledef = { | |
| PyModuleDef_HEAD_INIT, | |
| "bbox", | |
| 0, /* m_doc */ | |
| 0, /* m_size */ | |
| -1, /* m_size */ | |
| __pyx_methods /* m_methods */, | |
| __pyx_moduledef_slots, /* m_slots */ | |
| NULL, /* m_reload */ | |
| NULL, /* m_traverse */ | |
| NULL, /* m_clear */ | |
| NULL /* m_free */ | |
| }; | |
| static __Pyx_StringTabEntry __pyx_string_tab[] = { | |
| {&__pyx_n_s_DTYPE, __pyx_k_DTYPE, sizeof(__pyx_k_DTYPE), 0, 0, 1, 1}, | |
| {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, | |
| {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, | |
| {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, | |
| {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, | |
| {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, | |
| {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, | |
| {&__pyx_n_s_ascontiguousarray, __pyx_k_ascontiguousarray, sizeof(__pyx_k_ascontiguousarray), 0, 0, 1, 1}, | |
| {&__pyx_n_s_bbox, __pyx_k_bbox, sizeof(__pyx_k_bbox), 0, 0, 1, 1}, | |
| {&__pyx_n_s_bbox_intersections, __pyx_k_bbox_intersections, sizeof(__pyx_k_bbox_intersections), 0, 0, 1, 1}, | |
| {&__pyx_n_s_bbox_overlaps, __pyx_k_bbox_overlaps, sizeof(__pyx_k_bbox_overlaps), 0, 0, 1, 1}, | |
| {&__pyx_kp_s_bbox_pyx, __pyx_k_bbox_pyx, sizeof(__pyx_k_bbox_pyx), 0, 0, 1, 0}, | |
| {&__pyx_n_s_boxes, __pyx_k_boxes, sizeof(__pyx_k_boxes), 0, 0, 1, 1}, | |
| {&__pyx_n_s_boxes_contig, __pyx_k_boxes_contig, sizeof(__pyx_k_boxes_contig), 0, 0, 1, 1}, | |
| {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, | |
| {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, | |
| {&__pyx_n_s_float, __pyx_k_float, sizeof(__pyx_k_float), 0, 0, 1, 1}, | |
| {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, | |
| {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, | |
| {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, | |
| {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, | |
| {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, | |
| {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, | |
| {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, | |
| {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, | |
| {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, | |
| {&__pyx_n_s_query_boxes, __pyx_k_query_boxes, sizeof(__pyx_k_query_boxes), 0, 0, 1, 1}, | |
| {&__pyx_n_s_query_contig, __pyx_k_query_contig, sizeof(__pyx_k_query_contig), 0, 0, 1, 1}, | |
| {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, | |
| {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, | |
| {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, | |
| {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, | |
| {0, 0, 0, 0, 0, 0, 0} | |
| }; | |
| static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { | |
| __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 39, __pyx_L1_error) | |
| __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 272, __pyx_L1_error) | |
| __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 856, __pyx_L1_error) | |
| __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1038, __pyx_L1_error) | |
| return 0; | |
| __pyx_L1_error:; | |
| return -1; | |
| } | |
| static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":272 | |
| * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): | |
| * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< | |
| * | |
| * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) | |
| */ | |
| __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 272, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_tuple_); | |
| __Pyx_GIVEREF(__pyx_tuple_); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":276 | |
| * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) | |
| * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): | |
| * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< | |
| * | |
| * info.buf = PyArray_DATA(self) | |
| */ | |
| __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 276, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_tuple__2); | |
| __Pyx_GIVEREF(__pyx_tuple__2); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":306 | |
| * if ((descr.byteorder == c'>' and little_endian) or | |
| * (descr.byteorder == c'<' and not little_endian)): | |
| * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< | |
| * if t == NPY_BYTE: f = "b" | |
| * elif t == NPY_UBYTE: f = "B" | |
| */ | |
| __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 306, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_tuple__3); | |
| __Pyx_GIVEREF(__pyx_tuple__3); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":856 | |
| * | |
| * if (end - f) - <int>(new_offset - offset[0]) < 15: | |
| * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< | |
| * | |
| * if ((child.byteorder == c'>' and little_endian) or | |
| */ | |
| __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 856, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_tuple__4); | |
| __Pyx_GIVEREF(__pyx_tuple__4); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":880 | |
| * t = child.type_num | |
| * if end - f < 5: | |
| * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< | |
| * | |
| * # Until ticket #99 is fixed, use integers to avoid warnings | |
| */ | |
| __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 880, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_tuple__5); | |
| __Pyx_GIVEREF(__pyx_tuple__5); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1038 | |
| * _import_array() | |
| * except Exception: | |
| * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline int import_umath() except -1: | |
| */ | |
| __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 1038, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_tuple__6); | |
| __Pyx_GIVEREF(__pyx_tuple__6); | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1044 | |
| * _import_umath() | |
| * except Exception: | |
| * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< | |
| * | |
| * cdef inline int import_ufunc() except -1: | |
| */ | |
| __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 1044, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_tuple__7); | |
| __Pyx_GIVEREF(__pyx_tuple__7); | |
| /* "bbox.pyx":15 | |
| * ctypedef np.float_t DTYPE_t | |
| * | |
| * def bbox_overlaps(boxes, query_boxes): # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| */ | |
| __pyx_tuple__8 = PyTuple_Pack(4, __pyx_n_s_boxes, __pyx_n_s_query_boxes, __pyx_n_s_boxes_contig, __pyx_n_s_query_contig); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 15, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_tuple__8); | |
| __Pyx_GIVEREF(__pyx_tuple__8); | |
| __pyx_codeobj__9 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__8, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_bbox_pyx, __pyx_n_s_bbox_overlaps, 15, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__9)) __PYX_ERR(0, 15, __pyx_L1_error) | |
| /* "bbox.pyx":64 | |
| * | |
| * | |
| * def bbox_intersections(boxes, query_boxes): # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| */ | |
| __pyx_tuple__10 = PyTuple_Pack(4, __pyx_n_s_boxes, __pyx_n_s_query_boxes, __pyx_n_s_boxes_contig, __pyx_n_s_query_contig); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 64, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_tuple__10); | |
| __Pyx_GIVEREF(__pyx_tuple__10); | |
| __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_bbox_pyx, __pyx_n_s_bbox_intersections, 64, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 64, __pyx_L1_error) | |
| __Pyx_RefNannyFinishContext(); | |
| return 0; | |
| __pyx_L1_error:; | |
| __Pyx_RefNannyFinishContext(); | |
| return -1; | |
| } | |
| static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { | |
| if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); | |
| return 0; | |
| __pyx_L1_error:; | |
| return -1; | |
| } | |
| static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ | |
| static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ | |
| static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ | |
| static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ | |
| static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ | |
| static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ | |
| static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ | |
| static int __Pyx_modinit_global_init_code(void) { | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); | |
| /*--- Global init code ---*/ | |
| __Pyx_RefNannyFinishContext(); | |
| return 0; | |
| } | |
| static int __Pyx_modinit_variable_export_code(void) { | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); | |
| /*--- Variable export code ---*/ | |
| __Pyx_RefNannyFinishContext(); | |
| return 0; | |
| } | |
| static int __Pyx_modinit_function_export_code(void) { | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); | |
| /*--- Function export code ---*/ | |
| __Pyx_RefNannyFinishContext(); | |
| return 0; | |
| } | |
| static int __Pyx_modinit_type_init_code(void) { | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); | |
| /*--- Type init code ---*/ | |
| __Pyx_RefNannyFinishContext(); | |
| return 0; | |
| } | |
| static int __Pyx_modinit_type_import_code(void) { | |
| __Pyx_RefNannyDeclarations | |
| PyObject *__pyx_t_1 = NULL; | |
| __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); | |
| /*--- Type import code ---*/ | |
| __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 9, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", | |
| sizeof(PyTypeObject), | |
| sizeof(PyHeapTypeObject), | |
| __Pyx_ImportType_CheckSize_Warn); | |
| if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(2, 9, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 206, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); | |
| if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(1, 206, __pyx_L1_error) | |
| __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); | |
| if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(1, 229, __pyx_L1_error) | |
| __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); | |
| if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(1, 233, __pyx_L1_error) | |
| __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); | |
| if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(1, 242, __pyx_L1_error) | |
| __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); | |
| if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(1, 918, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| __Pyx_RefNannyFinishContext(); | |
| return 0; | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_RefNannyFinishContext(); | |
| return -1; | |
| } | |
| static int __Pyx_modinit_variable_import_code(void) { | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); | |
| /*--- Variable import code ---*/ | |
| __Pyx_RefNannyFinishContext(); | |
| return 0; | |
| } | |
| static int __Pyx_modinit_function_import_code(void) { | |
| __Pyx_RefNannyDeclarations | |
| __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); | |
| /*--- Function import code ---*/ | |
| __Pyx_RefNannyFinishContext(); | |
| return 0; | |
| } | |
| __Pyx_PyMODINIT_FUNC initbbox(void) CYTHON_SMALL_CODE; /*proto*/ | |
| __Pyx_PyMODINIT_FUNC initbbox(void) | |
| __Pyx_PyMODINIT_FUNC PyInit_bbox(void) CYTHON_SMALL_CODE; /*proto*/ | |
| __Pyx_PyMODINIT_FUNC PyInit_bbox(void) | |
| { | |
| return PyModuleDef_Init(&__pyx_moduledef); | |
| } | |
| static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { | |
| static PY_INT64_T main_interpreter_id = -1; | |
| PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); | |
| if (main_interpreter_id == -1) { | |
| main_interpreter_id = current_id; | |
| return (unlikely(current_id == -1)) ? -1 : 0; | |
| } else if (unlikely(main_interpreter_id != current_id)) | |
| static PyInterpreterState *main_interpreter = NULL; | |
| PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; | |
| if (!main_interpreter) { | |
| main_interpreter = current_interpreter; | |
| } else if (unlikely(main_interpreter != current_interpreter)) | |
| { | |
| PyErr_SetString( | |
| PyExc_ImportError, | |
| "Interpreter change detected - this module can only be loaded into one interpreter per process."); | |
| return -1; | |
| } | |
| return 0; | |
| } | |
| static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { | |
| PyObject *value = PyObject_GetAttrString(spec, from_name); | |
| int result = 0; | |
| if (likely(value)) { | |
| if (allow_none || value != Py_None) { | |
| result = PyDict_SetItemString(moddict, to_name, value); | |
| } | |
| Py_DECREF(value); | |
| } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { | |
| PyErr_Clear(); | |
| } else { | |
| result = -1; | |
| } | |
| return result; | |
| } | |
| static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { | |
| PyObject *module = NULL, *moddict, *modname; | |
| if (__Pyx_check_single_interpreter()) | |
| return NULL; | |
| if (__pyx_m) | |
| return __Pyx_NewRef(__pyx_m); | |
| modname = PyObject_GetAttrString(spec, "name"); | |
| if (unlikely(!modname)) goto bad; | |
| module = PyModule_NewObject(modname); | |
| Py_DECREF(modname); | |
| if (unlikely(!module)) goto bad; | |
| moddict = PyModule_GetDict(module); | |
| if (unlikely(!moddict)) goto bad; | |
| if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; | |
| if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; | |
| if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; | |
| if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; | |
| return module; | |
| bad: | |
| Py_XDECREF(module); | |
| return NULL; | |
| } | |
| static CYTHON_SMALL_CODE int __pyx_pymod_exec_bbox(PyObject *__pyx_pyinit_module) | |
| { | |
| PyObject *__pyx_t_1 = NULL; | |
| PyObject *__pyx_t_2 = NULL; | |
| __Pyx_RefNannyDeclarations | |
| if (__pyx_m) { | |
| if (__pyx_m == __pyx_pyinit_module) return 0; | |
| PyErr_SetString(PyExc_RuntimeError, "Module 'bbox' has already been imported. Re-initialisation is not supported."); | |
| return -1; | |
| } | |
| if (__pyx_m) return __Pyx_NewRef(__pyx_m); | |
| __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); | |
| if (!__Pyx_RefNanny) { | |
| PyErr_Clear(); | |
| __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); | |
| if (!__Pyx_RefNanny) | |
| Py_FatalError("failed to import 'refnanny' module"); | |
| } | |
| __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_bbox(void)", 0); | |
| if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| __Pxy_PyFrame_Initialize_Offsets(); | |
| __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) | |
| __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) | |
| __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) | |
| if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| /*--- Library function declarations ---*/ | |
| /*--- Threads initialization code ---*/ | |
| PyEval_InitThreads(); | |
| /*--- Module creation code ---*/ | |
| __pyx_m = __pyx_pyinit_module; | |
| Py_INCREF(__pyx_m); | |
| __pyx_m = Py_InitModule4("bbox", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); | |
| __pyx_m = PyModule_Create(&__pyx_moduledef); | |
| if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) | |
| __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) | |
| Py_INCREF(__pyx_d); | |
| __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) | |
| Py_INCREF(__pyx_b); | |
| __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) | |
| Py_INCREF(__pyx_cython_runtime); | |
| if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); | |
| /*--- Initialize various global constants etc. ---*/ | |
| if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| if (__pyx_module_is_main_bbox) { | |
| if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| } | |
| { | |
| PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) | |
| if (!PyDict_GetItemString(modules, "bbox")) { | |
| if (unlikely(PyDict_SetItemString(modules, "bbox", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) | |
| } | |
| } | |
| /*--- Builtin init code ---*/ | |
| if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| /*--- Constants init code ---*/ | |
| if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| /*--- Global type/function init code ---*/ | |
| (void)__Pyx_modinit_global_init_code(); | |
| (void)__Pyx_modinit_variable_export_code(); | |
| (void)__Pyx_modinit_function_export_code(); | |
| (void)__Pyx_modinit_type_init_code(); | |
| if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; | |
| (void)__Pyx_modinit_variable_import_code(); | |
| (void)__Pyx_modinit_function_import_code(); | |
| /*--- Execution code ---*/ | |
| if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| /* "bbox.pyx":9 | |
| * | |
| * cimport cython | |
| * import numpy as np # <<<<<<<<<<<<<< | |
| * cimport numpy as np | |
| * | |
| */ | |
| __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 9, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| /* "bbox.pyx":12 | |
| * cimport numpy as np | |
| * | |
| * DTYPE = np.float # <<<<<<<<<<<<<< | |
| * ctypedef np.float_t DTYPE_t | |
| * | |
| */ | |
| __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_1); | |
| __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; | |
| if (PyDict_SetItem(__pyx_d, __pyx_n_s_DTYPE, __pyx_t_2) < 0) __PYX_ERR(0, 12, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| /* "bbox.pyx":15 | |
| * ctypedef np.float_t DTYPE_t | |
| * | |
| * def bbox_overlaps(boxes, query_boxes): # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| */ | |
| __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4bbox_1bbox_overlaps, NULL, __pyx_n_s_bbox); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| if (PyDict_SetItem(__pyx_d, __pyx_n_s_bbox_overlaps, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| /* "bbox.pyx":64 | |
| * | |
| * | |
| * def bbox_intersections(boxes, query_boxes): # <<<<<<<<<<<<<< | |
| * cdef np.ndarray[DTYPE_t, ndim=2] boxes_contig = np.ascontiguousarray(boxes, dtype=DTYPE) | |
| * cdef np.ndarray[DTYPE_t, ndim=2] query_contig = np.ascontiguousarray(query_boxes, dtype=DTYPE) | |
| */ | |
| __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4bbox_3bbox_intersections, NULL, __pyx_n_s_bbox); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| if (PyDict_SetItem(__pyx_d, __pyx_n_s_bbox_intersections, __pyx_t_2) < 0) __PYX_ERR(0, 64, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| /* "bbox.pyx":1 | |
| * # -------------------------------------------------------- # <<<<<<<<<<<<<< | |
| * # Fast R-CNN | |
| * # Copyright (c) 2015 Microsoft | |
| */ | |
| __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) | |
| __Pyx_GOTREF(__pyx_t_2); | |
| if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) | |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; | |
| /* "../../../../../anaconda3/tmp/envs/motifs4/lib/python3.6/site-packages/Cython/Includes/numpy/__init__.pxd":1046 | |
| * raise ImportError("numpy.core.umath failed to import") | |
| * | |
| * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< | |
| * try: | |
| * _import_umath() | |
| */ | |
| /*--- Wrapped vars code ---*/ | |
| goto __pyx_L0; | |
| __pyx_L1_error:; | |
| __Pyx_XDECREF(__pyx_t_1); | |
| __Pyx_XDECREF(__pyx_t_2); | |
| if (__pyx_m) { | |
| if (__pyx_d) { | |
| __Pyx_AddTraceback("init bbox", __pyx_clineno, __pyx_lineno, __pyx_filename); | |
| } | |
| Py_CLEAR(__pyx_m); | |
| } else if (!PyErr_Occurred()) { | |
| PyErr_SetString(PyExc_ImportError, "init bbox"); | |
| } | |
| __pyx_L0:; | |
| __Pyx_RefNannyFinishContext(); | |
| return (__pyx_m != NULL) ? 0 : -1; | |
| return __pyx_m; | |
| return; | |
| } | |
| /* --- Runtime support code --- */ | |
| /* Refnanny */ | |
| static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { | |
| PyObject *m = NULL, *p = NULL; | |
| void *r = NULL; | |
| m = PyImport_ImportModule(modname); | |
| if (!m) goto end; | |
| p = PyObject_GetAttrString(m, "RefNannyAPI"); | |
| if (!p) goto end; | |
| r = PyLong_AsVoidPtr(p); | |
| end: | |
| Py_XDECREF(p); | |
| Py_XDECREF(m); | |
| return (__Pyx_RefNannyAPIStruct *)r; | |
| } | |
| /* PyObjectGetAttrStr */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { | |
| PyTypeObject* tp = Py_TYPE(obj); | |
| if (likely(tp->tp_getattro)) | |
| return tp->tp_getattro(obj, attr_name); | |
| if (likely(tp->tp_getattr)) | |
| return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); | |
| return PyObject_GetAttr(obj, attr_name); | |
| } | |
| /* GetBuiltinName */ | |
| static PyObject *__Pyx_GetBuiltinName(PyObject *name) { | |
| PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); | |
| if (unlikely(!result)) { | |
| PyErr_Format(PyExc_NameError, | |
| "name '%U' is not defined", name); | |
| "name '%.200s' is not defined", PyString_AS_STRING(name)); | |
| } | |
| return result; | |
| } | |
| /* RaiseArgTupleInvalid */ | |
| static void __Pyx_RaiseArgtupleInvalid( | |
| const char* func_name, | |
| int exact, | |
| Py_ssize_t num_min, | |
| Py_ssize_t num_max, | |
| Py_ssize_t num_found) | |
| { | |
| Py_ssize_t num_expected; | |
| const char *more_or_less; | |
| if (num_found < num_min) { | |
| num_expected = num_min; | |
| more_or_less = "at least"; | |
| } else { | |
| num_expected = num_max; | |
| more_or_less = "at most"; | |
| } | |
| if (exact) { | |
| more_or_less = "exactly"; | |
| } | |
| PyErr_Format(PyExc_TypeError, | |
| "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", | |
| func_name, more_or_less, num_expected, | |
| (num_expected == 1) ? "" : "s", num_found); | |
| } | |
| /* RaiseDoubleKeywords */ | |
| static void __Pyx_RaiseDoubleKeywordsError( | |
| const char* func_name, | |
| PyObject* kw_name) | |
| { | |
| PyErr_Format(PyExc_TypeError, | |
| "%s() got multiple values for keyword argument '%U'", func_name, kw_name); | |
| "%s() got multiple values for keyword argument '%s'", func_name, | |
| PyString_AsString(kw_name)); | |
| } | |
| /* ParseKeywords */ | |
| static int __Pyx_ParseOptionalKeywords( | |
| PyObject *kwds, | |
| PyObject **argnames[], | |
| PyObject *kwds2, | |
| PyObject *values[], | |
| Py_ssize_t num_pos_args, | |
| const char* function_name) | |
| { | |
| PyObject *key = 0, *value = 0; | |
| Py_ssize_t pos = 0; | |
| PyObject*** name; | |
| PyObject*** first_kw_arg = argnames + num_pos_args; | |
| while (PyDict_Next(kwds, &pos, &key, &value)) { | |
| name = first_kw_arg; | |
| while (*name && (**name != key)) name++; | |
| if (*name) { | |
| values[name-argnames] = value; | |
| continue; | |
| } | |
| name = first_kw_arg; | |
| if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { | |
| while (*name) { | |
| if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) | |
| && _PyString_Eq(**name, key)) { | |
| values[name-argnames] = value; | |
| break; | |
| } | |
| name++; | |
| } | |
| if (*name) continue; | |
| else { | |
| PyObject*** argname = argnames; | |
| while (argname != first_kw_arg) { | |
| if ((**argname == key) || ( | |
| (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) | |
| && _PyString_Eq(**argname, key))) { | |
| goto arg_passed_twice; | |
| } | |
| argname++; | |
| } | |
| } | |
| } else | |
| if (likely(PyUnicode_Check(key))) { | |
| while (*name) { | |
| int cmp = (**name == key) ? 0 : | |
| (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : | |
| PyUnicode_Compare(**name, key); | |
| if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; | |
| if (cmp == 0) { | |
| values[name-argnames] = value; | |
| break; | |
| } | |
| name++; | |
| } | |
| if (*name) continue; | |
| else { | |
| PyObject*** argname = argnames; | |
| while (argname != first_kw_arg) { | |
| int cmp = (**argname == key) ? 0 : | |
| (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : | |
| PyUnicode_Compare(**argname, key); | |
| if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; | |
| if (cmp == 0) goto arg_passed_twice; | |
| argname++; | |
| } | |
| } | |
| } else | |
| goto invalid_keyword_type; | |
| if (kwds2) { | |
| if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; | |
| } else { | |
| goto invalid_keyword; | |
| } | |
| } | |
| return 0; | |
| arg_passed_twice: | |
| __Pyx_RaiseDoubleKeywordsError(function_name, key); | |
| goto bad; | |
| invalid_keyword_type: | |
| PyErr_Format(PyExc_TypeError, | |
| "%.200s() keywords must be strings", function_name); | |
| goto bad; | |
| invalid_keyword: | |
| PyErr_Format(PyExc_TypeError, | |
| "%.200s() got an unexpected keyword argument '%.200s'", | |
| function_name, PyString_AsString(key)); | |
| "%s() got an unexpected keyword argument '%U'", | |
| function_name, key); | |
| bad: | |
| return -1; | |
| } | |
| /* PyDictVersioning */ | |
| static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { | |
| PyObject *dict = Py_TYPE(obj)->tp_dict; | |
| return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; | |
| } | |
| static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { | |
| PyObject **dictptr = NULL; | |
| Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; | |
| if (offset) { | |
| dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); | |
| dictptr = _PyObject_GetDictPtr(obj); | |
| } | |
| return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; | |
| } | |
| static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { | |
| PyObject *dict = Py_TYPE(obj)->tp_dict; | |
| if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) | |
| return 0; | |
| return obj_dict_version == __Pyx_get_object_dict_version(obj); | |
| } | |
| /* GetModuleGlobalName */ | |
| static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) | |
| static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) | |
| { | |
| PyObject *result; | |
| result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); | |
| __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) | |
| if (likely(result)) { | |
| return __Pyx_NewRef(result); | |
| } else if (unlikely(PyErr_Occurred())) { | |
| return NULL; | |
| } | |
| result = PyDict_GetItem(__pyx_d, name); | |
| __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) | |
| if (likely(result)) { | |
| return __Pyx_NewRef(result); | |
| } | |
| result = PyObject_GetItem(__pyx_d, name); | |
| __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) | |
| if (likely(result)) { | |
| return __Pyx_NewRef(result); | |
| } | |
| PyErr_Clear(); | |
| return __Pyx_GetBuiltinName(name); | |
| } | |
| /* PyObjectCall */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { | |
| PyObject *result; | |
| ternaryfunc call = func->ob_type->tp_call; | |
| if (unlikely(!call)) | |
| return PyObject_Call(func, arg, kw); | |
| if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) | |
| return NULL; | |
| result = (*call)(func, arg, kw); | |
| Py_LeaveRecursiveCall(); | |
| if (unlikely(!result) && unlikely(!PyErr_Occurred())) { | |
| PyErr_SetString( | |
| PyExc_SystemError, | |
| "NULL result without error in PyObject_Call"); | |
| } | |
| return result; | |
| } | |
| /* ExtTypeTest */ | |
| static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { | |
| if (unlikely(!type)) { | |
| PyErr_SetString(PyExc_SystemError, "Missing type object"); | |
| return 0; | |
| } | |
| if (likely(__Pyx_TypeCheck(obj, type))) | |
| return 1; | |
| PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", | |
| Py_TYPE(obj)->tp_name, type->tp_name); | |
| return 0; | |
| } | |
| /* IsLittleEndian */ | |
| static CYTHON_INLINE int __Pyx_Is_Little_Endian(void) | |
| { | |
| union { | |
| uint32_t u32; | |
| uint8_t u8[4]; | |
| } S; | |
| S.u32 = 0x01020304; | |
| return S.u8[0] == 4; | |
| } | |
| /* BufferFormatCheck */ | |
| static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, | |
| __Pyx_BufFmt_StackElem* stack, | |
| __Pyx_TypeInfo* type) { | |
| stack[0].field = &ctx->root; | |
| stack[0].parent_offset = 0; | |
| ctx->root.type = type; | |
| ctx->root.name = "buffer dtype"; | |
| ctx->root.offset = 0; | |
| ctx->head = stack; | |
| ctx->head->field = &ctx->root; | |
| ctx->fmt_offset = 0; | |
| ctx->head->parent_offset = 0; | |
| ctx->new_packmode = '@'; | |
| ctx->enc_packmode = '@'; | |
| ctx->new_count = 1; | |
| ctx->enc_count = 0; | |
| ctx->enc_type = 0; | |
| ctx->is_complex = 0; | |
| ctx->is_valid_array = 0; | |
| ctx->struct_alignment = 0; | |
| while (type->typegroup == 'S') { | |
| ++ctx->head; | |
| ctx->head->field = type->fields; | |
| ctx->head->parent_offset = 0; | |
| type = type->fields->type; | |
| } | |
| } | |
| static int __Pyx_BufFmt_ParseNumber(const char** ts) { | |
| int count; | |
| const char* t = *ts; | |
| if (*t < '0' || *t > '9') { | |
| return -1; | |
| } else { | |
| count = *t++ - '0'; | |
| while (*t >= '0' && *t <= '9') { | |
| count *= 10; | |
| count += *t++ - '0'; | |
| } | |
| } | |
| *ts = t; | |
| return count; | |
| } | |
| static int __Pyx_BufFmt_ExpectNumber(const char **ts) { | |
| int number = __Pyx_BufFmt_ParseNumber(ts); | |
| if (number == -1) | |
| PyErr_Format(PyExc_ValueError,\ | |
| "Does not understand character buffer dtype format string ('%c')", **ts); | |
| return number; | |
| } | |
| static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { | |
| PyErr_Format(PyExc_ValueError, | |
| "Unexpected format string character: '%c'", ch); | |
| } | |
| static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { | |
| switch (ch) { | |
| case 'c': return "'char'"; | |
| case 'b': return "'signed char'"; | |
| case 'B': return "'unsigned char'"; | |
| case 'h': return "'short'"; | |
| case 'H': return "'unsigned short'"; | |
| case 'i': return "'int'"; | |
| case 'I': return "'unsigned int'"; | |
| case 'l': return "'long'"; | |
| case 'L': return "'unsigned long'"; | |
| case 'q': return "'long long'"; | |
| case 'Q': return "'unsigned long long'"; | |
| case 'f': return (is_complex ? "'complex float'" : "'float'"); | |
| case 'd': return (is_complex ? "'complex double'" : "'double'"); | |
| case 'g': return (is_complex ? "'complex long double'" : "'long double'"); | |
| case 'T': return "a struct"; | |
| case 'O': return "Python object"; | |
| case 'P': return "a pointer"; | |
| case 's': case 'p': return "a string"; | |
| case 0: return "end"; | |
| default: return "unparseable format string"; | |
| } | |
| } | |
| static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { | |
| switch (ch) { | |
| case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; | |
| case 'h': case 'H': return 2; | |
| case 'i': case 'I': case 'l': case 'L': return 4; | |
| case 'q': case 'Q': return 8; | |
| case 'f': return (is_complex ? 8 : 4); | |
| case 'd': return (is_complex ? 16 : 8); | |
| case 'g': { | |
| PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); | |
| return 0; | |
| } | |
| case 'O': case 'P': return sizeof(void*); | |
| default: | |
| __Pyx_BufFmt_RaiseUnexpectedChar(ch); | |
| return 0; | |
| } | |
| } | |
| static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { | |
| switch (ch) { | |
| case 'c': case 'b': case 'B': case 's': case 'p': return 1; | |
| case 'h': case 'H': return sizeof(short); | |
| case 'i': case 'I': return sizeof(int); | |
| case 'l': case 'L': return sizeof(long); | |
| case 'q': case 'Q': return sizeof(PY_LONG_LONG); | |
| case 'f': return sizeof(float) * (is_complex ? 2 : 1); | |
| case 'd': return sizeof(double) * (is_complex ? 2 : 1); | |
| case 'g': return sizeof(long double) * (is_complex ? 2 : 1); | |
| case 'O': case 'P': return sizeof(void*); | |
| default: { | |
| __Pyx_BufFmt_RaiseUnexpectedChar(ch); | |
| return 0; | |
| } | |
| } | |
| } | |
| typedef struct { char c; short x; } __Pyx_st_short; | |
| typedef struct { char c; int x; } __Pyx_st_int; | |
| typedef struct { char c; long x; } __Pyx_st_long; | |
| typedef struct { char c; float x; } __Pyx_st_float; | |
| typedef struct { char c; double x; } __Pyx_st_double; | |
| typedef struct { char c; long double x; } __Pyx_st_longdouble; | |
| typedef struct { char c; void *x; } __Pyx_st_void_p; | |
| typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; | |
| static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) { | |
| switch (ch) { | |
| case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; | |
| case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); | |
| case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); | |
| case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); | |
| case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); | |
| case 'f': return sizeof(__Pyx_st_float) - sizeof(float); | |
| case 'd': return sizeof(__Pyx_st_double) - sizeof(double); | |
| case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); | |
| case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); | |
| default: | |
| __Pyx_BufFmt_RaiseUnexpectedChar(ch); | |
| return 0; | |
| } | |
| } | |
| /* These are for computing the padding at the end of the struct to align | |
| on the first member of the struct. This will probably the same as above, | |
| but we don't have any guarantees. | |
| */ | |
| typedef struct { short x; char c; } __Pyx_pad_short; | |
| typedef struct { int x; char c; } __Pyx_pad_int; | |
| typedef struct { long x; char c; } __Pyx_pad_long; | |
| typedef struct { float x; char c; } __Pyx_pad_float; | |
| typedef struct { double x; char c; } __Pyx_pad_double; | |
| typedef struct { long double x; char c; } __Pyx_pad_longdouble; | |
| typedef struct { void *x; char c; } __Pyx_pad_void_p; | |
| typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong; | |
| static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) { | |
| switch (ch) { | |
| case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; | |
| case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short); | |
| case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int); | |
| case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long); | |
| case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG); | |
| case 'f': return sizeof(__Pyx_pad_float) - sizeof(float); | |
| case 'd': return sizeof(__Pyx_pad_double) - sizeof(double); | |
| case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double); | |
| case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*); | |
| default: | |
| __Pyx_BufFmt_RaiseUnexpectedChar(ch); | |
| return 0; | |
| } | |
| } | |
| static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { | |
| switch (ch) { | |
| case 'c': | |
| return 'H'; | |
| case 'b': case 'h': case 'i': | |
| case 'l': case 'q': case 's': case 'p': | |
| return 'I'; | |
| case 'B': case 'H': case 'I': case 'L': case 'Q': | |
| return 'U'; | |
| case 'f': case 'd': case 'g': | |
| return (is_complex ? 'C' : 'R'); | |
| case 'O': | |
| return 'O'; | |
| case 'P': | |
| return 'P'; | |
| default: { | |
| __Pyx_BufFmt_RaiseUnexpectedChar(ch); | |
| return 0; | |
| } | |
| } | |
| } | |
| static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { | |
| if (ctx->head == NULL || ctx->head->field == &ctx->root) { | |
| const char* expected; | |
| const char* quote; | |
| if (ctx->head == NULL) { | |
| expected = "end"; | |
| quote = ""; | |
| } else { | |
| expected = ctx->head->field->type->name; | |
| quote = "'"; | |
| } | |
| PyErr_Format(PyExc_ValueError, | |
| "Buffer dtype mismatch, expected %s%s%s but got %s", | |
| quote, expected, quote, | |
| __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); | |
| } else { | |
| __Pyx_StructField* field = ctx->head->field; | |
| __Pyx_StructField* parent = (ctx->head - 1)->field; | |
| PyErr_Format(PyExc_ValueError, | |
| "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", | |
| field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), | |
| parent->type->name, field->name); | |
| } | |
| } | |
| static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { | |
| char group; | |
| size_t size, offset, arraysize = 1; | |
| if (ctx->enc_type == 0) return 0; | |
| if (ctx->head->field->type->arraysize[0]) { | |
| int i, ndim = 0; | |
| if (ctx->enc_type == 's' || ctx->enc_type == 'p') { | |
| ctx->is_valid_array = ctx->head->field->type->ndim == 1; | |
| ndim = 1; | |
| if (ctx->enc_count != ctx->head->field->type->arraysize[0]) { | |
| PyErr_Format(PyExc_ValueError, | |
| "Expected a dimension of size %zu, got %zu", | |
| ctx->head->field->type->arraysize[0], ctx->enc_count); | |
| return -1; | |
| } | |
| } | |
| if (!ctx->is_valid_array) { | |
| PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d", | |
| ctx->head->field->type->ndim, ndim); | |
| return -1; | |
| } | |
| for (i = 0; i < ctx->head->field->type->ndim; i++) { | |
| arraysize *= ctx->head->field->type->arraysize[i]; | |
| } | |
| ctx->is_valid_array = 0; | |
| ctx->enc_count = 1; | |
| } | |
| group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); | |
| do { | |
| __Pyx_StructField* field = ctx->head->field; | |
| __Pyx_TypeInfo* type = field->type; | |
| if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { | |
| size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); | |
| } else { | |
| size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); | |
| } | |
| if (ctx->enc_packmode == '@') { | |
| size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); | |
| size_t align_mod_offset; | |
| if (align_at == 0) return -1; | |
| align_mod_offset = ctx->fmt_offset % align_at; | |
| if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; | |
| if (ctx->struct_alignment == 0) | |
| ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type, | |
| ctx->is_complex); | |
| } | |
| if (type->size != size || type->typegroup != group) { | |
| if (type->typegroup == 'C' && type->fields != NULL) { | |
| size_t parent_offset = ctx->head->parent_offset + field->offset; | |
| ++ctx->head; | |
| ctx->head->field = type->fields; | |
| ctx->head->parent_offset = parent_offset; | |
| continue; | |
| } | |
| if ((type->typegroup == 'H' || group == 'H') && type->size == size) { | |
| } else { | |
| __Pyx_BufFmt_RaiseExpected(ctx); | |
| return -1; | |
| } | |
| } | |
| offset = ctx->head->parent_offset + field->offset; | |
| if (ctx->fmt_offset != offset) { | |
| PyErr_Format(PyExc_ValueError, | |
| "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected", | |
| (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); | |
| return -1; | |
| } | |
| ctx->fmt_offset += size; | |
| if (arraysize) | |
| ctx->fmt_offset += (arraysize - 1) * size; | |
| --ctx->enc_count; | |
| while (1) { | |
| if (field == &ctx->root) { | |
| ctx->head = NULL; | |
| if (ctx->enc_count != 0) { | |
| __Pyx_BufFmt_RaiseExpected(ctx); | |
| return -1; | |
| } | |
| break; | |
| } | |
| ctx->head->field = ++field; | |
| if (field->type == NULL) { | |
| --ctx->head; | |
| field = ctx->head->field; | |
| continue; | |
| } else if (field->type->typegroup == 'S') { | |
| size_t parent_offset = ctx->head->parent_offset + field->offset; | |
| if (field->type->fields->type == NULL) continue; | |
| field = field->type->fields; | |
| ++ctx->head; | |
| ctx->head->field = field; | |
| ctx->head->parent_offset = parent_offset; | |
| break; | |
| } else { | |
| break; | |
| } | |
| } | |
| } while (ctx->enc_count); | |
| ctx->enc_type = 0; | |
| ctx->is_complex = 0; | |
| return 0; | |
| } | |
| static PyObject * | |
| __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) | |
| { | |
| const char *ts = *tsp; | |
| int i = 0, number; | |
| int ndim = ctx->head->field->type->ndim; | |
| ; | |
| ++ts; | |
| if (ctx->new_count != 1) { | |
| PyErr_SetString(PyExc_ValueError, | |
| "Cannot handle repeated arrays in format string"); | |
| return NULL; | |
| } | |
| if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; | |
| while (*ts && *ts != ')') { | |
| switch (*ts) { | |
| case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; | |
| default: break; | |
| } | |
| number = __Pyx_BufFmt_ExpectNumber(&ts); | |
| if (number == -1) return NULL; | |
| if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) | |
| return PyErr_Format(PyExc_ValueError, | |
| "Expected a dimension of size %zu, got %d", | |
| ctx->head->field->type->arraysize[i], number); | |
| if (*ts != ',' && *ts != ')') | |
| return PyErr_Format(PyExc_ValueError, | |
| "Expected a comma in format string, got '%c'", *ts); | |
| if (*ts == ',') ts++; | |
| i++; | |
| } | |
| if (i != ndim) | |
| return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d", | |
| ctx->head->field->type->ndim, i); | |
| if (!*ts) { | |
| PyErr_SetString(PyExc_ValueError, | |
| "Unexpected end of format string, expected ')'"); | |
| return NULL; | |
| } | |
| ctx->is_valid_array = 1; | |
| ctx->new_count = 1; | |
| *tsp = ++ts; | |
| return Py_None; | |
| } | |
| static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { | |
| int got_Z = 0; | |
| while (1) { | |
| switch(*ts) { | |
| case 0: | |
| if (ctx->enc_type != 0 && ctx->head == NULL) { | |
| __Pyx_BufFmt_RaiseExpected(ctx); | |
| return NULL; | |
| } | |
| if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; | |
| if (ctx->head != NULL) { | |
| __Pyx_BufFmt_RaiseExpected(ctx); | |
| return NULL; | |
| } | |
| return ts; | |
| case ' ': | |
| case '\r': | |
| case '\n': | |
| ++ts; | |
| break; | |
| case '<': | |
| if (!__Pyx_Is_Little_Endian()) { | |
| PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); | |
| return NULL; | |
| } | |
| ctx->new_packmode = '='; | |
| ++ts; | |
| break; | |
| case '>': | |
| case '!': | |
| if (__Pyx_Is_Little_Endian()) { | |
| PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); | |
| return NULL; | |
| } | |
| ctx->new_packmode = '='; | |
| ++ts; | |
| break; | |
| case '=': | |
| case '@': | |
| case '^': | |
| ctx->new_packmode = *ts++; | |
| break; | |
| case 'T': | |
| { | |
| const char* ts_after_sub; | |
| size_t i, struct_count = ctx->new_count; | |
| size_t struct_alignment = ctx->struct_alignment; | |
| ctx->new_count = 1; | |
| ++ts; | |
| if (*ts != '{') { | |
| PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); | |
| return NULL; | |
| } | |
| if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; | |
| ctx->enc_type = 0; | |
| ctx->enc_count = 0; | |
| ctx->struct_alignment = 0; | |
| ++ts; | |
| ts_after_sub = ts; | |
| for (i = 0; i != struct_count; ++i) { | |
| ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); | |
| if (!ts_after_sub) return NULL; | |
| } | |
| ts = ts_after_sub; | |
| if (struct_alignment) ctx->struct_alignment = struct_alignment; | |
| } | |
| break; | |
| case '}': | |
| { | |
| size_t alignment = ctx->struct_alignment; | |
| ++ts; | |
| if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; | |
| ctx->enc_type = 0; | |
| if (alignment && ctx->fmt_offset % alignment) { | |
| ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment); | |
| } | |
| } | |
| return ts; | |
| case 'x': | |
| if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; | |
| ctx->fmt_offset += ctx->new_count; | |
| ctx->new_count = 1; | |
| ctx->enc_count = 0; | |
| ctx->enc_type = 0; | |
| ctx->enc_packmode = ctx->new_packmode; | |
| ++ts; | |
| break; | |
| case 'Z': | |
| got_Z = 1; | |
| ++ts; | |
| if (*ts != 'f' && *ts != 'd' && *ts != 'g') { | |
| __Pyx_BufFmt_RaiseUnexpectedChar('Z'); | |
| return NULL; | |
| } | |
| CYTHON_FALLTHROUGH; | |
| case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': | |
| case 'l': case 'L': case 'q': case 'Q': | |
| case 'f': case 'd': case 'g': | |
| case 'O': case 'p': | |
| if (ctx->enc_type == *ts && got_Z == ctx->is_complex && | |
| ctx->enc_packmode == ctx->new_packmode) { | |
| ctx->enc_count += ctx->new_count; | |
| ctx->new_count = 1; | |
| got_Z = 0; | |
| ++ts; | |
| break; | |
| } | |
| CYTHON_FALLTHROUGH; | |
| case 's': | |
| if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; | |
| ctx->enc_count = ctx->new_count; | |
| ctx->enc_packmode = ctx->new_packmode; | |
| ctx->enc_type = *ts; | |
| ctx->is_complex = got_Z; | |
| ++ts; | |
| ctx->new_count = 1; | |
| got_Z = 0; | |
| break; | |
| case ':': | |
| ++ts; | |
| while(*ts != ':') ++ts; | |
| ++ts; | |
| break; | |
| case '(': | |
| if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL; | |
| break; | |
| default: | |
| { | |
| int number = __Pyx_BufFmt_ExpectNumber(&ts); | |
| if (number == -1) return NULL; | |
| ctx->new_count = (size_t)number; | |
| } | |
| } | |
| } | |
| } | |
| /* BufferGetAndValidate */ | |
| static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { | |
| if (unlikely(info->buf == NULL)) return; | |
| if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; | |
| __Pyx_ReleaseBuffer(info); | |
| } | |
| static void __Pyx_ZeroBuffer(Py_buffer* buf) { | |
| buf->buf = NULL; | |
| buf->obj = NULL; | |
| buf->strides = __Pyx_zeros; | |
| buf->shape = __Pyx_zeros; | |
| buf->suboffsets = __Pyx_minusones; | |
| } | |
| static int __Pyx__GetBufferAndValidate( | |
| Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, | |
| int nd, int cast, __Pyx_BufFmt_StackElem* stack) | |
| { | |
| buf->buf = NULL; | |
| if (unlikely(__Pyx_GetBuffer(obj, buf, flags) == -1)) { | |
| __Pyx_ZeroBuffer(buf); | |
| return -1; | |
| } | |
| if (unlikely(buf->ndim != nd)) { | |
| PyErr_Format(PyExc_ValueError, | |
| "Buffer has wrong number of dimensions (expected %d, got %d)", | |
| nd, buf->ndim); | |
| goto fail; | |
| } | |
| if (!cast) { | |
| __Pyx_BufFmt_Context ctx; | |
| __Pyx_BufFmt_Init(&ctx, stack, dtype); | |
| if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; | |
| } | |
| if (unlikely((size_t)buf->itemsize != dtype->size)) { | |
| PyErr_Format(PyExc_ValueError, | |
| "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)", | |
| buf->itemsize, (buf->itemsize > 1) ? "s" : "", | |
| dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : ""); | |
| goto fail; | |
| } | |
| if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; | |
| return 0; | |
| fail:; | |
| __Pyx_SafeReleaseBuffer(buf); | |
| return -1; | |
| } | |
| /* PyErrFetchRestore */ | |
| static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { | |
| PyObject *tmp_type, *tmp_value, *tmp_tb; | |
| tmp_type = tstate->curexc_type; | |
| tmp_value = tstate->curexc_value; | |
| tmp_tb = tstate->curexc_traceback; | |
| tstate->curexc_type = type; | |
| tstate->curexc_value = value; | |
| tstate->curexc_traceback = tb; | |
| Py_XDECREF(tmp_type); | |
| Py_XDECREF(tmp_value); | |
| Py_XDECREF(tmp_tb); | |
| } | |
| static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { | |
| *type = tstate->curexc_type; | |
| *value = tstate->curexc_value; | |
| *tb = tstate->curexc_traceback; | |
| tstate->curexc_type = 0; | |
| tstate->curexc_value = 0; | |
| tstate->curexc_traceback = 0; | |
| } | |
| /* BufferIndexError */ | |
| static void __Pyx_RaiseBufferIndexError(int axis) { | |
| PyErr_Format(PyExc_IndexError, | |
| "Out of bounds on buffer access (axis %d)", axis); | |
| } | |
| /* RaiseException */ | |
| static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, | |
| CYTHON_UNUSED PyObject *cause) { | |
| __Pyx_PyThreadState_declare | |
| Py_XINCREF(type); | |
| if (!value || value == Py_None) | |
| value = NULL; | |
| else | |
| Py_INCREF(value); | |
| if (!tb || tb == Py_None) | |
| tb = NULL; | |
| else { | |
| Py_INCREF(tb); | |
| if (!PyTraceBack_Check(tb)) { | |
| PyErr_SetString(PyExc_TypeError, | |
| "raise: arg 3 must be a traceback or None"); | |
| goto raise_error; | |
| } | |
| } | |
| if (PyType_Check(type)) { | |
| if (!value) { | |
| Py_INCREF(Py_None); | |
| value = Py_None; | |
| } | |
| PyErr_NormalizeException(&type, &value, &tb); | |
| } else { | |
| if (value) { | |
| PyErr_SetString(PyExc_TypeError, | |
| "instance exception may not have a separate value"); | |
| goto raise_error; | |
| } | |
| value = type; | |
| type = (PyObject*) Py_TYPE(type); | |
| Py_INCREF(type); | |
| if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { | |
| PyErr_SetString(PyExc_TypeError, | |
| "raise: exception class must be a subclass of BaseException"); | |
| goto raise_error; | |
| } | |
| } | |
| __Pyx_PyThreadState_assign | |
| __Pyx_ErrRestore(type, value, tb); | |
| return; | |
| raise_error: | |
| Py_XDECREF(value); | |
| Py_XDECREF(type); | |
| Py_XDECREF(tb); | |
| return; | |
| } | |
| static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { | |
| PyObject* owned_instance = NULL; | |
| if (tb == Py_None) { | |
| tb = 0; | |
| } else if (tb && !PyTraceBack_Check(tb)) { | |
| PyErr_SetString(PyExc_TypeError, | |
| "raise: arg 3 must be a traceback or None"); | |
| goto bad; | |
| } | |
| if (value == Py_None) | |
| value = 0; | |
| if (PyExceptionInstance_Check(type)) { | |
| if (value) { | |
| PyErr_SetString(PyExc_TypeError, | |
| "instance exception may not have a separate value"); | |
| goto bad; | |
| } | |
| value = type; | |
| type = (PyObject*) Py_TYPE(value); | |
| } else if (PyExceptionClass_Check(type)) { | |
| PyObject *instance_class = NULL; | |
| if (value && PyExceptionInstance_Check(value)) { | |
| instance_class = (PyObject*) Py_TYPE(value); | |
| if (instance_class != type) { | |
| int is_subclass = PyObject_IsSubclass(instance_class, type); | |
| if (!is_subclass) { | |
| instance_class = NULL; | |
| } else if (unlikely(is_subclass == -1)) { | |
| goto bad; | |
| } else { | |
| type = instance_class; | |
| } | |
| } | |
| } | |
| if (!instance_class) { | |
| PyObject *args; | |
| if (!value) | |
| args = PyTuple_New(0); | |
| else if (PyTuple_Check(value)) { | |
| Py_INCREF(value); | |
| args = value; | |
| } else | |
| args = PyTuple_Pack(1, value); | |
| if (!args) | |
| goto bad; | |
| owned_instance = PyObject_Call(type, args, NULL); | |
| Py_DECREF(args); | |
| if (!owned_instance) | |
| goto bad; | |
| value = owned_instance; | |
| if (!PyExceptionInstance_Check(value)) { | |
| PyErr_Format(PyExc_TypeError, | |
| "calling %R should have returned an instance of " | |
| "BaseException, not %R", | |
| type, Py_TYPE(value)); | |
| goto bad; | |
| } | |
| } | |
| } else { | |
| PyErr_SetString(PyExc_TypeError, | |
| "raise: exception class must be a subclass of BaseException"); | |
| goto bad; | |
| } | |
| if (cause) { | |
| PyObject *fixed_cause; | |
| if (cause == Py_None) { | |
| fixed_cause = NULL; | |
| } else if (PyExceptionClass_Check(cause)) { | |
| fixed_cause = PyObject_CallObject(cause, NULL); | |
| if (fixed_cause == NULL) | |
| goto bad; | |
| } else if (PyExceptionInstance_Check(cause)) { | |
| fixed_cause = cause; | |
| Py_INCREF(fixed_cause); | |
| } else { | |
| PyErr_SetString(PyExc_TypeError, | |
| "exception causes must derive from " | |
| "BaseException"); | |
| goto bad; | |
| } | |
| PyException_SetCause(value, fixed_cause); | |
| } | |
| PyErr_SetObject(type, value); | |
| if (tb) { | |
| PyObject *tmp_type, *tmp_value, *tmp_tb; | |
| PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); | |
| Py_INCREF(tb); | |
| PyErr_Restore(tmp_type, tmp_value, tb); | |
| Py_XDECREF(tmp_tb); | |
| PyThreadState *tstate = __Pyx_PyThreadState_Current; | |
| PyObject* tmp_tb = tstate->curexc_traceback; | |
| if (tb != tmp_tb) { | |
| Py_INCREF(tb); | |
| tstate->curexc_traceback = tb; | |
| Py_XDECREF(tmp_tb); | |
| } | |
| } | |
| bad: | |
| Py_XDECREF(owned_instance); | |
| return; | |
| } | |
| /* PyCFunctionFastCall */ | |
| static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { | |
| PyCFunctionObject *func = (PyCFunctionObject*)func_obj; | |
| PyCFunction meth = PyCFunction_GET_FUNCTION(func); | |
| PyObject *self = PyCFunction_GET_SELF(func); | |
| int flags = PyCFunction_GET_FLAGS(func); | |
| assert(PyCFunction_Check(func)); | |
| assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); | |
| assert(nargs >= 0); | |
| assert(nargs == 0 || args != NULL); | |
| /* _PyCFunction_FastCallDict() must not be called with an exception set, | |
| because it may clear it (directly or indirectly) and so the | |
| caller loses its exception */ | |
| assert(!PyErr_Occurred()); | |
| if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { | |
| return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); | |
| } else { | |
| return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); | |
| } | |
| } | |
| /* PyFunctionFastCall */ | |
| static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, | |
| PyObject *globals) { | |
| PyFrameObject *f; | |
| PyThreadState *tstate = __Pyx_PyThreadState_Current; | |
| PyObject **fastlocals; | |
| Py_ssize_t i; | |
| PyObject *result; | |
| assert(globals != NULL); | |
| /* XXX Perhaps we should create a specialized | |
| PyFrame_New() that doesn't take locals, but does | |
| take builtins without sanity checking them. | |
| */ | |
| assert(tstate != NULL); | |
| f = PyFrame_New(tstate, co, globals, NULL); | |
| if (f == NULL) { | |
| return NULL; | |
| } | |
| fastlocals = __Pyx_PyFrame_GetLocalsplus(f); | |
| for (i = 0; i < na; i++) { | |
| Py_INCREF(*args); | |
| fastlocals[i] = *args++; | |
| } | |
| result = PyEval_EvalFrameEx(f,0); | |
| ++tstate->recursion_depth; | |
| Py_DECREF(f); | |
| --tstate->recursion_depth; | |
| return result; | |
| } | |
| static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, int nargs, PyObject *kwargs) { | |
| PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); | |
| PyObject *globals = PyFunction_GET_GLOBALS(func); | |
| PyObject *argdefs = PyFunction_GET_DEFAULTS(func); | |
| PyObject *closure; | |
| PyObject *kwdefs; | |
| PyObject *kwtuple, **k; | |
| PyObject **d; | |
| Py_ssize_t nd; | |
| Py_ssize_t nk; | |
| PyObject *result; | |
| assert(kwargs == NULL || PyDict_Check(kwargs)); | |
| nk = kwargs ? PyDict_Size(kwargs) : 0; | |
| if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { | |
| return NULL; | |
| } | |
| if ( | |
| co->co_kwonlyargcount == 0 && | |
| likely(kwargs == NULL || nk == 0) && | |
| co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { | |
| if (argdefs == NULL && co->co_argcount == nargs) { | |
| result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); | |
| goto done; | |
| } | |
| else if (nargs == 0 && argdefs != NULL | |
| && co->co_argcount == Py_SIZE(argdefs)) { | |
| /* function called with no arguments, but all parameters have | |
| a default value: use default values as arguments .*/ | |
| args = &PyTuple_GET_ITEM(argdefs, 0); | |
| result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); | |
| goto done; | |
| } | |
| } | |
| if (kwargs != NULL) { | |
| Py_ssize_t pos, i; | |
| kwtuple = PyTuple_New(2 * nk); | |
| if (kwtuple == NULL) { | |
| result = NULL; | |
| goto done; | |
| } | |
| k = &PyTuple_GET_ITEM(kwtuple, 0); | |
| pos = i = 0; | |
| while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { | |
| Py_INCREF(k[i]); | |
| Py_INCREF(k[i+1]); | |
| i += 2; | |
| } | |
| nk = i / 2; | |
| } | |
| else { | |
| kwtuple = NULL; | |
| k = NULL; | |
| } | |
| closure = PyFunction_GET_CLOSURE(func); | |
| kwdefs = PyFunction_GET_KW_DEFAULTS(func); | |
| if (argdefs != NULL) { | |
| d = &PyTuple_GET_ITEM(argdefs, 0); | |
| nd = Py_SIZE(argdefs); | |
| } | |
| else { | |
| d = NULL; | |
| nd = 0; | |
| } | |
| result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, | |
| args, nargs, | |
| k, (int)nk, | |
| d, (int)nd, kwdefs, closure); | |
| result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, | |
| args, nargs, | |
| k, (int)nk, | |
| d, (int)nd, closure); | |
| Py_XDECREF(kwtuple); | |
| done: | |
| Py_LeaveRecursiveCall(); | |
| return result; | |
| } | |
| /* PyObjectCallMethO */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { | |
| PyObject *self, *result; | |
| PyCFunction cfunc; | |
| cfunc = PyCFunction_GET_FUNCTION(func); | |
| self = PyCFunction_GET_SELF(func); | |
| if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) | |
| return NULL; | |
| result = cfunc(self, arg); | |
| Py_LeaveRecursiveCall(); | |
| if (unlikely(!result) && unlikely(!PyErr_Occurred())) { | |
| PyErr_SetString( | |
| PyExc_SystemError, | |
| "NULL result without error in PyObject_Call"); | |
| } | |
| return result; | |
| } | |
| /* PyObjectCallOneArg */ | |
| static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { | |
| PyObject *result; | |
| PyObject *args = PyTuple_New(1); | |
| if (unlikely(!args)) return NULL; | |
| Py_INCREF(arg); | |
| PyTuple_SET_ITEM(args, 0, arg); | |
| result = __Pyx_PyObject_Call(func, args, NULL); | |
| Py_DECREF(args); | |
| return result; | |
| } | |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { | |
| if (PyFunction_Check(func)) { | |
| return __Pyx_PyFunction_FastCall(func, &arg, 1); | |
| } | |
| if (likely(PyCFunction_Check(func))) { | |
| if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { | |
| return __Pyx_PyObject_CallMethO(func, arg); | |
| } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { | |
| return __Pyx_PyCFunction_FastCall(func, &arg, 1); | |
| } | |
| } | |
| return __Pyx__PyObject_CallOneArg(func, arg); | |
| } | |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { | |
| PyObject *result; | |
| PyObject *args = PyTuple_Pack(1, arg); | |
| if (unlikely(!args)) return NULL; | |
| result = __Pyx_PyObject_Call(func, args, NULL); | |
| Py_DECREF(args); | |
| return result; | |
| } | |
| /* DictGetItem */ | |
| static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { | |
| PyObject *value; | |
| value = PyDict_GetItemWithError(d, key); | |
| if (unlikely(!value)) { | |
| if (!PyErr_Occurred()) { | |
| if (unlikely(PyTuple_Check(key))) { | |
| PyObject* args = PyTuple_Pack(1, key); | |
| if (likely(args)) { | |
| PyErr_SetObject(PyExc_KeyError, args); | |
| Py_DECREF(args); | |
| } | |
| } else { | |
| PyErr_SetObject(PyExc_KeyError, key); | |
| } | |
| } | |
| return NULL; | |
| } | |
| Py_INCREF(value); | |
| return value; | |
| } | |
| /* RaiseTooManyValuesToUnpack */ | |
| static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { | |
| PyErr_Format(PyExc_ValueError, | |
| "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); | |
| } | |
| /* RaiseNeedMoreValuesToUnpack */ | |
| static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { | |
| PyErr_Format(PyExc_ValueError, | |
| "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", | |
| index, (index == 1) ? "" : "s"); | |
| } | |
| /* RaiseNoneIterError */ | |
| static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { | |
| PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); | |
| } | |
| /* GetTopmostException */ | |
| static _PyErr_StackItem * | |
| __Pyx_PyErr_GetTopmostException(PyThreadState *tstate) | |
| { | |
| _PyErr_StackItem *exc_info = tstate->exc_info; | |
| while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && | |
| exc_info->previous_item != NULL) | |
| { | |
| exc_info = exc_info->previous_item; | |
| } | |
| return exc_info; | |
| } | |
| /* SaveResetException */ | |
| static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { | |
| _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); | |
| *type = exc_info->exc_type; | |
| *value = exc_info->exc_value; | |
| *tb = exc_info->exc_traceback; | |
| *type = tstate->exc_type; | |
| *value = tstate->exc_value; | |
| *tb = tstate->exc_traceback; | |
| Py_XINCREF(*type); | |
| Py_XINCREF(*value); | |
| Py_XINCREF(*tb); | |
| } | |
| static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { | |
| PyObject *tmp_type, *tmp_value, *tmp_tb; | |
| _PyErr_StackItem *exc_info = tstate->exc_info; | |
| tmp_type = exc_info->exc_type; | |
| tmp_value = exc_info->exc_value; | |
| tmp_tb = exc_info->exc_traceback; | |
| exc_info->exc_type = type; | |
| exc_info->exc_value = value; | |
| exc_info->exc_traceback = tb; | |
| tmp_type = tstate->exc_type; | |
| tmp_value = tstate->exc_value; | |
| tmp_tb = tstate->exc_traceback; | |
| tstate->exc_type = type; | |
| tstate->exc_value = value; | |
| tstate->exc_traceback = tb; | |
| Py_XDECREF(tmp_type); | |
| Py_XDECREF(tmp_value); | |
| Py_XDECREF(tmp_tb); | |
| } | |
| /* PyErrExceptionMatches */ | |
| static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { | |
| Py_ssize_t i, n; | |
| n = PyTuple_GET_SIZE(tuple); | |
| for (i=0; i<n; i++) { | |
| if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1; | |
| } | |
| for (i=0; i<n; i++) { | |
| if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1; | |
| } | |
| return 0; | |
| } | |
| static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) { | |
| PyObject *exc_type = tstate->curexc_type; | |
| if (exc_type == err) return 1; | |
| if (unlikely(!exc_type)) return 0; | |
| if (unlikely(PyTuple_Check(err))) | |
| return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); | |
| return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); | |
| } | |
| /* GetException */ | |
| static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) | |
| static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) | |
| { | |
| PyObject *local_type, *local_value, *local_tb; | |
| PyObject *tmp_type, *tmp_value, *tmp_tb; | |
| local_type = tstate->curexc_type; | |
| local_value = tstate->curexc_value; | |
| local_tb = tstate->curexc_traceback; | |
| tstate->curexc_type = 0; | |
| tstate->curexc_value = 0; | |
| tstate->curexc_traceback = 0; | |
| PyErr_Fetch(&local_type, &local_value, &local_tb); | |
| PyErr_NormalizeException(&local_type, &local_value, &local_tb); | |
| if (unlikely(tstate->curexc_type)) | |
| if (unlikely(PyErr_Occurred())) | |
| goto bad; | |
| if (local_tb) { | |
| if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) | |
| goto bad; | |
| } | |
| Py_XINCREF(local_tb); | |
| Py_XINCREF(local_type); | |
| Py_XINCREF(local_value); | |
| *type = local_type; | |
| *value = local_value; | |
| *tb = local_tb; | |
| { | |
| _PyErr_StackItem *exc_info = tstate->exc_info; | |
| tmp_type = exc_info->exc_type; | |
| tmp_value = exc_info->exc_value; | |
| tmp_tb = exc_info->exc_traceback; | |
| exc_info->exc_type = local_type; | |
| exc_info->exc_value = local_value; | |
| exc_info->exc_traceback = local_tb; | |
| } | |
| tmp_type = tstate->exc_type; | |
| tmp_value = tstate->exc_value; | |
| tmp_tb = tstate->exc_traceback; | |
| tstate->exc_type = local_type; | |
| tstate->exc_value = local_value; | |
| tstate->exc_traceback = local_tb; | |
| Py_XDECREF(tmp_type); | |
| Py_XDECREF(tmp_value); | |
| Py_XDECREF(tmp_tb); | |
| PyErr_SetExcInfo(local_type, local_value, local_tb); | |
| return 0; | |
| bad: | |
| *type = 0; | |
| *value = 0; | |
| *tb = 0; | |
| Py_XDECREF(local_type); | |
| Py_XDECREF(local_value); | |
| Py_XDECREF(local_tb); | |
| return -1; | |
| } | |
| /* TypeImport */ | |
| static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name, | |
| size_t size, enum __Pyx_ImportType_CheckSize check_size) | |
| { | |
| PyObject *result = 0; | |
| char warning[200]; | |
| Py_ssize_t basicsize; | |
| PyObject *py_basicsize; | |
| result = PyObject_GetAttrString(module, class_name); | |
| if (!result) | |
| goto bad; | |
| if (!PyType_Check(result)) { | |
| PyErr_Format(PyExc_TypeError, | |
| "%.200s.%.200s is not a type object", | |
| module_name, class_name); | |
| goto bad; | |
| } | |
| basicsize = ((PyTypeObject *)result)->tp_basicsize; | |
| py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); | |
| if (!py_basicsize) | |
| goto bad; | |
| basicsize = PyLong_AsSsize_t(py_basicsize); | |
| Py_DECREF(py_basicsize); | |
| py_basicsize = 0; | |
| if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) | |
| goto bad; | |
| if ((size_t)basicsize < size) { | |
| PyErr_Format(PyExc_ValueError, | |
| "%.200s.%.200s size changed, may indicate binary incompatibility. " | |
| "Expected %zd from C header, got %zd from PyObject", | |
| module_name, class_name, size, basicsize); | |
| goto bad; | |
| } | |
| if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) { | |
| PyErr_Format(PyExc_ValueError, | |
| "%.200s.%.200s size changed, may indicate binary incompatibility. " | |
| "Expected %zd from C header, got %zd from PyObject", | |
| module_name, class_name, size, basicsize); | |
| goto bad; | |
| } | |
| else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) { | |
| PyOS_snprintf(warning, sizeof(warning), | |
| "%s.%s size changed, may indicate binary incompatibility. " | |
| "Expected %zd from C header, got %zd from PyObject", | |
| module_name, class_name, size, basicsize); | |
| if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; | |
| } | |
| return (PyTypeObject *)result; | |
| bad: | |
| Py_XDECREF(result); | |
| return NULL; | |
| } | |
| /* Import */ | |
| static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { | |
| PyObject *empty_list = 0; | |
| PyObject *module = 0; | |
| PyObject *global_dict = 0; | |
| PyObject *empty_dict = 0; | |
| PyObject *list; | |
| PyObject *py_import; | |
| py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); | |
| if (!py_import) | |
| goto bad; | |
| if (from_list) | |
| list = from_list; | |
| else { | |
| empty_list = PyList_New(0); | |
| if (!empty_list) | |
| goto bad; | |
| list = empty_list; | |
| } | |
| global_dict = PyModule_GetDict(__pyx_m); | |
| if (!global_dict) | |
| goto bad; | |
| empty_dict = PyDict_New(); | |
| if (!empty_dict) | |
| goto bad; | |
| { | |
| if (level == -1) { | |
| if (strchr(__Pyx_MODULE_NAME, '.')) { | |
| module = PyImport_ImportModuleLevelObject( | |
| name, global_dict, empty_dict, list, 1); | |
| if (!module) { | |
| if (!PyErr_ExceptionMatches(PyExc_ImportError)) | |
| goto bad; | |
| PyErr_Clear(); | |
| } | |
| } | |
| level = 0; | |
| } | |
| if (!module) { | |
| PyObject *py_level = PyInt_FromLong(level); | |
| if (!py_level) | |
| goto bad; | |
| module = PyObject_CallFunctionObjArgs(py_import, | |
| name, global_dict, empty_dict, list, py_level, (PyObject *)NULL); | |
| Py_DECREF(py_level); | |
| module = PyImport_ImportModuleLevelObject( | |
| name, global_dict, empty_dict, list, level); | |
| } | |
| } | |
| bad: | |
| Py_XDECREF(py_import); | |
| Py_XDECREF(empty_list); | |
| Py_XDECREF(empty_dict); | |
| return module; | |
| } | |
| /* CLineInTraceback */ | |
| static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { | |
| PyObject *use_cline; | |
| PyObject *ptype, *pvalue, *ptraceback; | |
| PyObject **cython_runtime_dict; | |
| if (unlikely(!__pyx_cython_runtime)) { | |
| return c_line; | |
| } | |
| __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); | |
| cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); | |
| if (likely(cython_runtime_dict)) { | |
| __PYX_PY_DICT_LOOKUP_IF_MODIFIED( | |
| use_cline, *cython_runtime_dict, | |
| __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) | |
| } else | |
| { | |
| PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); | |
| if (use_cline_obj) { | |
| use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; | |
| Py_DECREF(use_cline_obj); | |
| } else { | |
| PyErr_Clear(); | |
| use_cline = NULL; | |
| } | |
| } | |
| if (!use_cline) { | |
| c_line = 0; | |
| 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; | |
| } | |
| __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); | |
| return c_line; | |
| } | |
| /* CodeObjectCache */ | |
| static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { | |
| int start = 0, mid = 0, end = count - 1; | |
| if (end >= 0 && code_line > entries[end].code_line) { | |
| return count; | |
| } | |
| while (start < end) { | |
| mid = start + (end - start) / 2; | |
| if (code_line < entries[mid].code_line) { | |
| end = mid; | |
| } else if (code_line > entries[mid].code_line) { | |
| start = mid + 1; | |
| } else { | |
| return mid; | |
| } | |
| } | |
| if (code_line <= entries[mid].code_line) { | |
| return mid; | |
| } else { | |
| return mid + 1; | |
| } | |
| } | |
| static PyCodeObject *__pyx_find_code_object(int code_line) { | |
| PyCodeObject* code_object; | |
| int pos; | |
| if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { | |
| return NULL; | |
| } | |
| pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); | |
| if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { | |
| return NULL; | |
| } | |
| code_object = __pyx_code_cache.entries[pos].code_object; | |
| Py_INCREF(code_object); | |
| return code_object; | |
| } | |
| static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { | |
| int pos, i; | |
| __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; | |
| if (unlikely(!code_line)) { | |
| return; | |
| } | |
| if (unlikely(!entries)) { | |
| entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); | |
| if (likely(entries)) { | |
| __pyx_code_cache.entries = entries; | |
| __pyx_code_cache.max_count = 64; | |
| __pyx_code_cache.count = 1; | |
| entries[0].code_line = code_line; | |
| entries[0].code_object = code_object; | |
| Py_INCREF(code_object); | |
| } | |
| return; | |
| } | |
| pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); | |
| if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { | |
| PyCodeObject* tmp = entries[pos].code_object; | |
| entries[pos].code_object = code_object; | |
| Py_DECREF(tmp); | |
| return; | |
| } | |
| if (__pyx_code_cache.count == __pyx_code_cache.max_count) { | |
| int new_max = __pyx_code_cache.max_count + 64; | |
| entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( | |
| __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); | |
| if (unlikely(!entries)) { | |
| return; | |
| } | |
| __pyx_code_cache.entries = entries; | |
| __pyx_code_cache.max_count = new_max; | |
| } | |
| for (i=__pyx_code_cache.count; i>pos; i--) { | |
| entries[i] = entries[i-1]; | |
| } | |
| entries[pos].code_line = code_line; | |
| entries[pos].code_object = code_object; | |
| __pyx_code_cache.count++; | |
| Py_INCREF(code_object); | |
| } | |
| /* AddTraceback */ | |
| 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; | |
| py_srcfile = PyString_FromString(filename); | |
| py_srcfile = PyUnicode_FromString(filename); | |
| if (!py_srcfile) goto bad; | |
| if (c_line) { | |
| py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); | |
| py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); | |
| } | |
| else { | |
| py_funcname = PyString_FromString(funcname); | |
| py_funcname = PyUnicode_FromString(funcname); | |
| } | |
| if (!py_funcname) goto bad; | |
| py_code = __Pyx_PyCode_New( | |
| 0, | |
| 0, | |
| 0, | |
| 0, | |
| 0, | |
| __pyx_empty_bytes, /*PyObject *code,*/ | |
| __pyx_empty_tuple, /*PyObject *consts,*/ | |
| __pyx_empty_tuple, /*PyObject *names,*/ | |
| __pyx_empty_tuple, /*PyObject *varnames,*/ | |
| __pyx_empty_tuple, /*PyObject *freevars,*/ | |
| __pyx_empty_tuple, /*PyObject *cellvars,*/ | |
| py_srcfile, /*PyObject *filename,*/ | |
| py_funcname, /*PyObject *name,*/ | |
| py_line, | |
| __pyx_empty_bytes /*PyObject *lnotab*/ | |
| ); | |
| Py_DECREF(py_srcfile); | |
| Py_DECREF(py_funcname); | |
| return py_code; | |
| bad: | |
| Py_XDECREF(py_srcfile); | |
| Py_XDECREF(py_funcname); | |
| return NULL; | |
| } | |
| static void __Pyx_AddTraceback(const char *funcname, int c_line, | |
| int py_line, const char *filename) { | |
| PyCodeObject *py_code = 0; | |
| PyFrameObject *py_frame = 0; | |
| PyThreadState *tstate = __Pyx_PyThreadState_Current; | |
| if (c_line) { | |
| c_line = __Pyx_CLineForTraceback(tstate, c_line); | |
| } | |
| py_code = __pyx_find_code_object(c_line ? -c_line : py_line); | |
| if (!py_code) { | |
| py_code = __Pyx_CreateCodeObjectForTraceback( | |
| funcname, c_line, py_line, filename); | |
| if (!py_code) goto bad; | |
| __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); | |
| } | |
| py_frame = PyFrame_New( | |
| tstate, /*PyThreadState *tstate,*/ | |
| py_code, /*PyCodeObject *code,*/ | |
| __pyx_d, /*PyObject *globals,*/ | |
| 0 /*PyObject *locals*/ | |
| ); | |
| if (!py_frame) goto bad; | |
| __Pyx_PyFrame_SetLineNumber(py_frame, py_line); | |
| PyTraceBack_Here(py_frame); | |
| bad: | |
| Py_XDECREF(py_code); | |
| Py_XDECREF(py_frame); | |
| } | |
| static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { | |
| if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); | |
| if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); | |
| PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); | |
| return -1; | |
| } | |
| static void __Pyx_ReleaseBuffer(Py_buffer *view) { | |
| PyObject *obj = view->obj; | |
| if (!obj) return; | |
| if (PyObject_CheckBuffer(obj)) { | |
| PyBuffer_Release(view); | |
| return; | |
| } | |
| if ((0)) {} | |
| else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); | |
| view->obj = NULL; | |
| Py_DECREF(obj); | |
| } | |
| /* 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); | |
| } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { | |
| return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); | |
| } | |
| } else { | |
| if (sizeof(unsigned int) <= sizeof(long)) { | |
| return PyInt_FromLong((long) value); | |
| } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { | |
| return PyLong_FromLongLong((PY_LONG_LONG) value); | |
| } | |
| } | |
| { | |
| 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); | |
| } | |
| } | |
| /* CIntFromPyVerify */ | |
| /* Declarations */ | |
| static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { | |
| return ::std::complex< float >(x, y); | |
| } | |
| static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { | |
| return x + y*(__pyx_t_float_complex)_Complex_I; | |
| } | |
| static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { | |
| __pyx_t_float_complex z; | |
| z.real = x; | |
| z.imag = y; | |
| return z; | |
| } | |
| /* Arithmetic */ | |
| static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { | |
| return (a.real == b.real) && (a.imag == b.imag); | |
| } | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { | |
| __pyx_t_float_complex z; | |
| z.real = a.real + b.real; | |
| z.imag = a.imag + b.imag; | |
| return z; | |
| } | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { | |
| __pyx_t_float_complex z; | |
| z.real = a.real - b.real; | |
| z.imag = a.imag - b.imag; | |
| return z; | |
| } | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { | |
| __pyx_t_float_complex z; | |
| z.real = a.real * b.real - a.imag * b.imag; | |
| z.imag = a.real * b.imag + a.imag * b.real; | |
| return z; | |
| } | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { | |
| if (b.imag == 0) { | |
| return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); | |
| } else if (fabsf(b.real) >= fabsf(b.imag)) { | |
| if (b.real == 0 && b.imag == 0) { | |
| return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag); | |
| } else { | |
| float r = b.imag / b.real; | |
| float s = (float)(1.0) / (b.real + b.imag * r); | |
| return __pyx_t_float_complex_from_parts( | |
| (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); | |
| } | |
| } else { | |
| float r = b.real / b.imag; | |
| float s = (float)(1.0) / (b.imag + b.real * r); | |
| return __pyx_t_float_complex_from_parts( | |
| (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); | |
| } | |
| } | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { | |
| if (b.imag == 0) { | |
| return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); | |
| } else { | |
| float denom = b.real * b.real + b.imag * b.imag; | |
| return __pyx_t_float_complex_from_parts( | |
| (a.real * b.real + a.imag * b.imag) / denom, | |
| (a.imag * b.real - a.real * b.imag) / denom); | |
| } | |
| } | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) { | |
| __pyx_t_float_complex z; | |
| z.real = -a.real; | |
| z.imag = -a.imag; | |
| return z; | |
| } | |
| static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) { | |
| return (a.real == 0) && (a.imag == 0); | |
| } | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) { | |
| __pyx_t_float_complex z; | |
| z.real = a.real; | |
| z.imag = -a.imag; | |
| return z; | |
| } | |
| static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) { | |
| return sqrtf(z.real*z.real + z.imag*z.imag); | |
| return hypotf(z.real, z.imag); | |
| } | |
| static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { | |
| __pyx_t_float_complex z; | |
| float r, lnr, theta, z_r, z_theta; | |
| if (b.imag == 0 && b.real == (int)b.real) { | |
| if (b.real < 0) { | |
| float denom = a.real * a.real + a.imag * a.imag; | |
| a.real = a.real / denom; | |
| a.imag = -a.imag / denom; | |
| b.real = -b.real; | |
| } | |
| switch ((int)b.real) { | |
| case 0: | |
| z.real = 1; | |
| z.imag = 0; | |
| return z; | |
| case 1: | |
| return a; | |
| case 2: | |
| z = __Pyx_c_prod_float(a, a); | |
| return __Pyx_c_prod_float(a, a); | |
| case 3: | |
| z = __Pyx_c_prod_float(a, a); | |
| return __Pyx_c_prod_float(z, a); | |
| case 4: | |
| z = __Pyx_c_prod_float(a, a); | |
| return __Pyx_c_prod_float(z, z); | |
| } | |
| } | |
| if (a.imag == 0) { | |
| if (a.real == 0) { | |
| return a; | |
| } else if (b.imag == 0) { | |
| z.real = powf(a.real, b.real); | |
| z.imag = 0; | |
| return z; | |
| } else if (a.real > 0) { | |
| r = a.real; | |
| theta = 0; | |
| } else { | |
| r = -a.real; | |
| theta = atan2f(0.0, -1.0); | |
| } | |
| } else { | |
| r = __Pyx_c_abs_float(a); | |
| theta = atan2f(a.imag, a.real); | |
| } | |
| lnr = logf(r); | |
| z_r = expf(lnr * b.real - theta * b.imag); | |
| z_theta = theta * b.real + lnr * b.imag; | |
| z.real = z_r * cosf(z_theta); | |
| z.imag = z_r * sinf(z_theta); | |
| return z; | |
| } | |
| /* Declarations */ | |
| static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { | |
| return ::std::complex< double >(x, y); | |
| } | |
| static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { | |
| return x + y*(__pyx_t_double_complex)_Complex_I; | |
| } | |
| static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { | |
| __pyx_t_double_complex z; | |
| z.real = x; | |
| z.imag = y; | |
| return z; | |
| } | |
| /* Arithmetic */ | |
| static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { | |
| return (a.real == b.real) && (a.imag == b.imag); | |
| } | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { | |
| __pyx_t_double_complex z; | |
| z.real = a.real + b.real; | |
| z.imag = a.imag + b.imag; | |
| return z; | |
| } | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { | |
| __pyx_t_double_complex z; | |
| z.real = a.real - b.real; | |
| z.imag = a.imag - b.imag; | |
| return z; | |
| } | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { | |
| __pyx_t_double_complex z; | |
| z.real = a.real * b.real - a.imag * b.imag; | |
| z.imag = a.real * b.imag + a.imag * b.real; | |
| return z; | |
| } | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { | |
| if (b.imag == 0) { | |
| return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); | |
| } else if (fabs(b.real) >= fabs(b.imag)) { | |
| if (b.real == 0 && b.imag == 0) { | |
| return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag); | |
| } else { | |
| double r = b.imag / b.real; | |
| double s = (double)(1.0) / (b.real + b.imag * r); | |
| return __pyx_t_double_complex_from_parts( | |
| (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); | |
| } | |
| } else { | |
| double r = b.real / b.imag; | |
| double s = (double)(1.0) / (b.imag + b.real * r); | |
| return __pyx_t_double_complex_from_parts( | |
| (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); | |
| } | |
| } | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { | |
| if (b.imag == 0) { | |
| return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); | |
| } else { | |
| double denom = b.real * b.real + b.imag * b.imag; | |
| return __pyx_t_double_complex_from_parts( | |
| (a.real * b.real + a.imag * b.imag) / denom, | |
| (a.imag * b.real - a.real * b.imag) / denom); | |
| } | |
| } | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) { | |
| __pyx_t_double_complex z; | |
| z.real = -a.real; | |
| z.imag = -a.imag; | |
| return z; | |
| } | |
| static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) { | |
| return (a.real == 0) && (a.imag == 0); | |
| } | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) { | |
| __pyx_t_double_complex z; | |
| z.real = a.real; | |
| z.imag = -a.imag; | |
| return z; | |
| } | |
| static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) { | |
| return sqrt(z.real*z.real + z.imag*z.imag); | |
| return hypot(z.real, z.imag); | |
| } | |
| static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { | |
| __pyx_t_double_complex z; | |
| double r, lnr, theta, z_r, z_theta; | |
| if (b.imag == 0 && b.real == (int)b.real) { | |
| if (b.real < 0) { | |
| double denom = a.real * a.real + a.imag * a.imag; | |
| a.real = a.real / denom; | |
| a.imag = -a.imag / denom; | |
| b.real = -b.real; | |
| } | |
| switch ((int)b.real) { | |
| case 0: | |
| z.real = 1; | |
| z.imag = 0; | |
| return z; | |
| case 1: | |
| return a; | |
| case 2: | |
| z = __Pyx_c_prod_double(a, a); | |
| return __Pyx_c_prod_double(a, a); | |
| case 3: | |
| z = __Pyx_c_prod_double(a, a); | |
| return __Pyx_c_prod_double(z, a); | |
| case 4: | |
| z = __Pyx_c_prod_double(a, a); | |
| return __Pyx_c_prod_double(z, z); | |
| } | |
| } | |
| if (a.imag == 0) { | |
| if (a.real == 0) { | |
| return a; | |
| } else if (b.imag == 0) { | |
| z.real = pow(a.real, b.real); | |
| z.imag = 0; | |
| return z; | |
| } else if (a.real > 0) { | |
| r = a.real; | |
| theta = 0; | |
| } else { | |
| r = -a.real; | |
| theta = atan2(0.0, -1.0); | |
| } | |
| } else { | |
| r = __Pyx_c_abs_double(a); | |
| theta = atan2(a.imag, a.real); | |
| } | |
| lnr = log(r); | |
| z_r = exp(lnr * b.real - theta * b.imag); | |
| z_theta = theta * b.real + lnr * b.imag; | |
| z.real = z_r * cos(z_theta); | |
| z.imag = z_r * sin(z_theta); | |
| return z; | |
| } | |
| /* CIntToPy */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { | |
| const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; | |
| const int is_unsigned = neg_one > const_zero; | |
| if (is_unsigned) { | |
| if (sizeof(int) < sizeof(long)) { | |
| return PyInt_FromLong((long) value); | |
| } else if (sizeof(int) <= sizeof(unsigned long)) { | |
| return PyLong_FromUnsignedLong((unsigned long) value); | |
| } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { | |
| return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); | |
| } | |
| } else { | |
| if (sizeof(int) <= sizeof(long)) { | |
| return PyInt_FromLong((long) value); | |
| } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { | |
| return PyLong_FromLongLong((PY_LONG_LONG) value); | |
| } | |
| } | |
| { | |
| int one = 1; int little = (int)*(unsigned char *)&one; | |
| unsigned char *bytes = (unsigned char *)&value; | |
| return _PyLong_FromByteArray(bytes, sizeof(int), | |
| little, !is_unsigned); | |
| } | |
| } | |
| /* CIntToPy */ | |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { | |
| const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; | |
| const int is_unsigned = neg_one > const_zero; | |
| if (is_unsigned) { | |
| if (sizeof(enum NPY_TYPES) < sizeof(long)) { | |
| return PyInt_FromLong((long) value); | |
| } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { | |
| return PyLong_FromUnsignedLong((unsigned long) value); | |
| } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { | |
| return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); | |
| } | |
| } else { | |
| if (sizeof(enum NPY_TYPES) <= sizeof(long)) { | |
| return PyInt_FromLong((long) value); | |
| } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { | |
| return PyLong_FromLongLong((PY_LONG_LONG) value); | |
| } | |
| } | |
| { | |
| int one = 1; int little = (int)*(unsigned char *)&one; | |
| unsigned char *bytes = (unsigned char *)&value; | |
| return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), | |
| little, !is_unsigned); | |
| } | |
| } | |
| /* CIntFromPy */ | |
| static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) { | |
| 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 (likely(PyInt_Check(x))) { | |
| if (sizeof(unsigned int) < sizeof(long)) { | |
| __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x)) | |
| } else { | |
| long val = PyInt_AS_LONG(x); | |
| if (is_unsigned && unlikely(val < 0)) { | |
| goto raise_neg_overflow; | |
| } | |
| return (unsigned int) val; | |
| } | |
| } else | |
| if (likely(PyLong_Check(x))) { | |
| if (is_unsigned) { | |
| const digit* digits = ((PyLongObject*)x)->ob_digit; | |
| switch (Py_SIZE(x)) { | |
| case 0: return (unsigned int) 0; | |
| case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, digits[0]) | |
| case 2: | |
| if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT) { | |
| return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); | |
| } | |
| } | |
| break; | |
| case 3: | |
| if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT) { | |
| return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); | |
| } | |
| } | |
| break; | |
| case 4: | |
| if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT) { | |
| return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); | |
| } | |
| } | |
| break; | |
| } | |
| if (unlikely(Py_SIZE(x) < 0)) { | |
| goto raise_neg_overflow; | |
| } | |
| { | |
| int result = PyObject_RichCompareBool(x, Py_False, Py_LT); | |
| if (unlikely(result < 0)) | |
| return (unsigned int) -1; | |
| if (unlikely(result == 1)) | |
| goto raise_neg_overflow; | |
| } | |
| if (sizeof(unsigned int) <= sizeof(unsigned long)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x)) | |
| } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) | |
| } | |
| } else { | |
| const digit* digits = ((PyLongObject*)x)->ob_digit; | |
| switch (Py_SIZE(x)) { | |
| case 0: return (unsigned int) 0; | |
| case -1: __PYX_VERIFY_RETURN_INT(unsigned int, sdigit, (sdigit) (-(sdigit)digits[0])) | |
| case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, +digits[0]) | |
| case -2: | |
| if (8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { | |
| return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); | |
| } | |
| } | |
| break; | |
| case 2: | |
| if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { | |
| return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); | |
| } | |
| } | |
| break; | |
| case -3: | |
| if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { | |
| return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); | |
| } | |
| } | |
| break; | |
| case 3: | |
| if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { | |
| return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); | |
| } | |
| } | |
| break; | |
| case -4: | |
| if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { | |
| return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); | |
| } | |
| } | |
| break; | |
| case 4: | |
| if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { | |
| return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); | |
| } | |
| } | |
| break; | |
| } | |
| if (sizeof(unsigned int) <= sizeof(long)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x)) | |
| } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x)) | |
| } | |
| } | |
| { | |
| PyErr_SetString(PyExc_RuntimeError, | |
| "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); | |
| unsigned int val; | |
| PyObject *v = __Pyx_PyNumber_IntOrLong(x); | |
| if (likely(v) && !PyLong_Check(v)) { | |
| PyObject *tmp = v; | |
| v = PyNumber_Long(tmp); | |
| Py_DECREF(tmp); | |
| } | |
| if (likely(v)) { | |
| int one = 1; int is_little = (int)*(unsigned char *)&one; | |
| unsigned char *bytes = (unsigned char *)&val; | |
| int ret = _PyLong_AsByteArray((PyLongObject *)v, | |
| bytes, sizeof(val), | |
| is_little, !is_unsigned); | |
| Py_DECREF(v); | |
| if (likely(!ret)) | |
| return val; | |
| } | |
| return (unsigned int) -1; | |
| } | |
| } else { | |
| unsigned int val; | |
| PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); | |
| if (!tmp) return (unsigned int) -1; | |
| val = __Pyx_PyInt_As_unsigned_int(tmp); | |
| Py_DECREF(tmp); | |
| return val; | |
| } | |
| raise_overflow: | |
| PyErr_SetString(PyExc_OverflowError, | |
| "value too large to convert to unsigned int"); | |
| return (unsigned int) -1; | |
| raise_neg_overflow: | |
| PyErr_SetString(PyExc_OverflowError, | |
| "can't convert negative value to unsigned int"); | |
| return (unsigned int) -1; | |
| } | |
| /* CIntFromPy */ | |
| static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { | |
| const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; | |
| const int is_unsigned = neg_one > const_zero; | |
| if (likely(PyInt_Check(x))) { | |
| if (sizeof(int) < sizeof(long)) { | |
| __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) | |
| } else { | |
| long val = PyInt_AS_LONG(x); | |
| if (is_unsigned && unlikely(val < 0)) { | |
| goto raise_neg_overflow; | |
| } | |
| return (int) val; | |
| } | |
| } else | |
| if (likely(PyLong_Check(x))) { | |
| if (is_unsigned) { | |
| const digit* digits = ((PyLongObject*)x)->ob_digit; | |
| switch (Py_SIZE(x)) { | |
| case 0: return (int) 0; | |
| case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) | |
| case 2: | |
| if (8 * sizeof(int) > 1 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { | |
| return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); | |
| } | |
| } | |
| break; | |
| case 3: | |
| if (8 * sizeof(int) > 2 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { | |
| return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); | |
| } | |
| } | |
| break; | |
| case 4: | |
| if (8 * sizeof(int) > 3 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { | |
| return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); | |
| } | |
| } | |
| break; | |
| } | |
| if (unlikely(Py_SIZE(x) < 0)) { | |
| goto raise_neg_overflow; | |
| } | |
| { | |
| int result = PyObject_RichCompareBool(x, Py_False, Py_LT); | |
| if (unlikely(result < 0)) | |
| return (int) -1; | |
| if (unlikely(result == 1)) | |
| goto raise_neg_overflow; | |
| } | |
| if (sizeof(int) <= sizeof(unsigned long)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) | |
| } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) | |
| } | |
| } else { | |
| const digit* digits = ((PyLongObject*)x)->ob_digit; | |
| switch (Py_SIZE(x)) { | |
| case 0: return (int) 0; | |
| case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) | |
| case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) | |
| case -2: | |
| if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { | |
| return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); | |
| } | |
| } | |
| break; | |
| case 2: | |
| if (8 * sizeof(int) > 1 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { | |
| return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); | |
| } | |
| } | |
| break; | |
| case -3: | |
| if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { | |
| return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); | |
| } | |
| } | |
| break; | |
| case 3: | |
| if (8 * sizeof(int) > 2 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { | |
| return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); | |
| } | |
| } | |
| break; | |
| case -4: | |
| if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { | |
| return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); | |
| } | |
| } | |
| break; | |
| case 4: | |
| if (8 * sizeof(int) > 3 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { | |
| return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); | |
| } | |
| } | |
| break; | |
| } | |
| if (sizeof(int) <= sizeof(long)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) | |
| } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) | |
| } | |
| } | |
| { | |
| PyErr_SetString(PyExc_RuntimeError, | |
| "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); | |
| int val; | |
| PyObject *v = __Pyx_PyNumber_IntOrLong(x); | |
| if (likely(v) && !PyLong_Check(v)) { | |
| PyObject *tmp = v; | |
| v = PyNumber_Long(tmp); | |
| Py_DECREF(tmp); | |
| } | |
| if (likely(v)) { | |
| int one = 1; int is_little = (int)*(unsigned char *)&one; | |
| unsigned char *bytes = (unsigned char *)&val; | |
| int ret = _PyLong_AsByteArray((PyLongObject *)v, | |
| bytes, sizeof(val), | |
| is_little, !is_unsigned); | |
| Py_DECREF(v); | |
| if (likely(!ret)) | |
| return val; | |
| } | |
| return (int) -1; | |
| } | |
| } else { | |
| int val; | |
| PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); | |
| if (!tmp) return (int) -1; | |
| val = __Pyx_PyInt_As_int(tmp); | |
| Py_DECREF(tmp); | |
| return val; | |
| } | |
| raise_overflow: | |
| PyErr_SetString(PyExc_OverflowError, | |
| "value too large to convert to int"); | |
| return (int) -1; | |
| raise_neg_overflow: | |
| PyErr_SetString(PyExc_OverflowError, | |
| "can't convert negative value to int"); | |
| return (int) -1; | |
| } | |
| /* 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); | |
| } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { | |
| return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); | |
| } | |
| } else { | |
| if (sizeof(long) <= sizeof(long)) { | |
| return PyInt_FromLong((long) value); | |
| } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { | |
| return PyLong_FromLongLong((PY_LONG_LONG) value); | |
| } | |
| } | |
| { | |
| int one = 1; int little = (int)*(unsigned char *)&one; | |
| unsigned char *bytes = (unsigned char *)&value; | |
| return _PyLong_FromByteArray(bytes, sizeof(long), | |
| little, !is_unsigned); | |
| } | |
| } | |
| /* CIntFromPy */ | |
| static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { | |
| const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; | |
| const int is_unsigned = neg_one > const_zero; | |
| if (likely(PyInt_Check(x))) { | |
| if (sizeof(long) < sizeof(long)) { | |
| __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) | |
| } else { | |
| long val = PyInt_AS_LONG(x); | |
| if (is_unsigned && unlikely(val < 0)) { | |
| goto raise_neg_overflow; | |
| } | |
| return (long) val; | |
| } | |
| } else | |
| if (likely(PyLong_Check(x))) { | |
| if (is_unsigned) { | |
| const digit* digits = ((PyLongObject*)x)->ob_digit; | |
| switch (Py_SIZE(x)) { | |
| case 0: return (long) 0; | |
| case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) | |
| case 2: | |
| if (8 * sizeof(long) > 1 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { | |
| return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); | |
| } | |
| } | |
| break; | |
| case 3: | |
| if (8 * sizeof(long) > 2 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { | |
| return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); | |
| } | |
| } | |
| break; | |
| case 4: | |
| if (8 * sizeof(long) > 3 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { | |
| return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); | |
| } | |
| } | |
| break; | |
| } | |
| if (unlikely(Py_SIZE(x) < 0)) { | |
| goto raise_neg_overflow; | |
| } | |
| { | |
| int result = PyObject_RichCompareBool(x, Py_False, Py_LT); | |
| if (unlikely(result < 0)) | |
| return (long) -1; | |
| if (unlikely(result == 1)) | |
| goto raise_neg_overflow; | |
| } | |
| if (sizeof(long) <= sizeof(unsigned long)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) | |
| } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) | |
| } | |
| } else { | |
| const digit* digits = ((PyLongObject*)x)->ob_digit; | |
| switch (Py_SIZE(x)) { | |
| case 0: return (long) 0; | |
| case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) | |
| case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) | |
| case -2: | |
| if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { | |
| return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); | |
| } | |
| } | |
| break; | |
| case 2: | |
| if (8 * sizeof(long) > 1 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { | |
| return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); | |
| } | |
| } | |
| break; | |
| case -3: | |
| if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { | |
| return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); | |
| } | |
| } | |
| break; | |
| case 3: | |
| if (8 * sizeof(long) > 2 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { | |
| return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); | |
| } | |
| } | |
| break; | |
| case -4: | |
| if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { | |
| return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); | |
| } | |
| } | |
| break; | |
| case 4: | |
| if (8 * sizeof(long) > 3 * PyLong_SHIFT) { | |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { | |
| __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) | |
| } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { | |
| return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); | |
| } | |
| } | |
| break; | |
| } | |
| if (sizeof(long) <= sizeof(long)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) | |
| } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { | |
| __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) | |
| } | |
| } | |
| { | |
| PyErr_SetString(PyExc_RuntimeError, | |
| "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); | |
| long val; | |
| PyObject *v = __Pyx_PyNumber_IntOrLong(x); | |
| if (likely(v) && !PyLong_Check(v)) { | |
| PyObject *tmp = v; | |
| v = PyNumber_Long(tmp); | |
| Py_DECREF(tmp); | |
| } | |
| if (likely(v)) { | |
| int one = 1; int is_little = (int)*(unsigned char *)&one; | |
| unsigned char *bytes = (unsigned char *)&val; | |
| int ret = _PyLong_AsByteArray((PyLongObject *)v, | |
| bytes, sizeof(val), | |
| is_little, !is_unsigned); | |
| Py_DECREF(v); | |
| if (likely(!ret)) | |
| return val; | |
| } | |
| return (long) -1; | |
| } | |
| } else { | |
| long val; | |
| PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); | |
| if (!tmp) return (long) -1; | |
| val = __Pyx_PyInt_As_long(tmp); | |
| Py_DECREF(tmp); | |
| return val; | |
| } | |
| raise_overflow: | |
| PyErr_SetString(PyExc_OverflowError, | |
| "value too large to convert to long"); | |
| return (long) -1; | |
| raise_neg_overflow: | |
| PyErr_SetString(PyExc_OverflowError, | |
| "can't convert negative value to long"); | |
| return (long) -1; | |
| } | |
| /* FastTypeChecks */ | |
| static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { | |
| while (a) { | |
| a = a->tp_base; | |
| if (a == b) | |
| return 1; | |
| } | |
| return b == &PyBaseObject_Type; | |
| } | |
| static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { | |
| PyObject *mro; | |
| if (a == b) return 1; | |
| mro = a->tp_mro; | |
| if (likely(mro)) { | |
| Py_ssize_t i, n; | |
| n = PyTuple_GET_SIZE(mro); | |
| for (i = 0; i < n; i++) { | |
| if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) | |
| return 1; | |
| } | |
| return 0; | |
| } | |
| return __Pyx_InBases(a, b); | |
| } | |
| static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { | |
| PyObject *exception, *value, *tb; | |
| int res; | |
| __Pyx_PyThreadState_declare | |
| __Pyx_PyThreadState_assign | |
| __Pyx_ErrFetch(&exception, &value, &tb); | |
| res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; | |
| if (unlikely(res == -1)) { | |
| PyErr_WriteUnraisable(err); | |
| res = 0; | |
| } | |
| if (!res) { | |
| res = PyObject_IsSubclass(err, exc_type2); | |
| if (unlikely(res == -1)) { | |
| PyErr_WriteUnraisable(err); | |
| res = 0; | |
| } | |
| } | |
| __Pyx_ErrRestore(exception, value, tb); | |
| return res; | |
| } | |
| static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { | |
| int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; | |
| if (!res) { | |
| res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); | |
| } | |
| return res; | |
| } | |
| static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { | |
| Py_ssize_t i, n; | |
| assert(PyExceptionClass_Check(exc_type)); | |
| n = PyTuple_GET_SIZE(tuple); | |
| for (i=0; i<n; i++) { | |
| if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1; | |
| } | |
| for (i=0; i<n; i++) { | |
| PyObject *t = PyTuple_GET_ITEM(tuple, i); | |
| if (likely(exc_type == t)) return 1; | |
| if (likely(PyExceptionClass_Check(t))) { | |
| if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1; | |
| } else { | |
| } | |
| } | |
| return 0; | |
| } | |
| static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) { | |
| if (likely(err == exc_type)) return 1; | |
| if (likely(PyExceptionClass_Check(err))) { | |
| if (likely(PyExceptionClass_Check(exc_type))) { | |
| return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type); | |
| } else if (likely(PyTuple_Check(exc_type))) { | |
| return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type); | |
| } else { | |
| } | |
| } | |
| return PyErr_GivenExceptionMatches(err, exc_type); | |
| } | |
| static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) { | |
| assert(PyExceptionClass_Check(exc_type1)); | |
| assert(PyExceptionClass_Check(exc_type2)); | |
| if (likely(err == exc_type1 || err == exc_type2)) return 1; | |
| if (likely(PyExceptionClass_Check(err))) { | |
| return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2); | |
| } | |
| return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2)); | |
| } | |
| /* CheckBinaryVersion */ | |
| static int __Pyx_check_binary_version(void) { | |
| char ctversion[4], rtversion[4]; | |
| PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); | |
| PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); | |
| if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { | |
| char message[200]; | |
| PyOS_snprintf(message, sizeof(message), | |
| "compiletime version %s of module '%.100s' " | |
| "does not match runtime version %s", | |
| ctversion, __Pyx_MODULE_NAME, rtversion); | |
| return PyErr_WarnEx(NULL, message, 1); | |
| } | |
| return 0; | |
| } | |
| /* InitStrings */ | |
| static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { | |
| while (t->p) { | |
| if (t->is_unicode) { | |
| *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); | |
| } else if (t->intern) { | |
| *t->p = PyString_InternFromString(t->s); | |
| } else { | |
| *t->p = PyString_FromStringAndSize(t->s, t->n - 1); | |
| } | |
| if (t->is_unicode | t->is_str) { | |
| if (t->intern) { | |
| *t->p = PyUnicode_InternFromString(t->s); | |
| } else if (t->encoding) { | |
| *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); | |
| } else { | |
| *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); | |
| } | |
| } else { | |
| *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); | |
| } | |
| if (!*t->p) | |
| return -1; | |
| if (PyObject_Hash(*t->p) == -1) | |
| return -1; | |
| ++t; | |
| } | |
| return 0; | |
| } | |
| static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { | |
| return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); | |
| } | |
| static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { | |
| Py_ssize_t ignore; | |
| return __Pyx_PyObject_AsStringAndSize(o, &ignore); | |
| } | |
| static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { | |
| char* defenc_c; | |
| PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); | |
| if (!defenc) return NULL; | |
| defenc_c = PyBytes_AS_STRING(defenc); | |
| { | |
| char* end = defenc_c + PyBytes_GET_SIZE(defenc); | |
| char* c; | |
| for (c = defenc_c; c < end; c++) { | |
| if ((unsigned char) (*c) >= 128) { | |
| PyUnicode_AsASCIIString(o); | |
| return NULL; | |
| } | |
| } | |
| } | |
| *length = PyBytes_GET_SIZE(defenc); | |
| return defenc_c; | |
| } | |
| static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { | |
| if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; | |
| if (likely(PyUnicode_IS_ASCII(o))) { | |
| *length = PyUnicode_GET_LENGTH(o); | |
| return PyUnicode_AsUTF8(o); | |
| } else { | |
| PyUnicode_AsASCIIString(o); | |
| return NULL; | |
| } | |
| return PyUnicode_AsUTF8AndSize(o, length); | |
| } | |
| static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { | |
| if ( | |
| __Pyx_sys_getdefaultencoding_not_ascii && | |
| PyUnicode_Check(o)) { | |
| return __Pyx_PyUnicode_AsStringAndSize(o, length); | |
| } else | |
| if (PyByteArray_Check(o)) { | |
| *length = PyByteArray_GET_SIZE(o); | |
| return PyByteArray_AS_STRING(o); | |
| } else | |
| { | |
| char* result; | |
| int r = PyBytes_AsStringAndSize(o, &result, length); | |
| if (unlikely(r < 0)) { | |
| return NULL; | |
| } else { | |
| return result; | |
| } | |
| } | |
| } | |
| static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { | |
| int is_true = x == Py_True; | |
| if (is_true | (x == Py_False) | (x == Py_None)) return is_true; | |
| else return PyObject_IsTrue(x); | |
| } | |
| static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { | |
| int retval; | |
| if (unlikely(!x)) return -1; | |
| retval = __Pyx_PyObject_IsTrue(x); | |
| Py_DECREF(x); | |
| return retval; | |
| } | |
| static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { | |
| if (PyLong_Check(result)) { | |
| if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, | |
| "__int__ returned non-int (type %.200s). " | |
| "The ability to return an instance of a strict subclass of int " | |
| "is deprecated, and may be removed in a future version of Python.", | |
| Py_TYPE(result)->tp_name)) { | |
| Py_DECREF(result); | |
| return NULL; | |
| } | |
| return result; | |
| } | |
| PyErr_Format(PyExc_TypeError, | |
| "__%.4s__ returned non-%.4s (type %.200s)", | |
| type_name, type_name, Py_TYPE(result)->tp_name); | |
| Py_DECREF(result); | |
| return NULL; | |
| } | |
| static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { | |
| PyNumberMethods *m; | |
| const char *name = NULL; | |
| PyObject *res = NULL; | |
| if (likely(PyInt_Check(x) || PyLong_Check(x))) | |
| if (likely(PyLong_Check(x))) | |
| return __Pyx_NewRef(x); | |
| m = Py_TYPE(x)->tp_as_number; | |
| if (m && m->nb_int) { | |
| name = "int"; | |
| res = m->nb_int(x); | |
| } | |
| else if (m && m->nb_long) { | |
| name = "long"; | |
| res = m->nb_long(x); | |
| } | |
| if (likely(m && m->nb_int)) { | |
| name = "int"; | |
| res = m->nb_int(x); | |
| } | |
| if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { | |
| res = PyNumber_Int(x); | |
| } | |
| if (likely(res)) { | |
| if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { | |
| if (unlikely(!PyLong_CheckExact(res))) { | |
| return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); | |
| } | |
| } | |
| else if (!PyErr_Occurred()) { | |
| PyErr_SetString(PyExc_TypeError, | |
| "an integer is required"); | |
| } | |
| return res; | |
| } | |
| static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { | |
| Py_ssize_t ival; | |
| PyObject *x; | |
| if (likely(PyInt_CheckExact(b))) { | |
| if (sizeof(Py_ssize_t) >= sizeof(long)) | |
| return PyInt_AS_LONG(b); | |
| else | |
| return PyInt_AsSsize_t(b); | |
| } | |
| if (likely(PyLong_CheckExact(b))) { | |
| const digit* digits = ((PyLongObject*)b)->ob_digit; | |
| const Py_ssize_t size = Py_SIZE(b); | |
| if (likely(__Pyx_sst_abs(size) <= 1)) { | |
| ival = likely(size) ? digits[0] : 0; | |
| if (size == -1) ival = -ival; | |
| return ival; | |
| } else { | |
| switch (size) { | |
| case 2: | |
| if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { | |
| return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); | |
| } | |
| break; | |
| case -2: | |
| if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { | |
| return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); | |
| } | |
| break; | |
| case 3: | |
| if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { | |
| return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); | |
| } | |
| break; | |
| case -3: | |
| if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { | |
| return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); | |
| } | |
| break; | |
| case 4: | |
| if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { | |
| return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); | |
| } | |
| break; | |
| case -4: | |
| if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { | |
| return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); | |
| } | |
| break; | |
| } | |
| } | |
| return PyLong_AsSsize_t(b); | |
| } | |
| x = PyNumber_Index(b); | |
| if (!x) return -1; | |
| ival = PyInt_AsSsize_t(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); | |
| } | |
| static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { | |
| return PyInt_FromSize_t(ival); | |
| } | |