From 19b02d93c778dd17b23ef17ad93c08518165ebaf Mon Sep 17 00:00:00 2001 From: ltcptgeneral <35508619+ltcptgeneral@users.noreply.github.com> Date: Mon, 8 Apr 2019 09:26:32 -0500 Subject: [PATCH] quick fixes --- data analysis/analysis.cp37-win_amd64.pyd | Bin 366592 -> 0 bytes data analysis/analysis/analysis.c | 35536 ---------------- .../analysis/analysis.cp37-win_amd64.pyd | Bin 366592 -> 0 bytes .../Release/analysis.cp37-win_amd64.exp | Bin 795 -> 0 bytes .../Release/analysis.cp37-win_amd64.lib | Bin 2016 -> 0 bytes .../temp.win-amd64-3.7/Release/analysis.obj | Bin 2145866 -> 0 bytes data analysis/analysis/compile.sh | 1 + 7 files changed, 1 insertion(+), 35536 deletions(-) delete mode 100644 data analysis/analysis.cp37-win_amd64.pyd delete mode 100644 data analysis/analysis/analysis.c delete mode 100644 data analysis/analysis/analysis.cp37-win_amd64.pyd delete mode 100644 data analysis/analysis/build/temp.win-amd64-3.7/Release/analysis.cp37-win_amd64.exp delete mode 100644 data analysis/analysis/build/temp.win-amd64-3.7/Release/analysis.cp37-win_amd64.lib delete mode 100644 data analysis/analysis/build/temp.win-amd64-3.7/Release/analysis.obj create mode 100644 data analysis/analysis/compile.sh diff --git a/data analysis/analysis.cp37-win_amd64.pyd b/data analysis/analysis.cp37-win_amd64.pyd deleted file mode 100644 index 97e10770d83db2c4e7c7497cb80012c88242f27f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366592 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%0Afh z3%?_q?05(AsYLI87uYQO1|5X?f%zj_{UA8?7{i!4954VfYC8i3 zlKRaIxC8MfyK1^%VUAHgs1y|j8s0ivZu_-Mwbfn8aD$8C2w*5C2L4uyU|0v9aNeWBa1GhDF+8p? zGzf+fE{3h0HD5PkSc7(#oVuQ3UO<``s`3-1{Go37M^XMTmj4sWKWVz<$ExzBQvMTs zDjw&fd@q)t#dggfK|`!K{P)7=P9>>jV8WqNQ&>KP!dkVzxL8gEmQ#tPFR_@~nFLAr zC%p%$Sm3t+lZ zdtr8YO_l!;h7A7Q@+YEvrSOmP<-M=NqUY!+)c)ZCR;%A&N$o?V_TA~)Ux3qu43-PF zGhJ+-!BVS*!bb+1%P?$jX0SFvFzLijjSdOFY06PNo zJV}E~=+`;#_H=S3F;Jl`6tt`GsU%Sgv}1|Z0NUh#|KLjEXF7zq_BJ%#s@?9E?~n51 zS-ynjpTyo3TXO4F`G=(ZMQ-_hn1w%^<&*fS_~c;t61b7Z?Yy}qqvL5_}tozr36ifdU@t#eBp|Bh+SU$pMXYoogV7Y`?W-2UK?<2T= z`%i+UUa;Jo#*(kFY=_CWYIg$*_W$AP1Yns%EPWJ~)PDs_ul<5$xL}!-#_}>)R*6qHyo_Fz3 z5D-u8@xFL~cX4ir)&7=I$DdRkL-0b&plUB=$DgP)wVN~QSfc8v#EW}=^wyE!T^!4h zO>K8Z<)5j_$K%D_8K_K!sunN$vpScLBUI&ecySdC$$fDl?=ZiC7pu8G%6;)7@9=Y& zcv0=3(kggG;m1Ss@!~JECeCJJxG5Sj`5?Y*DU^rTcV!^FK@cuev6S`}?a{5Qg?Di~ ziLAYr0r!G}<76IiK9(Vfdqfb+?w5CZ@1KFi^#4s`6KU!wO{8b5whm^h%&D$W^R>{N zemWhR&|Rh!2n+QmzsGjl3j8pY9U`F{^hc#qe~nby#jW�?qdhD-Gu$AC3F9A4vN8 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 fy(4}P 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 -#ifndef offsetof - #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) -#endif -#if !defined(WIN32) && !defined(MS_WINDOWS) - #ifndef __stdcall - #define __stdcall - #endif - #ifndef __cdecl - #define __cdecl - #endif - #ifndef __fastcall - #define __fastcall - #endif -#endif -#ifndef DL_IMPORT - #define DL_IMPORT(t) t -#endif -#ifndef DL_EXPORT - #define DL_EXPORT(t) t -#endif -#define __PYX_COMMA , -#ifndef HAVE_LONG_LONG - #if PY_VERSION_HEX >= 0x02070000 - #define HAVE_LONG_LONG - #endif -#endif -#ifndef PY_LONG_LONG - #define PY_LONG_LONG LONG_LONG -#endif -#ifndef Py_HUGE_VAL - #define Py_HUGE_VAL HUGE_VAL -#endif -#ifdef PYPY_VERSION - #define CYTHON_COMPILING_IN_PYPY 1 - #define CYTHON_COMPILING_IN_PYSTON 0 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #undef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 0 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #if PY_VERSION_HEX < 0x03050000 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #undef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #undef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 1 - #undef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 0 - #undef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 0 - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 -#elif defined(PYSTON_VERSION) - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_PYSTON 1 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 -#else - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_PYSTON 0 - #define CYTHON_COMPILING_IN_CPYTHON 1 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #if PY_VERSION_HEX < 0x02070000 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) - #define CYTHON_USE_PYTYPE_LOOKUP 1 - #endif - #if PY_MAJOR_VERSION < 3 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #if PY_VERSION_HEX < 0x02070000 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #elif !defined(CYTHON_USE_PYLONG_INTERNALS) - #define CYTHON_USE_PYLONG_INTERNALS 1 - #endif - #ifndef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 1 - #endif - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #if PY_VERSION_HEX < 0x030300F0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #elif !defined(CYTHON_USE_UNICODE_WRITER) - #define CYTHON_USE_UNICODE_WRITER 1 - #endif - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #ifndef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 1 - #endif - #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 - #endif - #ifndef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) - #endif - #ifndef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) - #endif - #ifndef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) - #endif - #ifndef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) - #endif -#endif -#if !defined(CYTHON_FAST_PYCCALL) -#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) -#endif -#if CYTHON_USE_PYLONG_INTERNALS - #include "longintrepr.h" - #undef SHIFT - #undef BASE - #undef MASK - #ifdef SIZEOF_VOID_P - enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; - #endif -#endif -#ifndef __has_attribute - #define __has_attribute(x) 0 -#endif -#ifndef __has_cpp_attribute - #define __has_cpp_attribute(x) 0 -#endif -#ifndef CYTHON_RESTRICT - #if defined(__GNUC__) - #define CYTHON_RESTRICT __restrict__ - #elif defined(_MSC_VER) && _MSC_VER >= 1400 - #define CYTHON_RESTRICT __restrict - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_RESTRICT restrict - #else - #define CYTHON_RESTRICT - #endif -#endif -#ifndef CYTHON_UNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -#endif -#ifndef CYTHON_MAYBE_UNUSED_VAR -# if defined(__cplusplus) - template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } -# else -# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) -# endif -#endif -#ifndef CYTHON_NCP_UNUSED -# if CYTHON_COMPILING_IN_CPYTHON -# define CYTHON_NCP_UNUSED -# else -# define CYTHON_NCP_UNUSED CYTHON_UNUSED -# endif -#endif -#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) -#ifdef _MSC_VER - #ifndef _MSC_STDINT_H_ - #if _MSC_VER < 1300 - typedef unsigned char uint8_t; - typedef unsigned int uint32_t; - #else - typedef unsigned __int8 uint8_t; - typedef unsigned __int32 uint32_t; - #endif - #endif -#else - #include -#endif -#ifndef CYTHON_FALLTHROUGH - #if defined(__cplusplus) && __cplusplus >= 201103L - #if __has_cpp_attribute(fallthrough) - #define CYTHON_FALLTHROUGH [[fallthrough]] - #elif __has_cpp_attribute(clang::fallthrough) - #define CYTHON_FALLTHROUGH [[clang::fallthrough]] - #elif __has_cpp_attribute(gnu::fallthrough) - #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] - #endif - #endif - #ifndef CYTHON_FALLTHROUGH - #if __has_attribute(fallthrough) - #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) - #else - #define CYTHON_FALLTHROUGH - #endif - #endif - #if defined(__clang__ ) && defined(__apple_build_version__) - #if __apple_build_version__ < 7000000 - #undef CYTHON_FALLTHROUGH - #define CYTHON_FALLTHROUGH - #endif - #endif -#endif - -#ifndef CYTHON_INLINE - #if defined(__clang__) - #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) - #elif defined(__GNUC__) - #define CYTHON_INLINE __inline__ - #elif defined(_MSC_VER) - #define CYTHON_INLINE __inline - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_INLINE inline - #else - #define CYTHON_INLINE - #endif -#endif - -#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) - #define Py_OptimizeFlag 0 -#endif -#define __PYX_BUILD_PY_SSIZE_T "n" -#define CYTHON_FORMAT_SSIZE_T "z" -#if PY_MAJOR_VERSION < 3 - #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) - #define __Pyx_DefaultClassType PyClass_Type -#else - #define __Pyx_BUILTIN_MODULE_NAME "builtins" - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) - #define __Pyx_DefaultClassType PyType_Type -#endif -#ifndef Py_TPFLAGS_CHECKTYPES - #define Py_TPFLAGS_CHECKTYPES 0 -#endif -#ifndef Py_TPFLAGS_HAVE_INDEX - #define Py_TPFLAGS_HAVE_INDEX 0 -#endif -#ifndef Py_TPFLAGS_HAVE_NEWBUFFER - #define Py_TPFLAGS_HAVE_NEWBUFFER 0 -#endif -#ifndef Py_TPFLAGS_HAVE_FINALIZE - #define Py_TPFLAGS_HAVE_FINALIZE 0 -#endif -#ifndef METH_STACKLESS - #define METH_STACKLESS 0 -#endif -#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) - #ifndef METH_FASTCALL - #define METH_FASTCALL 0x80 - #endif - 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); -#else - #define __Pyx_PyCFunctionFast _PyCFunctionFast - #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords -#endif -#if CYTHON_FAST_PYCCALL -#define __Pyx_PyFastCFunction_Check(func)\ - ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) -#else -#define __Pyx_PyFastCFunction_Check(func) 0 -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) - #define PyObject_Malloc(s) PyMem_Malloc(s) - #define PyObject_Free(p) PyMem_Free(p) - #define PyObject_Realloc(p) PyMem_Realloc(p) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 - #define PyMem_RawMalloc(n) PyMem_Malloc(n) - #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) - #define PyMem_RawFree(p) PyMem_Free(p) -#endif -#if CYTHON_COMPILING_IN_PYSTON - #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) -#else - #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) -#endif -#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#elif PY_VERSION_HEX >= 0x03060000 - #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() -#elif PY_VERSION_HEX >= 0x03000000 - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#else - #define __Pyx_PyThreadState_Current _PyThreadState_Current -#endif -#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) -#include "pythread.h" -#define Py_tss_NEEDS_INIT 0 -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); -} -#endif -#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) -#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) -#else -#define __Pyx_PyDict_NewPresized(n) PyDict_New() -#endif -#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION - #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) -#else - #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS -#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) -#else -#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) -#endif -#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) - #define CYTHON_PEP393_ENABLED 1 - #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ - 0 : _PyUnicode_Ready((PyObject *)(op))) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) - #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) -#else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 - #define PyUnicode_2BYTE_KIND 2 - #define PyUnicode_4BYTE_KIND 4 - #define __Pyx_PyUnicode_READY(op) (0) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) - #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) - #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) - #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) -#endif -#if CYTHON_COMPILING_IN_PYPY - #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) -#else - #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ - PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) - #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) - #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) - #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) -#endif -#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) -#else - #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) -#endif -#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) - #define PyObject_ASCII(o) PyObject_Repr(o) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBaseString_Type PyUnicode_Type - #define PyStringObject PyUnicodeObject - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact - #define PyObject_Unicode PyObject_Str -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -#else - #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) - #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) -#endif -#ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) -#endif -#if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) -#else - #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyIntObject PyLongObject - #define PyInt_Type PyLong_Type - #define PyInt_Check(op) PyLong_Check(op) - #define PyInt_CheckExact(op) PyLong_CheckExact(op) - #define PyInt_FromString PyLong_FromString - #define PyInt_FromUnicode PyLong_FromUnicode - #define PyInt_FromLong PyLong_FromLong - #define PyInt_FromSize_t PyLong_FromSize_t - #define PyInt_FromSsize_t PyLong_FromSsize_t - #define PyInt_AsLong PyLong_AsLong - #define PyInt_AS_LONG PyLong_AS_LONG - #define PyInt_AsSsize_t PyLong_AsSsize_t - #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask - #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask - #define PyNumber_Int PyNumber_Long -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBoolObject PyLongObject -#endif -#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY - #ifndef PyUnicode_InternFromString - #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) - #endif -#endif -#if PY_VERSION_HEX < 0x030200A4 - typedef long Py_hash_t; - #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong -#else - #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -#else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) -#endif -#if CYTHON_USE_ASYNC_SLOTS - #if PY_VERSION_HEX >= 0x030500B1 - #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods - #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) - #else - #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) - #endif -#else - #define __Pyx_PyType_AsAsync(obj) NULL -#endif -#ifndef __Pyx_PyAsyncMethodsStruct - typedef struct { - unaryfunc am_await; - unaryfunc am_aiter; - unaryfunc am_anext; - } __Pyx_PyAsyncMethodsStruct; -#endif - -#if defined(WIN32) || defined(MS_WINDOWS) - #define _USE_MATH_DEFINES -#endif -#include -#ifdef NAN -#define __PYX_NAN() ((float) NAN) -#else -static CYTHON_INLINE float __PYX_NAN() { - float value; - memset(&value, 0xFF, sizeof(value)); - return value; -} -#endif -#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) -#define __Pyx_truncl trunc -#else -#define __Pyx_truncl truncl -#endif - - -#define __PYX_ERR(f_index, lineno, Ln_error) \ -{ \ - __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ -} - -#ifndef __PYX_EXTERN_C - #ifdef __cplusplus - #define __PYX_EXTERN_C extern "C" - #else - #define __PYX_EXTERN_C extern - #endif -#endif - -#define __PYX_HAVE__analysis -#define __PYX_HAVE_API__analysis -/* Early includes */ -#ifdef _OPENMP -#include -#endif /* _OPENMP */ - -#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) -#define CYTHON_WITHOUT_ASSERTIONS -#endif - -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; - -#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) -#define __PYX_DEFAULT_STRING_ENCODING "" -#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString -#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#define __Pyx_uchar_cast(c) ((unsigned char)c) -#define __Pyx_long_cast(x) ((long)x) -#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ - (sizeof(type) < sizeof(Py_ssize_t)) ||\ - (sizeof(type) > sizeof(Py_ssize_t) &&\ - likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX) &&\ - (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ - v == (type)PY_SSIZE_T_MIN))) ||\ - (sizeof(type) == sizeof(Py_ssize_t) &&\ - (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX))) ) -static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { - return (size_t) i < (size_t) limit; -} -#if defined (__cplusplus) && __cplusplus >= 201103L - #include - #define __Pyx_sst_abs(value) std::abs(value) -#elif SIZEOF_INT >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) abs(value) -#elif SIZEOF_LONG >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) labs(value) -#elif defined (_MSC_VER) - #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) -#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define __Pyx_sst_abs(value) llabs(value) -#elif defined (__GNUC__) - #define __Pyx_sst_abs(value) __builtin_llabs(value) -#else - #define __Pyx_sst_abs(value) ((value<0) ? -value : value) -#endif -static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); -#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) -#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) -#define __Pyx_PyBytes_FromString PyBytes_FromString -#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#else - #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize -#endif -#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) -#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) -#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) -#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) -#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) -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); -} -#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) -#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode -#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode -#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) -#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -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); -#define __Pyx_PySequence_Tuple(obj)\ - (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); -#if CYTHON_ASSUME_SAFE_MACROS -#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) -#else -#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) -#endif -#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) -#if PY_MAJOR_VERSION >= 3 -#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) -#else -#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) -#endif -#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII -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; -} -#endif -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) -#else -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -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; -} -#endif -#endif - - -/* Test for GCC > 2.95 */ -#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) - #define likely(x) __builtin_expect(!!(x), 1) - #define unlikely(x) __builtin_expect(!!(x), 0) -#else /* !__GNUC__ or GCC < 2.95 */ - #define likely(x) (x) - #define unlikely(x) (x) -#endif /* __GNUC__ */ -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; - - -static const char *__pyx_f[] = { - "analysis.py", -}; - -/*--- Type declarations ---*/ -struct __pyx_obj_8analysis___pyx_scope_struct___sum; -struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr; -struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg; -struct __pyx_obj_8analysis___pyx_scope_struct_3__ss; -struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr; -struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr; - -/* "analysis.py":962 - * - * - * def _sum(data, start=0): # <<<<<<<<<<<<<< - * count = 0 - * n, d = _exact_ratio(start) - */ -struct __pyx_obj_8analysis___pyx_scope_struct___sum { - PyObject_HEAD - PyObject *__pyx_v_partials; -}; - - -/* "analysis.py":979 - * else: - * - * total = sum(Fraction(n, d) for d, n in sorted(partials.items())) # <<<<<<<<<<<<<< - * return (T, total, count) - * - */ -struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr { - PyObject_HEAD - struct __pyx_obj_8analysis___pyx_scope_struct___sum *__pyx_outer_scope; - PyObject *__pyx_v_d; - PyObject *__pyx_v_n; - PyObject *__pyx_t_0; - Py_ssize_t __pyx_t_1; -}; - - -/* "analysis.py":1092 - * - * - * def _fail_neg(values, errmsg='negative value'): # <<<<<<<<<<<<<< - * - * for x in values: - */ -struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg { - PyObject_HEAD - PyObject *__pyx_v_errmsg; - PyObject *__pyx_v_values; - PyObject *__pyx_v_x; - PyObject *__pyx_t_0; - Py_ssize_t __pyx_t_1; - PyObject *(*__pyx_t_2)(PyObject *); -}; - - -/* "analysis.py":1138 - * - * - * def _ss(data, c=None): # <<<<<<<<<<<<<< - * - * if c is None: - */ -struct __pyx_obj_8analysis___pyx_scope_struct_3__ss { - PyObject_HEAD - PyObject *__pyx_v_c; - PyObject *__pyx_v_data; -}; - - -/* "analysis.py":1142 - * if c is None: - * c = mean(data) - * T, total, count = _sum((x - c)**2 for x in data) # <<<<<<<<<<<<<< - * - * U, total2, count2 = _sum((x - c) for x in data) - */ -struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr { - PyObject_HEAD - struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *__pyx_outer_scope; - PyObject *__pyx_v_x; - PyObject *__pyx_t_0; - Py_ssize_t __pyx_t_1; - PyObject *(*__pyx_t_2)(PyObject *); -}; - - -/* "analysis.py":1144 - * T, total, count = _sum((x - c)**2 for x in data) - * - * U, total2, count2 = _sum((x - c) for x in data) # <<<<<<<<<<<<<< - * assert T == U and count == count2 - * total -= total2**2 / len(data) - */ -struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr { - PyObject_HEAD - struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *__pyx_outer_scope; - PyObject *__pyx_v_x; - PyObject *__pyx_t_0; - Py_ssize_t __pyx_t_1; - PyObject *(*__pyx_t_2)(PyObject *); -}; - - -/* --- Runtime support code (head) --- */ -/* Refnanny.proto */ -#ifndef CYTHON_REFNANNY - #define CYTHON_REFNANNY 0 -#endif -#if CYTHON_REFNANNY - 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); - #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; -#ifdef WITH_THREAD - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - if (acquire_gil) {\ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ - PyGILState_Release(__pyx_gilstate_save);\ - } else {\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ - } -#else - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) -#endif - #define __Pyx_RefNannyFinishContext()\ - __Pyx_RefNanny->FinishContext(&__pyx_refnanny) - #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) - #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) - #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) - #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) -#else - #define __Pyx_RefNannyDeclarations - #define __Pyx_RefNannySetupContext(name, acquire_gil) - #define __Pyx_RefNannyFinishContext() - #define __Pyx_INCREF(r) Py_INCREF(r) - #define __Pyx_DECREF(r) Py_DECREF(r) - #define __Pyx_GOTREF(r) - #define __Pyx_GIVEREF(r) - #define __Pyx_XINCREF(r) Py_XINCREF(r) - #define __Pyx_XDECREF(r) Py_XDECREF(r) - #define __Pyx_XGOTREF(r) - #define __Pyx_XGIVEREF(r) -#endif -#define __Pyx_XDECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_XDECREF(tmp);\ - } while (0) -#define __Pyx_DECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_DECREF(tmp);\ - } while (0) -#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) -#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) - -/* PyObjectGetAttrStr.proto */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) -#endif - -/* 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); - -/* IncludeStringH.proto */ -#include - -/* BytesEquals.proto */ -static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); - -/* UnicodeEquals.proto */ -static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); - -/* StrEquals.proto */ -#if PY_MAJOR_VERSION >= 3 -#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals -#else -#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals -#endif - -/* PyDictVersioning.proto */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) -#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ - (version_var) = __PYX_GET_DICT_VERSION(dict);\ - (cache_var) = (value); -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ - static PY_UINT64_T __pyx_dict_version = 0;\ - static PyObject *__pyx_dict_cached_value = NULL;\ - if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ - (VAR) = __pyx_dict_cached_value;\ - } else {\ - (VAR) = __pyx_dict_cached_value = (LOOKUP);\ - __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ - }\ -} -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); -#else -#define __PYX_GET_DICT_VERSION(dict) (0) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); -#endif - -/* GetModuleGlobalName.proto */ -#if CYTHON_USE_DICT_VERSIONS -#define __Pyx_GetModuleGlobalName(var, name) {\ - static PY_UINT64_T __pyx_dict_version = 0;\ - static PyObject *__pyx_dict_cached_value = NULL;\ - (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ - (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ - __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ -} -#define __Pyx_GetModuleGlobalNameUncached(var, name) {\ - PY_UINT64_T __pyx_dict_version;\ - PyObject *__pyx_dict_cached_value;\ - (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ -} -static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); -#else -#define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) -#define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) -static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); -#endif - -/* PyFunctionFastCall.proto */ -#if CYTHON_FAST_PYCALL -#define __Pyx_PyFunction_FastCall(func, args, nargs)\ - __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) -#if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, int nargs, PyObject *kwargs); -#else -#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) -#endif -#define __Pyx_BUILD_ASSERT_EXPR(cond)\ - (sizeof(char [1 - 2*!(cond)]) - 1) -#ifndef Py_MEMBER_SIZE -#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) -#endif - static size_t __pyx_pyframe_localsplus_offset = 0; - #include "frameobject.h" - #define __Pxy_PyFrame_Initialize_Offsets()\ - ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ - (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) - #define __Pyx_PyFrame_GetLocalsplus(frame)\ - (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) -#endif - -/* PyObjectCall.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); -#else -#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) -#endif - -/* PyObjectCallMethO.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); -#endif - -/* PyObjectCallNoArg.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); -#else -#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) -#endif - -/* PyCFunctionFastCall.proto */ -#if CYTHON_FAST_PYCCALL -static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); -#else -#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) -#endif - -/* PyObjectCallOneArg.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); - -/* PyObjectCall2Args.proto */ -static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); - -/* GetTopmostException.proto */ -#if CYTHON_USE_EXC_INFO_STACK -static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); -#endif - -/* PyThreadStateGet.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; -#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type -#else -#define __Pyx_PyThreadState_declare -#define __Pyx_PyThreadState_assign -#define __Pyx_PyErr_Occurred() PyErr_Occurred() -#endif - -/* SaveResetException.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); -#else -#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) -#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) -#endif - -/* GetException.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) -static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#else -static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); -#endif - -/* PyErrFetchRestore.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) -#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) -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); -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) -#else -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#endif -#else -#define __Pyx_PyErr_Clear() PyErr_Clear() -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) -#endif - -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - -/* PyObjectSetAttrStr.proto */ -#if CYTHON_USE_TYPE_SLOTS -#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) -static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value); -#else -#define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n) -#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) -#endif - -/* ListAppend.proto */ -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { - PyListObject* L = (PyListObject*) list; - Py_ssize_t len = Py_SIZE(list); - if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { - Py_INCREF(x); - PyList_SET_ITEM(list, len, x); - Py_SIZE(list) = len+1; - return 0; - } - return PyList_Append(list, x); -} -#else -#define __Pyx_PyList_Append(L,x) PyList_Append(L,x) -#endif - -/* PyObjectGetMethod.proto */ -static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); - -/* PyObjectCallMethod1.proto */ -static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); - -/* append.proto */ -static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x); - -/* GetItemInt.proto */ -#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ - (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ - __Pyx_GetItemInt_Generic(o, to_py_func(i)))) -#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ - (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, - int wraparound, int boundscheck); -#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ - (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, - int wraparound, int boundscheck); -static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, - int is_list, int wraparound, int boundscheck); - -/* SetItemInt.proto */ -#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\ - (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ - __Pyx_SetItemInt_Generic(o, to_py_func(i), v))) -static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); -static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, - int is_list, int wraparound, int boundscheck); - -/* PyObjectLookupSpecial.proto */ -#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name) { - PyObject *res; - PyTypeObject *tp = Py_TYPE(obj); -#if PY_MAJOR_VERSION < 3 - if (unlikely(PyInstance_Check(obj))) - return __Pyx_PyObject_GetAttrStr(obj, attr_name); -#endif - res = _PyType_Lookup(tp, attr_name); - if (likely(res)) { - descrgetfunc f = Py_TYPE(res)->tp_descr_get; - if (!f) { - Py_INCREF(res); - } else { - res = f(res, obj, (PyObject *)tp); - } - } else { - PyErr_SetObject(PyExc_AttributeError, attr_name); - } - return res; -} -#else -#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n) -#endif - -/* None.proto */ -static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); - -/* PyIntCompare.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace); - -/* ObjectGetItem.proto */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key); -#else -#define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) -#endif - -/* RaiseTooManyValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); - -/* RaiseNeedMoreValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); - -/* IterFinish.proto */ -static CYTHON_INLINE int __Pyx_IterFinish(void); - -/* UnpackItemEndCheck.proto */ -static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); - -/* pyobject_as_double.proto */ -static double __Pyx__PyObject_AsDouble(PyObject* obj); -#if CYTHON_COMPILING_IN_PYPY -#define __Pyx_PyObject_AsDouble(obj)\ -(likely(PyFloat_CheckExact(obj)) ? PyFloat_AS_DOUBLE(obj) :\ - likely(PyInt_CheckExact(obj)) ?\ - PyFloat_AsDouble(obj) : __Pyx__PyObject_AsDouble(obj)) -#else -#define __Pyx_PyObject_AsDouble(obj)\ -((likely(PyFloat_CheckExact(obj))) ?\ - PyFloat_AS_DOUBLE(obj) : __Pyx__PyObject_AsDouble(obj)) -#endif - -/* PyIntBinop.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); -#else -#define __Pyx_PyInt_SubtractObjC(op1, op2, intval, inplace, zerodivision_check)\ - (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2)) -#endif - -/* SliceObject.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice( - PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, - PyObject** py_start, PyObject** py_stop, PyObject** py_slice, - int has_cstart, int has_cstop, int wraparound); - -/* PyIntBinop.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); -#else -#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\ - (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) -#endif - -/* FetchCommonType.proto */ -static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); - -/* CythonFunction.proto */ -#define __Pyx_CyFunction_USED 1 -#define __Pyx_CYFUNCTION_STATICMETHOD 0x01 -#define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 -#define __Pyx_CYFUNCTION_CCLASS 0x04 -#define __Pyx_CyFunction_GetClosure(f)\ - (((__pyx_CyFunctionObject *) (f))->func_closure) -#define __Pyx_CyFunction_GetClassObj(f)\ - (((__pyx_CyFunctionObject *) (f))->func_classobj) -#define __Pyx_CyFunction_Defaults(type, f)\ - ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) -#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ - ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) -typedef struct { - PyCFunctionObject func; -#if PY_VERSION_HEX < 0x030500A0 - PyObject *func_weakreflist; -#endif - PyObject *func_dict; - PyObject *func_name; - PyObject *func_qualname; - PyObject *func_doc; - PyObject *func_globals; - PyObject *func_code; - PyObject *func_closure; - PyObject *func_classobj; - void *defaults; - int defaults_pyobjects; - int flags; - PyObject *defaults_tuple; - PyObject *defaults_kwdict; - PyObject *(*defaults_getter)(PyObject *); - PyObject *func_annotations; -} __pyx_CyFunctionObject; -static PyTypeObject *__pyx_CyFunctionType = 0; -#define __Pyx_CyFunction_Check(obj) (__Pyx_TypeCheck(obj, __pyx_CyFunctionType)) -#define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ - __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname, self, module, globals, code) -static PyObject *__Pyx_CyFunction_New(PyTypeObject *, PyMethodDef *ml, - int flags, PyObject* qualname, - PyObject *self, - PyObject *module, PyObject *globals, - PyObject* code); -static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, - size_t size, - int pyobjects); -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, - PyObject *tuple); -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, - PyObject *dict); -static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, - PyObject *dict); -static int __pyx_CyFunction_init(void); - -/* pop_index.proto */ -static PyObject* __Pyx__PyObject_PopNewIndex(PyObject* L, PyObject* py_ix); -static PyObject* __Pyx__PyObject_PopIndex(PyObject* L, PyObject* py_ix); -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static PyObject* __Pyx__PyList_PopIndex(PyObject* L, PyObject* py_ix, Py_ssize_t ix); -#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ - (likely(PyList_CheckExact(L) && __Pyx_fits_Py_ssize_t(ix, type, is_signed))) ?\ - __Pyx__PyList_PopIndex(L, py_ix, ix) : (\ - (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ - __Pyx__PyObject_PopIndex(L, py_ix))) -#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ - __Pyx_fits_Py_ssize_t(ix, type, is_signed) ?\ - __Pyx__PyList_PopIndex(L, py_ix, ix) : (\ - (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ - __Pyx__PyObject_PopIndex(L, py_ix))) -#else -#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func)\ - __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) -#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ - (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ - __Pyx__PyObject_PopIndex(L, py_ix)) -#endif - -/* UnpackUnboundCMethod.proto */ -typedef struct { - PyObject *type; - PyObject **method_name; - PyCFunction func; - PyObject *method; - int flag; -} __Pyx_CachedCFunction; - -/* CallUnboundCMethod1.proto */ -static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg); -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg); -#else -#define __Pyx_CallUnboundCMethod1(cfunc, self, arg) __Pyx__CallUnboundCMethod1(cfunc, self, arg) -#endif - -/* py_dict_items.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d); - -/* CallUnboundCMethod0.proto */ -static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self); -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_CallUnboundCMethod0(cfunc, self)\ - (likely((cfunc)->func) ?\ - (likely((cfunc)->flag == METH_NOARGS) ? (*((cfunc)->func))(self, NULL) :\ - (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\ - (PY_VERSION_HEX >= 0x030700A0 ?\ - (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\ - (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\ - (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\ - (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\ - (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ? ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\ - ((cfunc)->flag == METH_VARARGS ? (*((cfunc)->func))(self, __pyx_empty_tuple) :\ - __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\ - __Pyx__CallUnboundCMethod0(cfunc, self)) -#else -#define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self) -#endif - -/* None.proto */ -static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname); - -/* dict_getitem_default.proto */ -static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value); - -/* CallUnboundCMethod2.proto */ -static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2); -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1 -static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2); -#else -#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2) __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2) -#endif - -/* PyDictContains.proto */ -static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) { - int result = PyDict_Contains(dict, item); - return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); -} - -/* DictGetItem.proto */ -#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY -static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key); -#define __Pyx_PyObject_Dict_GetItem(obj, name)\ - (likely(PyDict_CheckExact(obj)) ?\ - __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name)) -#else -#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) -#define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) -#endif - -/* PyErrExceptionMatches.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) -static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); -#else -#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) -#endif - -/* PyIntCompare.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_NeObjC(PyObject *op1, PyObject *op2, long intval, long inplace); - -/* PyIntBinop.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_RemainderObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); -#else -#define __Pyx_PyInt_RemainderObjC(op1, op2, intval, inplace, zerodivision_check)\ - (inplace ? PyNumber_InPlaceRemainder(op1, op2) : PyNumber_Remainder(op1, op2)) -#endif - -/* PyIntBinop.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_FloorDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); -#else -#define __Pyx_PyInt_FloorDivideObjC(op1, op2, intval, inplace, zerodivision_check)\ - (inplace ? PyNumber_InPlaceFloorDivide(op1, op2) : PyNumber_FloorDivide(op1, op2)) -#endif - -/* PyObject_GenericGetAttrNoDict.proto */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr -#endif - -/* Import.proto */ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); - -/* ImportFrom.proto */ -static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); - -/* CalculateMetaclass.proto */ -static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases); - -/* Py3ClassCreate.proto */ -static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, - PyObject *mkw, PyObject *modname, PyObject *doc); -static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, - PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass); - -/* SetNameInClass.proto */ -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 -#define __Pyx_SetNameInClass(ns, name, value)\ - (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value)) -#elif CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_SetNameInClass(ns, name, value)\ - (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value)) -#else -#define __Pyx_SetNameInClass(ns, name, value) PyObject_SetItem(ns, name, value) -#endif - -/* CLineInTraceback.proto */ -#ifdef CYTHON_CLINE_IN_TRACEBACK -#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) -#else -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); -#endif - -/* 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); - -/* Print.proto */ -static int __Pyx_Print(PyObject*, PyObject *, int); -#if CYTHON_COMPILING_IN_PYPY || PY_MAJOR_VERSION >= 3 -static PyObject* __pyx_print = 0; -static PyObject* __pyx_print_kwargs = 0; -#endif - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - -/* PyExec.proto */ -static PyObject* __Pyx_PyExec3(PyObject*, PyObject*, PyObject*); -static CYTHON_INLINE PyObject* __Pyx_PyExec2(PyObject*, PyObject*); - -/* PrintOne.proto */ -static int __Pyx_PrintOne(PyObject* stream, PyObject *o); - -/* GetAttr.proto */ -static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); - -/* Globals.proto */ -static PyObject* __Pyx_Globals(void); - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* FastTypeChecks.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -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); -#else -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) -#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) -#endif -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) - -/* SwapException.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#else -static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); -#endif - -/* CoroutineBase.proto */ -typedef PyObject *(*__pyx_coroutine_body_t)(PyObject *, PyThreadState *, PyObject *); -#if CYTHON_USE_EXC_INFO_STACK -#define __Pyx_ExcInfoStruct _PyErr_StackItem -#else -typedef struct { - PyObject *exc_type; - PyObject *exc_value; - PyObject *exc_traceback; -} __Pyx_ExcInfoStruct; -#endif -typedef struct { - PyObject_HEAD - __pyx_coroutine_body_t body; - PyObject *closure; - __Pyx_ExcInfoStruct gi_exc_state; - PyObject *gi_weakreflist; - PyObject *classobj; - PyObject *yieldfrom; - PyObject *gi_name; - PyObject *gi_qualname; - PyObject *gi_modulename; - PyObject *gi_code; - int resume_label; - char is_running; -} __pyx_CoroutineObject; -static __pyx_CoroutineObject *__Pyx__Coroutine_New( - PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, - PyObject *name, PyObject *qualname, PyObject *module_name); -static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit( - __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, - PyObject *name, PyObject *qualname, PyObject *module_name); -static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self); -static int __Pyx_Coroutine_clear(PyObject *self); -static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value); -static PyObject *__Pyx_Coroutine_Close(PyObject *self); -static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args); -#if CYTHON_USE_EXC_INFO_STACK -#define __Pyx_Coroutine_SwapException(self) -#define __Pyx_Coroutine_ResetAndClearException(self) __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state) -#else -#define __Pyx_Coroutine_SwapException(self) {\ - __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\ - __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\ - } -#define __Pyx_Coroutine_ResetAndClearException(self) {\ - __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\ - (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\ - } -#endif -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ - __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue) -#else -#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ - __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue) -#endif -static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue); -static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state); - -/* PatchModuleWithCoroutine.proto */ -static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code); - -/* PatchGeneratorABC.proto */ -static int __Pyx_patch_abc(void); - -/* Generator.proto */ -#define __Pyx_Generator_USED -static PyTypeObject *__pyx_GeneratorType = 0; -#define __Pyx_Generator_CheckExact(obj) (Py_TYPE(obj) == __pyx_GeneratorType) -#define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\ - __Pyx__Coroutine_New(__pyx_GeneratorType, body, code, closure, name, qualname, module_name) -static PyObject *__Pyx_Generator_Next(PyObject *self); -static int __pyx_Generator_init(void); - -/* CStringEquals.proto */ -static CYTHON_INLINE int __Pyx_StrEq(const char *, const char *); - -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(void); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - - -/* Module declarations from 'analysis' */ -static PyTypeObject *__pyx_ptype_8analysis___pyx_scope_struct___sum = 0; -static PyTypeObject *__pyx_ptype_8analysis___pyx_scope_struct_1_genexpr = 0; -static PyTypeObject *__pyx_ptype_8analysis___pyx_scope_struct_2__fail_neg = 0; -static PyTypeObject *__pyx_ptype_8analysis___pyx_scope_struct_3__ss = 0; -static PyTypeObject *__pyx_ptype_8analysis___pyx_scope_struct_4_genexpr = 0; -static PyTypeObject *__pyx_ptype_8analysis___pyx_scope_struct_5_genexpr = 0; -#define __Pyx_MODULE_NAME "analysis" -extern int __pyx_module_is_main_analysis; -int __pyx_module_is_main_analysis = 0; - -/* Implementation of 'analysis' */ -static PyObject *__pyx_builtin_ValueError; -static PyObject *__pyx_builtin_range; -static PyObject *__pyx_builtin_open; -static PyObject *__pyx_builtin_sorted; -static PyObject *__pyx_builtin_max; -static PyObject *__pyx_builtin_map; -static PyObject *__pyx_builtin_sum; -static PyObject *__pyx_builtin_AttributeError; -static PyObject *__pyx_builtin_TypeError; -static PyObject *__pyx_builtin_OverflowError; -static const char __pyx_k_[] = ":"; -static const char __pyx_k_S[] = "S"; -static const char __pyx_k_T[] = "T"; -static const char __pyx_k_U[] = "U"; -static const char __pyx_k_a[] = "a"; -static const char __pyx_k_b[] = "b"; -static const char __pyx_k_c[] = "c"; -static const char __pyx_k_d[] = "d"; -static const char __pyx_k_e[] = "e"; -static const char __pyx_k_i[] = "i"; -static const char __pyx_k_j[] = "j"; -static const char __pyx_k_l[] = "l"; -static const char __pyx_k_n[] = "n"; -static const char __pyx_k_w[] = "w"; -static const char __pyx_k_x[] = "x"; -static const char __pyx_k_y[] = "y"; -static const char __pyx_k_z[] = "*(z**"; -static const char __pyx_k_1d[] = "1d"; -static const char __pyx_k__2[] = ""; -static const char __pyx_k__5[] = ")+"; -static const char __pyx_k__6[] = ")"; -static const char __pyx_k__7[] = "))+"; -static const char __pyx_k__8[] = "("; -static const char __pyx_k__9[] = "**("; -static const char __pyx_k_lo[] = "lo"; -static const char __pyx_k_np[] = "np"; -static const char __pyx_k_pi[] = "pi"; -static const char __pyx_k_ss[] = "_ss"; -static const char __pyx_k__10[] = "))"; -static const char __pyx_k__13[] = ")) + "; -static const char __pyx_k__14[] = ","; -static const char __pyx_k__15[] = "\n"; -static const char __pyx_k__17[] = "*"; -static const char __pyx_k_all[] = "__all__"; -static const char __pyx_k_arg[] = "arg"; -static const char __pyx_k_cpu[] = "cpu"; -static const char __pyx_k_csv[] = "csv"; -static const char __pyx_k_deg[] = "deg"; -static const char __pyx_k_doc[] = "__doc__"; -static const char __pyx_k_end[] = "end"; -static const char __pyx_k_eqs[] = "eqs"; -static const char __pyx_k_eve[] = "eve"; -static const char __pyx_k_get[] = "get"; -static const char __pyx_k_ids[] = "ids"; -static const char __pyx_k_ind[] = "ind"; -static const char __pyx_k_key[] = "key"; -static const char __pyx_k_log[] = "log"; -static const char __pyx_k_low[] = "low"; -static const char __pyx_k_map[] = "map"; -static const char __pyx_k_max[] = "max"; -static const char __pyx_k_msg[] = "msg"; -static const char __pyx_k_pop[] = "pop"; -static const char __pyx_k_pos[] = "pos"; -static const char __pyx_k_r2s[] = "r2s"; -static const char __pyx_k_rms[] = "_rms"; -static const char __pyx_k_row[] = "row"; -static const char __pyx_k_sum[] = "sum"; -static const char __pyx_k_typ[] = "typ"; -static const char __pyx_k_var[] = "var"; -static const char __pyx_k_z_2[] = "z"; -static const char __pyx_k_z_3[] = "*z))*("; -static const char __pyx_k_z_4[] = "*(z - "; -static const char __pyx_k_adam[] = "adam"; -static const char __pyx_k_args[] = "args"; -static const char __pyx_k_b_eq[] = "b_eq"; -static const char __pyx_k_b_r2[] = "b_r2"; -static const char __pyx_k_base[] = "base"; -static const char __pyx_k_both[] = "both"; -static const char __pyx_k_cuda[] = "cuda"; -static const char __pyx_k_data[] = "data"; -static const char __pyx_k_edit[] = "edit"; -static const char __pyx_k_exit[] = "__exit__"; -static const char __pyx_k_file[] = "file"; -static const char __pyx_k_high[] = "high"; -static const char __pyx_k_init[] = "__init__"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_math[] = "math"; -static const char __pyx_k_mean[] = "mean"; -static const char __pyx_k_mode[] = "mode"; -static const char __pyx_k_n_id[] = "n_id"; -static const char __pyx_k_name[] = "__name__"; -static const char __pyx_k_null[] = "null"; -static const char __pyx_k_open[] = "open"; -static const char __pyx_k_rmss[] = "rmss"; -static const char __pyx_k_self[] = "self"; -static const char __pyx_k_send[] = "send"; -static const char __pyx_k_sqrt[] = "sqrt"; -static const char __pyx_k_ss_2[] = "ss"; -static const char __pyx_k_tanh[] = "tanh"; -static const char __pyx_k_temp[] = "temp"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_time[] = "time"; -static const char __pyx_k_vals[] = "vals"; -static const char __pyx_k_xbar[] = "xbar"; -static const char __pyx_k_array[] = "array"; -static const char __pyx_k_b_rms[] = "b_rms"; -static const char __pyx_k_c_ids[] = "c_ids"; -static const char __pyx_k_c_pos[] = "c_pos"; -static const char __pyx_k_close[] = "close"; -static const char __pyx_k_count[] = "count"; -static const char __pyx_k_debug[] = "debug"; -static const char __pyx_k_delta[] = "delta"; -static const char __pyx_k_end_a[] = "end_a"; -static const char __pyx_k_end_g[] = "end_g"; -static const char __pyx_k_enter[] = "__enter__"; -static const char __pyx_k_error[] = "error"; -static const char __pyx_k_floor[] = "floor"; -static const char __pyx_k_index[] = "index"; -static const char __pyx_k_items[] = "items"; -static const char __pyx_k_logic[] = "logic"; -static const char __pyx_k_n_pos[] = "n_pos"; -static const char __pyx_k_names[] = "names"; -static const char __pyx_k_numpy[] = "numpy"; -static const char __pyx_k_point[] = "point"; -static const char __pyx_k_power[] = "power"; -static const char __pyx_k_print[] = "print"; -static const char __pyx_k_q_str[] = "q_str"; -static const char __pyx_k_r2_d2[] = "r2_d2"; -static const char __pyx_k_range[] = "range"; -static const char __pyx_k_rms_2[] = "rms"; -static const char __pyx_k_scipy[] = "scipy"; -static const char __pyx_k_score[] = "score"; -static const char __pyx_k_start[] = "start"; -static const char __pyx_k_stats[] = "stats"; -static const char __pyx_k_stdev[] = "stdev"; -static const char __pyx_k_sum_2[] = "_sum"; -static const char __pyx_k_table[] = "table"; -static const char __pyx_k_throw[] = "throw"; -static const char __pyx_k_torch[] = "torch"; -static const char __pyx_k_total[] = "total"; -static const char __pyx_k_value[] = "value"; -static const char __pyx_k_write[] = "write"; -static const char __pyx_k_x_fit[] = "x_fit"; -static const char __pyx_k_y_fit[] = "y_fit"; -static const char __pyx_k_append[] = "append"; -static const char __pyx_k_argmax[] = "argmax"; -static const char __pyx_k_argmin[] = "argmin"; -static const char __pyx_k_author[] = "__author__"; -static const char __pyx_k_bisect[] = "bisect"; -static const char __pyx_k_c_data[] = "c_data"; -static const char __pyx_k_coerce[] = "_coerce"; -static const char __pyx_k_column[] = "column"; -static const char __pyx_k_count2[] = "count2"; -static const char __pyx_k_counts[] = "_counts"; -static const char __pyx_k_data_t[] = "data_t"; -static const char __pyx_k_device[] = "device"; -static const char __pyx_k_eq_str[] = "eq_str"; -static const char __pyx_k_errmsg[] = "errmsg"; -static const char __pyx_k_format[] = "format"; -static const char __pyx_k_import[] = "__import__"; -static const char __pyx_k_mean_2[] = "_mean"; -static const char __pyx_k_median[] = "median"; -static const char __pyx_k_method[] = "method"; -static const char __pyx_k_mode_2[] = "_mode"; -static const char __pyx_k_module[] = "__module__"; -static const char __pyx_k_n_name[] = "n_name"; -static const char __pyx_k_pandas[] = "pandas"; -static const char __pyx_k_perims[] = "perims"; -static const char __pyx_k_r_data[] = "r_data"; -static const char __pyx_k_random[] = "random"; -static const char __pyx_k_reader[] = "reader"; -static const char __pyx_k_reg_eq[] = "reg_eq"; -static const char __pyx_k_remove[] = "remove"; -static const char __pyx_k_search[] = "search"; -static const char __pyx_k_sorted[] = "sorted"; -static const char __pyx_k_tolist[] = "tolist"; -static const char __pyx_k_total2[] = "total2"; -static const char __pyx_k_values[] = "values"; -static const char __pyx_k_x_norm[] = "x_norm"; -static const char __pyx_k_x_test[] = "x_test"; -static const char __pyx_k_y_norm[] = "y_norm"; -static const char __pyx_k_y_test[] = "y_test"; -static const char __pyx_k_Counter[] = "Counter"; -static const char __pyx_k_Decimal[] = "Decimal"; -static const char __pyx_k_c_logic[] = "c_logic"; -static const char __pyx_k_c_names[] = "c_names"; -static const char __pyx_k_c_perim[] = "c_perim"; -static const char __pyx_k_convert[] = "_convert"; -static const char __pyx_k_csvfile[] = "csvfile"; -static const char __pyx_k_decimal[] = "decimal"; -static const char __pyx_k_effects[] = "effects"; -static const char __pyx_k_float64[] = "float64"; -static const char __pyx_k_genexpr[] = "genexpr"; -static const char __pyx_k_groupby[] = "groupby"; -static const char __pyx_k_max_r2s[] = "max_r2s"; -static const char __pyx_k_maxfreq[] = "maxfreq"; -static const char __pyx_k_metrics[] = "metrics"; -static const char __pyx_k_n_logic[] = "n_logic"; -static const char __pyx_k_n_perim[] = "n_perim"; -static const char __pyx_k_newline[] = "newline"; -static const char __pyx_k_np_tanh[] = " * np.tanh("; -static const char __pyx_k_numbers[] = "numbers"; -static const char __pyx_k_overfit[] = "overfit"; -static const char __pyx_k_p_value[] = "p_value"; -static const char __pyx_k_polyfit[] = "polyfit"; -static const char __pyx_k_prepare[] = "__prepare__"; -static const char __pyx_k_r2_test[] = "r2_test"; -static const char __pyx_k_randint[] = "randint"; -static const char __pyx_k_range_2[] = "_range"; -static const char __pyx_k_setting[] = "setting"; -static const char __pyx_k_sklearn[] = "sklearn"; -static const char __pyx_k_start_a[] = "start_a"; -static const char __pyx_k_start_g[] = "start_g"; -static const char __pyx_k_stdev_2[] = "_stdev"; -static const char __pyx_k_targets[] = "targets"; -static const char __pyx_k_uniform[] = "uniform"; -static const char __pyx_k_version[] = "__version__"; -static const char __pyx_k_x_train[] = "x_train"; -static const char __pyx_k_y_train[] = "y_train"; -static const char __pyx_k_z_score[] = "z_score"; -static const char __pyx_k_z_split[] = "z_split"; -static const char __pyx_k_Fraction[] = "Fraction"; -static const char __pyx_k_analysis[] = "analysis"; -static const char __pyx_k_builtins[] = "__builtins__"; -static const char __pyx_k_equation[] = "equation"; -static const char __pyx_k_fail_neg[] = "_fail_neg"; -static const char __pyx_k_filename[] = "filename"; -static const char __pyx_k_filepath[] = "filepath"; -static const char __pyx_k_isfinite[] = "_isfinite"; -static const char __pyx_k_load_csv[] = "load_csv"; -static const char __pyx_k_median_2[] = "_median"; -static const char __pyx_k_n_effect[] = "n_effect"; -static const char __pyx_k_partials[] = "partials"; -static const char __pyx_k_position[] = "position"; -static const char __pyx_k_qualname[] = "__qualname__"; -static const char __pyx_k_r2_score[] = "r2_score"; -static const char __pyx_k_r2_train[] = "r2_train"; -static const char __pyx_k_rms_test[] = "rms_test"; -static const char __pyx_k_selector[] = "selector"; -static const char __pyx_k_variance[] = "variance"; -static const char __pyx_k_1_0_8_005[] = "1.0.8.005"; -static const char __pyx_k_TypeError[] = "TypeError"; -static const char __pyx_k_b_overfit[] = "b_overfit"; -static const char __pyx_k_benchmark[] = "benchmark"; -static const char __pyx_k_c_effects[] = "c_effects"; -static const char __pyx_k_changelog[] = "__changelog__"; -static const char __pyx_k_curve_fit[] = "curve_fit"; -static const char __pyx_k_find_lteq[] = "_find_lteq"; -static const char __pyx_k_find_rteq[] = "_find_rteq"; -static const char __pyx_k_fractions[] = "fractions"; -static const char __pyx_k_functools[] = "functools"; -static const char __pyx_k_hist_data[] = "hist_data"; -static const char __pyx_k_is_finite[] = "is_finite"; -static const char __pyx_k_itertools[] = "itertools"; -static const char __pyx_k_low_bound[] = "low_bound"; -static const char __pyx_k_metaclass[] = "__metaclass__"; -static const char __pyx_k_numerator[] = "numerator"; -static const char __pyx_k_obstacles[] = "obstacles"; -static const char __pyx_k_r_squared[] = "r_squared"; -static const char __pyx_k_rms_train[] = "rms_train"; -static const char __pyx_k_row_histo[] = "row_histo"; -static const char __pyx_k_ttest_ind[] = "ttest_ind"; -static const char __pyx_k_ValueError[] = "ValueError"; -static const char __pyx_k_c_entities[] = "c_entities"; -static const char __pyx_k_column_max[] = "column_max"; -static const char __pyx_k_derivative[] = "derivative"; -static const char __pyx_k_file_array[] = "file_array"; -static const char __pyx_k_high_bound[] = "high_bound"; -static const char __pyx_k_isfinite_2[] = "isfinite"; -static const char __pyx_k_matplotlib[] = "matplotlib"; -static const char __pyx_k_mode_error[] = "mode error"; -static const char __pyx_k_n_property[] = "n_property"; -static const char __pyx_k_objectives[] = "objectives"; -static const char __pyx_k_properties[] = "properties"; -static const char __pyx_k_resolution[] = "resolution"; -static const char __pyx_k_strip_data[] = "strip_data"; -static const char __pyx_k_variance_2[] = "_variance"; -static const char __pyx_k_analysis_py[] = "analysis.py"; -static const char __pyx_k_basic_stats[] = "basic_stats"; -static const char __pyx_k_bisect_left[] = "bisect_left"; -static const char __pyx_k_collections[] = "collections"; -static const char __pyx_k_denominator[] = "denominator"; -static const char __pyx_k_exact_ratio[] = "_exact_ratio"; -static const char __pyx_k_init_device[] = "_init_device"; -static const char __pyx_k_min_overfit[] = "min_overfit"; -static const char __pyx_k_most_common[] = "most_common"; -static const char __pyx_k_nc_entities[] = "nc_entities"; -static const char __pyx_k_pred_change[] = "pred_change"; -static const char __pyx_k_predictions[] = "predictions"; -static const char __pyx_k_regurgitate[] = "regurgitate"; -static const char __pyx_k_row_b_stats[] = "row_b_stats"; -static const char __pyx_k_vals_append[] = "vals.append("; -static const char __pyx_k_z_normalize[] = "z_normalize"; -static const char __pyx_k_bisect_right[] = "bisect_right"; -static const char __pyx_k_c_properties[] = "c_properties"; -static const char __pyx_k_calc_overfit[] = "calc_overfit"; -static const char __pyx_k_is_available[] = "is_available"; -static const char __pyx_k_method_error[] = "method error"; -static const char __pyx_k_partials_get[] = "partials_get"; -static const char __pyx_k_OverflowError[] = "OverflowError"; -static const char __pyx_k_c_data_sorted[] = "c_data_sorted"; -static const char __pyx_k_data_data_csv[] = "data/data.csv"; -static const char __pyx_k_generate_data[] = "generate_data"; -static const char __pyx_k_stdev_z_split[] = "stdev_z_split"; -static const char __pyx_k_AttributeError[] = "AttributeError"; -static const char __pyx_k_basic_analysis[] = "basic_analysis"; -static const char __pyx_k_column_b_stats[] = "column_b_stats"; -static const char __pyx_k_exp_regression[] = "exp_regression"; -static const char __pyx_k_histo_analysis[] = "histo_analysis"; -static const char __pyx_k_log_regression[] = "log_regression"; -static const char __pyx_k_negative_value[] = "negative value"; -static const char __pyx_k_obstacles_edit[] = "obstacles.edit"; -static const char __pyx_k_scipy_optimize[] = "scipy.optimize"; -static const char __pyx_k_StatisticsError[] = "StatisticsError"; -static const char __pyx_k_c_entities_edit[] = "c_entities.edit"; -static const char __pyx_k_mean_derivative[] = "mean_derivative"; -static const char __pyx_k_np_log_z_np_log[] = "* (np.log(z) / np.log("; -static const char __pyx_k_objectives_edit[] = "objectives.edit"; -static const char __pyx_k_obstacles_debug[] = "obstacles.debug"; -static const char __pyx_k_poly_regression[] = "poly_regression"; -static const char __pyx_k_tanh_regression[] = "tanh_regression"; -static const char __pyx_k_as_integer_ratio[] = "as_integer_ratio"; -static const char __pyx_k_c_entities_debug[] = "c_entities.debug"; -static const char __pyx_k_nc_entities_edit[] = "nc_entities.edit"; -static const char __pyx_k_objectives_debug[] = "objectives.debug"; -static const char __pyx_k_obstacles___init[] = "obstacles.__init__"; -static const char __pyx_k_obstacles_append[] = "obstacles.append"; -static const char __pyx_k_obstacles_search[] = "obstacles.search"; -static const char __pyx_k_stdev_derivative[] = "stdev_derivative"; -static const char __pyx_k_c_entities___init[] = "c_entities.__init__"; -static const char __pyx_k_c_entities_append[] = "c_entities.append"; -static const char __pyx_k_c_entities_search[] = "c_entities.search"; -static const char __pyx_k_derivative_sorted[] = "derivative_sorted"; -static const char __pyx_k_nc_entities_debug[] = "nc_entities.debug"; -static const char __pyx_k_objectives___init[] = "objectives.__init__"; -static const char __pyx_k_objectives_append[] = "objectives.append"; -static const char __pyx_k_objectives_search[] = "objectives.search"; -static const char __pyx_k_ss_locals_genexpr[] = "_ss..genexpr"; -static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_nc_entities___init[] = "nc_entities.__init__"; -static const char __pyx_k_nc_entities_append[] = "nc_entities.append"; -static const char __pyx_k_nc_entities_search[] = "nc_entities.search"; -static const char __pyx_k_sum_locals_genexpr[] = "_sum..genexpr"; -static const char __pyx_k_optimize_regression[] = "optimize_regression"; -static const char __pyx_k_could_not_assign_cpu[] = "could not assign cpu"; -static const char __pyx_k_obstacles_regurgitate[] = "obstacles.regurgitate"; -static const char __pyx_k_c_entities_regurgitate[] = "c_entities.regurgitate"; -static const char __pyx_k_initial_type_T_is_bool[] = "initial type T is bool"; -static const char __pyx_k_no_mode_for_empty_data[] = "no mode for empty data"; -static const char __pyx_k_objectives_regurgitate[] = "objectives.regurgitate"; -static const char __pyx_k_resolution_must_be_int[] = "resolution must be int"; -static const char __pyx_k_select_best_regression[] = "select_best_regression"; -static const char __pyx_k_nc_entities_regurgitate[] = "nc_entities.regurgitate"; -static const char __pyx_k_no_median_for_empty_data[] = "no median for empty data"; -static const char __pyx_k_tanh_regression_locals_tanh[] = "tanh_regression..tanh"; -static const char __pyx_k_could_not_assign_cuda_or_cpu[] = "could not assign cuda or cpu"; -static const char __pyx_k_c_entities_has_attributes_names[] = "c_entities has attributes names, ids, positions, properties, and logic. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, nd array of properties, and nd array of logic"; -static const char __pyx_k_can_t_convert_type_to_numerator[] = "can't convert type '{}' to numerator/denominator"; -static const char __pyx_k_changelog_1_0_8_005_minor_fixes[] = "changelog:\n1.0.8.005:\n - minor fixes\n1.0.8.004:\n - removed a few unused dependencies\n1.0.8.003:\n - added p_value function\n1.0.8.002:\n - updated __all__ correctly to contain changes made in v 1.0.8.000 and v 1.0.8.001\n1.0.8.001:\n - refactors\n - bugfixes\n1.0.8.000:\n - depreciated histo_analysis_old\n - depreciated debug\n - altered basic_analysis to take array data instead of filepath\n - refactor\n - optimization\n1.0.7.002:\n - bug fixes\n1.0.7.001:\n - bug fixes\n1.0.7.000:\n - added tanh_regression (logistical regression)\n - bug fixes\n1.0.6.005:\n - added z_normalize function to normalize dataset\n - bug fixes\n1.0.6.004:\n - bug fixes\n1.0.6.003:\n - bug fixes\n1.0.6.002:\n - bug fixes\n1.0.6.001:\n - corrected __all__ to contain all of the functions\n1.0.6.000:\n - added calc_overfit, which calculates two measures of overfit, error and performance\n - added calculating overfit to optimize_regression\n1.0.5.000:\n - added optimize_regression function, which is a sample function to find the optimal regressions\n - optimize_regression function filters out some overfit funtions (functions with r^2 = 1)\n - planned addition: overfit detection in the optimize_regression function\n1.0.4.002:\n - added __changelog__\n - updated debug function with log and exponential regressions\n1.0.4.001:\n - added log regressions\n - added exponential regressions\n - added log_regression and exp_regression to __all__\n1.0.3.008:\n - added debug function to further consolidate functions\n1.0.3.007:\n - added builtin benchmark function\n - added builtin random (linear) data generation function\n - added device initialization (_init_device)\n1.0.3.006:\n - reorganized the imports list to be in alphabetical order\n - added search and regurgitate functions to c_entities, nc_entities, obstacles, objectives\n1.0.3.005:\n - major bug fixes\n - updated historical"" analysis\n - depreciated old historical analysis\n1.0.3.004:\n - added __version__, __author__, __all__\n - added polynomial regression\n - added root mean squared function\n - added r squared function\n1.0.3.003:\n - bug fixes\n - added c_entities\n1.0.3.002:\n - bug fixes\n - added nc_entities, obstacles, objectives\n - consolidated statistics.py to analysis.py\n1.0.3.001:\n - compiled 1d, column, and row basic stats into basic stats function\n1.0.3.000:\n - added historical analysis function\n1.0.2.xxx:\n - added z score test\n1.0.1.xxx:\n - major bug fixes\n1.0.0.xxx:\n - added loading csv\n - added 1d, column, row basic stats\n"; -static const char __pyx_k_mean_requires_at_least_one_data[] = "mean requires at least one data point"; -static const char __pyx_k_specified_device_does_not_exist[] = "specified device does not exist"; -static const char __pyx_k_Arthur_Lu_arthurlu_ttic_edu_Jaco[] = "Arthur Lu , Jacob Levine ,"; -static const char __pyx_k_basic_stats_requires_3_args_data[] = "basic_stats requires 3 args: data, mode, arg; where data is data to be analyzed, mode is an int from 0 - 2 depending on type of analysis (by column or by row) and is only applicable to 2d arrays (for 1d arrays use mode 1), and arg is row/column number for mode 1 or mode 2; function returns: [mean, median, mode, stdev, variance]"; -static const char __pyx_k_don_t_know_how_to_coerce_s_and_s[] = "don't know how to coerce %s and %s"; -static const char __pyx_k_nc_entities_non_controlable_enti[] = "nc_entities (non-controlable entities) has attributes names, ids, positions, properties, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, 2d array of properties, and 2d array of effects."; -static const char __pyx_k_negative_sum_of_square_deviation[] = "negative sum of square deviations: %f"; -static const char __pyx_k_no_unique_mode_found_d_equally_c[] = "no unique mode; found %d equally common values"; -static const char __pyx_k_objectives_has_atributes_names_i[] = "objectives has atributes names, ids, positions, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 1d array of effects."; -static const char __pyx_k_obstacles_has_atributes_names_id[] = "obstacles has atributes names, ids, positions, perimeters, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 3d array of perimeters, 2d array of effects."; -static const char __pyx_k_returns_list_of_predicted_values[] = "returns list of predicted values based on historical data; input delta for delta step in z-score and lower and higher bounds in number of standard deviations"; -static const char __pyx_k_variance_requires_at_least_two_d[] = "variance requires at least two data points"; -static PyObject *__pyx_kp_s_; -static PyObject *__pyx_kp_s_1_0_8_005; -static PyObject *__pyx_kp_s_1d; -static PyObject *__pyx_kp_s_Arthur_Lu_arthurlu_ttic_edu_Jaco; -static PyObject *__pyx_n_s_AttributeError; -static PyObject *__pyx_n_s_Counter; -static PyObject *__pyx_n_s_Decimal; -static PyObject *__pyx_n_s_Fraction; -static PyObject *__pyx_n_s_OverflowError; -static PyObject *__pyx_n_s_S; -static PyObject *__pyx_n_s_StatisticsError; -static PyObject *__pyx_n_s_T; -static PyObject *__pyx_n_s_TypeError; -static PyObject *__pyx_n_s_U; -static PyObject *__pyx_n_s_ValueError; -static PyObject *__pyx_kp_s__10; -static PyObject *__pyx_kp_s__13; -static PyObject *__pyx_kp_s__14; -static PyObject *__pyx_kp_s__15; -static PyObject *__pyx_n_s__17; -static PyObject *__pyx_kp_s__2; -static PyObject *__pyx_kp_s__5; -static PyObject *__pyx_kp_s__6; -static PyObject *__pyx_kp_s__7; -static PyObject *__pyx_kp_s__8; -static PyObject *__pyx_kp_s__9; -static PyObject *__pyx_n_s_a; -static PyObject *__pyx_n_s_adam; -static PyObject *__pyx_n_s_all; -static PyObject *__pyx_n_s_analysis; -static PyObject *__pyx_kp_s_analysis_py; -static PyObject *__pyx_n_s_append; -static PyObject *__pyx_n_s_arg; -static PyObject *__pyx_n_s_argmax; -static PyObject *__pyx_n_s_argmin; -static PyObject *__pyx_n_s_args; -static PyObject *__pyx_n_s_array; -static PyObject *__pyx_n_s_as_integer_ratio; -static PyObject *__pyx_n_s_author; -static PyObject *__pyx_n_s_b; -static PyObject *__pyx_n_s_b_eq; -static PyObject *__pyx_n_s_b_overfit; -static PyObject *__pyx_n_s_b_r2; -static PyObject *__pyx_n_s_b_rms; -static PyObject *__pyx_n_s_base; -static PyObject *__pyx_n_s_basic_analysis; -static PyObject *__pyx_n_s_basic_stats; -static PyObject *__pyx_kp_s_basic_stats_requires_3_args_data; -static PyObject *__pyx_n_s_benchmark; -static PyObject *__pyx_n_s_bisect; -static PyObject *__pyx_n_s_bisect_left; -static PyObject *__pyx_n_s_bisect_right; -static PyObject *__pyx_n_s_both; -static PyObject *__pyx_n_s_builtins; -static PyObject *__pyx_n_s_c; -static PyObject *__pyx_n_s_c_data; -static PyObject *__pyx_n_s_c_data_sorted; -static PyObject *__pyx_n_s_c_effects; -static PyObject *__pyx_n_s_c_entities; -static PyObject *__pyx_n_s_c_entities___init; -static PyObject *__pyx_n_s_c_entities_append; -static PyObject *__pyx_n_s_c_entities_debug; -static PyObject *__pyx_n_s_c_entities_edit; -static PyObject *__pyx_kp_s_c_entities_has_attributes_names; -static PyObject *__pyx_n_s_c_entities_regurgitate; -static PyObject *__pyx_n_s_c_entities_search; -static PyObject *__pyx_n_s_c_ids; -static PyObject *__pyx_n_s_c_logic; -static PyObject *__pyx_n_s_c_names; -static PyObject *__pyx_n_s_c_perim; -static PyObject *__pyx_n_s_c_pos; -static PyObject *__pyx_n_s_c_properties; -static PyObject *__pyx_n_s_calc_overfit; -static PyObject *__pyx_kp_s_can_t_convert_type_to_numerator; -static PyObject *__pyx_n_s_changelog; -static PyObject *__pyx_kp_s_changelog_1_0_8_005_minor_fixes; -static PyObject *__pyx_n_s_cline_in_traceback; -static PyObject *__pyx_n_s_close; -static PyObject *__pyx_n_s_coerce; -static PyObject *__pyx_n_s_collections; -static PyObject *__pyx_n_s_column; -static PyObject *__pyx_n_s_column_b_stats; -static PyObject *__pyx_n_s_column_max; -static PyObject *__pyx_n_s_convert; -static PyObject *__pyx_kp_s_could_not_assign_cpu; -static PyObject *__pyx_kp_s_could_not_assign_cuda_or_cpu; -static PyObject *__pyx_n_s_count; -static PyObject *__pyx_n_s_count2; -static PyObject *__pyx_n_s_counts; -static PyObject *__pyx_n_s_cpu; -static PyObject *__pyx_n_s_csv; -static PyObject *__pyx_n_s_csvfile; -static PyObject *__pyx_n_s_cuda; -static PyObject *__pyx_n_s_curve_fit; -static PyObject *__pyx_n_s_d; -static PyObject *__pyx_n_s_data; -static PyObject *__pyx_kp_s_data_data_csv; -static PyObject *__pyx_n_s_data_t; -static PyObject *__pyx_n_s_debug; -static PyObject *__pyx_n_s_decimal; -static PyObject *__pyx_n_s_deg; -static PyObject *__pyx_n_s_delta; -static PyObject *__pyx_n_s_denominator; -static PyObject *__pyx_n_s_derivative; -static PyObject *__pyx_n_s_derivative_sorted; -static PyObject *__pyx_n_s_device; -static PyObject *__pyx_n_s_doc; -static PyObject *__pyx_kp_s_don_t_know_how_to_coerce_s_and_s; -static PyObject *__pyx_n_s_e; -static PyObject *__pyx_n_s_edit; -static PyObject *__pyx_n_s_effects; -static PyObject *__pyx_n_s_end; -static PyObject *__pyx_n_s_end_a; -static PyObject *__pyx_n_s_end_g; -static PyObject *__pyx_n_s_enter; -static PyObject *__pyx_n_s_eq_str; -static PyObject *__pyx_n_s_eqs; -static PyObject *__pyx_n_s_equation; -static PyObject *__pyx_n_s_errmsg; -static PyObject *__pyx_n_s_error; -static PyObject *__pyx_n_s_eve; -static PyObject *__pyx_n_s_exact_ratio; -static PyObject *__pyx_n_s_exit; -static PyObject *__pyx_n_s_exp_regression; -static PyObject *__pyx_n_s_fail_neg; -static PyObject *__pyx_n_s_file; -static PyObject *__pyx_n_s_file_array; -static PyObject *__pyx_n_s_filename; -static PyObject *__pyx_n_s_filepath; -static PyObject *__pyx_n_s_find_lteq; -static PyObject *__pyx_n_s_find_rteq; -static PyObject *__pyx_n_s_float64; -static PyObject *__pyx_n_s_floor; -static PyObject *__pyx_n_s_format; -static PyObject *__pyx_n_s_fractions; -static PyObject *__pyx_n_s_functools; -static PyObject *__pyx_n_s_generate_data; -static PyObject *__pyx_n_s_genexpr; -static PyObject *__pyx_n_s_get; -static PyObject *__pyx_n_s_groupby; -static PyObject *__pyx_n_s_high; -static PyObject *__pyx_n_s_high_bound; -static PyObject *__pyx_n_s_hist_data; -static PyObject *__pyx_n_s_histo_analysis; -static PyObject *__pyx_n_s_i; -static PyObject *__pyx_n_s_ids; -static PyObject *__pyx_n_s_import; -static PyObject *__pyx_n_s_ind; -static PyObject *__pyx_n_s_index; -static PyObject *__pyx_n_s_init; -static PyObject *__pyx_n_s_init_device; -static PyObject *__pyx_kp_s_initial_type_T_is_bool; -static PyObject *__pyx_n_s_is_available; -static PyObject *__pyx_n_s_is_finite; -static PyObject *__pyx_n_s_isfinite; -static PyObject *__pyx_n_s_isfinite_2; -static PyObject *__pyx_n_s_items; -static PyObject *__pyx_n_s_itertools; -static PyObject *__pyx_n_s_j; -static PyObject *__pyx_n_s_key; -static PyObject *__pyx_n_s_l; -static PyObject *__pyx_n_s_lo; -static PyObject *__pyx_n_s_load_csv; -static PyObject *__pyx_n_s_log; -static PyObject *__pyx_n_s_log_regression; -static PyObject *__pyx_n_s_logic; -static PyObject *__pyx_n_s_low; -static PyObject *__pyx_n_s_low_bound; -static PyObject *__pyx_n_s_main; -static PyObject *__pyx_n_s_map; -static PyObject *__pyx_n_s_math; -static PyObject *__pyx_n_s_matplotlib; -static PyObject *__pyx_n_s_max; -static PyObject *__pyx_n_s_max_r2s; -static PyObject *__pyx_n_s_maxfreq; -static PyObject *__pyx_n_s_mean; -static PyObject *__pyx_n_s_mean_2; -static PyObject *__pyx_n_s_mean_derivative; -static PyObject *__pyx_kp_s_mean_requires_at_least_one_data; -static PyObject *__pyx_n_s_median; -static PyObject *__pyx_n_s_median_2; -static PyObject *__pyx_n_s_metaclass; -static PyObject *__pyx_n_s_method; -static PyObject *__pyx_kp_s_method_error; -static PyObject *__pyx_n_s_metrics; -static PyObject *__pyx_n_s_min_overfit; -static PyObject *__pyx_n_s_mode; -static PyObject *__pyx_n_s_mode_2; -static PyObject *__pyx_kp_s_mode_error; -static PyObject *__pyx_n_s_module; -static PyObject *__pyx_n_s_most_common; -static PyObject *__pyx_n_s_msg; -static PyObject *__pyx_n_s_n; -static PyObject *__pyx_n_s_n_effect; -static PyObject *__pyx_n_s_n_id; -static PyObject *__pyx_n_s_n_logic; -static PyObject *__pyx_n_s_n_name; -static PyObject *__pyx_n_s_n_perim; -static PyObject *__pyx_n_s_n_pos; -static PyObject *__pyx_n_s_n_property; -static PyObject *__pyx_n_s_name; -static PyObject *__pyx_n_s_names; -static PyObject *__pyx_n_s_nc_entities; -static PyObject *__pyx_n_s_nc_entities___init; -static PyObject *__pyx_n_s_nc_entities_append; -static PyObject *__pyx_n_s_nc_entities_debug; -static PyObject *__pyx_n_s_nc_entities_edit; -static PyObject *__pyx_kp_s_nc_entities_non_controlable_enti; -static PyObject *__pyx_n_s_nc_entities_regurgitate; -static PyObject *__pyx_n_s_nc_entities_search; -static PyObject *__pyx_kp_s_negative_sum_of_square_deviation; -static PyObject *__pyx_kp_s_negative_value; -static PyObject *__pyx_n_s_newline; -static PyObject *__pyx_kp_s_no_median_for_empty_data; -static PyObject *__pyx_kp_s_no_mode_for_empty_data; -static PyObject *__pyx_kp_s_no_unique_mode_found_d_equally_c; -static PyObject *__pyx_n_s_np; -static PyObject *__pyx_kp_s_np_log_z_np_log; -static PyObject *__pyx_kp_s_np_tanh; -static PyObject *__pyx_n_s_null; -static PyObject *__pyx_n_s_numbers; -static PyObject *__pyx_n_s_numerator; -static PyObject *__pyx_n_s_numpy; -static PyObject *__pyx_n_s_objectives; -static PyObject *__pyx_n_s_objectives___init; -static PyObject *__pyx_n_s_objectives_append; -static PyObject *__pyx_n_s_objectives_debug; -static PyObject *__pyx_n_s_objectives_edit; -static PyObject *__pyx_kp_s_objectives_has_atributes_names_i; -static PyObject *__pyx_n_s_objectives_regurgitate; -static PyObject *__pyx_n_s_objectives_search; -static PyObject *__pyx_n_s_obstacles; -static PyObject *__pyx_n_s_obstacles___init; -static PyObject *__pyx_n_s_obstacles_append; -static PyObject *__pyx_n_s_obstacles_debug; -static PyObject *__pyx_n_s_obstacles_edit; -static PyObject *__pyx_kp_s_obstacles_has_atributes_names_id; -static PyObject *__pyx_n_s_obstacles_regurgitate; -static PyObject *__pyx_n_s_obstacles_search; -static PyObject *__pyx_n_s_open; -static PyObject *__pyx_n_s_optimize_regression; -static PyObject *__pyx_n_s_overfit; -static PyObject *__pyx_n_s_p_value; -static PyObject *__pyx_n_s_pandas; -static PyObject *__pyx_n_s_partials; -static PyObject *__pyx_n_s_partials_get; -static PyObject *__pyx_n_s_perims; -static PyObject *__pyx_n_s_pi; -static PyObject *__pyx_n_s_point; -static PyObject *__pyx_n_s_poly_regression; -static PyObject *__pyx_n_s_polyfit; -static PyObject *__pyx_n_s_pop; -static PyObject *__pyx_n_s_pos; -static PyObject *__pyx_n_s_position; -static PyObject *__pyx_n_s_power; -static PyObject *__pyx_n_s_pred_change; -static PyObject *__pyx_n_s_predictions; -static PyObject *__pyx_n_s_prepare; -static PyObject *__pyx_n_s_print; -static PyObject *__pyx_n_s_properties; -static PyObject *__pyx_n_s_q_str; -static PyObject *__pyx_n_s_qualname; -static PyObject *__pyx_n_s_r2_d2; -static PyObject *__pyx_n_s_r2_score; -static PyObject *__pyx_n_s_r2_test; -static PyObject *__pyx_n_s_r2_train; -static PyObject *__pyx_n_s_r2s; -static PyObject *__pyx_n_s_r_data; -static PyObject *__pyx_n_s_r_squared; -static PyObject *__pyx_n_s_randint; -static PyObject *__pyx_n_s_random; -static PyObject *__pyx_n_s_range; -static PyObject *__pyx_n_s_range_2; -static PyObject *__pyx_n_s_reader; -static PyObject *__pyx_n_s_reg_eq; -static PyObject *__pyx_n_s_regurgitate; -static PyObject *__pyx_n_s_remove; -static PyObject *__pyx_n_s_resolution; -static PyObject *__pyx_kp_s_resolution_must_be_int; -static PyObject *__pyx_kp_s_returns_list_of_predicted_values; -static PyObject *__pyx_n_s_rms; -static PyObject *__pyx_n_s_rms_2; -static PyObject *__pyx_n_s_rms_test; -static PyObject *__pyx_n_s_rms_train; -static PyObject *__pyx_n_s_rmss; -static PyObject *__pyx_n_s_row; -static PyObject *__pyx_n_s_row_b_stats; -static PyObject *__pyx_n_s_row_histo; -static PyObject *__pyx_n_s_scipy; -static PyObject *__pyx_n_s_scipy_optimize; -static PyObject *__pyx_n_s_score; -static PyObject *__pyx_n_s_search; -static PyObject *__pyx_n_s_select_best_regression; -static PyObject *__pyx_n_s_selector; -static PyObject *__pyx_n_s_self; -static PyObject *__pyx_n_s_send; -static PyObject *__pyx_n_s_setting; -static PyObject *__pyx_n_s_sklearn; -static PyObject *__pyx_n_s_sorted; -static PyObject *__pyx_kp_s_specified_device_does_not_exist; -static PyObject *__pyx_n_s_sqrt; -static PyObject *__pyx_n_s_ss; -static PyObject *__pyx_n_s_ss_2; -static PyObject *__pyx_n_s_ss_locals_genexpr; -static PyObject *__pyx_n_s_start; -static PyObject *__pyx_n_s_start_a; -static PyObject *__pyx_n_s_start_g; -static PyObject *__pyx_n_s_stats; -static PyObject *__pyx_n_s_stdev; -static PyObject *__pyx_n_s_stdev_2; -static PyObject *__pyx_n_s_stdev_derivative; -static PyObject *__pyx_n_s_stdev_z_split; -static PyObject *__pyx_n_s_strip_data; -static PyObject *__pyx_n_s_sum; -static PyObject *__pyx_n_s_sum_2; -static PyObject *__pyx_n_s_sum_locals_genexpr; -static PyObject *__pyx_n_s_table; -static PyObject *__pyx_n_s_tanh; -static PyObject *__pyx_n_s_tanh_regression; -static PyObject *__pyx_n_s_tanh_regression_locals_tanh; -static PyObject *__pyx_n_s_targets; -static PyObject *__pyx_n_s_temp; -static PyObject *__pyx_n_s_test; -static PyObject *__pyx_n_s_throw; -static PyObject *__pyx_n_s_time; -static PyObject *__pyx_n_s_tolist; -static PyObject *__pyx_n_s_torch; -static PyObject *__pyx_n_s_total; -static PyObject *__pyx_n_s_total2; -static PyObject *__pyx_n_s_ttest_ind; -static PyObject *__pyx_n_s_typ; -static PyObject *__pyx_n_s_uniform; -static PyObject *__pyx_n_s_vals; -static PyObject *__pyx_kp_s_vals_append; -static PyObject *__pyx_n_s_value; -static PyObject *__pyx_n_s_values; -static PyObject *__pyx_n_s_var; -static PyObject *__pyx_n_s_variance; -static PyObject *__pyx_n_s_variance_2; -static PyObject *__pyx_kp_s_variance_requires_at_least_two_d; -static PyObject *__pyx_n_s_version; -static PyObject *__pyx_n_s_w; -static PyObject *__pyx_n_s_write; -static PyObject *__pyx_n_s_x; -static PyObject *__pyx_n_s_x_fit; -static PyObject *__pyx_n_s_x_norm; -static PyObject *__pyx_n_s_x_test; -static PyObject *__pyx_n_s_x_train; -static PyObject *__pyx_n_s_xbar; -static PyObject *__pyx_n_s_y; -static PyObject *__pyx_n_s_y_fit; -static PyObject *__pyx_n_s_y_norm; -static PyObject *__pyx_n_s_y_test; -static PyObject *__pyx_n_s_y_train; -static PyObject *__pyx_kp_s_z; -static PyObject *__pyx_n_s_z_2; -static PyObject *__pyx_kp_s_z_3; -static PyObject *__pyx_kp_s_z_4; -static PyObject *__pyx_n_s_z_normalize; -static PyObject *__pyx_n_s_z_score; -static PyObject *__pyx_n_s_z_split; -static PyObject *__pyx_pf_8analysis__init_device(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_setting, PyObject *__pyx_v_arg); /* proto */ -static PyObject *__pyx_pf_8analysis_10c_entities_debug(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_8analysis_10c_entities_2__init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_names, PyObject *__pyx_v_ids, PyObject *__pyx_v_pos, PyObject *__pyx_v_properties, PyObject *__pyx_v_logic); /* proto */ -static PyObject *__pyx_pf_8analysis_10c_entities_4append(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_property, PyObject *__pyx_v_n_logic); /* proto */ -static PyObject *__pyx_pf_8analysis_10c_entities_6edit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_property, PyObject *__pyx_v_n_logic); /* proto */ -static PyObject *__pyx_pf_8analysis_10c_entities_8search(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search); /* proto */ -static PyObject *__pyx_pf_8analysis_10c_entities_10regurgitate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_8analysis_11nc_entities_debug(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_8analysis_11nc_entities_2__init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_names, PyObject *__pyx_v_ids, PyObject *__pyx_v_pos, PyObject *__pyx_v_properties, PyObject *__pyx_v_effects); /* proto */ -static PyObject *__pyx_pf_8analysis_11nc_entities_4append(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_property, PyObject *__pyx_v_n_effect); /* proto */ -static PyObject *__pyx_pf_8analysis_11nc_entities_6edit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_property, PyObject *__pyx_v_n_effect); /* proto */ -static PyObject *__pyx_pf_8analysis_11nc_entities_8search(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search); /* proto */ -static PyObject *__pyx_pf_8analysis_11nc_entities_10regurgitate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_8analysis_9obstacles_debug(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_8analysis_9obstacles_2__init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_names, PyObject *__pyx_v_ids, PyObject *__pyx_v_perims, PyObject *__pyx_v_effects); /* proto */ -static PyObject *__pyx_pf_8analysis_9obstacles_4append(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_perim, PyObject *__pyx_v_n_effect); /* proto */ -static PyObject *__pyx_pf_8analysis_9obstacles_6edit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_perim, PyObject *__pyx_v_n_effect); /* proto */ -static PyObject *__pyx_pf_8analysis_9obstacles_8search(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search); /* proto */ -static PyObject *__pyx_pf_8analysis_9obstacles_10regurgitate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_8analysis_10objectives_debug(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_8analysis_10objectives_2__init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_names, PyObject *__pyx_v_ids, PyObject *__pyx_v_pos, PyObject *__pyx_v_effects); /* proto */ -static PyObject *__pyx_pf_8analysis_10objectives_4append(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_effect); /* proto */ -static PyObject *__pyx_pf_8analysis_10objectives_6edit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_effect); /* proto */ -static PyObject *__pyx_pf_8analysis_10objectives_8search(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search); /* proto */ -static PyObject *__pyx_pf_8analysis_10objectives_10regurgitate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_8analysis_2load_csv(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filepath); /* proto */ -static PyObject *__pyx_pf_8analysis_4basic_stats(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_method, PyObject *__pyx_v_arg); /* proto */ -static PyObject *__pyx_pf_8analysis_6z_score(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_point, PyObject *__pyx_v_mean, PyObject *__pyx_v_stdev); /* proto */ -static PyObject *__pyx_pf_8analysis_8z_normalize(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_mode); /* proto */ -static PyObject *__pyx_pf_8analysis_10stdev_z_split(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_mean, PyObject *__pyx_v_stdev, PyObject *__pyx_v_delta, PyObject *__pyx_v_low_bound, PyObject *__pyx_v_high_bound); /* proto */ -static PyObject *__pyx_pf_8analysis_12histo_analysis(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_hist_data, PyObject *__pyx_v_delta, PyObject *__pyx_v_low_bound, PyObject *__pyx_v_high_bound); /* proto */ -static PyObject *__pyx_pf_8analysis_14poly_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_power); /* proto */ -static PyObject *__pyx_pf_8analysis_16log_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_base); /* proto */ -static PyObject *__pyx_pf_8analysis_18exp_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_base); /* proto */ -static PyObject *__pyx_pf_8analysis_15tanh_regression_tanh(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d); /* proto */ -static PyObject *__pyx_pf_8analysis_20tanh_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */ -static PyObject *__pyx_pf_8analysis_22r_squared(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_predictions, PyObject *__pyx_v_targets); /* proto */ -static PyObject *__pyx_pf_8analysis_24rms(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_predictions, PyObject *__pyx_v_targets); /* proto */ -static PyObject *__pyx_pf_8analysis_26calc_overfit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_equation, PyObject *__pyx_v_rms_train, PyObject *__pyx_v_r2_train, PyObject *__pyx_v_x_test, PyObject *__pyx_v_y_test); /* proto */ -static PyObject *__pyx_pf_8analysis_28strip_data(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_data, PyObject *__pyx_v_mode); /* proto */ -static PyObject *__pyx_pf_8analysis_30optimize_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v__range, PyObject *__pyx_v_resolution); /* proto */ -static PyObject *__pyx_pf_8analysis_32select_best_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_eqs, PyObject *__pyx_v_rmss, PyObject *__pyx_v_r2s, PyObject *__pyx_v_overfit, PyObject *__pyx_v_selector); /* proto */ -static PyObject *__pyx_pf_8analysis_34p_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */ -static PyObject *__pyx_pf_8analysis_36basic_analysis(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data); /* proto */ -static PyObject *__pyx_pf_8analysis_38benchmark(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */ -static PyObject *__pyx_pf_8analysis_40generate_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_low, PyObject *__pyx_v_high); /* proto */ -static PyObject *__pyx_pf_8analysis_4_sum_genexpr(PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_8analysis_42_sum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_start); /* proto */ -static PyObject *__pyx_pf_8analysis_44_isfinite(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x); /* proto */ -static PyObject *__pyx_pf_8analysis_46_coerce(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_T, PyObject *__pyx_v_S); /* proto */ -static PyObject *__pyx_pf_8analysis_48_exact_ratio(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x); /* proto */ -static PyObject *__pyx_pf_8analysis_50_convert(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value, PyObject *__pyx_v_T); /* proto */ -static PyObject *__pyx_pf_8analysis_52_counts(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data); /* proto */ -static PyObject *__pyx_pf_8analysis_54_find_lteq(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_a, PyObject *__pyx_v_x); /* proto */ -static PyObject *__pyx_pf_8analysis_56_find_rteq(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_a, PyObject *__pyx_v_l, PyObject *__pyx_v_x); /* proto */ -static PyObject *__pyx_pf_8analysis_58_fail_neg(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_values, PyObject *__pyx_v_errmsg); /* proto */ -static PyObject *__pyx_pf_8analysis_61mean(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data); /* proto */ -static PyObject *__pyx_pf_8analysis_63median(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data); /* proto */ -static PyObject *__pyx_pf_8analysis_65mode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data); /* proto */ -static PyObject *__pyx_pf_8analysis_3_ss_genexpr(PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_8analysis_3_ss_3genexpr(PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_8analysis_67_ss(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_c); /* proto */ -static PyObject *__pyx_pf_8analysis_69variance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_xbar); /* proto */ -static PyObject *__pyx_pf_8analysis_71stdev(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_xbar); /* proto */ -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct___sum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct_1_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct_2__fail_neg(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct_3__ss(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct_4_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct_5_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_get = {0, &__pyx_n_s_get, 0, 0, 0}; -static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items = {0, &__pyx_n_s_items, 0, 0, 0}; -static __Pyx_CachedCFunction __pyx_umethod_PyList_Type_remove = {0, &__pyx_n_s_remove, 0, 0, 0}; -static PyObject *__pyx_float_0_67449; -static PyObject *__pyx_float_neg_0_5; -static PyObject *__pyx_float_neg_0_67449; -static PyObject *__pyx_int_0; -static PyObject *__pyx_int_1; -static PyObject *__pyx_int_2; -static PyObject *__pyx_int_10; -static PyObject *__pyx_int_100; -static PyObject *__pyx_int_neg_1; -static PyObject *__pyx_int_neg_10; -static PyObject *__pyx_slice__4; -static PyObject *__pyx_tuple__3; -static PyObject *__pyx_tuple__11; -static PyObject *__pyx_tuple__18; -static PyObject *__pyx_tuple__19; -static PyObject *__pyx_tuple__21; -static PyObject *__pyx_tuple__23; -static PyObject *__pyx_tuple__25; -static PyObject *__pyx_tuple__27; -static PyObject *__pyx_tuple__29; -static PyObject *__pyx_tuple__31; -static PyObject *__pyx_tuple__33; -static PyObject *__pyx_tuple__35; -static PyObject *__pyx_tuple__37; -static PyObject *__pyx_tuple__39; -static PyObject *__pyx_tuple__41; -static PyObject *__pyx_tuple__43; -static PyObject *__pyx_tuple__45; -static PyObject *__pyx_tuple__47; -static PyObject *__pyx_tuple__49; -static PyObject *__pyx_tuple__51; -static PyObject *__pyx_tuple__53; -static PyObject *__pyx_tuple__55; -static PyObject *__pyx_tuple__57; -static PyObject *__pyx_tuple__59; -static PyObject *__pyx_tuple__61; -static PyObject *__pyx_tuple__63; -static PyObject *__pyx_tuple__65; -static PyObject *__pyx_tuple__67; -static PyObject *__pyx_tuple__69; -static PyObject *__pyx_tuple__71; -static PyObject *__pyx_tuple__73; -static PyObject *__pyx_tuple__75; -static PyObject *__pyx_tuple__77; -static PyObject *__pyx_tuple__79; -static PyObject *__pyx_tuple__81; -static PyObject *__pyx_tuple__83; -static PyObject *__pyx_tuple__85; -static PyObject *__pyx_tuple__87; -static PyObject *__pyx_tuple__89; -static PyObject *__pyx_tuple__91; -static PyObject *__pyx_tuple__93; -static PyObject *__pyx_tuple__95; -static PyObject *__pyx_tuple__97; -static PyObject *__pyx_tuple__99; -static PyObject *__pyx_tuple__101; -static PyObject *__pyx_tuple__103; -static PyObject *__pyx_tuple__105; -static PyObject *__pyx_tuple__107; -static PyObject *__pyx_tuple__109; -static PyObject *__pyx_tuple__110; -static PyObject *__pyx_tuple__112; -static PyObject *__pyx_tuple__113; -static PyObject *__pyx_tuple__115; -static PyObject *__pyx_tuple__117; -static PyObject *__pyx_tuple__119; -static PyObject *__pyx_tuple__121; -static PyObject *__pyx_tuple__123; -static PyObject *__pyx_tuple__125; -static PyObject *__pyx_tuple__127; -static PyObject *__pyx_tuple__128; -static PyObject *__pyx_tuple__129; -static PyObject *__pyx_tuple__131; -static PyObject *__pyx_tuple__133; -static PyObject *__pyx_tuple__135; -static PyObject *__pyx_tuple__137; -static PyObject *__pyx_tuple__138; -static PyObject *__pyx_tuple__140; -static PyObject *__pyx_tuple__141; -static PyObject *__pyx_tuple__143; -static PyObject *__pyx_codeobj__12; -static PyObject *__pyx_codeobj__16; -static PyObject *__pyx_codeobj__20; -static PyObject *__pyx_codeobj__22; -static PyObject *__pyx_codeobj__24; -static PyObject *__pyx_codeobj__26; -static PyObject *__pyx_codeobj__28; -static PyObject *__pyx_codeobj__30; -static PyObject *__pyx_codeobj__32; -static PyObject *__pyx_codeobj__34; -static PyObject *__pyx_codeobj__36; -static PyObject *__pyx_codeobj__38; -static PyObject *__pyx_codeobj__40; -static PyObject *__pyx_codeobj__42; -static PyObject *__pyx_codeobj__44; -static PyObject *__pyx_codeobj__46; -static PyObject *__pyx_codeobj__48; -static PyObject *__pyx_codeobj__50; -static PyObject *__pyx_codeobj__52; -static PyObject *__pyx_codeobj__54; -static PyObject *__pyx_codeobj__56; -static PyObject *__pyx_codeobj__58; -static PyObject *__pyx_codeobj__60; -static PyObject *__pyx_codeobj__62; -static PyObject *__pyx_codeobj__64; -static PyObject *__pyx_codeobj__66; -static PyObject *__pyx_codeobj__68; -static PyObject *__pyx_codeobj__70; -static PyObject *__pyx_codeobj__72; -static PyObject *__pyx_codeobj__74; -static PyObject *__pyx_codeobj__76; -static PyObject *__pyx_codeobj__78; -static PyObject *__pyx_codeobj__80; -static PyObject *__pyx_codeobj__82; -static PyObject *__pyx_codeobj__84; -static PyObject *__pyx_codeobj__86; -static PyObject *__pyx_codeobj__88; -static PyObject *__pyx_codeobj__90; -static PyObject *__pyx_codeobj__92; -static PyObject *__pyx_codeobj__94; -static PyObject *__pyx_codeobj__96; -static PyObject *__pyx_codeobj__98; -static PyObject *__pyx_codeobj__100; -static PyObject *__pyx_codeobj__102; -static PyObject *__pyx_codeobj__104; -static PyObject *__pyx_codeobj__106; -static PyObject *__pyx_codeobj__108; -static PyObject *__pyx_codeobj__111; -static PyObject *__pyx_codeobj__114; -static PyObject *__pyx_codeobj__116; -static PyObject *__pyx_codeobj__118; -static PyObject *__pyx_codeobj__120; -static PyObject *__pyx_codeobj__122; -static PyObject *__pyx_codeobj__124; -static PyObject *__pyx_codeobj__126; -static PyObject *__pyx_codeobj__130; -static PyObject *__pyx_codeobj__132; -static PyObject *__pyx_codeobj__134; -static PyObject *__pyx_codeobj__136; -static PyObject *__pyx_codeobj__139; -static PyObject *__pyx_codeobj__142; -/* Late includes */ - -/* "analysis.py":161 - * - * - * def _init_device(setting, arg): # initiates computation device for ANNs # <<<<<<<<<<<<<< - * if setting == "cuda": - * try: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_1_init_device(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_1_init_device = {"_init_device", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_1_init_device, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_1_init_device(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_setting = 0; - PyObject *__pyx_v_arg = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_init_device (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_setting,&__pyx_n_s_arg,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_setting)) != 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_arg)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("_init_device", 1, 2, 2, 1); __PYX_ERR(0, 161, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_init_device") < 0)) __PYX_ERR(0, 161, __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_setting = values[0]; - __pyx_v_arg = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_init_device", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 161, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis._init_device", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis__init_device(__pyx_self, __pyx_v_setting, __pyx_v_arg); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis__init_device(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_setting, PyObject *__pyx_v_arg) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - __Pyx_RefNannySetupContext("_init_device", 0); - - /* "analysis.py":162 - * - * def _init_device(setting, arg): # initiates computation device for ANNs - * if setting == "cuda": # <<<<<<<<<<<<<< - * try: - * return torch.device(setting + ":" + str(arg) if torch.cuda.is_available() else "cpu") - */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_setting, __pyx_n_s_cuda, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 162, __pyx_L1_error) - if (__pyx_t_1) { - - /* "analysis.py":163 - * def _init_device(setting, arg): # initiates computation device for ANNs - * if setting == "cuda": - * try: # <<<<<<<<<<<<<< - * return torch.device(setting + ":" + str(arg) if torch.cuda.is_available() else "cpu") - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_4); - /*try:*/ { - - /* "analysis.py":164 - * if setting == "cuda": - * try: - * return torch.device(setting + ":" + str(arg) if torch.cuda.is_available() else "cpu") # <<<<<<<<<<<<<< - * except: - * raise error("could not assign cuda or cpu") - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_torch); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 164, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_device); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 164, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_torch); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 164, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_cuda); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 164, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_is_available); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 164, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); - if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_9, function); - } - } - __pyx_t_8 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 164, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 164, __pyx_L4_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (__pyx_t_1) { - __pyx_t_8 = PyNumber_Add(__pyx_v_setting, __pyx_kp_s_); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 164, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_arg); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 164, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = PyNumber_Add(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 164, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_6 = __pyx_t_10; - __pyx_t_10 = 0; - } else { - __Pyx_INCREF(__pyx_n_s_cpu); - __pyx_t_6 = __pyx_n_s_cpu; - } - __pyx_t_10 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - } - } - __pyx_t_5 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_10, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 164, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L8_try_return; - - /* "analysis.py":163 - * def _init_device(setting, arg): # initiates computation device for ANNs - * if setting == "cuda": - * try: # <<<<<<<<<<<<<< - * return torch.device(setting + ":" + str(arg) if torch.cuda.is_available() else "cpu") - * except: - */ - } - __pyx_L4_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":165 - * try: - * return torch.device(setting + ":" + str(arg) if torch.cuda.is_available() else "cpu") - * except: # <<<<<<<<<<<<<< - * raise error("could not assign cuda or cpu") - * elif setting == "cpu": - */ - /*except:*/ { - __Pyx_AddTraceback("analysis._init_device", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(0, 165, __pyx_L6_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GOTREF(__pyx_t_6); - - /* "analysis.py":166 - * return torch.device(setting + ":" + str(arg) if torch.cuda.is_available() else "cpu") - * except: - * raise error("could not assign cuda or cpu") # <<<<<<<<<<<<<< - * elif setting == "cpu": - * try: - */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 166, __pyx_L6_except_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_9, function); - } - } - __pyx_t_10 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_8, __pyx_kp_s_could_not_assign_cuda_or_cpu) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_kp_s_could_not_assign_cuda_or_cpu); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 166, __pyx_L6_except_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_Raise(__pyx_t_10, 0, 0, 0); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __PYX_ERR(0, 166, __pyx_L6_except_error) - } - __pyx_L6_except_error:; - - /* "analysis.py":163 - * def _init_device(setting, arg): # initiates computation device for ANNs - * if setting == "cuda": - * try: # <<<<<<<<<<<<<< - * return torch.device(setting + ":" + str(arg) if torch.cuda.is_available() else "cpu") - * except: - */ - __Pyx_XGIVEREF(__pyx_t_2); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_XGIVEREF(__pyx_t_4); - __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); - goto __pyx_L1_error; - __pyx_L8_try_return:; - __Pyx_XGIVEREF(__pyx_t_2); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_XGIVEREF(__pyx_t_4); - __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); - goto __pyx_L0; - } - - /* "analysis.py":162 - * - * def _init_device(setting, arg): # initiates computation device for ANNs - * if setting == "cuda": # <<<<<<<<<<<<<< - * try: - * return torch.device(setting + ":" + str(arg) if torch.cuda.is_available() else "cpu") - */ - } - - /* "analysis.py":167 - * except: - * raise error("could not assign cuda or cpu") - * elif setting == "cpu": # <<<<<<<<<<<<<< - * try: - * return torch.device("cpu") - */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_setting, __pyx_n_s_cpu, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 167, __pyx_L1_error) - if (likely(__pyx_t_1)) { - - /* "analysis.py":168 - * raise error("could not assign cuda or cpu") - * elif setting == "cpu": - * try: # <<<<<<<<<<<<<< - * return torch.device("cpu") - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_3, &__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_2); - /*try:*/ { - - /* "analysis.py":169 - * elif setting == "cpu": - * try: - * return torch.device("cpu") # <<<<<<<<<<<<<< - * except: - * raise error("could not assign cpu") - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_torch); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 169, __pyx_L12_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_device); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 169, __pyx_L12_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_n_s_cpu) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_cpu); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 169, __pyx_L12_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_r = __pyx_t_6; - __pyx_t_6 = 0; - goto __pyx_L16_try_return; - - /* "analysis.py":168 - * raise error("could not assign cuda or cpu") - * elif setting == "cpu": - * try: # <<<<<<<<<<<<<< - * return torch.device("cpu") - * except: - */ - } - __pyx_L12_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":170 - * try: - * return torch.device("cpu") - * except: # <<<<<<<<<<<<<< - * raise error("could not assign cpu") - * else: - */ - /*except:*/ { - __Pyx_AddTraceback("analysis._init_device", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_7) < 0) __PYX_ERR(0, 170, __pyx_L14_except_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_7); - - /* "analysis.py":171 - * return torch.device("cpu") - * except: - * raise error("could not assign cpu") # <<<<<<<<<<<<<< - * else: - * raise error("specified device does not exist") - */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 171, __pyx_L14_except_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_9, function); - } - } - __pyx_t_10 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_8, __pyx_kp_s_could_not_assign_cpu) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_kp_s_could_not_assign_cpu); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 171, __pyx_L14_except_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_Raise(__pyx_t_10, 0, 0, 0); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __PYX_ERR(0, 171, __pyx_L14_except_error) - } - __pyx_L14_except_error:; - - /* "analysis.py":168 - * raise error("could not assign cuda or cpu") - * elif setting == "cpu": - * try: # <<<<<<<<<<<<<< - * return torch.device("cpu") - * except: - */ - __Pyx_XGIVEREF(__pyx_t_4); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_XGIVEREF(__pyx_t_2); - __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2); - goto __pyx_L1_error; - __pyx_L16_try_return:; - __Pyx_XGIVEREF(__pyx_t_4); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_XGIVEREF(__pyx_t_2); - __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2); - goto __pyx_L0; - } - - /* "analysis.py":167 - * except: - * raise error("could not assign cuda or cpu") - * elif setting == "cpu": # <<<<<<<<<<<<<< - * try: - * return torch.device("cpu") - */ - } - - /* "analysis.py":173 - * raise error("could not assign cpu") - * else: - * raise error("specified device does not exist") # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_7 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_kp_s_specified_device_does_not_exist) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_s_specified_device_does_not_exist); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_Raise(__pyx_t_7, 0, 0, 0); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 173, __pyx_L1_error) - } - - /* "analysis.py":161 - * - * - * def _init_device(setting, arg): # initiates computation device for ANNs # <<<<<<<<<<<<<< - * if setting == "cuda": - * try: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("analysis._init_device", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":184 - * c_logic = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("c_entities has attributes names, ids, positions, properties, and logic. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, nd array of properties, and nd array of logic") - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10c_entities_1debug(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10c_entities_1debug = {"debug", (PyCFunction)__pyx_pw_8analysis_10c_entities_1debug, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_10c_entities_1debug(PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("debug (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_10c_entities_debug(__pyx_self, ((PyObject *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10c_entities_debug(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - 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; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - __Pyx_RefNannySetupContext("debug", 0); - - /* "analysis.py":185 - * - * def debug(self): - * print("c_entities has attributes names, ids, positions, properties, and logic. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, nd array of properties, and nd array of logic") # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - * - */ - if (__Pyx_PrintOne(0, __pyx_kp_s_c_entities_has_attributes_names) < 0) __PYX_ERR(0, 185, __pyx_L1_error) - - /* "analysis.py":186 - * def debug(self): - * print("c_entities has attributes names, ids, positions, properties, and logic. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, nd array of properties, and nd array of logic") - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] # <<<<<<<<<<<<<< - * - * def __init__(self, names, ids, pos, properties, logic): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_properties); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_logic); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyList_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_1); - PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - PyList_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_4); - PyList_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); - __Pyx_GIVEREF(__pyx_t_5); - PyList_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_r = __pyx_t_6; - __pyx_t_6 = 0; - goto __pyx_L0; - - /* "analysis.py":184 - * c_logic = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("c_entities has attributes names, ids, positions, properties, and logic. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, nd array of properties, and nd array of logic") - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("analysis.c_entities.debug", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":188 - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - * - * def __init__(self, names, ids, pos, properties, logic): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10c_entities_3__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10c_entities_3__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_10c_entities_3__init__, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_10c_entities_3__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_names = 0; - PyObject *__pyx_v_ids = 0; - PyObject *__pyx_v_pos = 0; - PyObject *__pyx_v_properties = 0; - PyObject *__pyx_v_logic = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_names,&__pyx_n_s_ids,&__pyx_n_s_pos,&__pyx_n_s_properties,&__pyx_n_s_logic,0}; - PyObject* values[6] = {0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_names)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 1); __PYX_ERR(0, 188, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ids)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 2); __PYX_ERR(0, 188, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pos)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 3); __PYX_ERR(0, 188, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_properties)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 4); __PYX_ERR(0, 188, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_logic)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 5); __PYX_ERR(0, 188, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 188, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - } - __pyx_v_self = values[0]; - __pyx_v_names = values[1]; - __pyx_v_ids = values[2]; - __pyx_v_pos = values[3]; - __pyx_v_properties = values[4]; - __pyx_v_logic = values[5]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 188, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.c_entities.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_10c_entities_2__init__(__pyx_self, __pyx_v_self, __pyx_v_names, __pyx_v_ids, __pyx_v_pos, __pyx_v_properties, __pyx_v_logic); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10c_entities_2__init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_names, PyObject *__pyx_v_ids, PyObject *__pyx_v_pos, PyObject *__pyx_v_properties, PyObject *__pyx_v_logic) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__", 0); - - /* "analysis.py":189 - * - * def __init__(self, names, ids, pos, properties, logic): - * self.c_names = names # <<<<<<<<<<<<<< - * self.c_ids = ids - * self.c_pos = pos - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_names, __pyx_v_names) < 0) __PYX_ERR(0, 189, __pyx_L1_error) - - /* "analysis.py":190 - * def __init__(self, names, ids, pos, properties, logic): - * self.c_names = names - * self.c_ids = ids # <<<<<<<<<<<<<< - * self.c_pos = pos - * self.c_properties = properties - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_ids, __pyx_v_ids) < 0) __PYX_ERR(0, 190, __pyx_L1_error) - - /* "analysis.py":191 - * self.c_names = names - * self.c_ids = ids - * self.c_pos = pos # <<<<<<<<<<<<<< - * self.c_properties = properties - * self.c_logic = logic - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_pos, __pyx_v_pos) < 0) __PYX_ERR(0, 191, __pyx_L1_error) - - /* "analysis.py":192 - * self.c_ids = ids - * self.c_pos = pos - * self.c_properties = properties # <<<<<<<<<<<<<< - * self.c_logic = logic - * return None - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_properties, __pyx_v_properties) < 0) __PYX_ERR(0, 192, __pyx_L1_error) - - /* "analysis.py":193 - * self.c_pos = pos - * self.c_properties = properties - * self.c_logic = logic # <<<<<<<<<<<<<< - * return None - * - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_logic, __pyx_v_logic) < 0) __PYX_ERR(0, 193, __pyx_L1_error) - - /* "analysis.py":194 - * self.c_properties = properties - * self.c_logic = logic - * return None # <<<<<<<<<<<<<< - * - * def append(self, n_name, n_id, n_pos, n_property, n_logic): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":188 - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - * - * def __init__(self, names, ids, pos, properties, logic): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("analysis.c_entities.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":196 - * return None - * - * def append(self, n_name, n_id, n_pos, n_property, n_logic): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10c_entities_5append(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10c_entities_5append = {"append", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_10c_entities_5append, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_10c_entities_5append(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_n_name = 0; - PyObject *__pyx_v_n_id = 0; - PyObject *__pyx_v_n_pos = 0; - PyObject *__pyx_v_n_property = 0; - PyObject *__pyx_v_n_logic = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("append (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_n_name,&__pyx_n_s_n_id,&__pyx_n_s_n_pos,&__pyx_n_s_n_property,&__pyx_n_s_n_logic,0}; - PyObject* values[6] = {0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_n_name)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, 1); __PYX_ERR(0, 196, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_id)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, 2); __PYX_ERR(0, 196, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_pos)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, 3); __PYX_ERR(0, 196, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_property)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, 4); __PYX_ERR(0, 196, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_logic)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, 5); __PYX_ERR(0, 196, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "append") < 0)) __PYX_ERR(0, 196, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - } - __pyx_v_self = values[0]; - __pyx_v_n_name = values[1]; - __pyx_v_n_id = values[2]; - __pyx_v_n_pos = values[3]; - __pyx_v_n_property = values[4]; - __pyx_v_n_logic = values[5]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 196, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.c_entities.append", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_10c_entities_4append(__pyx_self, __pyx_v_self, __pyx_v_n_name, __pyx_v_n_id, __pyx_v_n_pos, __pyx_v_n_property, __pyx_v_n_logic); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10c_entities_4append(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_property, PyObject *__pyx_v_n_logic) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - __Pyx_RefNannySetupContext("append", 0); - - /* "analysis.py":197 - * - * def append(self, n_name, n_id, n_pos, n_property, n_logic): - * self.c_names.append(n_name) # <<<<<<<<<<<<<< - * self.c_ids.append(n_id) - * self.c_pos.append(n_pos) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_name); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 197, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":198 - * def append(self, n_name, n_id, n_pos, n_property, n_logic): - * self.c_names.append(n_name) - * self.c_ids.append(n_id) # <<<<<<<<<<<<<< - * self.c_pos.append(n_pos) - * self.c_properties.append(n_property) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_id); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 198, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":199 - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - * self.c_pos.append(n_pos) # <<<<<<<<<<<<<< - * self.c_properties.append(n_property) - * self.c_logic.append(n_logic) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_pos); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 199, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":200 - * self.c_ids.append(n_id) - * self.c_pos.append(n_pos) - * self.c_properties.append(n_property) # <<<<<<<<<<<<<< - * self.c_logic.append(n_logic) - * return None - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_properties); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_property); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 200, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":201 - * self.c_pos.append(n_pos) - * self.c_properties.append(n_property) - * self.c_logic.append(n_logic) # <<<<<<<<<<<<<< - * return None - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_logic); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_logic); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 201, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":202 - * self.c_properties.append(n_property) - * self.c_logic.append(n_logic) - * return None # <<<<<<<<<<<<<< - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_logic): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":196 - * return None - * - * def append(self, n_name, n_id, n_pos, n_property, n_logic): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("analysis.c_entities.append", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":204 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_logic): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10c_entities_7edit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10c_entities_7edit = {"edit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_10c_entities_7edit, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_10c_entities_7edit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_search = 0; - PyObject *__pyx_v_n_name = 0; - PyObject *__pyx_v_n_id = 0; - PyObject *__pyx_v_n_pos = 0; - PyObject *__pyx_v_n_property = 0; - PyObject *__pyx_v_n_logic = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("edit (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_search,&__pyx_n_s_n_name,&__pyx_n_s_n_id,&__pyx_n_s_n_pos,&__pyx_n_s_n_property,&__pyx_n_s_n_logic,0}; - PyObject* values[7] = {0,0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_search)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 1); __PYX_ERR(0, 204, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_name)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 2); __PYX_ERR(0, 204, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_id)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 3); __PYX_ERR(0, 204, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_pos)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 4); __PYX_ERR(0, 204, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_property)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 5); __PYX_ERR(0, 204, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_logic)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 6); __PYX_ERR(0, 204, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "edit") < 0)) __PYX_ERR(0, 204, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - } - __pyx_v_self = values[0]; - __pyx_v_search = values[1]; - __pyx_v_n_name = values[2]; - __pyx_v_n_id = values[3]; - __pyx_v_n_pos = values[4]; - __pyx_v_n_property = values[5]; - __pyx_v_n_logic = values[6]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 204, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.c_entities.edit", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_10c_entities_6edit(__pyx_self, __pyx_v_self, __pyx_v_search, __pyx_v_n_name, __pyx_v_n_id, __pyx_v_n_pos, __pyx_v_n_property, __pyx_v_n_logic); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10c_entities_6edit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_property, PyObject *__pyx_v_n_logic) { - Py_ssize_t __pyx_v_position; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - __Pyx_RefNannySetupContext("edit", 0); - - /* "analysis.py":205 - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_logic): - * position = 0 # <<<<<<<<<<<<<< - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - */ - __pyx_v_position = 0; - - /* "analysis.py":206 - * def edit(self, search, n_name, n_id, n_pos, n_property, n_logic): - * position = 0 - * for i in range(0, len(self.c_ids), 1): # <<<<<<<<<<<<<< - * if self.c_ids[i] == search: - * position = i - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 206, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 206, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":207 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * if n_name != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_v_search, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 207, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 207, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_6) { - - /* "analysis.py":208 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - * position = i # <<<<<<<<<<<<<< - * if n_name != "null": - * self.c_names[position] = n_name - */ - __pyx_v_position = __pyx_v_i; - - /* "analysis.py":207 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * if n_name != "null": - */ - } - } - - /* "analysis.py":209 - * if self.c_ids[i] == search: - * position = i - * if n_name != "null": # <<<<<<<<<<<<<< - * self.c_names[position] = n_name - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_name, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 209, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":210 - * position = i - * if n_name != "null": - * self.c_names[position] = n_name # <<<<<<<<<<<<<< - * - * if n_id != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_name, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 210, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":209 - * if self.c_ids[i] == search: - * position = i - * if n_name != "null": # <<<<<<<<<<<<<< - * self.c_names[position] = n_name - * - */ - } - - /* "analysis.py":212 - * self.c_names[position] = n_name - * - * if n_id != "null": # <<<<<<<<<<<<<< - * self.c_ids[position] = n_id - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_id, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 212, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":213 - * - * if n_id != "null": - * self.c_ids[position] = n_id # <<<<<<<<<<<<<< - * - * if n_pos != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 213, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 213, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":212 - * self.c_names[position] = n_name - * - * if n_id != "null": # <<<<<<<<<<<<<< - * self.c_ids[position] = n_id - * - */ - } - - /* "analysis.py":215 - * self.c_ids[position] = n_id - * - * if n_pos != "null": # <<<<<<<<<<<<<< - * self.c_pos[position] = n_pos - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_pos, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 215, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":216 - * - * if n_pos != "null": - * self.c_pos[position] = n_pos # <<<<<<<<<<<<<< - * - * if n_property != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_pos, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 216, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":215 - * self.c_ids[position] = n_id - * - * if n_pos != "null": # <<<<<<<<<<<<<< - * self.c_pos[position] = n_pos - * - */ - } - - /* "analysis.py":218 - * self.c_pos[position] = n_pos - * - * if n_property != "null": # <<<<<<<<<<<<<< - * self.c_properties[position] = n_property - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_property, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 218, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":219 - * - * if n_property != "null": - * self.c_properties[position] = n_property # <<<<<<<<<<<<<< - * - * if n_logic != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_properties); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 219, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_property, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 219, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":218 - * self.c_pos[position] = n_pos - * - * if n_property != "null": # <<<<<<<<<<<<<< - * self.c_properties[position] = n_property - * - */ - } - - /* "analysis.py":221 - * self.c_properties[position] = n_property - * - * if n_logic != "null": # <<<<<<<<<<<<<< - * self.c_logic[position] = n_logic - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_logic, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 221, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":222 - * - * if n_logic != "null": - * self.c_logic[position] = n_logic # <<<<<<<<<<<<<< - * - * return None - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_logic); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_logic, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 222, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":221 - * self.c_properties[position] = n_property - * - * if n_logic != "null": # <<<<<<<<<<<<<< - * self.c_logic[position] = n_logic - * - */ - } - - /* "analysis.py":224 - * self.c_logic[position] = n_logic - * - * return None # <<<<<<<<<<<<<< - * - * def search(self, search): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":204 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_logic): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("analysis.c_entities.edit", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":226 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10c_entities_9search(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10c_entities_9search = {"search", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_10c_entities_9search, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_10c_entities_9search(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_search = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("search (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_search,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_self)) != 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_search)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("search", 1, 2, 2, 1); __PYX_ERR(0, 226, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "search") < 0)) __PYX_ERR(0, 226, __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_self = values[0]; - __pyx_v_search = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("search", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 226, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.c_entities.search", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_10c_entities_8search(__pyx_self, __pyx_v_self, __pyx_v_search); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10c_entities_8search(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search) { - Py_ssize_t __pyx_v_position; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - __Pyx_RefNannySetupContext("search", 0); - - /* "analysis.py":227 - * - * def search(self, search): - * position = 0 # <<<<<<<<<<<<<< - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - */ - __pyx_v_position = 0; - - /* "analysis.py":228 - * def search(self, search): - * position = 0 - * for i in range(0, len(self.c_ids), 1): # <<<<<<<<<<<<<< - * if self.c_ids[i] == search: - * position = i - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 228, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":229 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_v_search, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 229, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_6) { - - /* "analysis.py":230 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - * position = i # <<<<<<<<<<<<<< - * - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_logic[position]] - */ - __pyx_v_position = __pyx_v_i; - - /* "analysis.py":229 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - } - } - - /* "analysis.py":232 - * position = i - * - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_logic[position]] # <<<<<<<<<<<<<< - * - * def regurgitate(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_properties); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_logic); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_5); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); - __Pyx_GIVEREF(__pyx_t_7); - PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_8); - PyList_SET_ITEM(__pyx_t_1, 2, __pyx_t_8); - __Pyx_GIVEREF(__pyx_t_9); - PyList_SET_ITEM(__pyx_t_1, 3, __pyx_t_9); - __Pyx_GIVEREF(__pyx_t_10); - PyList_SET_ITEM(__pyx_t_1, 4, __pyx_t_10); - __pyx_t_5 = 0; - __pyx_t_7 = 0; - __pyx_t_8 = 0; - __pyx_t_9 = 0; - __pyx_t_10 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":226 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("analysis.c_entities.search", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":234 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_logic[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10c_entities_11regurgitate(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10c_entities_11regurgitate = {"regurgitate", (PyCFunction)__pyx_pw_8analysis_10c_entities_11regurgitate, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_10c_entities_11regurgitate(PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("regurgitate (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_10c_entities_10regurgitate(__pyx_self, ((PyObject *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10c_entities_10regurgitate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - 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; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - __Pyx_RefNannySetupContext("regurgitate", 0); - - /* "analysis.py":235 - * - * def regurgitate(self): - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_properties); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_logic); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyList_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_1); - PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - PyList_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_4); - PyList_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); - __Pyx_GIVEREF(__pyx_t_5); - PyList_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_r = __pyx_t_6; - __pyx_t_6 = 0; - goto __pyx_L0; - - /* "analysis.py":234 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_logic[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - * - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("analysis.c_entities.regurgitate", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":246 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("nc_entities (non-controlable entities) has attributes names, ids, positions, properties, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, 2d array of properties, and 2d array of effects.") - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_11nc_entities_1debug(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_11nc_entities_1debug = {"debug", (PyCFunction)__pyx_pw_8analysis_11nc_entities_1debug, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_11nc_entities_1debug(PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("debug (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_11nc_entities_debug(__pyx_self, ((PyObject *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_11nc_entities_debug(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - 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; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - __Pyx_RefNannySetupContext("debug", 0); - - /* "analysis.py":247 - * - * def debug(self): - * print("nc_entities (non-controlable entities) has attributes names, ids, positions, properties, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, 2d array of properties, and 2d array of effects.") # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - * - */ - if (__Pyx_PrintOne(0, __pyx_kp_s_nc_entities_non_controlable_enti) < 0) __PYX_ERR(0, 247, __pyx_L1_error) - - /* "analysis.py":248 - * def debug(self): - * print("nc_entities (non-controlable entities) has attributes names, ids, positions, properties, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, 2d array of properties, and 2d array of effects.") - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] # <<<<<<<<<<<<<< - * - * def __init__(self, names, ids, pos, properties, effects): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_properties); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyList_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_1); - PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - PyList_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_4); - PyList_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); - __Pyx_GIVEREF(__pyx_t_5); - PyList_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_r = __pyx_t_6; - __pyx_t_6 = 0; - goto __pyx_L0; - - /* "analysis.py":246 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("nc_entities (non-controlable entities) has attributes names, ids, positions, properties, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, 2d array of properties, and 2d array of effects.") - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("analysis.nc_entities.debug", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":250 - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - * - * def __init__(self, names, ids, pos, properties, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_11nc_entities_3__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_11nc_entities_3__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_11nc_entities_3__init__, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_11nc_entities_3__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_names = 0; - PyObject *__pyx_v_ids = 0; - PyObject *__pyx_v_pos = 0; - PyObject *__pyx_v_properties = 0; - PyObject *__pyx_v_effects = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_names,&__pyx_n_s_ids,&__pyx_n_s_pos,&__pyx_n_s_properties,&__pyx_n_s_effects,0}; - PyObject* values[6] = {0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_names)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 1); __PYX_ERR(0, 250, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ids)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 2); __PYX_ERR(0, 250, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pos)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 3); __PYX_ERR(0, 250, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_properties)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 4); __PYX_ERR(0, 250, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_effects)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 5); __PYX_ERR(0, 250, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 250, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - } - __pyx_v_self = values[0]; - __pyx_v_names = values[1]; - __pyx_v_ids = values[2]; - __pyx_v_pos = values[3]; - __pyx_v_properties = values[4]; - __pyx_v_effects = values[5]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 250, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.nc_entities.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_11nc_entities_2__init__(__pyx_self, __pyx_v_self, __pyx_v_names, __pyx_v_ids, __pyx_v_pos, __pyx_v_properties, __pyx_v_effects); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_11nc_entities_2__init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_names, PyObject *__pyx_v_ids, PyObject *__pyx_v_pos, PyObject *__pyx_v_properties, PyObject *__pyx_v_effects) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__", 0); - - /* "analysis.py":251 - * - * def __init__(self, names, ids, pos, properties, effects): - * self.c_names = names # <<<<<<<<<<<<<< - * self.c_ids = ids - * self.c_pos = pos - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_names, __pyx_v_names) < 0) __PYX_ERR(0, 251, __pyx_L1_error) - - /* "analysis.py":252 - * def __init__(self, names, ids, pos, properties, effects): - * self.c_names = names - * self.c_ids = ids # <<<<<<<<<<<<<< - * self.c_pos = pos - * self.c_properties = properties - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_ids, __pyx_v_ids) < 0) __PYX_ERR(0, 252, __pyx_L1_error) - - /* "analysis.py":253 - * self.c_names = names - * self.c_ids = ids - * self.c_pos = pos # <<<<<<<<<<<<<< - * self.c_properties = properties - * self.c_effects = effects - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_pos, __pyx_v_pos) < 0) __PYX_ERR(0, 253, __pyx_L1_error) - - /* "analysis.py":254 - * self.c_ids = ids - * self.c_pos = pos - * self.c_properties = properties # <<<<<<<<<<<<<< - * self.c_effects = effects - * return None - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_properties, __pyx_v_properties) < 0) __PYX_ERR(0, 254, __pyx_L1_error) - - /* "analysis.py":255 - * self.c_pos = pos - * self.c_properties = properties - * self.c_effects = effects # <<<<<<<<<<<<<< - * return None - * - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_effects, __pyx_v_effects) < 0) __PYX_ERR(0, 255, __pyx_L1_error) - - /* "analysis.py":256 - * self.c_properties = properties - * self.c_effects = effects - * return None # <<<<<<<<<<<<<< - * - * def append(self, n_name, n_id, n_pos, n_property, n_effect): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":250 - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - * - * def __init__(self, names, ids, pos, properties, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("analysis.nc_entities.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":258 - * return None - * - * def append(self, n_name, n_id, n_pos, n_property, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_11nc_entities_5append(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_11nc_entities_5append = {"append", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_11nc_entities_5append, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_11nc_entities_5append(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_n_name = 0; - PyObject *__pyx_v_n_id = 0; - PyObject *__pyx_v_n_pos = 0; - PyObject *__pyx_v_n_property = 0; - PyObject *__pyx_v_n_effect = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("append (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_n_name,&__pyx_n_s_n_id,&__pyx_n_s_n_pos,&__pyx_n_s_n_property,&__pyx_n_s_n_effect,0}; - PyObject* values[6] = {0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_n_name)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, 1); __PYX_ERR(0, 258, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_id)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, 2); __PYX_ERR(0, 258, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_pos)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, 3); __PYX_ERR(0, 258, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_property)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, 4); __PYX_ERR(0, 258, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_effect)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, 5); __PYX_ERR(0, 258, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "append") < 0)) __PYX_ERR(0, 258, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - } - __pyx_v_self = values[0]; - __pyx_v_n_name = values[1]; - __pyx_v_n_id = values[2]; - __pyx_v_n_pos = values[3]; - __pyx_v_n_property = values[4]; - __pyx_v_n_effect = values[5]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("append", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 258, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.nc_entities.append", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_11nc_entities_4append(__pyx_self, __pyx_v_self, __pyx_v_n_name, __pyx_v_n_id, __pyx_v_n_pos, __pyx_v_n_property, __pyx_v_n_effect); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_11nc_entities_4append(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_property, PyObject *__pyx_v_n_effect) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - __Pyx_RefNannySetupContext("append", 0); - - /* "analysis.py":259 - * - * def append(self, n_name, n_id, n_pos, n_property, n_effect): - * self.c_names.append(n_name) # <<<<<<<<<<<<<< - * self.c_ids.append(n_id) - * self.c_pos.append(n_pos) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 259, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_name); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 259, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":260 - * def append(self, n_name, n_id, n_pos, n_property, n_effect): - * self.c_names.append(n_name) - * self.c_ids.append(n_id) # <<<<<<<<<<<<<< - * self.c_pos.append(n_pos) - * self.c_properties.append(n_property) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_id); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 260, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":261 - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - * self.c_pos.append(n_pos) # <<<<<<<<<<<<<< - * self.c_properties.append(n_property) - * self.c_effects.append(n_effect) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 261, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_pos); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 261, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":262 - * self.c_ids.append(n_id) - * self.c_pos.append(n_pos) - * self.c_properties.append(n_property) # <<<<<<<<<<<<<< - * self.c_effects.append(n_effect) - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_properties); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_property); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 262, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":263 - * self.c_pos.append(n_pos) - * self.c_properties.append(n_property) - * self.c_effects.append(n_effect) # <<<<<<<<<<<<<< - * - * return None - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_effect); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 263, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":265 - * self.c_effects.append(n_effect) - * - * return None # <<<<<<<<<<<<<< - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_effect): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":258 - * return None - * - * def append(self, n_name, n_id, n_pos, n_property, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("analysis.nc_entities.append", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":267 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_11nc_entities_7edit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_11nc_entities_7edit = {"edit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_11nc_entities_7edit, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_11nc_entities_7edit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_search = 0; - PyObject *__pyx_v_n_name = 0; - PyObject *__pyx_v_n_id = 0; - PyObject *__pyx_v_n_pos = 0; - PyObject *__pyx_v_n_property = 0; - PyObject *__pyx_v_n_effect = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("edit (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_search,&__pyx_n_s_n_name,&__pyx_n_s_n_id,&__pyx_n_s_n_pos,&__pyx_n_s_n_property,&__pyx_n_s_n_effect,0}; - PyObject* values[7] = {0,0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_search)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 1); __PYX_ERR(0, 267, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_name)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 2); __PYX_ERR(0, 267, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_id)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 3); __PYX_ERR(0, 267, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_pos)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 4); __PYX_ERR(0, 267, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_property)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 5); __PYX_ERR(0, 267, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_effect)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, 6); __PYX_ERR(0, 267, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "edit") < 0)) __PYX_ERR(0, 267, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - values[6] = PyTuple_GET_ITEM(__pyx_args, 6); - } - __pyx_v_self = values[0]; - __pyx_v_search = values[1]; - __pyx_v_n_name = values[2]; - __pyx_v_n_id = values[3]; - __pyx_v_n_pos = values[4]; - __pyx_v_n_property = values[5]; - __pyx_v_n_effect = values[6]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("edit", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 267, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.nc_entities.edit", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_11nc_entities_6edit(__pyx_self, __pyx_v_self, __pyx_v_search, __pyx_v_n_name, __pyx_v_n_id, __pyx_v_n_pos, __pyx_v_n_property, __pyx_v_n_effect); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_11nc_entities_6edit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_property, PyObject *__pyx_v_n_effect) { - Py_ssize_t __pyx_v_position; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - __Pyx_RefNannySetupContext("edit", 0); - - /* "analysis.py":268 - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_effect): - * position = 0 # <<<<<<<<<<<<<< - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - */ - __pyx_v_position = 0; - - /* "analysis.py":269 - * def edit(self, search, n_name, n_id, n_pos, n_property, n_effect): - * position = 0 - * for i in range(0, len(self.c_ids), 1): # <<<<<<<<<<<<<< - * if self.c_ids[i] == search: - * position = i - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 269, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":270 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * if n_name != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 270, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 270, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_v_search, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 270, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 270, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_6) { - - /* "analysis.py":271 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - * position = i # <<<<<<<<<<<<<< - * if n_name != "null": - * self.c_names[position] = n_name - */ - __pyx_v_position = __pyx_v_i; - - /* "analysis.py":270 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * if n_name != "null": - */ - } - } - - /* "analysis.py":272 - * if self.c_ids[i] == search: - * position = i - * if n_name != "null": # <<<<<<<<<<<<<< - * self.c_names[position] = n_name - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_name, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 272, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":273 - * position = i - * if n_name != "null": - * self.c_names[position] = n_name # <<<<<<<<<<<<<< - * - * if n_id != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_name, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 273, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":272 - * if self.c_ids[i] == search: - * position = i - * if n_name != "null": # <<<<<<<<<<<<<< - * self.c_names[position] = n_name - * - */ - } - - /* "analysis.py":275 - * self.c_names[position] = n_name - * - * if n_id != "null": # <<<<<<<<<<<<<< - * self.c_ids[position] = n_id - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_id, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 275, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":276 - * - * if n_id != "null": - * self.c_ids[position] = n_id # <<<<<<<<<<<<<< - * - * if n_pos != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 276, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":275 - * self.c_names[position] = n_name - * - * if n_id != "null": # <<<<<<<<<<<<<< - * self.c_ids[position] = n_id - * - */ - } - - /* "analysis.py":278 - * self.c_ids[position] = n_id - * - * if n_pos != "null": # <<<<<<<<<<<<<< - * self.c_pos[position] = n_pos - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_pos, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 278, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":279 - * - * if n_pos != "null": - * self.c_pos[position] = n_pos # <<<<<<<<<<<<<< - * - * if n_property != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 279, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_pos, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 279, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":278 - * self.c_ids[position] = n_id - * - * if n_pos != "null": # <<<<<<<<<<<<<< - * self.c_pos[position] = n_pos - * - */ - } - - /* "analysis.py":281 - * self.c_pos[position] = n_pos - * - * if n_property != "null": # <<<<<<<<<<<<<< - * self.c_properties[position] = n_property - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_property, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 281, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":282 - * - * if n_property != "null": - * self.c_properties[position] = n_property # <<<<<<<<<<<<<< - * - * if n_effect != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_properties); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_property, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 282, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":281 - * self.c_pos[position] = n_pos - * - * if n_property != "null": # <<<<<<<<<<<<<< - * self.c_properties[position] = n_property - * - */ - } - - /* "analysis.py":284 - * self.c_properties[position] = n_property - * - * if n_effect != "null": # <<<<<<<<<<<<<< - * self.c_effects[position] = n_effect - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_effect, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 284, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":285 - * - * if n_effect != "null": - * self.c_effects[position] = n_effect # <<<<<<<<<<<<<< - * - * return None - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 285, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_effect, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 285, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":284 - * self.c_properties[position] = n_property - * - * if n_effect != "null": # <<<<<<<<<<<<<< - * self.c_effects[position] = n_effect - * - */ - } - - /* "analysis.py":287 - * self.c_effects[position] = n_effect - * - * return None # <<<<<<<<<<<<<< - * - * def search(self, search): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":267 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("analysis.nc_entities.edit", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":289 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_11nc_entities_9search(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_11nc_entities_9search = {"search", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_11nc_entities_9search, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_11nc_entities_9search(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_search = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("search (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_search,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_self)) != 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_search)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("search", 1, 2, 2, 1); __PYX_ERR(0, 289, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "search") < 0)) __PYX_ERR(0, 289, __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_self = values[0]; - __pyx_v_search = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("search", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 289, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.nc_entities.search", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_11nc_entities_8search(__pyx_self, __pyx_v_self, __pyx_v_search); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_11nc_entities_8search(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search) { - Py_ssize_t __pyx_v_position; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - __Pyx_RefNannySetupContext("search", 0); - - /* "analysis.py":290 - * - * def search(self, search): - * position = 0 # <<<<<<<<<<<<<< - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - */ - __pyx_v_position = 0; - - /* "analysis.py":291 - * def search(self, search): - * position = 0 - * for i in range(0, len(self.c_ids), 1): # <<<<<<<<<<<<<< - * if self.c_ids[i] == search: - * position = i - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 291, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":292 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_v_search, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 292, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_6) { - - /* "analysis.py":293 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - * position = i # <<<<<<<<<<<<<< - * - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_effects[position]] - */ - __pyx_v_position = __pyx_v_i; - - /* "analysis.py":292 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - } - } - - /* "analysis.py":295 - * position = i - * - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_effects[position]] # <<<<<<<<<<<<<< - * - * def regurgitate(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_properties); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_5); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); - __Pyx_GIVEREF(__pyx_t_7); - PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_8); - PyList_SET_ITEM(__pyx_t_1, 2, __pyx_t_8); - __Pyx_GIVEREF(__pyx_t_9); - PyList_SET_ITEM(__pyx_t_1, 3, __pyx_t_9); - __Pyx_GIVEREF(__pyx_t_10); - PyList_SET_ITEM(__pyx_t_1, 4, __pyx_t_10); - __pyx_t_5 = 0; - __pyx_t_7 = 0; - __pyx_t_8 = 0; - __pyx_t_9 = 0; - __pyx_t_10 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":289 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("analysis.nc_entities.search", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":297 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_11nc_entities_11regurgitate(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_11nc_entities_11regurgitate = {"regurgitate", (PyCFunction)__pyx_pw_8analysis_11nc_entities_11regurgitate, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_11nc_entities_11regurgitate(PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("regurgitate (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_11nc_entities_10regurgitate(__pyx_self, ((PyObject *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_11nc_entities_10regurgitate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - 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; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - __Pyx_RefNannySetupContext("regurgitate", 0); - - /* "analysis.py":299 - * def regurgitate(self): - * - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_properties); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyList_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_1); - PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - PyList_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_4); - PyList_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); - __Pyx_GIVEREF(__pyx_t_5); - PyList_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_r = __pyx_t_6; - __pyx_t_6 = 0; - goto __pyx_L0; - - /* "analysis.py":297 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("analysis.nc_entities.regurgitate", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":309 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("obstacles has atributes names, ids, positions, perimeters, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 3d array of perimeters, 2d array of effects.") - * return [self.c_names, self.c_ids, self.c_perim, self.c_effects] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_9obstacles_1debug(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_9obstacles_1debug = {"debug", (PyCFunction)__pyx_pw_8analysis_9obstacles_1debug, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_9obstacles_1debug(PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("debug (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_9obstacles_debug(__pyx_self, ((PyObject *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_9obstacles_debug(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - 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; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("debug", 0); - - /* "analysis.py":310 - * - * def debug(self): - * print("obstacles has atributes names, ids, positions, perimeters, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 3d array of perimeters, 2d array of effects.") # <<<<<<<<<<<<<< - * return [self.c_names, self.c_ids, self.c_perim, self.c_effects] - * - */ - if (__Pyx_PrintOne(0, __pyx_kp_s_obstacles_has_atributes_names_id) < 0) __PYX_ERR(0, 310, __pyx_L1_error) - - /* "analysis.py":311 - * def debug(self): - * print("obstacles has atributes names, ids, positions, perimeters, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 3d array of perimeters, 2d array of effects.") - * return [self.c_names, self.c_ids, self.c_perim, self.c_effects] # <<<<<<<<<<<<<< - * - * def __init__(self, names, ids, perims, effects): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_perim); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyList_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - PyList_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_4); - PyList_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L0; - - /* "analysis.py":309 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("obstacles has atributes names, ids, positions, perimeters, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 3d array of perimeters, 2d array of effects.") - * return [self.c_names, self.c_ids, self.c_perim, self.c_effects] - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("analysis.obstacles.debug", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":313 - * return [self.c_names, self.c_ids, self.c_perim, self.c_effects] - * - * def __init__(self, names, ids, perims, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_9obstacles_3__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_9obstacles_3__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_9obstacles_3__init__, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_9obstacles_3__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_names = 0; - PyObject *__pyx_v_ids = 0; - PyObject *__pyx_v_perims = 0; - PyObject *__pyx_v_effects = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_names,&__pyx_n_s_ids,&__pyx_n_s_perims,&__pyx_n_s_effects,0}; - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_names)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); __PYX_ERR(0, 313, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ids)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); __PYX_ERR(0, 313, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_perims)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); __PYX_ERR(0, 313, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_effects)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); __PYX_ERR(0, 313, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 313, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_self = values[0]; - __pyx_v_names = values[1]; - __pyx_v_ids = values[2]; - __pyx_v_perims = values[3]; - __pyx_v_effects = values[4]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 313, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.obstacles.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_9obstacles_2__init__(__pyx_self, __pyx_v_self, __pyx_v_names, __pyx_v_ids, __pyx_v_perims, __pyx_v_effects); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_9obstacles_2__init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_names, PyObject *__pyx_v_ids, PyObject *__pyx_v_perims, PyObject *__pyx_v_effects) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__", 0); - - /* "analysis.py":314 - * - * def __init__(self, names, ids, perims, effects): - * self.c_names = names # <<<<<<<<<<<<<< - * self.c_ids = ids - * self.c_perim = perims - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_names, __pyx_v_names) < 0) __PYX_ERR(0, 314, __pyx_L1_error) - - /* "analysis.py":315 - * def __init__(self, names, ids, perims, effects): - * self.c_names = names - * self.c_ids = ids # <<<<<<<<<<<<<< - * self.c_perim = perims - * self.c_effects = effects - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_ids, __pyx_v_ids) < 0) __PYX_ERR(0, 315, __pyx_L1_error) - - /* "analysis.py":316 - * self.c_names = names - * self.c_ids = ids - * self.c_perim = perims # <<<<<<<<<<<<<< - * self.c_effects = effects - * return None - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_perim, __pyx_v_perims) < 0) __PYX_ERR(0, 316, __pyx_L1_error) - - /* "analysis.py":317 - * self.c_ids = ids - * self.c_perim = perims - * self.c_effects = effects # <<<<<<<<<<<<<< - * return None - * - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_effects, __pyx_v_effects) < 0) __PYX_ERR(0, 317, __pyx_L1_error) - - /* "analysis.py":318 - * self.c_perim = perims - * self.c_effects = effects - * return None # <<<<<<<<<<<<<< - * - * def append(self, n_name, n_id, n_perim, n_effect): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":313 - * return [self.c_names, self.c_ids, self.c_perim, self.c_effects] - * - * def __init__(self, names, ids, perims, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("analysis.obstacles.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":320 - * return None - * - * def append(self, n_name, n_id, n_perim, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_9obstacles_5append(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_9obstacles_5append = {"append", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_9obstacles_5append, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_9obstacles_5append(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_n_name = 0; - PyObject *__pyx_v_n_id = 0; - PyObject *__pyx_v_n_perim = 0; - PyObject *__pyx_v_n_effect = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("append (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_n_name,&__pyx_n_s_n_id,&__pyx_n_s_n_perim,&__pyx_n_s_n_effect,0}; - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_n_name)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 5, 5, 1); __PYX_ERR(0, 320, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_id)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 5, 5, 2); __PYX_ERR(0, 320, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_perim)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 5, 5, 3); __PYX_ERR(0, 320, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_effect)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 5, 5, 4); __PYX_ERR(0, 320, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "append") < 0)) __PYX_ERR(0, 320, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_self = values[0]; - __pyx_v_n_name = values[1]; - __pyx_v_n_id = values[2]; - __pyx_v_n_perim = values[3]; - __pyx_v_n_effect = values[4]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("append", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 320, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.obstacles.append", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_9obstacles_4append(__pyx_self, __pyx_v_self, __pyx_v_n_name, __pyx_v_n_id, __pyx_v_n_perim, __pyx_v_n_effect); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_9obstacles_4append(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_perim, PyObject *__pyx_v_n_effect) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - __Pyx_RefNannySetupContext("append", 0); - - /* "analysis.py":321 - * - * def append(self, n_name, n_id, n_perim, n_effect): - * self.c_names.append(n_name) # <<<<<<<<<<<<<< - * self.c_ids.append(n_id) - * self.c_perim.append(n_perim) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_name); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 321, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":322 - * def append(self, n_name, n_id, n_perim, n_effect): - * self.c_names.append(n_name) - * self.c_ids.append(n_id) # <<<<<<<<<<<<<< - * self.c_perim.append(n_perim) - * self.c_effects.append(n_effect) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 322, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_id); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 322, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":323 - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - * self.c_perim.append(n_perim) # <<<<<<<<<<<<<< - * self.c_effects.append(n_effect) - * return None - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_perim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_perim); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 323, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":324 - * self.c_ids.append(n_id) - * self.c_perim.append(n_perim) - * self.c_effects.append(n_effect) # <<<<<<<<<<<<<< - * return None - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 324, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_effect); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 324, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":325 - * self.c_perim.append(n_perim) - * self.c_effects.append(n_effect) - * return None # <<<<<<<<<<<<<< - * - * def edit(self, search, n_name, n_id, n_perim, n_effect): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":320 - * return None - * - * def append(self, n_name, n_id, n_perim, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("analysis.obstacles.append", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":327 - * return None - * - * def edit(self, search, n_name, n_id, n_perim, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_9obstacles_7edit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_9obstacles_7edit = {"edit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_9obstacles_7edit, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_9obstacles_7edit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_search = 0; - PyObject *__pyx_v_n_name = 0; - PyObject *__pyx_v_n_id = 0; - PyObject *__pyx_v_n_perim = 0; - PyObject *__pyx_v_n_effect = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("edit (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_search,&__pyx_n_s_n_name,&__pyx_n_s_n_id,&__pyx_n_s_n_perim,&__pyx_n_s_n_effect,0}; - PyObject* values[6] = {0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_search)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, 1); __PYX_ERR(0, 327, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_name)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, 2); __PYX_ERR(0, 327, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_id)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, 3); __PYX_ERR(0, 327, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_perim)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, 4); __PYX_ERR(0, 327, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_effect)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, 5); __PYX_ERR(0, 327, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "edit") < 0)) __PYX_ERR(0, 327, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - } - __pyx_v_self = values[0]; - __pyx_v_search = values[1]; - __pyx_v_n_name = values[2]; - __pyx_v_n_id = values[3]; - __pyx_v_n_perim = values[4]; - __pyx_v_n_effect = values[5]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 327, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.obstacles.edit", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_9obstacles_6edit(__pyx_self, __pyx_v_self, __pyx_v_search, __pyx_v_n_name, __pyx_v_n_id, __pyx_v_n_perim, __pyx_v_n_effect); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_9obstacles_6edit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_perim, PyObject *__pyx_v_n_effect) { - Py_ssize_t __pyx_v_position; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - __Pyx_RefNannySetupContext("edit", 0); - - /* "analysis.py":328 - * - * def edit(self, search, n_name, n_id, n_perim, n_effect): - * position = 0 # <<<<<<<<<<<<<< - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - */ - __pyx_v_position = 0; - - /* "analysis.py":329 - * def edit(self, search, n_name, n_id, n_perim, n_effect): - * position = 0 - * for i in range(0, len(self.c_ids), 1): # <<<<<<<<<<<<<< - * if self.c_ids[i] == search: - * position = i - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 329, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 329, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":330 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 330, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 330, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_v_search, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 330, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 330, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_6) { - - /* "analysis.py":331 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - * position = i # <<<<<<<<<<<<<< - * - * if n_name != "null": - */ - __pyx_v_position = __pyx_v_i; - - /* "analysis.py":330 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - } - } - - /* "analysis.py":333 - * position = i - * - * if n_name != "null": # <<<<<<<<<<<<<< - * self.c_names[position] = n_name - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_name, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 333, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":334 - * - * if n_name != "null": - * self.c_names[position] = n_name # <<<<<<<<<<<<<< - * - * if n_id != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 334, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_name, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 334, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":333 - * position = i - * - * if n_name != "null": # <<<<<<<<<<<<<< - * self.c_names[position] = n_name - * - */ - } - - /* "analysis.py":336 - * self.c_names[position] = n_name - * - * if n_id != "null": # <<<<<<<<<<<<<< - * self.c_ids[position] = n_id - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_id, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 336, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":337 - * - * if n_id != "null": - * self.c_ids[position] = n_id # <<<<<<<<<<<<<< - * - * if n_perim != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 337, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 337, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":336 - * self.c_names[position] = n_name - * - * if n_id != "null": # <<<<<<<<<<<<<< - * self.c_ids[position] = n_id - * - */ - } - - /* "analysis.py":339 - * self.c_ids[position] = n_id - * - * if n_perim != "null": # <<<<<<<<<<<<<< - * self.c_perim[position] = n_perim - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_perim, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 339, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":340 - * - * if n_perim != "null": - * self.c_perim[position] = n_perim # <<<<<<<<<<<<<< - * - * if n_effect != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_perim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 340, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_perim, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 340, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":339 - * self.c_ids[position] = n_id - * - * if n_perim != "null": # <<<<<<<<<<<<<< - * self.c_perim[position] = n_perim - * - */ - } - - /* "analysis.py":342 - * self.c_perim[position] = n_perim - * - * if n_effect != "null": # <<<<<<<<<<<<<< - * self.c_effects[position] = n_effect - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_effect, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 342, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":343 - * - * if n_effect != "null": - * self.c_effects[position] = n_effect # <<<<<<<<<<<<<< - * - * return None - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 343, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_effect, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 343, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":342 - * self.c_perim[position] = n_perim - * - * if n_effect != "null": # <<<<<<<<<<<<<< - * self.c_effects[position] = n_effect - * - */ - } - - /* "analysis.py":345 - * self.c_effects[position] = n_effect - * - * return None # <<<<<<<<<<<<<< - * - * def search(self, search): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":327 - * return None - * - * def edit(self, search, n_name, n_id, n_perim, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("analysis.obstacles.edit", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":347 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_9obstacles_9search(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_9obstacles_9search = {"search", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_9obstacles_9search, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_9obstacles_9search(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_search = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("search (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_search,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_self)) != 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_search)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("search", 1, 2, 2, 1); __PYX_ERR(0, 347, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "search") < 0)) __PYX_ERR(0, 347, __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_self = values[0]; - __pyx_v_search = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("search", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 347, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.obstacles.search", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_9obstacles_8search(__pyx_self, __pyx_v_self, __pyx_v_search); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_9obstacles_8search(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search) { - Py_ssize_t __pyx_v_position; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - __Pyx_RefNannySetupContext("search", 0); - - /* "analysis.py":348 - * - * def search(self, search): - * position = 0 # <<<<<<<<<<<<<< - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - */ - __pyx_v_position = 0; - - /* "analysis.py":349 - * def search(self, search): - * position = 0 - * for i in range(0, len(self.c_ids), 1): # <<<<<<<<<<<<<< - * if self.c_ids[i] == search: - * position = i - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 349, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":350 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_v_search, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 350, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_6) { - - /* "analysis.py":351 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - * position = i # <<<<<<<<<<<<<< - * - * return [self.c_names[position], self.c_ids[position], self.c_perim[position], self.c_effects[position]] - */ - __pyx_v_position = __pyx_v_i; - - /* "analysis.py":350 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - } - } - - /* "analysis.py":353 - * position = i - * - * return [self.c_names[position], self.c_ids[position], self.c_perim[position], self.c_effects[position]] # <<<<<<<<<<<<<< - * - * def regurgitate(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_perim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_5); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); - __Pyx_GIVEREF(__pyx_t_7); - PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_8); - PyList_SET_ITEM(__pyx_t_1, 2, __pyx_t_8); - __Pyx_GIVEREF(__pyx_t_9); - PyList_SET_ITEM(__pyx_t_1, 3, __pyx_t_9); - __pyx_t_5 = 0; - __pyx_t_7 = 0; - __pyx_t_8 = 0; - __pyx_t_9 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":347 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("analysis.obstacles.search", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":355 - * return [self.c_names[position], self.c_ids[position], self.c_perim[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_perim, self.c_effects] - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_9obstacles_11regurgitate(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_9obstacles_11regurgitate = {"regurgitate", (PyCFunction)__pyx_pw_8analysis_9obstacles_11regurgitate, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_9obstacles_11regurgitate(PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("regurgitate (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_9obstacles_10regurgitate(__pyx_self, ((PyObject *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_9obstacles_10regurgitate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - 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; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("regurgitate", 0); - - /* "analysis.py":356 - * - * def regurgitate(self): - * return[self.c_names, self.c_ids, self.c_perim, self.c_effects] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_perim); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyList_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - PyList_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_4); - PyList_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L0; - - /* "analysis.py":355 - * return [self.c_names[position], self.c_ids[position], self.c_perim[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_perim, self.c_effects] - * - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("analysis.obstacles.regurgitate", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":366 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("objectives has atributes names, ids, positions, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 1d array of effects.") - * return [self.c_names, self.c_ids, self.c_pos, self.c_effects] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10objectives_1debug(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10objectives_1debug = {"debug", (PyCFunction)__pyx_pw_8analysis_10objectives_1debug, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_10objectives_1debug(PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("debug (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_10objectives_debug(__pyx_self, ((PyObject *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10objectives_debug(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - 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; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("debug", 0); - - /* "analysis.py":367 - * - * def debug(self): - * print("objectives has atributes names, ids, positions, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 1d array of effects.") # <<<<<<<<<<<<<< - * return [self.c_names, self.c_ids, self.c_pos, self.c_effects] - * - */ - if (__Pyx_PrintOne(0, __pyx_kp_s_objectives_has_atributes_names_i) < 0) __PYX_ERR(0, 367, __pyx_L1_error) - - /* "analysis.py":368 - * def debug(self): - * print("objectives has atributes names, ids, positions, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 1d array of effects.") - * return [self.c_names, self.c_ids, self.c_pos, self.c_effects] # <<<<<<<<<<<<<< - * - * def __init__(self, names, ids, pos, effects): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyList_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - PyList_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_4); - PyList_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L0; - - /* "analysis.py":366 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("objectives has atributes names, ids, positions, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 1d array of effects.") - * return [self.c_names, self.c_ids, self.c_pos, self.c_effects] - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("analysis.objectives.debug", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":370 - * return [self.c_names, self.c_ids, self.c_pos, self.c_effects] - * - * def __init__(self, names, ids, pos, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10objectives_3__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10objectives_3__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_10objectives_3__init__, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_10objectives_3__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_names = 0; - PyObject *__pyx_v_ids = 0; - PyObject *__pyx_v_pos = 0; - PyObject *__pyx_v_effects = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_names,&__pyx_n_s_ids,&__pyx_n_s_pos,&__pyx_n_s_effects,0}; - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_names)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); __PYX_ERR(0, 370, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ids)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); __PYX_ERR(0, 370, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pos)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); __PYX_ERR(0, 370, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_effects)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); __PYX_ERR(0, 370, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 370, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_self = values[0]; - __pyx_v_names = values[1]; - __pyx_v_ids = values[2]; - __pyx_v_pos = values[3]; - __pyx_v_effects = values[4]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 370, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.objectives.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_10objectives_2__init__(__pyx_self, __pyx_v_self, __pyx_v_names, __pyx_v_ids, __pyx_v_pos, __pyx_v_effects); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10objectives_2__init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_names, PyObject *__pyx_v_ids, PyObject *__pyx_v_pos, PyObject *__pyx_v_effects) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__", 0); - - /* "analysis.py":371 - * - * def __init__(self, names, ids, pos, effects): - * self.c_names = names # <<<<<<<<<<<<<< - * self.c_ids = ids - * self.c_pos = pos - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_names, __pyx_v_names) < 0) __PYX_ERR(0, 371, __pyx_L1_error) - - /* "analysis.py":372 - * def __init__(self, names, ids, pos, effects): - * self.c_names = names - * self.c_ids = ids # <<<<<<<<<<<<<< - * self.c_pos = pos - * self.c_effects = effects - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_ids, __pyx_v_ids) < 0) __PYX_ERR(0, 372, __pyx_L1_error) - - /* "analysis.py":373 - * self.c_names = names - * self.c_ids = ids - * self.c_pos = pos # <<<<<<<<<<<<<< - * self.c_effects = effects - * return None - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_pos, __pyx_v_pos) < 0) __PYX_ERR(0, 373, __pyx_L1_error) - - /* "analysis.py":374 - * self.c_ids = ids - * self.c_pos = pos - * self.c_effects = effects # <<<<<<<<<<<<<< - * return None - * - */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_c_effects, __pyx_v_effects) < 0) __PYX_ERR(0, 374, __pyx_L1_error) - - /* "analysis.py":375 - * self.c_pos = pos - * self.c_effects = effects - * return None # <<<<<<<<<<<<<< - * - * def append(self, n_name, n_id, n_pos, n_effect): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":370 - * return [self.c_names, self.c_ids, self.c_pos, self.c_effects] - * - * def __init__(self, names, ids, pos, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("analysis.objectives.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":377 - * return None - * - * def append(self, n_name, n_id, n_pos, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10objectives_5append(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10objectives_5append = {"append", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_10objectives_5append, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_10objectives_5append(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_n_name = 0; - PyObject *__pyx_v_n_id = 0; - PyObject *__pyx_v_n_pos = 0; - PyObject *__pyx_v_n_effect = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("append (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_n_name,&__pyx_n_s_n_id,&__pyx_n_s_n_pos,&__pyx_n_s_n_effect,0}; - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_n_name)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 5, 5, 1); __PYX_ERR(0, 377, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_id)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 5, 5, 2); __PYX_ERR(0, 377, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_pos)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 5, 5, 3); __PYX_ERR(0, 377, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_effect)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("append", 1, 5, 5, 4); __PYX_ERR(0, 377, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "append") < 0)) __PYX_ERR(0, 377, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_self = values[0]; - __pyx_v_n_name = values[1]; - __pyx_v_n_id = values[2]; - __pyx_v_n_pos = values[3]; - __pyx_v_n_effect = values[4]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("append", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 377, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.objectives.append", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_10objectives_4append(__pyx_self, __pyx_v_self, __pyx_v_n_name, __pyx_v_n_id, __pyx_v_n_pos, __pyx_v_n_effect); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10objectives_4append(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_effect) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - __Pyx_RefNannySetupContext("append", 0); - - /* "analysis.py":378 - * - * def append(self, n_name, n_id, n_pos, n_effect): - * self.c_names.append(n_name) # <<<<<<<<<<<<<< - * self.c_ids.append(n_id) - * self.c_pos.append(n_pos) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_name); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 378, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":379 - * def append(self, n_name, n_id, n_pos, n_effect): - * self.c_names.append(n_name) - * self.c_ids.append(n_id) # <<<<<<<<<<<<<< - * self.c_pos.append(n_pos) - * self.c_effects.append(n_effect) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 379, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_id); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 379, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":380 - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - * self.c_pos.append(n_pos) # <<<<<<<<<<<<<< - * self.c_effects.append(n_effect) - * return None - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 380, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_pos); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 380, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":381 - * self.c_ids.append(n_id) - * self.c_pos.append(n_pos) - * self.c_effects.append(n_effect) # <<<<<<<<<<<<<< - * return None - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_n_effect); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 381, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":382 - * self.c_pos.append(n_pos) - * self.c_effects.append(n_effect) - * return None # <<<<<<<<<<<<<< - * - * def edit(self, search, n_name, n_id, n_pos, n_effect): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":377 - * return None - * - * def append(self, n_name, n_id, n_pos, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("analysis.objectives.append", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":384 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * print(self.c_ids) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10objectives_7edit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10objectives_7edit = {"edit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_10objectives_7edit, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_10objectives_7edit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_search = 0; - PyObject *__pyx_v_n_name = 0; - PyObject *__pyx_v_n_id = 0; - PyObject *__pyx_v_n_pos = 0; - PyObject *__pyx_v_n_effect = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("edit (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_search,&__pyx_n_s_n_name,&__pyx_n_s_n_id,&__pyx_n_s_n_pos,&__pyx_n_s_n_effect,0}; - PyObject* values[6] = {0,0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_self)) != 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_search)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, 1); __PYX_ERR(0, 384, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_name)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, 2); __PYX_ERR(0, 384, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_id)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, 3); __PYX_ERR(0, 384, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_pos)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, 4); __PYX_ERR(0, 384, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_effect)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, 5); __PYX_ERR(0, 384, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "edit") < 0)) __PYX_ERR(0, 384, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - values[5] = PyTuple_GET_ITEM(__pyx_args, 5); - } - __pyx_v_self = values[0]; - __pyx_v_search = values[1]; - __pyx_v_n_name = values[2]; - __pyx_v_n_id = values[3]; - __pyx_v_n_pos = values[4]; - __pyx_v_n_effect = values[5]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("edit", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 384, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.objectives.edit", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_10objectives_6edit(__pyx_self, __pyx_v_self, __pyx_v_search, __pyx_v_n_name, __pyx_v_n_id, __pyx_v_n_pos, __pyx_v_n_effect); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10objectives_6edit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search, PyObject *__pyx_v_n_name, PyObject *__pyx_v_n_id, PyObject *__pyx_v_n_pos, PyObject *__pyx_v_n_effect) { - Py_ssize_t __pyx_v_position; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - __Pyx_RefNannySetupContext("edit", 0); - - /* "analysis.py":385 - * - * def edit(self, search, n_name, n_id, n_pos, n_effect): - * position = 0 # <<<<<<<<<<<<<< - * print(self.c_ids) - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_v_position = 0; - - /* "analysis.py":386 - * def edit(self, search, n_name, n_id, n_pos, n_effect): - * position = 0 - * print(self.c_ids) # <<<<<<<<<<<<<< - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PrintOne(0, __pyx_t_1) < 0) __PYX_ERR(0, 386, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":387 - * position = 0 - * print(self.c_ids) - * for i in range(0, len(self.c_ids), 1): # <<<<<<<<<<<<<< - * if self.c_ids[i] == search: - * position = i - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 387, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":388 - * print(self.c_ids) - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_v_search, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_6) { - - /* "analysis.py":389 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - * position = i # <<<<<<<<<<<<<< - * - * if n_name != "null": - */ - __pyx_v_position = __pyx_v_i; - - /* "analysis.py":388 - * print(self.c_ids) - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - } - } - - /* "analysis.py":391 - * position = i - * - * if n_name != "null": # <<<<<<<<<<<<<< - * self.c_names[position] = n_name - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_name, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 391, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":392 - * - * if n_name != "null": - * self.c_names[position] = n_name # <<<<<<<<<<<<<< - * - * if n_id != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_name, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 392, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":391 - * position = i - * - * if n_name != "null": # <<<<<<<<<<<<<< - * self.c_names[position] = n_name - * - */ - } - - /* "analysis.py":394 - * self.c_names[position] = n_name - * - * if n_id != "null": # <<<<<<<<<<<<<< - * self.c_ids[position] = n_id - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_id, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 394, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":395 - * - * if n_id != "null": - * self.c_ids[position] = n_id # <<<<<<<<<<<<<< - * - * if n_pos != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 395, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_id, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 395, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":394 - * self.c_names[position] = n_name - * - * if n_id != "null": # <<<<<<<<<<<<<< - * self.c_ids[position] = n_id - * - */ - } - - /* "analysis.py":397 - * self.c_ids[position] = n_id - * - * if n_pos != "null": # <<<<<<<<<<<<<< - * self.c_pos[position] = n_pos - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_pos, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 397, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":398 - * - * if n_pos != "null": - * self.c_pos[position] = n_pos # <<<<<<<<<<<<<< - * - * if n_effect != "null": - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_pos, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 398, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":397 - * self.c_ids[position] = n_id - * - * if n_pos != "null": # <<<<<<<<<<<<<< - * self.c_pos[position] = n_pos - * - */ - } - - /* "analysis.py":400 - * self.c_pos[position] = n_pos - * - * if n_effect != "null": # <<<<<<<<<<<<<< - * self.c_effects[position] = n_effect - * - */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_n_effect, __pyx_n_s_null, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 400, __pyx_L1_error) - if (__pyx_t_6) { - - /* "analysis.py":401 - * - * if n_effect != "null": - * self.c_effects[position] = n_effect # <<<<<<<<<<<<<< - * - * return None - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 401, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_position, __pyx_v_n_effect, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 401, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":400 - * self.c_pos[position] = n_pos - * - * if n_effect != "null": # <<<<<<<<<<<<<< - * self.c_effects[position] = n_effect - * - */ - } - - /* "analysis.py":403 - * self.c_effects[position] = n_effect - * - * return None # <<<<<<<<<<<<<< - * - * def search(self, search): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "analysis.py":384 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * print(self.c_ids) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("analysis.objectives.edit", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":405 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10objectives_9search(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10objectives_9search = {"search", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_10objectives_9search, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_10objectives_9search(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_search = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("search (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_search,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_self)) != 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_search)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("search", 1, 2, 2, 1); __PYX_ERR(0, 405, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "search") < 0)) __PYX_ERR(0, 405, __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_self = values[0]; - __pyx_v_search = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("search", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 405, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.objectives.search", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_10objectives_8search(__pyx_self, __pyx_v_self, __pyx_v_search); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10objectives_8search(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_search) { - Py_ssize_t __pyx_v_position; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - __Pyx_RefNannySetupContext("search", 0); - - /* "analysis.py":406 - * - * def search(self, search): - * position = 0 # <<<<<<<<<<<<<< - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - */ - __pyx_v_position = 0; - - /* "analysis.py":407 - * def search(self, search): - * position = 0 - * for i in range(0, len(self.c_ids), 1): # <<<<<<<<<<<<<< - * if self.c_ids[i] == search: - * position = i - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 407, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":408 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 408, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_v_search, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 408, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_6) { - - /* "analysis.py":409 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: - * position = i # <<<<<<<<<<<<<< - * - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_effects[position]] - */ - __pyx_v_position = __pyx_v_i; - - /* "analysis.py":408 - * position = 0 - * for i in range(0, len(self.c_ids), 1): - * if self.c_ids[i] == search: # <<<<<<<<<<<<<< - * position = i - * - */ - } - } - - /* "analysis.py":411 - * position = i - * - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_effects[position]] # <<<<<<<<<<<<<< - * - * def regurgitate(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_position, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_5); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); - __Pyx_GIVEREF(__pyx_t_7); - PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_8); - PyList_SET_ITEM(__pyx_t_1, 2, __pyx_t_8); - __Pyx_GIVEREF(__pyx_t_9); - PyList_SET_ITEM(__pyx_t_1, 3, __pyx_t_9); - __pyx_t_5 = 0; - __pyx_t_7 = 0; - __pyx_t_8 = 0; - __pyx_t_9 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":405 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("analysis.objectives.search", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":413 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_pos, self.c_effects] - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_10objectives_11regurgitate(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_10objectives_11regurgitate = {"regurgitate", (PyCFunction)__pyx_pw_8analysis_10objectives_11regurgitate, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_10objectives_11regurgitate(PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("regurgitate (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_10objectives_10regurgitate(__pyx_self, ((PyObject *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10objectives_10regurgitate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - 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; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannySetupContext("regurgitate", 0); - - /* "analysis.py":414 - * - * def regurgitate(self): - * return[self.c_names, self.c_ids, self.c_pos, self.c_effects] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 414, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_ids); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 414, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 414, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_c_effects); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 414, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyList_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 414, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - PyList_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_4); - PyList_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L0; - - /* "analysis.py":413 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_pos, self.c_effects] - * - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("analysis.objectives.regurgitate", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":417 - * - * - * def load_csv(filepath): # <<<<<<<<<<<<<< - * with open(filepath, newline='') as csvfile: - * file_array = list(csv.reader(csvfile)) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_3load_csv(PyObject *__pyx_self, PyObject *__pyx_v_filepath); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_3load_csv = {"load_csv", (PyCFunction)__pyx_pw_8analysis_3load_csv, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_3load_csv(PyObject *__pyx_self, PyObject *__pyx_v_filepath) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("load_csv (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_2load_csv(__pyx_self, ((PyObject *)__pyx_v_filepath)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_2load_csv(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filepath) { - PyObject *__pyx_v_csvfile = NULL; - PyObject *__pyx_v_file_array = NULL; - 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; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - int __pyx_t_10; - int __pyx_t_11; - __Pyx_RefNannySetupContext("load_csv", 0); - - /* "analysis.py":418 - * - * def load_csv(filepath): - * with open(filepath, newline='') as csvfile: # <<<<<<<<<<<<<< - * file_array = list(csv.reader(csvfile)) - * csvfile.close() - */ - /*with:*/ { - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_filepath); - __Pyx_GIVEREF(__pyx_v_filepath); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_filepath); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_newline, __pyx_kp_s__2) < 0) __PYX_ERR(0, 418, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_open, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 418, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 418, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __pyx_t_2; - __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /*try:*/ { - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); - /*try:*/ { - __pyx_v_csvfile = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":419 - * def load_csv(filepath): - * with open(filepath, newline='') as csvfile: - * file_array = list(csv.reader(csvfile)) # <<<<<<<<<<<<<< - * csvfile.close() - * return file_array - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_csv); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 419, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_reader); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 419, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_csvfile) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_csvfile); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 419, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 419, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_file_array = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":420 - * with open(filepath, newline='') as csvfile: - * file_array = list(csv.reader(csvfile)) - * csvfile.close() # <<<<<<<<<<<<<< - * return file_array - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_csvfile, __pyx_n_s_close); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 420, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 420, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":418 - * - * def load_csv(filepath): - * with open(filepath, newline='') as csvfile: # <<<<<<<<<<<<<< - * file_array = list(csv.reader(csvfile)) - * csvfile.close() - */ - } - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L12_try_end; - __pyx_L7_error:; - __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; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - /*except:*/ { - __Pyx_AddTraceback("analysis.load_csv", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(0, 418, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 418, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 418, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__pyx_t_10 < 0) __PYX_ERR(0, 418, __pyx_L9_except_error) - __pyx_t_11 = ((!(__pyx_t_10 != 0)) != 0); - if (__pyx_t_11) { - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_3); - __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; - __PYX_ERR(0, 418, __pyx_L9_except_error) - } - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L8_exception_handled; - } - __pyx_L9_except_error:; - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); - goto __pyx_L1_error; - __pyx_L8_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_L12_try_end:; - } - } - /*finally:*/ { - /*normal exit:*/{ - if (__pyx_t_4) { - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__3, NULL); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } - goto __pyx_L6; - } - __pyx_L6:; - } - goto __pyx_L16; - __pyx_L3_error:; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L1_error; - __pyx_L16:; - } - - /* "analysis.py":421 - * file_array = list(csv.reader(csvfile)) - * csvfile.close() - * return file_array # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - if (unlikely(!__pyx_v_file_array)) { __Pyx_RaiseUnboundLocalError("file_array"); __PYX_ERR(0, 421, __pyx_L1_error) } - __Pyx_INCREF(__pyx_v_file_array); - __pyx_r = __pyx_v_file_array; - goto __pyx_L0; - - /* "analysis.py":417 - * - * - * def load_csv(filepath): # <<<<<<<<<<<<<< - * with open(filepath, newline='') as csvfile: - * file_array = list(csv.reader(csvfile)) - */ - - /* 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_5); - __Pyx_AddTraceback("analysis.load_csv", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_csvfile); - __Pyx_XDECREF(__pyx_v_file_array); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":425 - * - * # data=array, mode = ['1d':1d_basic_stats, 'column':c_basic_stats, 'row':r_basic_stats], arg for mode 1 or mode 2 for column or row - * def basic_stats(data, method, arg): # <<<<<<<<<<<<<< - * - * if method == 'debug': - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_5basic_stats(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_5basic_stats = {"basic_stats", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_5basic_stats, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_5basic_stats(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_data = 0; - PyObject *__pyx_v_method = 0; - PyObject *__pyx_v_arg = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("basic_stats (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_method,&__pyx_n_s_arg,0}; - PyObject* values[3] = {0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_data)) != 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_method)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("basic_stats", 1, 3, 3, 1); __PYX_ERR(0, 425, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("basic_stats", 1, 3, 3, 2); __PYX_ERR(0, 425, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "basic_stats") < 0)) __PYX_ERR(0, 425, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - } - __pyx_v_data = values[0]; - __pyx_v_method = values[1]; - __pyx_v_arg = values[2]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("basic_stats", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.basic_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_4basic_stats(__pyx_self, __pyx_v_data, __pyx_v_method, __pyx_v_arg); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_4basic_stats(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_method, PyObject *__pyx_v_arg) { - PyObject *__pyx_v_data_t = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v__mean = NULL; - PyObject *__pyx_v__median = NULL; - PyObject *__pyx_v__mode = NULL; - PyObject *__pyx_v__stdev = NULL; - PyObject *__pyx_v__variance = NULL; - PyObject *__pyx_v_c_data = NULL; - CYTHON_UNUSED PyObject *__pyx_v_c_data_sorted = NULL; - PyObject *__pyx_v_r_data = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *(*__pyx_t_6)(PyObject *); - PyObject *__pyx_t_7 = NULL; - int __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - __Pyx_RefNannySetupContext("basic_stats", 0); - - /* "analysis.py":427 - * def basic_stats(data, method, arg): - * - * if method == 'debug': # <<<<<<<<<<<<<< - * return "basic_stats requires 3 args: data, mode, arg; where data is data to be analyzed, mode is an int from 0 - 2 depending on type of analysis (by column or by row) and is only applicable to 2d arrays (for 1d arrays use mode 1), and arg is row/column number for mode 1 or mode 2; function returns: [mean, median, mode, stdev, variance]" - * - */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_debug, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 427, __pyx_L1_error) - if (__pyx_t_1) { - - /* "analysis.py":428 - * - * if method == 'debug': - * return "basic_stats requires 3 args: data, mode, arg; where data is data to be analyzed, mode is an int from 0 - 2 depending on type of analysis (by column or by row) and is only applicable to 2d arrays (for 1d arrays use mode 1), and arg is row/column number for mode 1 or mode 2; function returns: [mean, median, mode, stdev, variance]" # <<<<<<<<<<<<<< - * - * if method == "1d" or method == 0: - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_kp_s_basic_stats_requires_3_args_data); - __pyx_r = __pyx_kp_s_basic_stats_requires_3_args_data; - goto __pyx_L0; - - /* "analysis.py":427 - * def basic_stats(data, method, arg): - * - * if method == 'debug': # <<<<<<<<<<<<<< - * return "basic_stats requires 3 args: data, mode, arg; where data is data to be analyzed, mode is an int from 0 - 2 depending on type of analysis (by column or by row) and is only applicable to 2d arrays (for 1d arrays use mode 1), and arg is row/column number for mode 1 or mode 2; function returns: [mean, median, mode, stdev, variance]" - * - */ - } - - /* "analysis.py":430 - * return "basic_stats requires 3 args: data, mode, arg; where data is data to be analyzed, mode is an int from 0 - 2 depending on type of analysis (by column or by row) and is only applicable to 2d arrays (for 1d arrays use mode 1), and arg is row/column number for mode 1 or mode 2; function returns: [mean, median, mode, stdev, variance]" - * - * if method == "1d" or method == 0: # <<<<<<<<<<<<<< - * - * data_t = [] - */ - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_kp_s_1d, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 430, __pyx_L1_error) - if (!__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L5_bool_binop_done; - } - __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_method, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 430, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_1 = __pyx_t_2; - __pyx_L5_bool_binop_done:; - if (__pyx_t_1) { - - /* "analysis.py":432 - * if method == "1d" or method == 0: - * - * data_t = [] # <<<<<<<<<<<<<< - * - * for i in range(0, len(data), 1): - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_data_t = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":434 - * data_t = [] - * - * for i in range(0, len(data), 1): # <<<<<<<<<<<<<< - * data_t.append(float(data[i])) - * - */ - __pyx_t_4 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 434, __pyx_L1_error) - __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_int_1); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { - __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 434, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_5))) { - if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 434, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } else { - if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 434, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } - } else { - __pyx_t_3 = __pyx_t_6(__pyx_t_5); - if (unlikely(!__pyx_t_3)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 434, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":435 - * - * for i in range(0, len(data), 1): - * data_t.append(float(data[i])) # <<<<<<<<<<<<<< - * - * _mean = mean(data_t) - */ - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_data, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = __Pyx_PyNumber_Float(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_data_t, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 435, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":434 - * data_t = [] - * - * for i in range(0, len(data), 1): # <<<<<<<<<<<<<< - * data_t.append(float(data[i])) - * - */ - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - /* "analysis.py":437 - * data_t.append(float(data[i])) - * - * _mean = mean(data_t) # <<<<<<<<<<<<<< - * _median = median(data_t) - * try: - */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_mean); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 437, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - } - } - __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_3, __pyx_v_data_t) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_data_t); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 437, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v__mean = __pyx_t_5; - __pyx_t_5 = 0; - - /* "analysis.py":438 - * - * _mean = mean(data_t) - * _median = median(data_t) # <<<<<<<<<<<<<< - * try: - * _mode = mode(data_t) - */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_median); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 438, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - } - } - __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_3, __pyx_v_data_t) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_data_t); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 438, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v__median = __pyx_t_5; - __pyx_t_5 = 0; - - /* "analysis.py":439 - * _mean = mean(data_t) - * _median = median(data_t) - * try: # <<<<<<<<<<<<<< - * _mode = mode(data_t) - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_11); - /*try:*/ { - - /* "analysis.py":440 - * _median = median(data_t) - * try: - * _mode = mode(data_t) # <<<<<<<<<<<<<< - * except: - * _mode = None - */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_mode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 440, __pyx_L9_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - } - } - __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_3, __pyx_v_data_t) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_data_t); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 440, __pyx_L9_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v__mode = __pyx_t_5; - __pyx_t_5 = 0; - - /* "analysis.py":439 - * _mean = mean(data_t) - * _median = median(data_t) - * try: # <<<<<<<<<<<<<< - * _mode = mode(data_t) - * except: - */ - } - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - goto __pyx_L14_try_end; - __pyx_L9_error:; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":441 - * try: - * _mode = mode(data_t) - * except: # <<<<<<<<<<<<<< - * _mode = None - * try: - */ - /*except:*/ { - __Pyx_AddTraceback("analysis.basic_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(0, 441, __pyx_L11_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GOTREF(__pyx_t_3); - - /* "analysis.py":442 - * _mode = mode(data_t) - * except: - * _mode = None # <<<<<<<<<<<<<< - * try: - * _stdev = stdev(data_t) - */ - __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v__mode, Py_None); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L10_exception_handled; - } - __pyx_L11_except_error:; - - /* "analysis.py":439 - * _mean = mean(data_t) - * _median = median(data_t) - * try: # <<<<<<<<<<<<<< - * _mode = mode(data_t) - * except: - */ - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - goto __pyx_L1_error; - __pyx_L10_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_L14_try_end:; - } - - /* "analysis.py":443 - * except: - * _mode = None - * try: # <<<<<<<<<<<<<< - * _stdev = stdev(data_t) - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_9); - /*try:*/ { - - /* "analysis.py":444 - * _mode = None - * try: - * _stdev = stdev(data_t) # <<<<<<<<<<<<<< - * except: - * _stdev = None - */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_stdev); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 444, __pyx_L17_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - } - } - __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_v_data_t) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_data_t); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 444, __pyx_L17_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v__stdev = __pyx_t_3; - __pyx_t_3 = 0; - - /* "analysis.py":443 - * except: - * _mode = None - * try: # <<<<<<<<<<<<<< - * _stdev = stdev(data_t) - * except: - */ - } - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L22_try_end; - __pyx_L17_error:; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":445 - * try: - * _stdev = stdev(data_t) - * except: # <<<<<<<<<<<<<< - * _stdev = None - * try: - */ - /*except:*/ { - __Pyx_AddTraceback("analysis.basic_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_7, &__pyx_t_5) < 0) __PYX_ERR(0, 445, __pyx_L19_except_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GOTREF(__pyx_t_5); - - /* "analysis.py":446 - * _stdev = stdev(data_t) - * except: - * _stdev = None # <<<<<<<<<<<<<< - * try: - * _variance = variance(data_t) - */ - __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v__stdev, Py_None); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L18_exception_handled; - } - __pyx_L19_except_error:; - - /* "analysis.py":443 - * except: - * _mode = None - * try: # <<<<<<<<<<<<<< - * _stdev = stdev(data_t) - * except: - */ - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9); - goto __pyx_L1_error; - __pyx_L18_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9); - __pyx_L22_try_end:; - } - - /* "analysis.py":447 - * except: - * _stdev = None - * try: # <<<<<<<<<<<<<< - * _variance = variance(data_t) - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_11); - /*try:*/ { - - /* "analysis.py":448 - * _stdev = None - * try: - * _variance = variance(data_t) # <<<<<<<<<<<<<< - * except: - * _variance = None - */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_variance); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 448, __pyx_L25_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - } - } - __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_3, __pyx_v_data_t) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_data_t); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 448, __pyx_L25_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v__variance = __pyx_t_5; - __pyx_t_5 = 0; - - /* "analysis.py":447 - * except: - * _stdev = None - * try: # <<<<<<<<<<<<<< - * _variance = variance(data_t) - * except: - */ - } - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - goto __pyx_L30_try_end; - __pyx_L25_error:; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":449 - * try: - * _variance = variance(data_t) - * except: # <<<<<<<<<<<<<< - * _variance = None - * - */ - /*except:*/ { - __Pyx_AddTraceback("analysis.basic_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(0, 449, __pyx_L27_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GOTREF(__pyx_t_3); - - /* "analysis.py":450 - * _variance = variance(data_t) - * except: - * _variance = None # <<<<<<<<<<<<<< - * - * return _mean, _median, _mode, _stdev, _variance - */ - __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v__variance, Py_None); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L26_exception_handled; - } - __pyx_L27_except_error:; - - /* "analysis.py":447 - * except: - * _stdev = None - * try: # <<<<<<<<<<<<<< - * _variance = variance(data_t) - * except: - */ - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - goto __pyx_L1_error; - __pyx_L26_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_L30_try_end:; - } - - /* "analysis.py":452 - * _variance = None - * - * return _mean, _median, _mode, _stdev, _variance # <<<<<<<<<<<<<< - * - * elif method == "column" or method == 1: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v__mean); - __Pyx_GIVEREF(__pyx_v__mean); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__mean); - __Pyx_INCREF(__pyx_v__median); - __Pyx_GIVEREF(__pyx_v__median); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v__median); - __Pyx_INCREF(__pyx_v__mode); - __Pyx_GIVEREF(__pyx_v__mode); - PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v__mode); - __Pyx_INCREF(__pyx_v__stdev); - __Pyx_GIVEREF(__pyx_v__stdev); - PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v__stdev); - __Pyx_INCREF(__pyx_v__variance); - __Pyx_GIVEREF(__pyx_v__variance); - PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v__variance); - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "analysis.py":430 - * return "basic_stats requires 3 args: data, mode, arg; where data is data to be analyzed, mode is an int from 0 - 2 depending on type of analysis (by column or by row) and is only applicable to 2d arrays (for 1d arrays use mode 1), and arg is row/column number for mode 1 or mode 2; function returns: [mean, median, mode, stdev, variance]" - * - * if method == "1d" or method == 0: # <<<<<<<<<<<<<< - * - * data_t = [] - */ - } - - /* "analysis.py":454 - * return _mean, _median, _mode, _stdev, _variance - * - * elif method == "column" or method == 1: # <<<<<<<<<<<<<< - * - * c_data = [] - */ - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_column, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 454, __pyx_L1_error) - if (!__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L33_bool_binop_done; - } - __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_method, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 454, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 454, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_1 = __pyx_t_2; - __pyx_L33_bool_binop_done:; - if (__pyx_t_1) { - - /* "analysis.py":456 - * elif method == "column" or method == 1: - * - * c_data = [] # <<<<<<<<<<<<<< - * c_data_sorted = [] - * - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_c_data = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":457 - * - * c_data = [] - * c_data_sorted = [] # <<<<<<<<<<<<<< - * - * for i in data: - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_c_data_sorted = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":459 - * c_data_sorted = [] - * - * for i in data: # <<<<<<<<<<<<<< - * try: - * c_data.append(float(i[arg])) - */ - if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { - __pyx_t_3 = __pyx_v_data; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 459, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 459, __pyx_L1_error) - #else - __pyx_t_7 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 459, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - } else { - if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 459, __pyx_L1_error) - #else - __pyx_t_7 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 459, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - } - } else { - __pyx_t_7 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_7)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 459, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_7); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7); - __pyx_t_7 = 0; - - /* "analysis.py":460 - * - * for i in data: - * try: # <<<<<<<<<<<<<< - * c_data.append(float(i[arg])) - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_9); - /*try:*/ { - - /* "analysis.py":461 - * for i in data: - * try: - * c_data.append(float(i[arg])) # <<<<<<<<<<<<<< - * except: - * pass - */ - __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_i, __pyx_v_arg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 461, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = __Pyx_PyNumber_Float(__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 461, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_c_data, __pyx_t_5); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 461, __pyx_L37_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - /* "analysis.py":460 - * - * for i in data: - * try: # <<<<<<<<<<<<<< - * c_data.append(float(i[arg])) - * except: - */ - } - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L44_try_end; - __pyx_L37_error:; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":462 - * try: - * c_data.append(float(i[arg])) - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L38_exception_handled; - } - __pyx_L38_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9); - __pyx_L44_try_end:; - } - - /* "analysis.py":459 - * c_data_sorted = [] - * - * for i in data: # <<<<<<<<<<<<<< - * try: - * c_data.append(float(i[arg])) - */ - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "analysis.py":465 - * pass - * - * _mean = mean(c_data) # <<<<<<<<<<<<<< - * _median = median(c_data) - * try: - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_mean); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_v_c_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_c_data); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v__mean = __pyx_t_3; - __pyx_t_3 = 0; - - /* "analysis.py":466 - * - * _mean = mean(c_data) - * _median = median(c_data) # <<<<<<<<<<<<<< - * try: - * _mode = mode(c_data) - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_median); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_v_c_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_c_data); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v__median = __pyx_t_3; - __pyx_t_3 = 0; - - /* "analysis.py":467 - * _mean = mean(c_data) - * _median = median(c_data) - * try: # <<<<<<<<<<<<<< - * _mode = mode(c_data) - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_11); - /*try:*/ { - - /* "analysis.py":468 - * _median = median(c_data) - * try: - * _mode = mode(c_data) # <<<<<<<<<<<<<< - * except: - * _mode = None - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_mode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 468, __pyx_L45_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_v_c_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_c_data); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 468, __pyx_L45_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v__mode = __pyx_t_3; - __pyx_t_3 = 0; - - /* "analysis.py":467 - * _mean = mean(c_data) - * _median = median(c_data) - * try: # <<<<<<<<<<<<<< - * _mode = mode(c_data) - * except: - */ - } - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - goto __pyx_L50_try_end; - __pyx_L45_error:; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":469 - * try: - * _mode = mode(c_data) - * except: # <<<<<<<<<<<<<< - * _mode = None - * try: - */ - /*except:*/ { - __Pyx_AddTraceback("analysis.basic_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_7) < 0) __PYX_ERR(0, 469, __pyx_L47_except_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_7); - - /* "analysis.py":470 - * _mode = mode(c_data) - * except: - * _mode = None # <<<<<<<<<<<<<< - * try: - * _stdev = stdev(c_data) - */ - __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v__mode, Py_None); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L46_exception_handled; - } - __pyx_L47_except_error:; - - /* "analysis.py":467 - * _mean = mean(c_data) - * _median = median(c_data) - * try: # <<<<<<<<<<<<<< - * _mode = mode(c_data) - * except: - */ - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - goto __pyx_L1_error; - __pyx_L46_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_L50_try_end:; - } - - /* "analysis.py":471 - * except: - * _mode = None - * try: # <<<<<<<<<<<<<< - * _stdev = stdev(c_data) - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_9); - /*try:*/ { - - /* "analysis.py":472 - * _mode = None - * try: - * _stdev = stdev(c_data) # <<<<<<<<<<<<<< - * except: - * _stdev = None - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_stdev); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 472, __pyx_L53_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_7 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_v_c_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_c_data); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 472, __pyx_L53_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v__stdev = __pyx_t_7; - __pyx_t_7 = 0; - - /* "analysis.py":471 - * except: - * _mode = None - * try: # <<<<<<<<<<<<<< - * _stdev = stdev(c_data) - * except: - */ - } - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L58_try_end; - __pyx_L53_error:; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":473 - * try: - * _stdev = stdev(c_data) - * except: # <<<<<<<<<<<<<< - * _stdev = None - * try: - */ - /*except:*/ { - __Pyx_AddTraceback("analysis.basic_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_5, &__pyx_t_3) < 0) __PYX_ERR(0, 473, __pyx_L55_except_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_3); - - /* "analysis.py":474 - * _stdev = stdev(c_data) - * except: - * _stdev = None # <<<<<<<<<<<<<< - * try: - * _variance = variance(c_data) - */ - __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v__stdev, Py_None); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L54_exception_handled; - } - __pyx_L55_except_error:; - - /* "analysis.py":471 - * except: - * _mode = None - * try: # <<<<<<<<<<<<<< - * _stdev = stdev(c_data) - * except: - */ - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9); - goto __pyx_L1_error; - __pyx_L54_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9); - __pyx_L58_try_end:; - } - - /* "analysis.py":475 - * except: - * _stdev = None - * try: # <<<<<<<<<<<<<< - * _variance = variance(c_data) - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_11); - /*try:*/ { - - /* "analysis.py":476 - * _stdev = None - * try: - * _variance = variance(c_data) # <<<<<<<<<<<<<< - * except: - * _variance = None - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_variance); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 476, __pyx_L61_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_v_c_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_c_data); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 476, __pyx_L61_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v__variance = __pyx_t_3; - __pyx_t_3 = 0; - - /* "analysis.py":475 - * except: - * _stdev = None - * try: # <<<<<<<<<<<<<< - * _variance = variance(c_data) - * except: - */ - } - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - goto __pyx_L66_try_end; - __pyx_L61_error:; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":477 - * try: - * _variance = variance(c_data) - * except: # <<<<<<<<<<<<<< - * _variance = None - * - */ - /*except:*/ { - __Pyx_AddTraceback("analysis.basic_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_7) < 0) __PYX_ERR(0, 477, __pyx_L63_except_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_7); - - /* "analysis.py":478 - * _variance = variance(c_data) - * except: - * _variance = None # <<<<<<<<<<<<<< - * - * return _mean, _median, _mode, _stdev, _variance - */ - __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v__variance, Py_None); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L62_exception_handled; - } - __pyx_L63_except_error:; - - /* "analysis.py":475 - * except: - * _stdev = None - * try: # <<<<<<<<<<<<<< - * _variance = variance(c_data) - * except: - */ - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - goto __pyx_L1_error; - __pyx_L62_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_L66_try_end:; - } - - /* "analysis.py":480 - * _variance = None - * - * return _mean, _median, _mode, _stdev, _variance # <<<<<<<<<<<<<< - * - * elif method == "row" or method == 2: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = PyTuple_New(5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_INCREF(__pyx_v__mean); - __Pyx_GIVEREF(__pyx_v__mean); - PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__mean); - __Pyx_INCREF(__pyx_v__median); - __Pyx_GIVEREF(__pyx_v__median); - PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v__median); - __Pyx_INCREF(__pyx_v__mode); - __Pyx_GIVEREF(__pyx_v__mode); - PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v__mode); - __Pyx_INCREF(__pyx_v__stdev); - __Pyx_GIVEREF(__pyx_v__stdev); - PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v__stdev); - __Pyx_INCREF(__pyx_v__variance); - __Pyx_GIVEREF(__pyx_v__variance); - PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_v__variance); - __pyx_r = __pyx_t_7; - __pyx_t_7 = 0; - goto __pyx_L0; - - /* "analysis.py":454 - * return _mean, _median, _mode, _stdev, _variance - * - * elif method == "column" or method == 1: # <<<<<<<<<<<<<< - * - * c_data = [] - */ - } - - /* "analysis.py":482 - * return _mean, _median, _mode, _stdev, _variance - * - * elif method == "row" or method == 2: # <<<<<<<<<<<<<< - * - * r_data = [] - */ - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_row, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 482, __pyx_L1_error) - if (!__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L69_bool_binop_done; - } - __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_method, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 482, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 482, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_1 = __pyx_t_2; - __pyx_L69_bool_binop_done:; - if (likely(__pyx_t_1)) { - - /* "analysis.py":484 - * elif method == "row" or method == 2: - * - * r_data = [] # <<<<<<<<<<<<<< - * - * for i in range(len(data[arg])): - */ - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 484, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_v_r_data = ((PyObject*)__pyx_t_7); - __pyx_t_7 = 0; - - /* "analysis.py":486 - * r_data = [] - * - * for i in range(len(data[arg])): # <<<<<<<<<<<<<< - * r_data.append(float(data[arg][i])) - * - */ - __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_data, __pyx_v_arg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 486, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { - __pyx_t_7 = __pyx_t_5; __Pyx_INCREF(__pyx_t_7); __pyx_t_4 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 486, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_7))) { - if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_7)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 486, __pyx_L1_error) - #else - __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #endif - } else { - if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_7)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 486, __pyx_L1_error) - #else - __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #endif - } - } else { - __pyx_t_5 = __pyx_t_6(__pyx_t_7); - if (unlikely(!__pyx_t_5)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 486, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_5); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5); - __pyx_t_5 = 0; - - /* "analysis.py":487 - * - * for i in range(len(data[arg])): - * r_data.append(float(data[arg][i])) # <<<<<<<<<<<<<< - * - * _mean = mean(r_data) - */ - __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_data, __pyx_v_arg); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 487, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 487, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyNumber_Float(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 487, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_r_data, __pyx_t_5); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 487, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - /* "analysis.py":486 - * r_data = [] - * - * for i in range(len(data[arg])): # <<<<<<<<<<<<<< - * r_data.append(float(data[arg][i])) - * - */ - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":489 - * r_data.append(float(data[arg][i])) - * - * _mean = mean(r_data) # <<<<<<<<<<<<<< - * _median = median(r_data) - * try: - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_mean); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_7 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_v_r_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_r_data); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v__mean = __pyx_t_7; - __pyx_t_7 = 0; - - /* "analysis.py":490 - * - * _mean = mean(r_data) - * _median = median(r_data) # <<<<<<<<<<<<<< - * try: - * _mode = mode(r_data) - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_median); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_7 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_v_r_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_r_data); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v__median = __pyx_t_7; - __pyx_t_7 = 0; - - /* "analysis.py":491 - * _mean = mean(r_data) - * _median = median(r_data) - * try: # <<<<<<<<<<<<<< - * _mode = mode(r_data) - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_9); - /*try:*/ { - - /* "analysis.py":492 - * _median = median(r_data) - * try: - * _mode = mode(r_data) # <<<<<<<<<<<<<< - * except: - * _mode = None - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_mode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 492, __pyx_L73_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_7 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_v_r_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_r_data); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 492, __pyx_L73_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v__mode = __pyx_t_7; - __pyx_t_7 = 0; - - /* "analysis.py":491 - * _mean = mean(r_data) - * _median = median(r_data) - * try: # <<<<<<<<<<<<<< - * _mode = mode(r_data) - * except: - */ - } - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L78_try_end; - __pyx_L73_error:; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":493 - * try: - * _mode = mode(r_data) - * except: # <<<<<<<<<<<<<< - * _mode = None - * try: - */ - /*except:*/ { - __Pyx_AddTraceback("analysis.basic_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_5, &__pyx_t_3) < 0) __PYX_ERR(0, 493, __pyx_L75_except_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_3); - - /* "analysis.py":494 - * _mode = mode(r_data) - * except: - * _mode = None # <<<<<<<<<<<<<< - * try: - * _stdev = stdev(r_data) - */ - __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v__mode, Py_None); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L74_exception_handled; - } - __pyx_L75_except_error:; - - /* "analysis.py":491 - * _mean = mean(r_data) - * _median = median(r_data) - * try: # <<<<<<<<<<<<<< - * _mode = mode(r_data) - * except: - */ - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9); - goto __pyx_L1_error; - __pyx_L74_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9); - __pyx_L78_try_end:; - } - - /* "analysis.py":495 - * except: - * _mode = None - * try: # <<<<<<<<<<<<<< - * _stdev = stdev(r_data) - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_11); - /*try:*/ { - - /* "analysis.py":496 - * _mode = None - * try: - * _stdev = stdev(r_data) # <<<<<<<<<<<<<< - * except: - * _stdev = None - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_stdev); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 496, __pyx_L81_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_v_r_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_r_data); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 496, __pyx_L81_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v__stdev = __pyx_t_3; - __pyx_t_3 = 0; - - /* "analysis.py":495 - * except: - * _mode = None - * try: # <<<<<<<<<<<<<< - * _stdev = stdev(r_data) - * except: - */ - } - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - goto __pyx_L86_try_end; - __pyx_L81_error:; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":497 - * try: - * _stdev = stdev(r_data) - * except: # <<<<<<<<<<<<<< - * _stdev = None - * try: - */ - /*except:*/ { - __Pyx_AddTraceback("analysis.basic_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_7) < 0) __PYX_ERR(0, 497, __pyx_L83_except_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_7); - - /* "analysis.py":498 - * _stdev = stdev(r_data) - * except: - * _stdev = None # <<<<<<<<<<<<<< - * try: - * _variance = variance(r_data) - */ - __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v__stdev, Py_None); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L82_exception_handled; - } - __pyx_L83_except_error:; - - /* "analysis.py":495 - * except: - * _mode = None - * try: # <<<<<<<<<<<<<< - * _stdev = stdev(r_data) - * except: - */ - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - goto __pyx_L1_error; - __pyx_L82_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_L86_try_end:; - } - - /* "analysis.py":499 - * except: - * _stdev = None - * try: # <<<<<<<<<<<<<< - * _variance = variance(r_data) - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_9); - /*try:*/ { - - /* "analysis.py":500 - * _stdev = None - * try: - * _variance = variance(r_data) # <<<<<<<<<<<<<< - * except: - * _variance = None - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_variance); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 500, __pyx_L89_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_7 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_v_r_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_r_data); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 500, __pyx_L89_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v__variance = __pyx_t_7; - __pyx_t_7 = 0; - - /* "analysis.py":499 - * except: - * _stdev = None - * try: # <<<<<<<<<<<<<< - * _variance = variance(r_data) - * except: - */ - } - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L94_try_end; - __pyx_L89_error:; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":501 - * try: - * _variance = variance(r_data) - * except: # <<<<<<<<<<<<<< - * _variance = None - * - */ - /*except:*/ { - __Pyx_AddTraceback("analysis.basic_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_5, &__pyx_t_3) < 0) __PYX_ERR(0, 501, __pyx_L91_except_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_3); - - /* "analysis.py":502 - * _variance = variance(r_data) - * except: - * _variance = None # <<<<<<<<<<<<<< - * - * return _mean, _median, _mode, _stdev, _variance - */ - __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v__variance, Py_None); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L90_exception_handled; - } - __pyx_L91_except_error:; - - /* "analysis.py":499 - * except: - * _stdev = None - * try: # <<<<<<<<<<<<<< - * _variance = variance(r_data) - * except: - */ - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9); - goto __pyx_L1_error; - __pyx_L90_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9); - __pyx_L94_try_end:; - } - - /* "analysis.py":504 - * _variance = None - * - * return _mean, _median, _mode, _stdev, _variance # <<<<<<<<<<<<<< - * - * else: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 504, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v__mean); - __Pyx_GIVEREF(__pyx_v__mean); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__mean); - __Pyx_INCREF(__pyx_v__median); - __Pyx_GIVEREF(__pyx_v__median); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v__median); - __Pyx_INCREF(__pyx_v__mode); - __Pyx_GIVEREF(__pyx_v__mode); - PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v__mode); - __Pyx_INCREF(__pyx_v__stdev); - __Pyx_GIVEREF(__pyx_v__stdev); - PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v__stdev); - __Pyx_INCREF(__pyx_v__variance); - __Pyx_GIVEREF(__pyx_v__variance); - PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v__variance); - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "analysis.py":482 - * return _mean, _median, _mode, _stdev, _variance - * - * elif method == "row" or method == 2: # <<<<<<<<<<<<<< - * - * r_data = [] - */ - } - - /* "analysis.py":507 - * - * else: - * raise error("method error") # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_kp_s_method_error) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_s_method_error); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 507, __pyx_L1_error) - } - - /* "analysis.py":425 - * - * # data=array, mode = ['1d':1d_basic_stats, 'column':c_basic_stats, 'row':r_basic_stats], arg for mode 1 or mode 2 for column or row - * def basic_stats(data, method, arg): # <<<<<<<<<<<<<< - * - * if method == 'debug': - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("analysis.basic_stats", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_data_t); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v__mean); - __Pyx_XDECREF(__pyx_v__median); - __Pyx_XDECREF(__pyx_v__mode); - __Pyx_XDECREF(__pyx_v__stdev); - __Pyx_XDECREF(__pyx_v__variance); - __Pyx_XDECREF(__pyx_v_c_data); - __Pyx_XDECREF(__pyx_v_c_data_sorted); - __Pyx_XDECREF(__pyx_v_r_data); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":511 - * - * # returns z score with inputs of point, mean and standard deviation of spread - * def z_score(point, mean, stdev): # <<<<<<<<<<<<<< - * score = (point - mean) / stdev - * return score - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_7z_score(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_7z_score = {"z_score", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_7z_score, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_7z_score(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_point = 0; - PyObject *__pyx_v_mean = 0; - PyObject *__pyx_v_stdev = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("z_score (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_mean,&__pyx_n_s_stdev,0}; - PyObject* values[3] = {0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_point)) != 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_mean)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("z_score", 1, 3, 3, 1); __PYX_ERR(0, 511, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stdev)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("z_score", 1, 3, 3, 2); __PYX_ERR(0, 511, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "z_score") < 0)) __PYX_ERR(0, 511, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - } - __pyx_v_point = values[0]; - __pyx_v_mean = values[1]; - __pyx_v_stdev = values[2]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("z_score", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 511, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.z_score", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_6z_score(__pyx_self, __pyx_v_point, __pyx_v_mean, __pyx_v_stdev); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_6z_score(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_point, PyObject *__pyx_v_mean, PyObject *__pyx_v_stdev) { - PyObject *__pyx_v_score = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - __Pyx_RefNannySetupContext("z_score", 0); - - /* "analysis.py":512 - * # returns z score with inputs of point, mean and standard deviation of spread - * def z_score(point, mean, stdev): - * score = (point - mean) / stdev # <<<<<<<<<<<<<< - * return score - * - */ - __pyx_t_1 = PyNumber_Subtract(__pyx_v_point, __pyx_v_mean); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 512, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_v_stdev); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 512, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_score = __pyx_t_2; - __pyx_t_2 = 0; - - /* "analysis.py":513 - * def z_score(point, mean, stdev): - * score = (point - mean) / stdev - * return score # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_score); - __pyx_r = __pyx_v_score; - goto __pyx_L0; - - /* "analysis.py":511 - * - * # returns z score with inputs of point, mean and standard deviation of spread - * def z_score(point, mean, stdev): # <<<<<<<<<<<<<< - * score = (point - mean) / stdev - * return score - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("analysis.z_score", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_score); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":517 - * - * # mode is either 'x' or 'y' or 'both' depending on the variable(s) to be normalized - * def z_normalize(x, y, mode): # <<<<<<<<<<<<<< - * - * x_norm = [] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_9z_normalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_9z_normalize = {"z_normalize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_9z_normalize, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_9z_normalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_x = 0; - PyObject *__pyx_v_y = 0; - PyObject *__pyx_v_mode = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("z_normalize (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_mode,0}; - PyObject* values[3] = {0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_x)) != 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_y)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("z_normalize", 1, 3, 3, 1); __PYX_ERR(0, 517, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("z_normalize", 1, 3, 3, 2); __PYX_ERR(0, 517, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "z_normalize") < 0)) __PYX_ERR(0, 517, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - } - __pyx_v_x = values[0]; - __pyx_v_y = values[1]; - __pyx_v_mode = values[2]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("z_normalize", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 517, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.z_normalize", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_8z_normalize(__pyx_self, __pyx_v_x, __pyx_v_y, __pyx_v_mode); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_8z_normalize(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_mode) { - PyObject *__pyx_v_x_norm = NULL; - PyObject *__pyx_v_y_norm = NULL; - CYTHON_UNUSED long __pyx_v_mean; - CYTHON_UNUSED long __pyx_v_stdev; - PyObject *__pyx_v__mean = NULL; - CYTHON_UNUSED PyObject *__pyx_v__median = NULL; - CYTHON_UNUSED PyObject *__pyx_v__mode = NULL; - PyObject *__pyx_v__stdev = NULL; - CYTHON_UNUSED PyObject *__pyx_v__variance = NULL; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *(*__pyx_t_10)(PyObject *); - Py_ssize_t __pyx_t_11; - Py_ssize_t __pyx_t_12; - Py_ssize_t __pyx_t_13; - int __pyx_t_14; - __Pyx_RefNannySetupContext("z_normalize", 0); - - /* "analysis.py":519 - * def z_normalize(x, y, mode): - * - * x_norm = [] # <<<<<<<<<<<<<< - * y_norm = [] - * - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 519, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_x_norm = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":520 - * - * x_norm = [] - * y_norm = [] # <<<<<<<<<<<<<< - * - * mean = 0 - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_y_norm = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":522 - * y_norm = [] - * - * mean = 0 # <<<<<<<<<<<<<< - * stdev = 0 - * - */ - __pyx_v_mean = 0; - - /* "analysis.py":523 - * - * mean = 0 - * stdev = 0 # <<<<<<<<<<<<<< - * - * if mode == 'x': - */ - __pyx_v_stdev = 0; - - /* "analysis.py":525 - * stdev = 0 - * - * if mode == 'x': # <<<<<<<<<<<<<< - * _mean, _median, _mode, _stdev, _variance = basic_stats(x, "1d", 0) - * - */ - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_x, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 525, __pyx_L1_error) - if (__pyx_t_2) { - - /* "analysis.py":526 - * - * if mode == 'x': - * _mean, _median, _mode, _stdev, _variance = basic_stats(x, "1d", 0) # <<<<<<<<<<<<<< - * - * for i in range(0, len(x), 1): - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_basic_stats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_x, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 526, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_x, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 526, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; - } - __Pyx_INCREF(__pyx_v_x); - __Pyx_GIVEREF(__pyx_v_x); - PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_x); - __Pyx_INCREF(__pyx_kp_s_1d); - __Pyx_GIVEREF(__pyx_kp_s_1d); - PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_kp_s_1d); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_int_0); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 5)) { - if (size > 5) __Pyx_RaiseTooManyValuesError(5); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 526, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 4); - } else { - __pyx_t_3 = PyList_GET_ITEM(sequence, 0); - __pyx_t_6 = PyList_GET_ITEM(sequence, 1); - __pyx_t_4 = PyList_GET_ITEM(sequence, 2); - __pyx_t_7 = PyList_GET_ITEM(sequence, 3); - __pyx_t_8 = PyList_GET_ITEM(sequence, 4); - } - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - #else - { - Py_ssize_t i; - PyObject** temps[5] = {&__pyx_t_3,&__pyx_t_6,&__pyx_t_4,&__pyx_t_7,&__pyx_t_8}; - for (i=0; i < 5; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 526, __pyx_L1_error) - __Pyx_GOTREF(item); - *(temps[i]) = item; - } - } - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - PyObject** temps[5] = {&__pyx_t_3,&__pyx_t_6,&__pyx_t_4,&__pyx_t_7,&__pyx_t_8}; - __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; - for (index=0; index < 5; index++) { - PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L4_unpacking_failed; - __Pyx_GOTREF(item); - *(temps[index]) = item; - } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 5) < 0) __PYX_ERR(0, 526, __pyx_L1_error) - __pyx_t_10 = NULL; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L5_unpacking_done; - __pyx_L4_unpacking_failed:; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_10 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 526, __pyx_L1_error) - __pyx_L5_unpacking_done:; - } - __pyx_v__mean = __pyx_t_3; - __pyx_t_3 = 0; - __pyx_v__median = __pyx_t_6; - __pyx_t_6 = 0; - __pyx_v__mode = __pyx_t_4; - __pyx_t_4 = 0; - __pyx_v__stdev = __pyx_t_7; - __pyx_t_7 = 0; - __pyx_v__variance = __pyx_t_8; - __pyx_t_8 = 0; - - /* "analysis.py":528 - * _mean, _median, _mode, _stdev, _variance = basic_stats(x, "1d", 0) - * - * for i in range(0, len(x), 1): # <<<<<<<<<<<<<< - * x_norm.append(z_score(x[i], _mean, _stdev)) - * - */ - __pyx_t_11 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 528, __pyx_L1_error) - __pyx_t_12 = __pyx_t_11; - for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { - __pyx_v_i = __pyx_t_13; - - /* "analysis.py":529 - * - * for i in range(0, len(x), 1): - * x_norm.append(z_score(x[i], _mean, _stdev)) # <<<<<<<<<<<<<< - * - * return x_norm, y - */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_z_score); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 529, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_x, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 529, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_7, __pyx_v__mean, __pyx_v__stdev}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 529, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_7, __pyx_v__mean, __pyx_v__stdev}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 529, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } else - #endif - { - __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 529, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; - } - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_7); - __Pyx_INCREF(__pyx_v__mean); - __Pyx_GIVEREF(__pyx_v__mean); - PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v__mean); - __Pyx_INCREF(__pyx_v__stdev); - __Pyx_GIVEREF(__pyx_v__stdev); - PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v__stdev); - __pyx_t_7 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 529, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_x_norm, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 529, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - - /* "analysis.py":531 - * x_norm.append(z_score(x[i], _mean, _stdev)) - * - * return x_norm, y # <<<<<<<<<<<<<< - * - * if mode == 'y': - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_x_norm); - __Pyx_GIVEREF(__pyx_v_x_norm); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_x_norm); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_y); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":525 - * stdev = 0 - * - * if mode == 'x': # <<<<<<<<<<<<<< - * _mean, _median, _mode, _stdev, _variance = basic_stats(x, "1d", 0) - * - */ - } - - /* "analysis.py":533 - * return x_norm, y - * - * if mode == 'y': # <<<<<<<<<<<<<< - * _mean, _median, _mode, _stdev, _variance = basic_stats(y, "1d", 0) - * - */ - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_y, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 533, __pyx_L1_error) - if (__pyx_t_2) { - - /* "analysis.py":534 - * - * if mode == 'y': - * _mean, _median, _mode, _stdev, _variance = basic_stats(y, "1d", 0) # <<<<<<<<<<<<<< - * - * for i in range(0, len(y), 1): - */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_basic_stats); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_6 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_y, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 534, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_y, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 534, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_7 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (__pyx_t_6) { - __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; - } - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_5, __pyx_v_y); - __Pyx_INCREF(__pyx_kp_s_1d); - __Pyx_GIVEREF(__pyx_kp_s_1d); - PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_5, __pyx_kp_s_1d); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_5, __pyx_int_0); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 5)) { - if (size > 5) __Pyx_RaiseTooManyValuesError(5); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 534, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 4); - } else { - __pyx_t_8 = PyList_GET_ITEM(sequence, 0); - __pyx_t_7 = PyList_GET_ITEM(sequence, 1); - __pyx_t_6 = PyList_GET_ITEM(sequence, 2); - __pyx_t_4 = PyList_GET_ITEM(sequence, 3); - __pyx_t_3 = PyList_GET_ITEM(sequence, 4); - } - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - #else - { - Py_ssize_t i; - PyObject** temps[5] = {&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_4,&__pyx_t_3}; - for (i=0; i < 5; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 534, __pyx_L1_error) - __Pyx_GOTREF(item); - *(temps[i]) = item; - } - } - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - PyObject** temps[5] = {&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_4,&__pyx_t_3}; - __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; - for (index=0; index < 5; index++) { - PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(item); - *(temps[index]) = item; - } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 5) < 0) __PYX_ERR(0, 534, __pyx_L1_error) - __pyx_t_10 = NULL; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L10_unpacking_done; - __pyx_L9_unpacking_failed:; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_10 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 534, __pyx_L1_error) - __pyx_L10_unpacking_done:; - } - __pyx_v__mean = __pyx_t_8; - __pyx_t_8 = 0; - __pyx_v__median = __pyx_t_7; - __pyx_t_7 = 0; - __pyx_v__mode = __pyx_t_6; - __pyx_t_6 = 0; - __pyx_v__stdev = __pyx_t_4; - __pyx_t_4 = 0; - __pyx_v__variance = __pyx_t_3; - __pyx_t_3 = 0; - - /* "analysis.py":536 - * _mean, _median, _mode, _stdev, _variance = basic_stats(y, "1d", 0) - * - * for i in range(0, len(y), 1): # <<<<<<<<<<<<<< - * y_norm.append(z_score(y[i], _mean, _stdev)) - * - */ - __pyx_t_11 = PyObject_Length(__pyx_v_y); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error) - __pyx_t_12 = __pyx_t_11; - for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { - __pyx_v_i = __pyx_t_13; - - /* "analysis.py":537 - * - * for i in range(0, len(y), 1): - * y_norm.append(z_score(y[i], _mean, _stdev)) # <<<<<<<<<<<<<< - * - * return x, y_norm - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_z_score); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_y, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_4, __pyx_v__mean, __pyx_v__stdev}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_4, __pyx_v__mean, __pyx_v__stdev}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - { - __pyx_t_7 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (__pyx_t_6) { - __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; - } - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_5, __pyx_t_4); - __Pyx_INCREF(__pyx_v__mean); - __Pyx_GIVEREF(__pyx_v__mean); - PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_5, __pyx_v__mean); - __Pyx_INCREF(__pyx_v__stdev); - __Pyx_GIVEREF(__pyx_v__stdev); - PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_5, __pyx_v__stdev); - __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_y_norm, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - - /* "analysis.py":539 - * y_norm.append(z_score(y[i], _mean, _stdev)) - * - * return x, y_norm # <<<<<<<<<<<<<< - * - * if mode == 'both': - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_x); - __Pyx_GIVEREF(__pyx_v_x); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_x); - __Pyx_INCREF(__pyx_v_y_norm); - __Pyx_GIVEREF(__pyx_v_y_norm); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_y_norm); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":533 - * return x_norm, y - * - * if mode == 'y': # <<<<<<<<<<<<<< - * _mean, _median, _mode, _stdev, _variance = basic_stats(y, "1d", 0) - * - */ - } - - /* "analysis.py":541 - * return x, y_norm - * - * if mode == 'both': # <<<<<<<<<<<<<< - * _mean, _median, _mode, _stdev, _variance = basic_stats(x, "1d", 0) - * - */ - __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_both, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 541, __pyx_L1_error) - if (__pyx_t_2) { - - /* "analysis.py":542 - * - * if mode == 'both': - * _mean, _median, _mode, _stdev, _variance = basic_stats(x, "1d", 0) # <<<<<<<<<<<<<< - * - * for i in range(0, len(x), 1): - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_basic_stats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_x, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 542, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_x, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 542, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_4 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_7) { - __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL; - } - __Pyx_INCREF(__pyx_v_x); - __Pyx_GIVEREF(__pyx_v_x); - PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_v_x); - __Pyx_INCREF(__pyx_kp_s_1d); - __Pyx_GIVEREF(__pyx_kp_s_1d); - PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_kp_s_1d); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_int_0); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 5)) { - if (size > 5) __Pyx_RaiseTooManyValuesError(5); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 542, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 4); - } else { - __pyx_t_3 = PyList_GET_ITEM(sequence, 0); - __pyx_t_4 = PyList_GET_ITEM(sequence, 1); - __pyx_t_7 = PyList_GET_ITEM(sequence, 2); - __pyx_t_6 = PyList_GET_ITEM(sequence, 3); - __pyx_t_8 = PyList_GET_ITEM(sequence, 4); - } - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_8); - #else - { - Py_ssize_t i; - PyObject** temps[5] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_7,&__pyx_t_6,&__pyx_t_8}; - for (i=0; i < 5; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 542, __pyx_L1_error) - __Pyx_GOTREF(item); - *(temps[i]) = item; - } - } - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - PyObject** temps[5] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_7,&__pyx_t_6,&__pyx_t_8}; - __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; - for (index=0; index < 5; index++) { - PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L14_unpacking_failed; - __Pyx_GOTREF(item); - *(temps[index]) = item; - } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 5) < 0) __PYX_ERR(0, 542, __pyx_L1_error) - __pyx_t_10 = NULL; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L15_unpacking_done; - __pyx_L14_unpacking_failed:; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_10 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 542, __pyx_L1_error) - __pyx_L15_unpacking_done:; - } - __pyx_v__mean = __pyx_t_3; - __pyx_t_3 = 0; - __pyx_v__median = __pyx_t_4; - __pyx_t_4 = 0; - __pyx_v__mode = __pyx_t_7; - __pyx_t_7 = 0; - __pyx_v__stdev = __pyx_t_6; - __pyx_t_6 = 0; - __pyx_v__variance = __pyx_t_8; - __pyx_t_8 = 0; - - /* "analysis.py":544 - * _mean, _median, _mode, _stdev, _variance = basic_stats(x, "1d", 0) - * - * for i in range(0, len(x), 1): # <<<<<<<<<<<<<< - * x_norm.append(z_score(x[i], _mean, _stdev)) - * - */ - __pyx_t_11 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 544, __pyx_L1_error) - __pyx_t_12 = __pyx_t_11; - for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { - __pyx_v_i = __pyx_t_13; - - /* "analysis.py":545 - * - * for i in range(0, len(x), 1): - * x_norm.append(z_score(x[i], _mean, _stdev)) # <<<<<<<<<<<<<< - * - * _mean, _median, _mode, _stdev, _variance = basic_stats(y, "1d", 0) - */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_z_score); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_x, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_6, __pyx_v__mean, __pyx_v__stdev}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 545, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_6, __pyx_v__mean, __pyx_v__stdev}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 545, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } else - #endif - { - __pyx_t_4 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_7) { - __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL; - } - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_t_6); - __Pyx_INCREF(__pyx_v__mean); - __Pyx_GIVEREF(__pyx_v__mean); - PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_v__mean); - __Pyx_INCREF(__pyx_v__stdev); - __Pyx_GIVEREF(__pyx_v__stdev); - PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v__stdev); - __pyx_t_6 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_x_norm, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 545, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - - /* "analysis.py":547 - * x_norm.append(z_score(x[i], _mean, _stdev)) - * - * _mean, _median, _mode, _stdev, _variance = basic_stats(y, "1d", 0) # <<<<<<<<<<<<<< - * - * for i in range(0, len(y), 1): - */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_basic_stats); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 547, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_y, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 547, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_y, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 547, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 547, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; - } - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_y); - __Pyx_INCREF(__pyx_kp_s_1d); - __Pyx_GIVEREF(__pyx_kp_s_1d); - PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_kp_s_1d); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_int_0); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 547, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 5)) { - if (size > 5) __Pyx_RaiseTooManyValuesError(5); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 547, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 4); - } else { - __pyx_t_8 = PyList_GET_ITEM(sequence, 0); - __pyx_t_6 = PyList_GET_ITEM(sequence, 1); - __pyx_t_4 = PyList_GET_ITEM(sequence, 2); - __pyx_t_7 = PyList_GET_ITEM(sequence, 3); - __pyx_t_3 = PyList_GET_ITEM(sequence, 4); - } - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_3); - #else - { - Py_ssize_t i; - PyObject** temps[5] = {&__pyx_t_8,&__pyx_t_6,&__pyx_t_4,&__pyx_t_7,&__pyx_t_3}; - for (i=0; i < 5; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 547, __pyx_L1_error) - __Pyx_GOTREF(item); - *(temps[i]) = item; - } - } - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - PyObject** temps[5] = {&__pyx_t_8,&__pyx_t_6,&__pyx_t_4,&__pyx_t_7,&__pyx_t_3}; - __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 547, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; - for (index=0; index < 5; index++) { - PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L18_unpacking_failed; - __Pyx_GOTREF(item); - *(temps[index]) = item; - } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 5) < 0) __PYX_ERR(0, 547, __pyx_L1_error) - __pyx_t_10 = NULL; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L19_unpacking_done; - __pyx_L18_unpacking_failed:; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_10 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 547, __pyx_L1_error) - __pyx_L19_unpacking_done:; - } - __Pyx_DECREF_SET(__pyx_v__mean, __pyx_t_8); - __pyx_t_8 = 0; - __Pyx_DECREF_SET(__pyx_v__median, __pyx_t_6); - __pyx_t_6 = 0; - __Pyx_DECREF_SET(__pyx_v__mode, __pyx_t_4); - __pyx_t_4 = 0; - __Pyx_DECREF_SET(__pyx_v__stdev, __pyx_t_7); - __pyx_t_7 = 0; - __Pyx_DECREF_SET(__pyx_v__variance, __pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":549 - * _mean, _median, _mode, _stdev, _variance = basic_stats(y, "1d", 0) - * - * for i in range(0, len(y), 1): # <<<<<<<<<<<<<< - * y_norm.append(z_score(y[i], _mean, _stdev)) - * - */ - __pyx_t_11 = PyObject_Length(__pyx_v_y); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 549, __pyx_L1_error) - __pyx_t_12 = __pyx_t_11; - for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { - __pyx_v_i = __pyx_t_13; - - /* "analysis.py":550 - * - * for i in range(0, len(y), 1): - * y_norm.append(z_score(y[i], _mean, _stdev)) # <<<<<<<<<<<<<< - * - * return x_norm, y_norm - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_z_score); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_y, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_7, __pyx_v__mean, __pyx_v__stdev}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 550, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_7, __pyx_v__mean, __pyx_v__stdev}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 550, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } else - #endif - { - __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; - } - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_7); - __Pyx_INCREF(__pyx_v__mean); - __Pyx_GIVEREF(__pyx_v__mean); - PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v__mean); - __Pyx_INCREF(__pyx_v__stdev); - __Pyx_GIVEREF(__pyx_v__stdev); - PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v__stdev); - __pyx_t_7 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_y_norm, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 550, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - - /* "analysis.py":552 - * y_norm.append(z_score(y[i], _mean, _stdev)) - * - * return x_norm, y_norm # <<<<<<<<<<<<<< - * - * else: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_x_norm); - __Pyx_GIVEREF(__pyx_v_x_norm); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_x_norm); - __Pyx_INCREF(__pyx_v_y_norm); - __Pyx_GIVEREF(__pyx_v_y_norm); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_y_norm); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":541 - * return x, y_norm - * - * if mode == 'both': # <<<<<<<<<<<<<< - * _mean, _median, _mode, _stdev, _variance = basic_stats(x, "1d", 0) - * - */ - } - - /* "analysis.py":556 - * else: - * - * return error('method error') # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 556, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_kp_s_method_error) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_s_method_error); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 556, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - } - - /* "analysis.py":517 - * - * # mode is either 'x' or 'y' or 'both' depending on the variable(s) to be normalized - * def z_normalize(x, y, mode): # <<<<<<<<<<<<<< - * - * x_norm = [] - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("analysis.z_normalize", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_x_norm); - __Pyx_XDECREF(__pyx_v_y_norm); - __Pyx_XDECREF(__pyx_v__mean); - __Pyx_XDECREF(__pyx_v__median); - __Pyx_XDECREF(__pyx_v__mode); - __Pyx_XDECREF(__pyx_v__stdev); - __Pyx_XDECREF(__pyx_v__variance); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":560 - * - * # returns n-th percentile of spread given mean, standard deviation, lower z-score, and upper z-score - * def stdev_z_split(mean, stdev, delta, low_bound, high_bound): # <<<<<<<<<<<<<< - * - * z_split = [] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_11stdev_z_split(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_11stdev_z_split = {"stdev_z_split", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_11stdev_z_split, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_11stdev_z_split(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_mean = 0; - PyObject *__pyx_v_stdev = 0; - PyObject *__pyx_v_delta = 0; - PyObject *__pyx_v_low_bound = 0; - PyObject *__pyx_v_high_bound = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stdev_z_split (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mean,&__pyx_n_s_stdev,&__pyx_n_s_delta,&__pyx_n_s_low_bound,&__pyx_n_s_high_bound,0}; - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_mean)) != 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_stdev)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("stdev_z_split", 1, 5, 5, 1); __PYX_ERR(0, 560, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_delta)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("stdev_z_split", 1, 5, 5, 2); __PYX_ERR(0, 560, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low_bound)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("stdev_z_split", 1, 5, 5, 3); __PYX_ERR(0, 560, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high_bound)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("stdev_z_split", 1, 5, 5, 4); __PYX_ERR(0, 560, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stdev_z_split") < 0)) __PYX_ERR(0, 560, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_mean = values[0]; - __pyx_v_stdev = values[1]; - __pyx_v_delta = values[2]; - __pyx_v_low_bound = values[3]; - __pyx_v_high_bound = values[4]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stdev_z_split", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 560, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.stdev_z_split", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_10stdev_z_split(__pyx_self, __pyx_v_mean, __pyx_v_stdev, __pyx_v_delta, __pyx_v_low_bound, __pyx_v_high_bound); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_10stdev_z_split(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_mean, PyObject *__pyx_v_stdev, PyObject *__pyx_v_delta, PyObject *__pyx_v_low_bound, PyObject *__pyx_v_high_bound) { - PyObject *__pyx_v_z_split = NULL; - PyObject *__pyx_v_i = NULL; - 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; - int __pyx_t_5; - int __pyx_t_6; - __Pyx_RefNannySetupContext("stdev_z_split", 0); - - /* "analysis.py":562 - * def stdev_z_split(mean, stdev, delta, low_bound, high_bound): - * - * z_split = [] # <<<<<<<<<<<<<< - * i = low_bound - * - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 562, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_z_split = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":563 - * - * z_split = [] - * i = low_bound # <<<<<<<<<<<<<< - * - * while True: - */ - __Pyx_INCREF(__pyx_v_low_bound); - __pyx_v_i = __pyx_v_low_bound; - - /* "analysis.py":565 - * i = low_bound - * - * while True: # <<<<<<<<<<<<<< - * z_split.append(float((1 / (stdev * math.sqrt(2 * math.pi))) * - * math.e ** (-0.5 * (((i - mean) / stdev) ** 2)))) - */ - while (1) { - - /* "analysis.py":566 - * - * while True: - * z_split.append(float((1 / (stdev * math.sqrt(2 * math.pi))) * # <<<<<<<<<<<<<< - * math.e ** (-0.5 * (((i - mean) / stdev) ** 2)))) - * i = i + delta - */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_math); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_math); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_pi); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Multiply(__pyx_int_2, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyNumber_Multiply(__pyx_v_stdev, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_int_1, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "analysis.py":567 - * while True: - * z_split.append(float((1 / (stdev * math.sqrt(2 * math.pi))) * - * math.e ** (-0.5 * (((i - mean) / stdev) ** 2)))) # <<<<<<<<<<<<<< - * i = i + delta - * if i > high_bound: - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_math); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_e); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyNumber_Subtract(__pyx_v_i, __pyx_v_mean); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_v_stdev); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyNumber_Power(__pyx_t_4, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_Multiply(__pyx_float_neg_0_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyNumber_Power(__pyx_t_2, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "analysis.py":566 - * - * while True: - * z_split.append(float((1 / (stdev * math.sqrt(2 * math.pi))) * # <<<<<<<<<<<<<< - * math.e ** (-0.5 * (((i - mean) / stdev) ** 2)))) - * i = i + delta - */ - __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyNumber_Float(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_z_split, __pyx_t_3); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "analysis.py":568 - * z_split.append(float((1 / (stdev * math.sqrt(2 * math.pi))) * - * math.e ** (-0.5 * (((i - mean) / stdev) ** 2)))) - * i = i + delta # <<<<<<<<<<<<<< - * if i > high_bound: - * break - */ - __pyx_t_3 = PyNumber_Add(__pyx_v_i, __pyx_v_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 568, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":569 - * math.e ** (-0.5 * (((i - mean) / stdev) ** 2)))) - * i = i + delta - * if i > high_bound: # <<<<<<<<<<<<<< - * break - * - */ - __pyx_t_3 = PyObject_RichCompare(__pyx_v_i, __pyx_v_high_bound, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 569, __pyx_L1_error) - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 569, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_6) { - - /* "analysis.py":570 - * i = i + delta - * if i > high_bound: - * break # <<<<<<<<<<<<<< - * - * return z_split - */ - goto __pyx_L4_break; - - /* "analysis.py":569 - * math.e ** (-0.5 * (((i - mean) / stdev) ** 2)))) - * i = i + delta - * if i > high_bound: # <<<<<<<<<<<<<< - * break - * - */ - } - } - __pyx_L4_break:; - - /* "analysis.py":572 - * break - * - * return z_split # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_z_split); - __pyx_r = __pyx_v_z_split; - goto __pyx_L0; - - /* "analysis.py":560 - * - * # returns n-th percentile of spread given mean, standard deviation, lower z-score, and upper z-score - * def stdev_z_split(mean, stdev, delta, low_bound, high_bound): # <<<<<<<<<<<<<< - * - * z_split = [] - */ - - /* 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); - __Pyx_AddTraceback("analysis.stdev_z_split", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_z_split); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":575 - * - * - * def histo_analysis(hist_data, delta, low_bound, high_bound): # <<<<<<<<<<<<<< - * - * if hist_data == 'debug': - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_13histo_analysis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_13histo_analysis = {"histo_analysis", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_13histo_analysis, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_13histo_analysis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_hist_data = 0; - PyObject *__pyx_v_delta = 0; - PyObject *__pyx_v_low_bound = 0; - PyObject *__pyx_v_high_bound = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("histo_analysis (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hist_data,&__pyx_n_s_delta,&__pyx_n_s_low_bound,&__pyx_n_s_high_bound,0}; - PyObject* values[4] = {0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_hist_data)) != 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_delta)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("histo_analysis", 1, 4, 4, 1); __PYX_ERR(0, 575, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low_bound)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("histo_analysis", 1, 4, 4, 2); __PYX_ERR(0, 575, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high_bound)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("histo_analysis", 1, 4, 4, 3); __PYX_ERR(0, 575, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "histo_analysis") < 0)) __PYX_ERR(0, 575, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - } - __pyx_v_hist_data = values[0]; - __pyx_v_delta = values[1]; - __pyx_v_low_bound = values[2]; - __pyx_v_high_bound = values[3]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("histo_analysis", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 575, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.histo_analysis", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_12histo_analysis(__pyx_self, __pyx_v_hist_data, __pyx_v_delta, __pyx_v_low_bound, __pyx_v_high_bound); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_12histo_analysis(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_hist_data, PyObject *__pyx_v_delta, PyObject *__pyx_v_low_bound, PyObject *__pyx_v_high_bound) { - PyObject *__pyx_v_derivative = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_derivative_sorted = NULL; - PyObject *__pyx_v_mean_derivative = NULL; - PyObject *__pyx_v_stdev_derivative = NULL; - PyObject *__pyx_v_predictions = NULL; - PyObject *__pyx_v_pred_change = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *(*__pyx_t_5)(PyObject *); - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - double __pyx_t_10; - double __pyx_t_11; - int __pyx_t_12; - int __pyx_t_13; - PyObject *__pyx_t_14 = NULL; - __Pyx_RefNannySetupContext("histo_analysis", 0); - - /* "analysis.py":577 - * def histo_analysis(hist_data, delta, low_bound, high_bound): - * - * if hist_data == 'debug': # <<<<<<<<<<<<<< - * return ('returns list of predicted values based on historical data; input delta for delta step in z-score and lower and higher bounds in number of standard deviations') - * - */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_hist_data, __pyx_n_s_debug, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 577, __pyx_L1_error) - if (__pyx_t_1) { - - /* "analysis.py":578 - * - * if hist_data == 'debug': - * return ('returns list of predicted values based on historical data; input delta for delta step in z-score and lower and higher bounds in number of standard deviations') # <<<<<<<<<<<<<< - * - * derivative = [] - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_kp_s_returns_list_of_predicted_values); - __pyx_r = __pyx_kp_s_returns_list_of_predicted_values; - goto __pyx_L0; - - /* "analysis.py":577 - * def histo_analysis(hist_data, delta, low_bound, high_bound): - * - * if hist_data == 'debug': # <<<<<<<<<<<<<< - * return ('returns list of predicted values based on historical data; input delta for delta step in z-score and lower and higher bounds in number of standard deviations') - * - */ - } - - /* "analysis.py":580 - * return ('returns list of predicted values based on historical data; input delta for delta step in z-score and lower and higher bounds in number of standard deviations') - * - * derivative = [] # <<<<<<<<<<<<<< - * - * for i in range(0, len(hist_data), 1): - */ - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_derivative = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":582 - * derivative = [] - * - * for i in range(0, len(hist_data), 1): # <<<<<<<<<<<<<< - * try: - * derivative.append(float(hist_data[i - 1]) - float(hist_data[i])) - */ - __pyx_t_3 = PyObject_Length(__pyx_v_hist_data); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 582, __pyx_L1_error) - __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_int_1); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { - __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); __pyx_t_3 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_4))) { - if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_4)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 582, __pyx_L1_error) - #else - __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #endif - } else { - if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_4)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 582, __pyx_L1_error) - #else - __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #endif - } - } else { - __pyx_t_2 = __pyx_t_5(__pyx_t_4); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 582, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":583 - * - * for i in range(0, len(hist_data), 1): - * try: # <<<<<<<<<<<<<< - * derivative.append(float(hist_data[i - 1]) - float(hist_data[i])) - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); - /*try:*/ { - - /* "analysis.py":584 - * for i in range(0, len(hist_data), 1): - * try: - * derivative.append(float(hist_data[i - 1]) - float(hist_data[i])) # <<<<<<<<<<<<<< - * except: - * pass - */ - __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_i, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 584, __pyx_L6_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_hist_data, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L6_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_10 = __Pyx_PyObject_AsDouble(__pyx_t_9); if (unlikely(__pyx_t_10 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 584, __pyx_L6_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_hist_data, __pyx_v_i); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L6_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = __Pyx_PyObject_AsDouble(__pyx_t_9); if (unlikely(__pyx_t_11 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 584, __pyx_L6_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = PyFloat_FromDouble((__pyx_t_10 - __pyx_t_11)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L6_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_derivative, __pyx_t_9); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 584, __pyx_L6_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":583 - * - * for i in range(0, len(hist_data), 1): - * try: # <<<<<<<<<<<<<< - * derivative.append(float(hist_data[i - 1]) - float(hist_data[i])) - * except: - */ - } - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L13_try_end; - __pyx_L6_error:; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":585 - * try: - * derivative.append(float(hist_data[i - 1]) - float(hist_data[i])) - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L7_exception_handled; - } - __pyx_L7_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); - __pyx_L13_try_end:; - } - - /* "analysis.py":582 - * derivative = [] - * - * for i in range(0, len(hist_data), 1): # <<<<<<<<<<<<<< - * try: - * derivative.append(float(hist_data[i - 1]) - float(hist_data[i])) - */ - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "analysis.py":588 - * pass - * - * derivative_sorted = sorted(derivative, key=int) # <<<<<<<<<<<<<< - * mean_derivative = basic_stats(derivative_sorted, "1d", 0)[0] - * stdev_derivative = basic_stats(derivative_sorted, "1d", 0)[3] - */ - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 588, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF(__pyx_v_derivative); - __Pyx_GIVEREF(__pyx_v_derivative); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_derivative); - __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 588, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_key, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 588, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_4, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 588, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_v_derivative_sorted = __pyx_t_2; - __pyx_t_2 = 0; - - /* "analysis.py":589 - * - * derivative_sorted = sorted(derivative, key=int) - * mean_derivative = basic_stats(derivative_sorted, "1d", 0)[0] # <<<<<<<<<<<<<< - * stdev_derivative = basic_stats(derivative_sorted, "1d", 0)[3] - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_basic_stats); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 589, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = NULL; - __pyx_t_13 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_9, function); - __pyx_t_13 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_9)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_derivative_sorted, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 589, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_2); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_derivative_sorted, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 589, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_2); - } else - #endif - { - __pyx_t_14 = PyTuple_New(3+__pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 589, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL; - } - __Pyx_INCREF(__pyx_v_derivative_sorted); - __Pyx_GIVEREF(__pyx_v_derivative_sorted); - PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_v_derivative_sorted); - __Pyx_INCREF(__pyx_kp_s_1d); - __Pyx_GIVEREF(__pyx_kp_s_1d); - PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_kp_s_1d); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_13, __pyx_int_0); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 589, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 589, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_mean_derivative = __pyx_t_9; - __pyx_t_9 = 0; - - /* "analysis.py":590 - * derivative_sorted = sorted(derivative, key=int) - * mean_derivative = basic_stats(derivative_sorted, "1d", 0)[0] - * stdev_derivative = basic_stats(derivative_sorted, "1d", 0)[3] # <<<<<<<<<<<<<< - * - * predictions = [] - */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_basic_stats); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_14 = NULL; - __pyx_t_13 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_14)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_14); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_13 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_v_derivative_sorted, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 590, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_GOTREF(__pyx_t_9); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_v_derivative_sorted, __pyx_kp_s_1d, __pyx_int_0}; - __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 590, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_GOTREF(__pyx_t_9); - } else - #endif - { - __pyx_t_4 = PyTuple_New(3+__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_14) { - __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_14); __pyx_t_14 = NULL; - } - __Pyx_INCREF(__pyx_v_derivative_sorted); - __Pyx_GIVEREF(__pyx_v_derivative_sorted); - PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_13, __pyx_v_derivative_sorted); - __Pyx_INCREF(__pyx_kp_s_1d); - __Pyx_GIVEREF(__pyx_kp_s_1d); - PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_13, __pyx_kp_s_1d); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_13, __pyx_int_0); - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_9, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_v_stdev_derivative = __pyx_t_2; - __pyx_t_2 = 0; - - /* "analysis.py":592 - * stdev_derivative = basic_stats(derivative_sorted, "1d", 0)[3] - * - * predictions = [] # <<<<<<<<<<<<<< - * pred_change = 0 - * - */ - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 592, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_predictions = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":593 - * - * predictions = [] - * pred_change = 0 # <<<<<<<<<<<<<< - * - * i = low_bound - */ - __Pyx_INCREF(__pyx_int_0); - __pyx_v_pred_change = __pyx_int_0; - - /* "analysis.py":595 - * pred_change = 0 - * - * i = low_bound # <<<<<<<<<<<<<< - * - * while True: - */ - __Pyx_INCREF(__pyx_v_low_bound); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_v_low_bound); - - /* "analysis.py":597 - * i = low_bound - * - * while True: # <<<<<<<<<<<<<< - * if i > high_bound: - * break - */ - while (1) { - - /* "analysis.py":598 - * - * while True: - * if i > high_bound: # <<<<<<<<<<<<<< - * break - * - */ - __pyx_t_2 = PyObject_RichCompare(__pyx_v_i, __pyx_v_high_bound, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 598, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 598, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_1) { - - /* "analysis.py":599 - * while True: - * if i > high_bound: - * break # <<<<<<<<<<<<<< - * - * try: - */ - goto __pyx_L15_break; - - /* "analysis.py":598 - * - * while True: - * if i > high_bound: # <<<<<<<<<<<<<< - * break - * - */ - } - - /* "analysis.py":601 - * break - * - * try: # <<<<<<<<<<<<<< - * pred_change = mean_derivative + i * stdev_derivative - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_6); - /*try:*/ { - - /* "analysis.py":602 - * - * try: - * pred_change = mean_derivative + i * stdev_derivative # <<<<<<<<<<<<<< - * except: - * pred_change = mean_derivative - */ - __pyx_t_2 = PyNumber_Multiply(__pyx_v_i, __pyx_v_stdev_derivative); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 602, __pyx_L17_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = PyNumber_Add(__pyx_v_mean_derivative, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 602, __pyx_L17_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF_SET(__pyx_v_pred_change, __pyx_t_9); - __pyx_t_9 = 0; - - /* "analysis.py":601 - * break - * - * try: # <<<<<<<<<<<<<< - * pred_change = mean_derivative + i * stdev_derivative - * except: - */ - } - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L24_try_end; - __pyx_L17_error:; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":603 - * try: - * pred_change = mean_derivative + i * stdev_derivative - * except: # <<<<<<<<<<<<<< - * pred_change = mean_derivative - * - */ - /*except:*/ { - __Pyx_AddTraceback("analysis.histo_analysis", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_2, &__pyx_t_4) < 0) __PYX_ERR(0, 603, __pyx_L19_except_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GOTREF(__pyx_t_4); - - /* "analysis.py":604 - * pred_change = mean_derivative + i * stdev_derivative - * except: - * pred_change = mean_derivative # <<<<<<<<<<<<<< - * - * predictions.append(float(hist_data[-1:][0]) + pred_change) - */ - __Pyx_INCREF(__pyx_v_mean_derivative); - __Pyx_DECREF_SET(__pyx_v_pred_change, __pyx_v_mean_derivative); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L18_exception_handled; - } - __pyx_L19_except_error:; - - /* "analysis.py":601 - * break - * - * try: # <<<<<<<<<<<<<< - * pred_change = mean_derivative + i * stdev_derivative - * except: - */ - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6); - goto __pyx_L1_error; - __pyx_L18_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6); - __pyx_L24_try_end:; - } - - /* "analysis.py":606 - * pred_change = mean_derivative - * - * predictions.append(float(hist_data[-1:][0]) + pred_change) # <<<<<<<<<<<<<< - * - * i = i + delta - */ - __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_v_hist_data, -1L, 0, NULL, NULL, &__pyx_slice__4, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyNumber_Float(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_v_pred_change); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_predictions, __pyx_t_2); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 606, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":608 - * predictions.append(float(hist_data[-1:][0]) + pred_change) - * - * i = i + delta # <<<<<<<<<<<<<< - * - * return predictions - */ - __pyx_t_2 = PyNumber_Add(__pyx_v_i, __pyx_v_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 608, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_2); - __pyx_t_2 = 0; - } - __pyx_L15_break:; - - /* "analysis.py":610 - * i = i + delta - * - * return predictions # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_predictions); - __pyx_r = __pyx_v_predictions; - goto __pyx_L0; - - /* "analysis.py":575 - * - * - * def histo_analysis(hist_data, delta, low_bound, high_bound): # <<<<<<<<<<<<<< - * - * if hist_data == 'debug': - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("analysis.histo_analysis", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_derivative); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_derivative_sorted); - __Pyx_XDECREF(__pyx_v_mean_derivative); - __Pyx_XDECREF(__pyx_v_stdev_derivative); - __Pyx_XDECREF(__pyx_v_predictions); - __Pyx_XDECREF(__pyx_v_pred_change); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":613 - * - * - * def poly_regression(x, y, power): # <<<<<<<<<<<<<< - * - * if x == "null": # if x is 'null', then x will be filled with integer points between 1 and the size of y - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_15poly_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_15poly_regression = {"poly_regression", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_15poly_regression, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_15poly_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_x = 0; - PyObject *__pyx_v_y = 0; - PyObject *__pyx_v_power = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("poly_regression (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_power,0}; - PyObject* values[3] = {0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_x)) != 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_y)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("poly_regression", 1, 3, 3, 1); __PYX_ERR(0, 613, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_power)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("poly_regression", 1, 3, 3, 2); __PYX_ERR(0, 613, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "poly_regression") < 0)) __PYX_ERR(0, 613, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - } - __pyx_v_x = values[0]; - __pyx_v_y = values[1]; - __pyx_v_power = values[2]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("poly_regression", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 613, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.poly_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_14poly_regression(__pyx_self, __pyx_v_x, __pyx_v_y, __pyx_v_power); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_14poly_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_power) { - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_reg_eq = NULL; - PyObject *__pyx_v_eq_str = NULL; - PyObject *__pyx_v_vals = NULL; - PyObject *__pyx_v_z = NULL; - PyObject *__pyx_v__rms = NULL; - PyObject *__pyx_v_r2_d2 = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *(*__pyx_t_5)(PyObject *); - int __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - Py_ssize_t __pyx_t_9; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - int __pyx_t_14; - __Pyx_RefNannySetupContext("poly_regression", 0); - __Pyx_INCREF(__pyx_v_x); - - /* "analysis.py":615 - * def poly_regression(x, y, power): - * - * if x == "null": # if x is 'null', then x will be filled with integer points between 1 and the size of y # <<<<<<<<<<<<<< - * x = [] - * - */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_x, __pyx_n_s_null, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 615, __pyx_L1_error) - if (__pyx_t_1) { - - /* "analysis.py":616 - * - * if x == "null": # if x is 'null', then x will be filled with integer points between 1 and the size of y - * x = [] # <<<<<<<<<<<<<< - * - * for i in range(len(y)): - */ - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 616, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":618 - * x = [] - * - * for i in range(len(y)): # <<<<<<<<<<<<<< - * print(i) - * x.append(i + 1) - */ - __pyx_t_3 = PyObject_Length(__pyx_v_y); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 618, __pyx_L1_error) - __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { - __pyx_t_2 = __pyx_t_4; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 618, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 618, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 618, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } - } else { - __pyx_t_4 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 618, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4); - __pyx_t_4 = 0; - - /* "analysis.py":619 - * - * for i in range(len(y)): - * print(i) # <<<<<<<<<<<<<< - * x.append(i + 1) - * - */ - if (__Pyx_PrintOne(0, __pyx_v_i) < 0) __PYX_ERR(0, 619, __pyx_L1_error) - - /* "analysis.py":620 - * for i in range(len(y)): - * print(i) - * x.append(i + 1) # <<<<<<<<<<<<<< - * - * reg_eq = scipy.polyfit(x, y, deg=power) - */ - __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_i, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 620, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_x, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 620, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "analysis.py":618 - * x = [] - * - * for i in range(len(y)): # <<<<<<<<<<<<<< - * print(i) - * x.append(i + 1) - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":615 - * def poly_regression(x, y, power): - * - * if x == "null": # if x is 'null', then x will be filled with integer points between 1 and the size of y # <<<<<<<<<<<<<< - * x = [] - * - */ - } - - /* "analysis.py":622 - * x.append(i + 1) - * - * reg_eq = scipy.polyfit(x, y, deg=power) # <<<<<<<<<<<<<< - * eq_str = "" - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_scipy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 622, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 622, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 622, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_x); - __Pyx_GIVEREF(__pyx_v_x); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_x); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_y); - __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 622, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_deg, __pyx_v_power) < 0) __PYX_ERR(0, 622, __pyx_L1_error) - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 622, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_reg_eq = __pyx_t_8; - __pyx_t_8 = 0; - - /* "analysis.py":623 - * - * reg_eq = scipy.polyfit(x, y, deg=power) - * eq_str = "" # <<<<<<<<<<<<<< - * - * for i in range(0, len(reg_eq), 1): - */ - __Pyx_INCREF(__pyx_kp_s__2); - __pyx_v_eq_str = __pyx_kp_s__2; - - /* "analysis.py":625 - * eq_str = "" - * - * for i in range(0, len(reg_eq), 1): # <<<<<<<<<<<<<< - * if i < len(reg_eq) - 1: - * eq_str = eq_str + str(reg_eq[i]) + \ - */ - __pyx_t_3 = PyObject_Length(__pyx_v_reg_eq); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 625, __pyx_L1_error) - __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 625, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 625, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_8); - PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_int_1); - __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 625, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { - __pyx_t_7 = __pyx_t_8; __Pyx_INCREF(__pyx_t_7); __pyx_t_3 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 625, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_5 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 625, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_7))) { - if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_7)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_3); __Pyx_INCREF(__pyx_t_8); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 625, __pyx_L1_error) - #else - __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 625, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - } else { - if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_7)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_3); __Pyx_INCREF(__pyx_t_8); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 625, __pyx_L1_error) - #else - __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 625, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - } - } else { - __pyx_t_8 = __pyx_t_5(__pyx_t_7); - if (unlikely(!__pyx_t_8)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 625, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_8); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8); - __pyx_t_8 = 0; - - /* "analysis.py":626 - * - * for i in range(0, len(reg_eq), 1): - * if i < len(reg_eq) - 1: # <<<<<<<<<<<<<< - * eq_str = eq_str + str(reg_eq[i]) + \ - * "*(z**" + str(len(reg_eq) - i - 1) + ")+" - */ - __pyx_t_9 = PyObject_Length(__pyx_v_reg_eq); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 626, __pyx_L1_error) - __pyx_t_8 = PyInt_FromSsize_t((__pyx_t_9 - 1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 626, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = PyObject_RichCompare(__pyx_v_i, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 626, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 626, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_1) { - - /* "analysis.py":627 - * for i in range(0, len(reg_eq), 1): - * if i < len(reg_eq) - 1: - * eq_str = eq_str + str(reg_eq[i]) + \ # <<<<<<<<<<<<<< - * "*(z**" + str(len(reg_eq) - i - 1) + ")+" - * else: - */ - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_reg_eq, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 627, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 627, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Add(__pyx_v_eq_str, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 627, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyNumber_Add(__pyx_t_2, __pyx_kp_s_z); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 627, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":628 - * if i < len(reg_eq) - 1: - * eq_str = eq_str + str(reg_eq[i]) + \ - * "*(z**" + str(len(reg_eq) - i - 1) + ")+" # <<<<<<<<<<<<<< - * else: - * eq_str = eq_str + str(reg_eq[i]) + \ - */ - __pyx_t_9 = PyObject_Length(__pyx_v_reg_eq); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 628, __pyx_L1_error) - __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyNumber_Subtract(__pyx_t_2, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Add(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_kp_s__5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF_SET(__pyx_v_eq_str, __pyx_t_4); - __pyx_t_4 = 0; - - /* "analysis.py":626 - * - * for i in range(0, len(reg_eq), 1): - * if i < len(reg_eq) - 1: # <<<<<<<<<<<<<< - * eq_str = eq_str + str(reg_eq[i]) + \ - * "*(z**" + str(len(reg_eq) - i - 1) + ")+" - */ - goto __pyx_L8; - } - - /* "analysis.py":631 - * else: - * eq_str = eq_str + str(reg_eq[i]) + \ - * "*(z**" + str(len(reg_eq) - i - 1) + ")" # <<<<<<<<<<<<<< - * - * vals = [] - */ - /*else*/ { - - /* "analysis.py":630 - * "*(z**" + str(len(reg_eq) - i - 1) + ")+" - * else: - * eq_str = eq_str + str(reg_eq[i]) + \ # <<<<<<<<<<<<<< - * "*(z**" + str(len(reg_eq) - i - 1) + ")" - * - */ - __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_reg_eq, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_Add(__pyx_v_eq_str, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_kp_s_z); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "analysis.py":631 - * else: - * eq_str = eq_str + str(reg_eq[i]) + \ - * "*(z**" + str(len(reg_eq) - i - 1) + ")" # <<<<<<<<<<<<<< - * - * vals = [] - */ - __pyx_t_9 = PyObject_Length(__pyx_v_reg_eq); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 631, __pyx_L1_error) - __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = PyNumber_Subtract(__pyx_t_4, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_t_8, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyNumber_Add(__pyx_t_4, __pyx_kp_s__6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF_SET(__pyx_v_eq_str, __pyx_t_8); - __pyx_t_8 = 0; - } - __pyx_L8:; - - /* "analysis.py":625 - * eq_str = "" - * - * for i in range(0, len(reg_eq), 1): # <<<<<<<<<<<<<< - * if i < len(reg_eq) - 1: - * eq_str = eq_str + str(reg_eq[i]) + \ - */ - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":633 - * "*(z**" + str(len(reg_eq) - i - 1) + ")" - * - * vals = [] # <<<<<<<<<<<<<< - * - * for i in range(0, len(x), 1): - */ - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 633, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_v_vals = ((PyObject*)__pyx_t_7); - __pyx_t_7 = 0; - - /* "analysis.py":635 - * vals = [] - * - * for i in range(0, len(x), 1): # <<<<<<<<<<<<<< - * z = x[i] - * - */ - __pyx_t_3 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 635, __pyx_L1_error) - __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_int_1); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) { - __pyx_t_8 = __pyx_t_7; __Pyx_INCREF(__pyx_t_8); __pyx_t_3 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 635, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_8))) { - if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_3); __Pyx_INCREF(__pyx_t_7); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 635, __pyx_L1_error) - #else - __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - } else { - if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_3); __Pyx_INCREF(__pyx_t_7); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 635, __pyx_L1_error) - #else - __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - } - } else { - __pyx_t_7 = __pyx_t_5(__pyx_t_8); - if (unlikely(!__pyx_t_7)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 635, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_7); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7); - __pyx_t_7 = 0; - - /* "analysis.py":636 - * - * for i in range(0, len(x), 1): - * z = x[i] # <<<<<<<<<<<<<< - * - * try: - */ - __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 636, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_7); - __pyx_t_7 = 0; - - /* "analysis.py":638 - * z = x[i] - * - * try: # <<<<<<<<<<<<<< - * exec("vals.append(" + eq_str + ")") - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - /*try:*/ { - - /* "analysis.py":639 - * - * try: - * exec("vals.append(" + eq_str + ")") # <<<<<<<<<<<<<< - * except: - * pass - */ - __pyx_t_7 = PyNumber_Add(__pyx_kp_s_vals_append, __pyx_v_eq_str); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 639, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = PyNumber_Add(__pyx_t_7, __pyx_kp_s__6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 639, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_Globals(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 639, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 639, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_2); - if (__pyx_v__rms) { - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_rms, __pyx_v__rms) < 0) __PYX_ERR(0, 639, __pyx_L11_error) - } - if (__pyx_v_eq_str) { - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_eq_str, __pyx_v_eq_str) < 0) __PYX_ERR(0, 639, __pyx_L11_error) - } - if (__pyx_v_i) { - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_i, __pyx_v_i) < 0) __PYX_ERR(0, 639, __pyx_L11_error) - } - if (__pyx_v_power) { - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_power, __pyx_v_power) < 0) __PYX_ERR(0, 639, __pyx_L11_error) - } - if (__pyx_v_r2_d2) { - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_r2_d2, __pyx_v_r2_d2) < 0) __PYX_ERR(0, 639, __pyx_L11_error) - } - if (__pyx_v_reg_eq) { - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_reg_eq, __pyx_v_reg_eq) < 0) __PYX_ERR(0, 639, __pyx_L11_error) - } - if (__pyx_v_vals) { - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_vals, __pyx_v_vals) < 0) __PYX_ERR(0, 639, __pyx_L11_error) - } - if (__pyx_v_x) { - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_x, __pyx_v_x) < 0) __PYX_ERR(0, 639, __pyx_L11_error) - } - if (__pyx_v_y) { - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_y, __pyx_v_y) < 0) __PYX_ERR(0, 639, __pyx_L11_error) - } - if (__pyx_v_z) { - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_z_2, __pyx_v_z) < 0) __PYX_ERR(0, 639, __pyx_L11_error) - } - __pyx_t_13 = __Pyx_PyExec3(__pyx_t_4, __pyx_t_7, __pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 639, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - /* "analysis.py":638 - * z = x[i] - * - * try: # <<<<<<<<<<<<<< - * exec("vals.append(" + eq_str + ")") - * except: - */ - } - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - goto __pyx_L18_try_end; - __pyx_L11_error:; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "analysis.py":640 - * try: - * exec("vals.append(" + eq_str + ")") - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L12_exception_handled; - } - __pyx_L12_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __pyx_L18_try_end:; - } - - /* "analysis.py":635 - * vals = [] - * - * for i in range(0, len(x), 1): # <<<<<<<<<<<<<< - * z = x[i] - * - */ - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "analysis.py":643 - * pass - * - * _rms = rms(vals, y) # <<<<<<<<<<<<<< - * r2_d2 = r_squared(vals, y) - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_rms_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_2 = NULL; - __pyx_t_14 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_13); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_13, function); - __pyx_t_14 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_13)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_vals, __pyx_v_y}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 643, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_8); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_vals, __pyx_v_y}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 643, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_8); - } else - #endif - { - __pyx_t_7 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = NULL; - } - __Pyx_INCREF(__pyx_v_vals); - __Pyx_GIVEREF(__pyx_v_vals); - PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_14, __pyx_v_vals); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_14, __pyx_v_y); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_v__rms = __pyx_t_8; - __pyx_t_8 = 0; - - /* "analysis.py":644 - * - * _rms = rms(vals, y) - * r2_d2 = r_squared(vals, y) # <<<<<<<<<<<<<< - * - * return [eq_str, _rms, r2_d2] - */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_r_squared); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_7 = NULL; - __pyx_t_14 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_13); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_13, function); - __pyx_t_14 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_13)) { - PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_vals, __pyx_v_y}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 644, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_8); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) { - PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_vals, __pyx_v_y}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 644, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_8); - } else - #endif - { - __pyx_t_2 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (__pyx_t_7) { - __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7); __pyx_t_7 = NULL; - } - __Pyx_INCREF(__pyx_v_vals); - __Pyx_GIVEREF(__pyx_v_vals); - PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_14, __pyx_v_vals); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_14, __pyx_v_y); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_v_r2_d2 = __pyx_t_8; - __pyx_t_8 = 0; - - /* "analysis.py":646 - * r2_d2 = r_squared(vals, y) - * - * return [eq_str, _rms, r2_d2] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = PyList_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_INCREF(__pyx_v_eq_str); - __Pyx_GIVEREF(__pyx_v_eq_str); - PyList_SET_ITEM(__pyx_t_8, 0, __pyx_v_eq_str); - __Pyx_INCREF(__pyx_v__rms); - __Pyx_GIVEREF(__pyx_v__rms); - PyList_SET_ITEM(__pyx_t_8, 1, __pyx_v__rms); - __Pyx_INCREF(__pyx_v_r2_d2); - __Pyx_GIVEREF(__pyx_v_r2_d2); - PyList_SET_ITEM(__pyx_t_8, 2, __pyx_v_r2_d2); - __pyx_r = __pyx_t_8; - __pyx_t_8 = 0; - goto __pyx_L0; - - /* "analysis.py":613 - * - * - * def poly_regression(x, y, power): # <<<<<<<<<<<<<< - * - * if x == "null": # if x is 'null', then x will be filled with integer points between 1 and the size of y - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("analysis.poly_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_reg_eq); - __Pyx_XDECREF(__pyx_v_eq_str); - __Pyx_XDECREF(__pyx_v_vals); - __Pyx_XDECREF(__pyx_v_z); - __Pyx_XDECREF(__pyx_v__rms); - __Pyx_XDECREF(__pyx_v_r2_d2); - __Pyx_XDECREF(__pyx_v_x); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":649 - * - * - * def log_regression(x, y, base): # <<<<<<<<<<<<<< - * - * x_fit = [] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_17log_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_17log_regression = {"log_regression", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_17log_regression, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_17log_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_x = 0; - PyObject *__pyx_v_y = 0; - PyObject *__pyx_v_base = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("log_regression (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_base,0}; - PyObject* values[3] = {0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_x)) != 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_y)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("log_regression", 1, 3, 3, 1); __PYX_ERR(0, 649, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_base)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("log_regression", 1, 3, 3, 2); __PYX_ERR(0, 649, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "log_regression") < 0)) __PYX_ERR(0, 649, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - } - __pyx_v_x = values[0]; - __pyx_v_y = values[1]; - __pyx_v_base = values[2]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("log_regression", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 649, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.log_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_16log_regression(__pyx_self, __pyx_v_x, __pyx_v_y, __pyx_v_base); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_16log_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_base) { - PyObject *__pyx_v_x_fit = NULL; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_v_reg_eq = NULL; - PyObject *__pyx_v_q_str = NULL; - PyObject *__pyx_v_vals = NULL; - PyObject *__pyx_v_z = NULL; - PyObject *__pyx_v__rms = NULL; - PyObject *__pyx_v_r2_d2 = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - int __pyx_t_11; - int __pyx_t_12; - __Pyx_RefNannySetupContext("log_regression", 0); - - /* "analysis.py":651 - * def log_regression(x, y, base): - * - * x_fit = [] # <<<<<<<<<<<<<< - * - * for i in range(len(x)): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 651, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_x_fit = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":653 - * x_fit = [] - * - * for i in range(len(x)): # <<<<<<<<<<<<<< - * try: - * # change of base for logs - */ - __pyx_t_2 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 653, __pyx_L1_error) - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":654 - * - * for i in range(len(x)): - * try: # <<<<<<<<<<<<<< - * # change of base for logs - * x_fit.append(np.log(x[i]) / np.log(base)) - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - /*try:*/ { - - /* "analysis.py":656 - * try: - * # change of base for logs - * x_fit.append(np.log(x[i]) / np.log(base)) # <<<<<<<<<<<<<< - * except: - * pass - */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 656, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_log); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 656, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_x, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 656, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); - if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_9, function); - } - } - __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8); - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 656, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 656, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_log); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 656, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_10, function); - } - } - __pyx_t_9 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_8, __pyx_v_base) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_base); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 656, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 656, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_x_fit, __pyx_t_10); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 656, __pyx_L5_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - - /* "analysis.py":654 - * - * for i in range(len(x)): - * try: # <<<<<<<<<<<<<< - * # change of base for logs - * x_fit.append(np.log(x[i]) / np.log(base)) - */ - } - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L12_try_end; - __pyx_L5_error:; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":657 - * # change of base for logs - * x_fit.append(np.log(x[i]) / np.log(base)) - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L6_exception_handled; - } - __pyx_L6_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_5); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); - __pyx_L12_try_end:; - } - } - - /* "analysis.py":661 - * - * # y = reg_eq[0] * log(x, base) + reg_eq[1] - * reg_eq = np.polyfit(x_fit, y, 1) # <<<<<<<<<<<<<< - * q_str = str(reg_eq[0]) + "* (np.log(z) / np.log(" + \ - * str(base) + "))+" + str(reg_eq[1]) - */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 661, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 661, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = NULL; - __pyx_t_12 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_12 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_x_fit, __pyx_v_y, __pyx_int_1}; - __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 661, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GOTREF(__pyx_t_10); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_x_fit, __pyx_v_y, __pyx_int_1}; - __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 661, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GOTREF(__pyx_t_10); - } else - #endif - { - __pyx_t_8 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 661, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (__pyx_t_9) { - __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); __pyx_t_9 = NULL; - } - __Pyx_INCREF(__pyx_v_x_fit); - __Pyx_GIVEREF(__pyx_v_x_fit); - PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_12, __pyx_v_x_fit); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_12, __pyx_v_y); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_12, __pyx_int_1); - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 661, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_reg_eq = __pyx_t_10; - __pyx_t_10 = 0; - - /* "analysis.py":662 - * # y = reg_eq[0] * log(x, base) + reg_eq[1] - * reg_eq = np.polyfit(x_fit, y, 1) - * q_str = str(reg_eq[0]) + "* (np.log(z) / np.log(" + \ # <<<<<<<<<<<<<< - * str(base) + "))+" + str(reg_eq[1]) - * vals = [] - */ - __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_reg_eq, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = PyNumber_Add(__pyx_t_1, __pyx_kp_s_np_log_z_np_log); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":663 - * reg_eq = np.polyfit(x_fit, y, 1) - * q_str = str(reg_eq[0]) + "* (np.log(z) / np.log(" + \ - * str(base) + "))+" + str(reg_eq[1]) # <<<<<<<<<<<<<< - * vals = [] - * - */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - /* "analysis.py":662 - * # y = reg_eq[0] * log(x, base) + reg_eq[1] - * reg_eq = np.polyfit(x_fit, y, 1) - * q_str = str(reg_eq[0]) + "* (np.log(z) / np.log(" + \ # <<<<<<<<<<<<<< - * str(base) + "))+" + str(reg_eq[1]) - * vals = [] - */ - __pyx_t_8 = PyNumber_Add(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":663 - * reg_eq = np.polyfit(x_fit, y, 1) - * q_str = str(reg_eq[0]) + "* (np.log(z) / np.log(" + \ - * str(base) + "))+" + str(reg_eq[1]) # <<<<<<<<<<<<<< - * vals = [] - * - */ - __pyx_t_1 = PyNumber_Add(__pyx_t_8, __pyx_kp_s__7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_reg_eq, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyNumber_Add(__pyx_t_1, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_v_q_str = __pyx_t_8; - __pyx_t_8 = 0; - - /* "analysis.py":664 - * q_str = str(reg_eq[0]) + "* (np.log(z) / np.log(" + \ - * str(base) + "))+" + str(reg_eq[1]) - * vals = [] # <<<<<<<<<<<<<< - * - * for i in range(len(x)): - */ - __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_v_vals = ((PyObject*)__pyx_t_8); - __pyx_t_8 = 0; - - /* "analysis.py":666 - * vals = [] - * - * for i in range(len(x)): # <<<<<<<<<<<<<< - * z = x[i] - * - */ - __pyx_t_2 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 666, __pyx_L1_error) - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":667 - * - * for i in range(len(x)): - * z = x[i] # <<<<<<<<<<<<<< - * - * try: - */ - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_x, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 667, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_8); - __pyx_t_8 = 0; - - /* "analysis.py":669 - * z = x[i] - * - * try: # <<<<<<<<<<<<<< - * exec("vals.append(" + eq_str + ")") - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_5); - /*try:*/ { - - /* "analysis.py":670 - * - * try: - * exec("vals.append(" + eq_str + ")") # <<<<<<<<<<<<<< - * except: - * pass - */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_eq_str); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 670, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = PyNumber_Add(__pyx_kp_s_vals_append, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 670, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyNumber_Add(__pyx_t_10, __pyx_kp_s__6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 670, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_Globals(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 670, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_1 = __Pyx_PyDict_NewPresized(11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 670, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_1); - if (__pyx_v__rms) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_rms, __pyx_v__rms) < 0) __PYX_ERR(0, 670, __pyx_L15_error) - } - if (__pyx_v_base) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_base, __pyx_v_base) < 0) __PYX_ERR(0, 670, __pyx_L15_error) - } - __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_i); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 670, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_9); - if (__pyx_t_9) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_i, __pyx_t_9) < 0) __PYX_ERR(0, 670, __pyx_L15_error) - } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__pyx_v_q_str) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_q_str, __pyx_v_q_str) < 0) __PYX_ERR(0, 670, __pyx_L15_error) - } - if (__pyx_v_r2_d2) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_r2_d2, __pyx_v_r2_d2) < 0) __PYX_ERR(0, 670, __pyx_L15_error) - } - if (__pyx_v_reg_eq) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_reg_eq, __pyx_v_reg_eq) < 0) __PYX_ERR(0, 670, __pyx_L15_error) - } - if (__pyx_v_vals) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_vals, __pyx_v_vals) < 0) __PYX_ERR(0, 670, __pyx_L15_error) - } - if (__pyx_v_x) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_x, __pyx_v_x) < 0) __PYX_ERR(0, 670, __pyx_L15_error) - } - if (__pyx_v_x_fit) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_x_fit, __pyx_v_x_fit) < 0) __PYX_ERR(0, 670, __pyx_L15_error) - } - if (__pyx_v_y) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_y, __pyx_v_y) < 0) __PYX_ERR(0, 670, __pyx_L15_error) - } - if (__pyx_v_z) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_z_2, __pyx_v_z) < 0) __PYX_ERR(0, 670, __pyx_L15_error) - } - __pyx_t_9 = __Pyx_PyExec3(__pyx_t_8, __pyx_t_10, __pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 670, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":669 - * z = x[i] - * - * try: # <<<<<<<<<<<<<< - * exec("vals.append(" + eq_str + ")") - * except: - */ - } - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L22_try_end; - __pyx_L15_error:; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":671 - * try: - * exec("vals.append(" + eq_str + ")") - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L16_exception_handled; - } - __pyx_L16_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_5); - __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5); - __pyx_L22_try_end:; - } - } - - /* "analysis.py":674 - * pass - * - * _rms = rms(vals, y) # <<<<<<<<<<<<<< - * r2_d2 = r_squared(vals, y) - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_rms_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 674, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = NULL; - __pyx_t_12 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_12 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_vals, __pyx_v_y}; - __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 674, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_9); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_vals, __pyx_v_y}; - __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 674, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_9); - } else - #endif - { - __pyx_t_8 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 674, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (__pyx_t_10) { - __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_10); __pyx_t_10 = NULL; - } - __Pyx_INCREF(__pyx_v_vals); - __Pyx_GIVEREF(__pyx_v_vals); - PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_12, __pyx_v_vals); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_12, __pyx_v_y); - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 674, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v__rms = __pyx_t_9; - __pyx_t_9 = 0; - - /* "analysis.py":675 - * - * _rms = rms(vals, y) - * r2_d2 = r_squared(vals, y) # <<<<<<<<<<<<<< - * - * return eq_str, _rms, r2_d2 - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_r_squared); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 675, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = NULL; - __pyx_t_12 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_12 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_vals, __pyx_v_y}; - __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 675, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_9); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_vals, __pyx_v_y}; - __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 675, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_9); - } else - #endif - { - __pyx_t_10 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 675, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - if (__pyx_t_8) { - __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; - } - __Pyx_INCREF(__pyx_v_vals); - __Pyx_GIVEREF(__pyx_v_vals); - PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_12, __pyx_v_vals); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_12, __pyx_v_y); - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 675, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_r2_d2 = __pyx_t_9; - __pyx_t_9 = 0; - - /* "analysis.py":677 - * r2_d2 = r_squared(vals, y) - * - * return eq_str, _rms, r2_d2 # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_eq_str); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_9); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9); - __Pyx_INCREF(__pyx_v__rms); - __Pyx_GIVEREF(__pyx_v__rms); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v__rms); - __Pyx_INCREF(__pyx_v_r2_d2); - __Pyx_GIVEREF(__pyx_v_r2_d2); - PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r2_d2); - __pyx_t_9 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":649 - * - * - * def log_regression(x, y, base): # <<<<<<<<<<<<<< - * - * x_fit = [] - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("analysis.log_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_x_fit); - __Pyx_XDECREF(__pyx_v_reg_eq); - __Pyx_XDECREF(__pyx_v_q_str); - __Pyx_XDECREF(__pyx_v_vals); - __Pyx_XDECREF(__pyx_v_z); - __Pyx_XDECREF(__pyx_v__rms); - __Pyx_XDECREF(__pyx_v_r2_d2); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":680 - * - * - * def exp_regression(x, y, base): # <<<<<<<<<<<<<< - * - * y_fit = [] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_19exp_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_19exp_regression = {"exp_regression", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_19exp_regression, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_19exp_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_x = 0; - PyObject *__pyx_v_y = 0; - PyObject *__pyx_v_base = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("exp_regression (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_base,0}; - PyObject* values[3] = {0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_x)) != 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_y)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("exp_regression", 1, 3, 3, 1); __PYX_ERR(0, 680, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_base)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("exp_regression", 1, 3, 3, 2); __PYX_ERR(0, 680, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "exp_regression") < 0)) __PYX_ERR(0, 680, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - } - __pyx_v_x = values[0]; - __pyx_v_y = values[1]; - __pyx_v_base = values[2]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("exp_regression", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 680, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.exp_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_18exp_regression(__pyx_self, __pyx_v_x, __pyx_v_y, __pyx_v_base); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_18exp_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_base) { - PyObject *__pyx_v_y_fit = NULL; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_v_reg_eq = NULL; - PyObject *__pyx_v_eq_str = NULL; - PyObject *__pyx_v_vals = NULL; - PyObject *__pyx_v_z = NULL; - PyObject *__pyx_v__rms = NULL; - PyObject *__pyx_v_r2_d2 = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - int __pyx_t_11; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - int __pyx_t_14; - __Pyx_RefNannySetupContext("exp_regression", 0); - - /* "analysis.py":682 - * def exp_regression(x, y, base): - * - * y_fit = [] # <<<<<<<<<<<<<< - * - * for i in range(len(y)): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_y_fit = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":684 - * y_fit = [] - * - * for i in range(len(y)): # <<<<<<<<<<<<<< - * try: - * # change of base for logs - */ - __pyx_t_2 = PyObject_Length(__pyx_v_y); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 684, __pyx_L1_error) - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":685 - * - * for i in range(len(y)): - * try: # <<<<<<<<<<<<<< - * # change of base for logs - * y_fit.append(np.log(y[i]) / np.log(base)) - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - /*try:*/ { - - /* "analysis.py":687 - * try: - * # change of base for logs - * y_fit.append(np.log(y[i]) / np.log(base)) # <<<<<<<<<<<<<< - * except: - * pass - */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_log); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_y, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); - if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_9, function); - } - } - __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8); - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 687, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_log); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 687, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_10, function); - } - } - __pyx_t_9 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_8, __pyx_v_base) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_base); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 687, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_y_fit, __pyx_t_10); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 687, __pyx_L5_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - - /* "analysis.py":685 - * - * for i in range(len(y)): - * try: # <<<<<<<<<<<<<< - * # change of base for logs - * y_fit.append(np.log(y[i]) / np.log(base)) - */ - } - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L12_try_end; - __pyx_L5_error:; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":688 - * # change of base for logs - * y_fit.append(np.log(y[i]) / np.log(base)) - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L6_exception_handled; - } - __pyx_L6_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_5); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); - __pyx_L12_try_end:; - } - } - - /* "analysis.py":692 - * - * # y = base ^ (reg_eq[0] * x) * base ^ (reg_eq[1]) - * reg_eq = np.polyfit(x, y_fit, 1, w=np.sqrt(y_fit)) # <<<<<<<<<<<<<< - * eq_str = "(" + str(base) + "**(" + \ - * str(reg_eq[0]) + "*z))*(" + str(base) + "**(" + str(reg_eq[1]) + "))" - */ - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_INCREF(__pyx_v_x); - __Pyx_GIVEREF(__pyx_v_x); - PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_x); - __Pyx_INCREF(__pyx_v_y_fit); - __Pyx_GIVEREF(__pyx_v_y_fit); - PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_y_fit); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_int_1); - __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { - __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13); - if (likely(__pyx_t_12)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); - __Pyx_INCREF(__pyx_t_12); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_13, function); - } - } - __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_v_y_fit) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_v_y_fit); - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_w, __pyx_t_8) < 0) __PYX_ERR(0, 692, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_reg_eq = __pyx_t_8; - __pyx_t_8 = 0; - - /* "analysis.py":693 - * # y = base ^ (reg_eq[0] * x) * base ^ (reg_eq[1]) - * reg_eq = np.polyfit(x, y_fit, 1, w=np.sqrt(y_fit)) - * eq_str = "(" + str(base) + "**(" + \ # <<<<<<<<<<<<<< - * str(reg_eq[0]) + "*z))*(" + str(base) + "**(" + str(reg_eq[1]) + "))" - * vals = [] - */ - __pyx_t_8 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = PyNumber_Add(__pyx_kp_s__8, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyNumber_Add(__pyx_t_1, __pyx_kp_s__9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":694 - * reg_eq = np.polyfit(x, y_fit, 1, w=np.sqrt(y_fit)) - * eq_str = "(" + str(base) + "**(" + \ - * str(reg_eq[0]) + "*z))*(" + str(base) + "**(" + str(reg_eq[1]) + "))" # <<<<<<<<<<<<<< - * vals = [] - * - */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_reg_eq, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":693 - * # y = base ^ (reg_eq[0] * x) * base ^ (reg_eq[1]) - * reg_eq = np.polyfit(x, y_fit, 1, w=np.sqrt(y_fit)) - * eq_str = "(" + str(base) + "**(" + \ # <<<<<<<<<<<<<< - * str(reg_eq[0]) + "*z))*(" + str(base) + "**(" + str(reg_eq[1]) + "))" - * vals = [] - */ - __pyx_t_1 = PyNumber_Add(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - - /* "analysis.py":694 - * reg_eq = np.polyfit(x, y_fit, 1, w=np.sqrt(y_fit)) - * eq_str = "(" + str(base) + "**(" + \ - * str(reg_eq[0]) + "*z))*(" + str(base) + "**(" + str(reg_eq[1]) + "))" # <<<<<<<<<<<<<< - * vals = [] - * - */ - __pyx_t_10 = PyNumber_Add(__pyx_t_1, __pyx_kp_s_z_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = PyNumber_Add(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyNumber_Add(__pyx_t_8, __pyx_kp_s__9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_reg_eq, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyNumber_Add(__pyx_t_1, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = PyNumber_Add(__pyx_t_8, __pyx_kp_s__10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_v_eq_str = __pyx_t_10; - __pyx_t_10 = 0; - - /* "analysis.py":695 - * eq_str = "(" + str(base) + "**(" + \ - * str(reg_eq[0]) + "*z))*(" + str(base) + "**(" + str(reg_eq[1]) + "))" - * vals = [] # <<<<<<<<<<<<<< - * - * for i in range(len(x)): - */ - __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 695, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_v_vals = ((PyObject*)__pyx_t_10); - __pyx_t_10 = 0; - - /* "analysis.py":697 - * vals = [] - * - * for i in range(len(x)): # <<<<<<<<<<<<<< - * z = x[i] - * - */ - __pyx_t_2 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 697, __pyx_L1_error) - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":698 - * - * for i in range(len(x)): - * z = x[i] # <<<<<<<<<<<<<< - * - * try: - */ - __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_x, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_10); - __pyx_t_10 = 0; - - /* "analysis.py":700 - * z = x[i] - * - * try: # <<<<<<<<<<<<<< - * exec("vals.append(" + eq_str + ")") - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_5); - /*try:*/ { - - /* "analysis.py":701 - * - * try: - * exec("vals.append(" + eq_str + ")") # <<<<<<<<<<<<<< - * except: - * pass - */ - __pyx_t_10 = PyNumber_Add(__pyx_kp_s_vals_append, __pyx_v_eq_str); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 701, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = PyNumber_Add(__pyx_t_10, __pyx_kp_s__6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_Globals(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 701, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_1 = __Pyx_PyDict_NewPresized(11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 701, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_1); - if (__pyx_v__rms) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_rms, __pyx_v__rms) < 0) __PYX_ERR(0, 701, __pyx_L15_error) - } - if (__pyx_v_base) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_base, __pyx_v_base) < 0) __PYX_ERR(0, 701, __pyx_L15_error) - } - if (__pyx_v_eq_str) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_eq_str, __pyx_v_eq_str) < 0) __PYX_ERR(0, 701, __pyx_L15_error) - } - __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_i); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_9); - if (__pyx_t_9) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_i, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L15_error) - } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__pyx_v_r2_d2) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_r2_d2, __pyx_v_r2_d2) < 0) __PYX_ERR(0, 701, __pyx_L15_error) - } - if (__pyx_v_reg_eq) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_reg_eq, __pyx_v_reg_eq) < 0) __PYX_ERR(0, 701, __pyx_L15_error) - } - if (__pyx_v_vals) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_vals, __pyx_v_vals) < 0) __PYX_ERR(0, 701, __pyx_L15_error) - } - if (__pyx_v_x) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_x, __pyx_v_x) < 0) __PYX_ERR(0, 701, __pyx_L15_error) - } - if (__pyx_v_y) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_y, __pyx_v_y) < 0) __PYX_ERR(0, 701, __pyx_L15_error) - } - if (__pyx_v_y_fit) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_y_fit, __pyx_v_y_fit) < 0) __PYX_ERR(0, 701, __pyx_L15_error) - } - if (__pyx_v_z) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_z_2, __pyx_v_z) < 0) __PYX_ERR(0, 701, __pyx_L15_error) - } - __pyx_t_9 = __Pyx_PyExec3(__pyx_t_8, __pyx_t_10, __pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":700 - * z = x[i] - * - * try: # <<<<<<<<<<<<<< - * exec("vals.append(" + eq_str + ")") - * except: - */ - } - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L22_try_end; - __pyx_L15_error:; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":702 - * try: - * exec("vals.append(" + eq_str + ")") - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L16_exception_handled; - } - __pyx_L16_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_5); - __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5); - __pyx_L22_try_end:; - } - } - - /* "analysis.py":705 - * pass - * - * _rms = rms(vals, y) # <<<<<<<<<<<<<< - * r2_d2 = r_squared(vals, y) - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_rms_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = NULL; - __pyx_t_14 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_14 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_vals, __pyx_v_y}; - __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_9); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_vals, __pyx_v_y}; - __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_9); - } else - #endif - { - __pyx_t_8 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (__pyx_t_10) { - __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_10); __pyx_t_10 = NULL; - } - __Pyx_INCREF(__pyx_v_vals); - __Pyx_GIVEREF(__pyx_v_vals); - PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_14, __pyx_v_vals); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_14, __pyx_v_y); - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v__rms = __pyx_t_9; - __pyx_t_9 = 0; - - /* "analysis.py":706 - * - * _rms = rms(vals, y) - * r2_d2 = r_squared(vals, y) # <<<<<<<<<<<<<< - * - * return eq_str, _rms, r2_d2 - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_r_squared); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = NULL; - __pyx_t_14 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_14 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_vals, __pyx_v_y}; - __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 706, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_9); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_vals, __pyx_v_y}; - __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 706, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_9); - } else - #endif - { - __pyx_t_10 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - if (__pyx_t_8) { - __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; - } - __Pyx_INCREF(__pyx_v_vals); - __Pyx_GIVEREF(__pyx_v_vals); - PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_14, __pyx_v_vals); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_14, __pyx_v_y); - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_r2_d2 = __pyx_t_9; - __pyx_t_9 = 0; - - /* "analysis.py":708 - * r2_d2 = r_squared(vals, y) - * - * return eq_str, _rms, r2_d2 # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_INCREF(__pyx_v_eq_str); - __Pyx_GIVEREF(__pyx_v_eq_str); - PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_eq_str); - __Pyx_INCREF(__pyx_v__rms); - __Pyx_GIVEREF(__pyx_v__rms); - PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v__rms); - __Pyx_INCREF(__pyx_v_r2_d2); - __Pyx_GIVEREF(__pyx_v_r2_d2); - PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_r2_d2); - __pyx_r = __pyx_t_9; - __pyx_t_9 = 0; - goto __pyx_L0; - - /* "analysis.py":680 - * - * - * def exp_regression(x, y, base): # <<<<<<<<<<<<<< - * - * y_fit = [] - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_12); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("analysis.exp_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_y_fit); - __Pyx_XDECREF(__pyx_v_reg_eq); - __Pyx_XDECREF(__pyx_v_eq_str); - __Pyx_XDECREF(__pyx_v_vals); - __Pyx_XDECREF(__pyx_v_z); - __Pyx_XDECREF(__pyx_v__rms); - __Pyx_XDECREF(__pyx_v_r2_d2); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":711 - * - * - * def tanh_regression(x, y): # <<<<<<<<<<<<<< - * - * def tanh(x, a, b, c, d): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_21tanh_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_21tanh_regression = {"tanh_regression", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_21tanh_regression, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_21tanh_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_x = 0; - PyObject *__pyx_v_y = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("tanh_regression (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,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_x)) != 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_y)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("tanh_regression", 1, 2, 2, 1); __PYX_ERR(0, 711, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tanh_regression") < 0)) __PYX_ERR(0, 711, __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_x = values[0]; - __pyx_v_y = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("tanh_regression", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 711, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.tanh_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_20tanh_regression(__pyx_self, __pyx_v_x, __pyx_v_y); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":713 - * def tanh_regression(x, y): - * - * def tanh(x, a, b, c, d): # <<<<<<<<<<<<<< - * - * return a * np.tanh(b * (x - c)) + d - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_15tanh_regression_1tanh(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_15tanh_regression_1tanh = {"tanh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_15tanh_regression_1tanh, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_15tanh_regression_1tanh(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_x = 0; - PyObject *__pyx_v_a = 0; - PyObject *__pyx_v_b = 0; - PyObject *__pyx_v_c = 0; - PyObject *__pyx_v_d = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("tanh (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_a,&__pyx_n_s_b,&__pyx_n_s_c,&__pyx_n_s_d,0}; - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_x)) != 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_a)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("tanh", 1, 5, 5, 1); __PYX_ERR(0, 713, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("tanh", 1, 5, 5, 2); __PYX_ERR(0, 713, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("tanh", 1, 5, 5, 3); __PYX_ERR(0, 713, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_d)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("tanh", 1, 5, 5, 4); __PYX_ERR(0, 713, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tanh") < 0)) __PYX_ERR(0, 713, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_x = values[0]; - __pyx_v_a = values[1]; - __pyx_v_b = values[2]; - __pyx_v_c = values[3]; - __pyx_v_d = values[4]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("tanh", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 713, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.tanh_regression.tanh", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_15tanh_regression_tanh(__pyx_self, __pyx_v_x, __pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_d); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_15tanh_regression_tanh(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, 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; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - __Pyx_RefNannySetupContext("tanh", 0); - - /* "analysis.py":715 - * def tanh(x, a, b, c, d): - * - * return a * np.tanh(b * (x - c)) + d # <<<<<<<<<<<<<< - * - * reg_eq = np.float64(curve_fit(tanh, np.array(x), np.array(y))[0]).tolist() - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_tanh); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Subtract(__pyx_v_x, __pyx_v_c); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyNumber_Multiply(__pyx_v_b, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyNumber_Multiply(__pyx_v_a, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_v_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":713 - * def tanh_regression(x, y): - * - * def tanh(x, a, b, c, d): # <<<<<<<<<<<<<< - * - * return a * np.tanh(b * (x - c)) + d - */ - - /* 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); - __Pyx_AddTraceback("analysis.tanh_regression.tanh", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":711 - * - * - * def tanh_regression(x, y): # <<<<<<<<<<<<<< - * - * def tanh(x, a, b, c, d): - */ - -static PyObject *__pyx_pf_8analysis_20tanh_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) { - PyObject *__pyx_v_tanh = 0; - PyObject *__pyx_v_reg_eq = NULL; - PyObject *__pyx_v_eq_str = NULL; - PyObject *__pyx_v_vals = NULL; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_v_z = NULL; - PyObject *__pyx_v__rms = NULL; - PyObject *__pyx_v_r2_d2 = NULL; - 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; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - int __pyx_t_10; - Py_ssize_t __pyx_t_11; - Py_ssize_t __pyx_t_12; - Py_ssize_t __pyx_t_13; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; - PyObject *__pyx_t_16 = NULL; - __Pyx_RefNannySetupContext("tanh_regression", 0); - - /* "analysis.py":713 - * def tanh_regression(x, y): - * - * def tanh(x, a, b, c, d): # <<<<<<<<<<<<<< - * - * return a * np.tanh(b * (x - c)) + d - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_15tanh_regression_1tanh, 0, __pyx_n_s_tanh_regression_locals_tanh, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__12)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 713, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_tanh = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":717 - * return a * np.tanh(b * (x - c)) + d - * - * reg_eq = np.float64(curve_fit(tanh, np.array(x), np.array(y))[0]).tolist() # <<<<<<<<<<<<<< - * eq_str = str(reg_eq[0]) + " * np.tanh(" + str(reg_eq[1]) + \ - * "*(z - " + str(reg_eq[2]) + ")) + " + str(reg_eq[3]) - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_float64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_curve_fit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - } - } - __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_7, __pyx_v_x) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_x); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_9, function); - } - } - __pyx_t_8 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_7, __pyx_v_y) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_y); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = NULL; - __pyx_t_10 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - __pyx_t_10 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_5)) { - PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_tanh, __pyx_t_6, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { - PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_tanh, __pyx_t_6, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } else - #endif - { - __pyx_t_7 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (__pyx_t_9) { - __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9); __pyx_t_9 = NULL; - } - __Pyx_INCREF(__pyx_v_tanh); - __Pyx_GIVEREF(__pyx_v_tanh); - PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_10, __pyx_v_tanh); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_10, __pyx_t_6); - __Pyx_GIVEREF(__pyx_t_8); - PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_10, __pyx_t_8); - __pyx_t_6 = 0; - __pyx_t_8 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_tolist); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_reg_eq = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":718 - * - * reg_eq = np.float64(curve_fit(tanh, np.array(x), np.array(y))[0]).tolist() - * eq_str = str(reg_eq[0]) + " * np.tanh(" + str(reg_eq[1]) + \ # <<<<<<<<<<<<<< - * "*(z - " + str(reg_eq[2]) + ")) + " + str(reg_eq[3]) - * vals = [] - */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_reg_eq, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_kp_s_np_tanh); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_reg_eq, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_kp_s_z_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "analysis.py":719 - * reg_eq = np.float64(curve_fit(tanh, np.array(x), np.array(y))[0]).tolist() - * eq_str = str(reg_eq[0]) + " * np.tanh(" + str(reg_eq[1]) + \ - * "*(z - " + str(reg_eq[2]) + ")) + " + str(reg_eq[3]) # <<<<<<<<<<<<<< - * vals = [] - * - */ - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_reg_eq, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_kp_s__13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_reg_eq, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_eq_str = __pyx_t_4; - __pyx_t_4 = 0; - - /* "analysis.py":720 - * eq_str = str(reg_eq[0]) + " * np.tanh(" + str(reg_eq[1]) + \ - * "*(z - " + str(reg_eq[2]) + ")) + " + str(reg_eq[3]) - * vals = [] # <<<<<<<<<<<<<< - * - * for i in range(len(x)): - */ - __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_v_vals = ((PyObject*)__pyx_t_4); - __pyx_t_4 = 0; - - /* "analysis.py":722 - * vals = [] - * - * for i in range(len(x)): # <<<<<<<<<<<<<< - * z = x[i] - * try: - */ - __pyx_t_11 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 722, __pyx_L1_error) - __pyx_t_12 = __pyx_t_11; - for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { - __pyx_v_i = __pyx_t_13; - - /* "analysis.py":723 - * - * for i in range(len(x)): - * z = x[i] # <<<<<<<<<<<<<< - * try: - * exec("vals.append(" + eq_str + ")") - */ - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_x, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 723, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_4); - __pyx_t_4 = 0; - - /* "analysis.py":724 - * for i in range(len(x)): - * z = x[i] - * try: # <<<<<<<<<<<<<< - * exec("vals.append(" + eq_str + ")") - * except: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_16); - /*try:*/ { - - /* "analysis.py":725 - * z = x[i] - * try: - * exec("vals.append(" + eq_str + ")") # <<<<<<<<<<<<<< - * except: - * pass - */ - __pyx_t_4 = PyNumber_Add(__pyx_kp_s_vals_append, __pyx_v_eq_str); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 725, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_kp_s__6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 725, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_Globals(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 725, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 725, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_1); - if (__pyx_v__rms) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_rms, __pyx_v__rms) < 0) __PYX_ERR(0, 725, __pyx_L5_error) - } - if (__pyx_v_eq_str) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_eq_str, __pyx_v_eq_str) < 0) __PYX_ERR(0, 725, __pyx_L5_error) - } - __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 725, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_5); - if (__pyx_t_5) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_i, __pyx_t_5) < 0) __PYX_ERR(0, 725, __pyx_L5_error) - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_v_r2_d2) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_r2_d2, __pyx_v_r2_d2) < 0) __PYX_ERR(0, 725, __pyx_L5_error) - } - if (__pyx_v_reg_eq) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_reg_eq, __pyx_v_reg_eq) < 0) __PYX_ERR(0, 725, __pyx_L5_error) - } - if (__pyx_v_tanh) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_tanh, __pyx_v_tanh) < 0) __PYX_ERR(0, 725, __pyx_L5_error) - } - if (__pyx_v_vals) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_vals, __pyx_v_vals) < 0) __PYX_ERR(0, 725, __pyx_L5_error) - } - if (__pyx_v_x) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_x, __pyx_v_x) < 0) __PYX_ERR(0, 725, __pyx_L5_error) - } - if (__pyx_v_y) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_y, __pyx_v_y) < 0) __PYX_ERR(0, 725, __pyx_L5_error) - } - if (__pyx_v_z) { - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_z_2, __pyx_v_z) < 0) __PYX_ERR(0, 725, __pyx_L5_error) - } - __pyx_t_5 = __Pyx_PyExec3(__pyx_t_2, __pyx_t_4, __pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 725, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - /* "analysis.py":724 - * for i in range(len(x)): - * z = x[i] - * try: # <<<<<<<<<<<<<< - * exec("vals.append(" + eq_str + ")") - * except: - */ - } - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; - goto __pyx_L12_try_end; - __pyx_L5_error:; - __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; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":726 - * try: - * exec("vals.append(" + eq_str + ")") - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L6_exception_handled; - } - __pyx_L6_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_XGIVEREF(__pyx_t_16); - __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); - __pyx_L12_try_end:; - } - } - - /* "analysis.py":729 - * pass - * - * _rms = rms(vals, y) # <<<<<<<<<<<<<< - * r2_d2 = r_squared(vals, y) - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_rms_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 729, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = NULL; - __pyx_t_10 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_10 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_vals, __pyx_v_y}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 729, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_5); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_vals, __pyx_v_y}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 729, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_5); - } else - #endif - { - __pyx_t_2 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 729, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; - } - __Pyx_INCREF(__pyx_v_vals); - __Pyx_GIVEREF(__pyx_v_vals); - PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_10, __pyx_v_vals); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_10, __pyx_v_y); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 729, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v__rms = __pyx_t_5; - __pyx_t_5 = 0; - - /* "analysis.py":730 - * - * _rms = rms(vals, y) - * r2_d2 = r_squared(vals, y) # <<<<<<<<<<<<<< - * - * return eq_str, _rms, r2_d2 - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_r_squared); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 730, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = NULL; - __pyx_t_10 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_10 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_vals, __pyx_v_y}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 730, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_5); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_vals, __pyx_v_y}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 730, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_5); - } else - #endif - { - __pyx_t_4 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 730, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; - } - __Pyx_INCREF(__pyx_v_vals); - __Pyx_GIVEREF(__pyx_v_vals); - PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_10, __pyx_v_vals); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_10, __pyx_v_y); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 730, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_r2_d2 = __pyx_t_5; - __pyx_t_5 = 0; - - /* "analysis.py":732 - * r2_d2 = r_squared(vals, y) - * - * return eq_str, _rms, r2_d2 # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF(__pyx_v_eq_str); - __Pyx_GIVEREF(__pyx_v_eq_str); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_eq_str); - __Pyx_INCREF(__pyx_v__rms); - __Pyx_GIVEREF(__pyx_v__rms); - PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v__rms); - __Pyx_INCREF(__pyx_v_r2_d2); - __Pyx_GIVEREF(__pyx_v_r2_d2); - PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_r2_d2); - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L0; - - /* "analysis.py":711 - * - * - * def tanh_regression(x, y): # <<<<<<<<<<<<<< - * - * def tanh(x, a, b, c, d): - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("analysis.tanh_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_tanh); - __Pyx_XDECREF(__pyx_v_reg_eq); - __Pyx_XDECREF(__pyx_v_eq_str); - __Pyx_XDECREF(__pyx_v_vals); - __Pyx_XDECREF(__pyx_v_z); - __Pyx_XDECREF(__pyx_v__rms); - __Pyx_XDECREF(__pyx_v_r2_d2); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":735 - * - * - * def r_squared(predictions, targets): # assumes equal size inputs # <<<<<<<<<<<<<< - * - * return metrics.r2_score(np.array(targets), np.array(predictions)) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_23r_squared(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_23r_squared = {"r_squared", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_23r_squared, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_23r_squared(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_predictions = 0; - PyObject *__pyx_v_targets = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("r_squared (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_predictions,&__pyx_n_s_targets,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_predictions)) != 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_targets)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("r_squared", 1, 2, 2, 1); __PYX_ERR(0, 735, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "r_squared") < 0)) __PYX_ERR(0, 735, __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_predictions = values[0]; - __pyx_v_targets = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("r_squared", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 735, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.r_squared", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_22r_squared(__pyx_self, __pyx_v_predictions, __pyx_v_targets); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_22r_squared(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_predictions, PyObject *__pyx_v_targets) { - 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; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - int __pyx_t_7; - __Pyx_RefNannySetupContext("r_squared", 0); - - /* "analysis.py":737 - * def r_squared(predictions, targets): # assumes equal size inputs - * - * return metrics.r2_score(np.array(targets), np.array(predictions)) # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_metrics); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_r2_score); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_targets) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_targets); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); - } - } - __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_v_predictions) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_predictions); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = NULL; - __pyx_t_7 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_7 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_2, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_2, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else - #endif - { - __pyx_t_4 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_6) { - __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL; - } - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, __pyx_t_5); - __pyx_t_2 = 0; - __pyx_t_5 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":735 - * - * - * def r_squared(predictions, targets): # assumes equal size inputs # <<<<<<<<<<<<<< - * - * return metrics.r2_score(np.array(targets), np.array(predictions)) - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("analysis.r_squared", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":740 - * - * - * def rms(predictions, targets): # assumes equal size inputs # <<<<<<<<<<<<<< - * - * _sum = 0 - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_25rms(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_25rms = {"rms", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_25rms, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_25rms(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_predictions = 0; - PyObject *__pyx_v_targets = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("rms (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_predictions,&__pyx_n_s_targets,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_predictions)) != 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_targets)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("rms", 1, 2, 2, 1); __PYX_ERR(0, 740, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "rms") < 0)) __PYX_ERR(0, 740, __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_predictions = values[0]; - __pyx_v_targets = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("rms", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 740, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.rms", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_24rms(__pyx_self, __pyx_v_predictions, __pyx_v_targets); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_24rms(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_predictions, PyObject *__pyx_v_targets) { - PyObject *__pyx_v__sum = NULL; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - Py_ssize_t __pyx_t_1; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - __Pyx_RefNannySetupContext("rms", 0); - - /* "analysis.py":742 - * def rms(predictions, targets): # assumes equal size inputs - * - * _sum = 0 # <<<<<<<<<<<<<< - * - * for i in range(0, len(targets), 1): - */ - __Pyx_INCREF(__pyx_int_0); - __pyx_v__sum = __pyx_int_0; - - /* "analysis.py":744 - * _sum = 0 - * - * for i in range(0, len(targets), 1): # <<<<<<<<<<<<<< - * _sum = (targets[i] - predictions[i]) ** 2 - * - */ - __pyx_t_1 = PyObject_Length(__pyx_v_targets); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 744, __pyx_L1_error) - __pyx_t_2 = __pyx_t_1; - for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { - __pyx_v_i = __pyx_t_3; - - /* "analysis.py":745 - * - * for i in range(0, len(targets), 1): - * _sum = (targets[i] - predictions[i]) ** 2 # <<<<<<<<<<<<<< - * - * return float(math.sqrt(_sum / len(targets))) - */ - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_targets, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 745, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_predictions, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 745, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 745, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyNumber_Power(__pyx_t_6, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 745, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF_SET(__pyx_v__sum, __pyx_t_5); - __pyx_t_5 = 0; - } - - /* "analysis.py":747 - * _sum = (targets[i] - predictions[i]) ** 2 - * - * return float(math.sqrt(_sum / len(targets))) # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_math); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = PyObject_Length(__pyx_v_targets); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 747, __pyx_L1_error) - __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_v__sum, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyNumber_Float(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "analysis.py":740 - * - * - * def rms(predictions, targets): # assumes equal size inputs # <<<<<<<<<<<<<< - * - * _sum = 0 - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("analysis.rms", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v__sum); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":750 - * - * - * def calc_overfit(equation, rms_train, r2_train, x_test, y_test): # <<<<<<<<<<<<<< - * - * # performance overfit = performance(train) - performance(test) where performance is r^2 - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_27calc_overfit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_27calc_overfit = {"calc_overfit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_27calc_overfit, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_27calc_overfit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_equation = 0; - PyObject *__pyx_v_rms_train = 0; - PyObject *__pyx_v_r2_train = 0; - PyObject *__pyx_v_x_test = 0; - PyObject *__pyx_v_y_test = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("calc_overfit (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_equation,&__pyx_n_s_rms_train,&__pyx_n_s_r2_train,&__pyx_n_s_x_test,&__pyx_n_s_y_test,0}; - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_equation)) != 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_rms_train)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("calc_overfit", 1, 5, 5, 1); __PYX_ERR(0, 750, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_r2_train)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("calc_overfit", 1, 5, 5, 2); __PYX_ERR(0, 750, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x_test)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("calc_overfit", 1, 5, 5, 3); __PYX_ERR(0, 750, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y_test)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("calc_overfit", 1, 5, 5, 4); __PYX_ERR(0, 750, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calc_overfit") < 0)) __PYX_ERR(0, 750, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_equation = values[0]; - __pyx_v_rms_train = values[1]; - __pyx_v_r2_train = values[2]; - __pyx_v_x_test = values[3]; - __pyx_v_y_test = values[4]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("calc_overfit", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 750, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.calc_overfit", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_26calc_overfit(__pyx_self, __pyx_v_equation, __pyx_v_rms_train, __pyx_v_r2_train, __pyx_v_x_test, __pyx_v_y_test); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_26calc_overfit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_equation, PyObject *__pyx_v_rms_train, PyObject *__pyx_v_r2_train, PyObject *__pyx_v_x_test, PyObject *__pyx_v_y_test) { - PyObject *__pyx_v_vals = NULL; - Py_ssize_t __pyx_v_i; - PyObject *__pyx_v_z = NULL; - PyObject *__pyx_v_r2_test = NULL; - PyObject *__pyx_v_rms_test = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - int __pyx_t_8; - __Pyx_RefNannySetupContext("calc_overfit", 0); - - /* "analysis.py":755 - * # error overfit = error(train) - error(test) where error is rms; biased towards smaller values - * - * vals = [] # <<<<<<<<<<<<<< - * - * for i in range(0, len(x_test), 1): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_vals = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":757 - * vals = [] - * - * for i in range(0, len(x_test), 1): # <<<<<<<<<<<<<< - * - * z = x_test[i] - */ - __pyx_t_2 = PyObject_Length(__pyx_v_x_test); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 757, __pyx_L1_error) - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "analysis.py":759 - * for i in range(0, len(x_test), 1): - * - * z = x_test[i] # <<<<<<<<<<<<<< - * - * exec("vals.append(" + equation + ")") - */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_x_test, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 759, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":761 - * z = x_test[i] - * - * exec("vals.append(" + equation + ")") # <<<<<<<<<<<<<< - * - * r2_test = r_squared(vals, y_test) - */ - __pyx_t_1 = PyNumber_Add(__pyx_kp_s_vals_append, __pyx_v_equation); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_kp_s__6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_Globals(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (__pyx_v_equation) { - if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_equation, __pyx_v_equation) < 0) __PYX_ERR(0, 761, __pyx_L1_error) - } - __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (__pyx_t_7) { - if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_i, __pyx_t_7) < 0) __PYX_ERR(0, 761, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (__pyx_v_r2_test) { - if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_r2_test, __pyx_v_r2_test) < 0) __PYX_ERR(0, 761, __pyx_L1_error) - } - if (__pyx_v_r2_train) { - if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_r2_train, __pyx_v_r2_train) < 0) __PYX_ERR(0, 761, __pyx_L1_error) - } - if (__pyx_v_rms_test) { - if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_rms_test, __pyx_v_rms_test) < 0) __PYX_ERR(0, 761, __pyx_L1_error) - } - if (__pyx_v_rms_train) { - if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_rms_train, __pyx_v_rms_train) < 0) __PYX_ERR(0, 761, __pyx_L1_error) - } - if (__pyx_v_vals) { - if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_vals, __pyx_v_vals) < 0) __PYX_ERR(0, 761, __pyx_L1_error) - } - if (__pyx_v_x_test) { - if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_x_test, __pyx_v_x_test) < 0) __PYX_ERR(0, 761, __pyx_L1_error) - } - if (__pyx_v_y_test) { - if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_y_test, __pyx_v_y_test) < 0) __PYX_ERR(0, 761, __pyx_L1_error) - } - if (__pyx_v_z) { - if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_z_2, __pyx_v_z) < 0) __PYX_ERR(0, 761, __pyx_L1_error) - } - __pyx_t_7 = __Pyx_PyExec3(__pyx_t_5, __pyx_t_1, __pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - - /* "analysis.py":763 - * exec("vals.append(" + equation + ")") - * - * r2_test = r_squared(vals, y_test) # <<<<<<<<<<<<<< - * rms_test = rms(vals, y_test) - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_r_squared); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 763, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = NULL; - __pyx_t_8 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_1)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); - __pyx_t_8 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_vals, __pyx_v_y_test}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 763, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_7); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_vals, __pyx_v_y_test}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 763, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_7); - } else - #endif - { - __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 763, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (__pyx_t_1) { - __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; - } - __Pyx_INCREF(__pyx_v_vals); - __Pyx_GIVEREF(__pyx_v_vals); - PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_vals); - __Pyx_INCREF(__pyx_v_y_test); - __Pyx_GIVEREF(__pyx_v_y_test); - PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_y_test); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 763, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_r2_test = __pyx_t_7; - __pyx_t_7 = 0; - - /* "analysis.py":764 - * - * r2_test = r_squared(vals, y_test) - * rms_test = rms(vals, y_test) # <<<<<<<<<<<<<< - * - * return r2_train - r2_test - */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_rms_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = NULL; - __pyx_t_8 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); - __pyx_t_8 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_vals, __pyx_v_y_test}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 764, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_7); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_vals, __pyx_v_y_test}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 764, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_7); - } else - #endif - { - __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__pyx_t_5) { - __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; - } - __Pyx_INCREF(__pyx_v_vals); - __Pyx_GIVEREF(__pyx_v_vals); - PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_v_vals); - __Pyx_INCREF(__pyx_v_y_test); - __Pyx_GIVEREF(__pyx_v_y_test); - PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_v_y_test); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_rms_test = __pyx_t_7; - __pyx_t_7 = 0; - - /* "analysis.py":766 - * rms_test = rms(vals, y_test) - * - * return r2_train - r2_test # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = PyNumber_Subtract(__pyx_v_r2_train, __pyx_v_r2_test); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 766, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_r = __pyx_t_7; - __pyx_t_7 = 0; - goto __pyx_L0; - - /* "analysis.py":750 - * - * - * def calc_overfit(equation, rms_train, r2_train, x_test, y_test): # <<<<<<<<<<<<<< - * - * # performance overfit = performance(train) - performance(test) where performance is r^2 - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("analysis.calc_overfit", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_vals); - __Pyx_XDECREF(__pyx_v_z); - __Pyx_XDECREF(__pyx_v_r2_test); - __Pyx_XDECREF(__pyx_v_rms_test); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":769 - * - * - * def strip_data(data, mode): # <<<<<<<<<<<<<< - * - * if mode == "adam": # x is the row number, y are the data - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_29strip_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_29strip_data = {"strip_data", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_29strip_data, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_29strip_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - CYTHON_UNUSED PyObject *__pyx_v_data = 0; - PyObject *__pyx_v_mode = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("strip_data (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_mode,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_data)) != 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_mode)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("strip_data", 1, 2, 2, 1); __PYX_ERR(0, 769, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "strip_data") < 0)) __PYX_ERR(0, 769, __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_data = values[0]; - __pyx_v_mode = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("strip_data", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 769, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.strip_data", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_28strip_data(__pyx_self, __pyx_v_data, __pyx_v_mode); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_28strip_data(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_data, PyObject *__pyx_v_mode) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - __Pyx_RefNannySetupContext("strip_data", 0); - - /* "analysis.py":771 - * def strip_data(data, mode): - * - * if mode == "adam": # x is the row number, y are the data # <<<<<<<<<<<<<< - * pass - * - */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_adam, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 771, __pyx_L1_error) - if (__pyx_t_1) { - } - - /* "analysis.py":774 - * pass - * - * if mode == "eve": # x are the data, y is the column number # <<<<<<<<<<<<<< - * pass - * - */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_eve, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 774, __pyx_L1_error) - if (likely(__pyx_t_1)) { - goto __pyx_L4; - } - - /* "analysis.py":778 - * - * else: - * raise error("mode error") # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 778, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_s_mode_error) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_s_mode_error); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 778, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 778, __pyx_L1_error) - } - __pyx_L4:; - - /* "analysis.py":769 - * - * - * def strip_data(data, mode): # <<<<<<<<<<<<<< - * - * if mode == "adam": # x is the row number, y are the data - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("analysis.strip_data", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":782 - * - * # _range in poly regression is the range of powers tried, and in log/exp it is the inverse of the stepsize taken from -1000 to 1000 - * def optimize_regression(x, y, _range, resolution): # <<<<<<<<<<<<<< - * # usage not: for demonstration purpose only, performance is shit - * if type(resolution) != int: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_31optimize_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_31optimize_regression = {"optimize_regression", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_31optimize_regression, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_31optimize_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_x = 0; - PyObject *__pyx_v_y = 0; - PyObject *__pyx_v__range = 0; - PyObject *__pyx_v_resolution = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("optimize_regression (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_range_2,&__pyx_n_s_resolution,0}; - PyObject* values[4] = {0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_x)) != 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_y)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("optimize_regression", 1, 4, 4, 1); __PYX_ERR(0, 782, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_range_2)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("optimize_regression", 1, 4, 4, 2); __PYX_ERR(0, 782, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resolution)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("optimize_regression", 1, 4, 4, 3); __PYX_ERR(0, 782, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "optimize_regression") < 0)) __PYX_ERR(0, 782, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - } - __pyx_v_x = values[0]; - __pyx_v_y = values[1]; - __pyx_v__range = values[2]; - __pyx_v_resolution = values[3]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("optimize_regression", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 782, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.optimize_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_30optimize_regression(__pyx_self, __pyx_v_x, __pyx_v_y, __pyx_v__range, __pyx_v_resolution); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_30optimize_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v__range, PyObject *__pyx_v_resolution) { - PyObject *__pyx_v_x_train = NULL; - PyObject *__pyx_v_y_train = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_x_test = NULL; - PyObject *__pyx_v_y_test = NULL; - PyObject *__pyx_v_index = NULL; - PyObject *__pyx_v_eqs = NULL; - PyObject *__pyx_v_rmss = NULL; - PyObject *__pyx_v_r2s = NULL; - PyObject *__pyx_v_z = NULL; - PyObject *__pyx_v_overfit = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - Py_ssize_t __pyx_t_9; - PyObject *__pyx_t_10 = NULL; - int __pyx_t_11; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; - PyObject *(*__pyx_t_16)(PyObject *); - PyObject *__pyx_t_17 = NULL; - PyObject *__pyx_t_18 = NULL; - __Pyx_RefNannySetupContext("optimize_regression", 0); - __Pyx_INCREF(__pyx_v_x); - __Pyx_INCREF(__pyx_v_y); - - /* "analysis.py":784 - * def optimize_regression(x, y, _range, resolution): - * # usage not: for demonstration purpose only, performance is shit - * if type(resolution) != int: # <<<<<<<<<<<<<< - * raise error("resolution must be int") - * - */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_resolution)), ((PyObject *)(&PyInt_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 784, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(__pyx_t_2)) { - - /* "analysis.py":785 - * # usage not: for demonstration purpose only, performance is shit - * if type(resolution) != int: - * raise error("resolution must be int") # <<<<<<<<<<<<<< - * - * x_train = x - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_s_resolution_must_be_int) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_s_resolution_must_be_int); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 785, __pyx_L1_error) - - /* "analysis.py":784 - * def optimize_regression(x, y, _range, resolution): - * # usage not: for demonstration purpose only, performance is shit - * if type(resolution) != int: # <<<<<<<<<<<<<< - * raise error("resolution must be int") - * - */ - } - - /* "analysis.py":787 - * raise error("resolution must be int") - * - * x_train = x # <<<<<<<<<<<<<< - * y_train = [] - * - */ - __Pyx_INCREF(__pyx_v_x); - __pyx_v_x_train = __pyx_v_x; - - /* "analysis.py":788 - * - * x_train = x - * y_train = [] # <<<<<<<<<<<<<< - * - * for i in range(len(y)): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_y_train = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":790 - * y_train = [] - * - * for i in range(len(y)): # <<<<<<<<<<<<<< - * y_train.append(float(y[i])) - * - */ - __pyx_t_5 = PyObject_Length(__pyx_v_y); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 790, __pyx_L1_error) - __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { - __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 790, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 790, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } else { - if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 790, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } - } else { - __pyx_t_3 = __pyx_t_6(__pyx_t_1); - if (unlikely(!__pyx_t_3)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 790, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":791 - * - * for i in range(len(y)): - * y_train.append(float(y[i])) # <<<<<<<<<<<<<< - * - * x_test = [] - */ - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_y, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 791, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyNumber_Float(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 791, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_y_train, __pyx_t_4); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 791, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "analysis.py":790 - * y_train = [] - * - * for i in range(len(y)): # <<<<<<<<<<<<<< - * y_train.append(float(y[i])) - * - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":793 - * y_train.append(float(y[i])) - * - * x_test = [] # <<<<<<<<<<<<<< - * y_test = [] - * - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 793, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_x_test = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":794 - * - * x_test = [] - * y_test = [] # <<<<<<<<<<<<<< - * - * for i in range(0, math.floor(len(x) * 0.5), 1): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 794, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_y_test = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":796 - * y_test = [] - * - * for i in range(0, math.floor(len(x) * 0.5), 1): # <<<<<<<<<<<<<< - * index = random.randint(0, len(x) - 1) - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_math); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_floor); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 796, __pyx_L1_error) - __pyx_t_4 = PyFloat_FromDouble((__pyx_t_5 * 0.5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_8, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_int_1); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 796, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 796, __pyx_L1_error) - #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } else { - if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 796, __pyx_L1_error) - #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 796, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":797 - * - * for i in range(0, math.floor(len(x) * 0.5), 1): - * index = random.randint(0, len(x) - 1) # <<<<<<<<<<<<<< - * - * x_test.append(x[index]) - */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_random); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_randint); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 797, __pyx_L1_error) - __pyx_t_4 = PyInt_FromSsize_t((__pyx_t_9 - 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_10 = NULL; - __pyx_t_11 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - __pyx_t_11 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_int_0, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 797, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_int_0, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 797, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else - #endif - { - __pyx_t_12 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - if (__pyx_t_10) { - __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL; - } - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":799 - * index = random.randint(0, len(x) - 1) - * - * x_test.append(x[index]) # <<<<<<<<<<<<<< - * y_test.append(float(y[index])) - * - */ - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_x, __pyx_v_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 799, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_x_test, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 799, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":800 - * - * x_test.append(x[index]) - * y_test.append(float(y[index])) # <<<<<<<<<<<<<< - * - * x_train.pop(index) - */ - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_y, __pyx_v_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 800, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyNumber_Float(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 800, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_y_test, __pyx_t_8); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 800, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "analysis.py":802 - * y_test.append(float(y[index])) - * - * x_train.pop(index) # <<<<<<<<<<<<<< - * y_train.pop(index) - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x_train, __pyx_n_s_pop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 802, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_12 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_12)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_12); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_v_index) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_index); - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 802, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "analysis.py":803 - * - * x_train.pop(index) - * y_train.pop(index) # <<<<<<<<<<<<<< - * - * #print(x_train, x_test) - */ - __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 803, __pyx_L1_error) - __pyx_t_8 = __Pyx_PyList_PopIndex(__pyx_v_y_train, __pyx_v_index, __pyx_t_9, 1, Py_ssize_t, PyInt_FromSsize_t); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 803, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "analysis.py":796 - * y_test = [] - * - * for i in range(0, math.floor(len(x) * 0.5), 1): # <<<<<<<<<<<<<< - * index = random.randint(0, len(x) - 1) - * - */ - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "analysis.py":808 - * #print(y_train, y_test) - * - * eqs = [] # <<<<<<<<<<<<<< - * rmss = [] - * r2s = [] - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 808, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_eqs = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":809 - * - * eqs = [] - * rmss = [] # <<<<<<<<<<<<<< - * r2s = [] - * - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 809, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_rmss = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":810 - * eqs = [] - * rmss = [] - * r2s = [] # <<<<<<<<<<<<<< - * - * for i in range(0, _range + 1, 1): - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_r2s = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":812 - * r2s = [] - * - * for i in range(0, _range + 1, 1): # <<<<<<<<<<<<<< - * try: - * x, y, z = poly_regression(x_train, y_train, i) - */ - __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v__range, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_3); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_int_1); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { - __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_6 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 812, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_8))) { - if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 812, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } else { - if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 812, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } - } else { - __pyx_t_3 = __pyx_t_6(__pyx_t_8); - if (unlikely(!__pyx_t_3)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 812, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":813 - * - * for i in range(0, _range + 1, 1): - * try: # <<<<<<<<<<<<<< - * x, y, z = poly_regression(x_train, y_train, i) - * eqs.append(x) - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_15); - /*try:*/ { - - /* "analysis.py":814 - * for i in range(0, _range + 1, 1): - * try: - * x, y, z = poly_regression(x_train, y_train, i) # <<<<<<<<<<<<<< - * eqs.append(x) - * rmss.append(y) - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_poly_regression); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 814, __pyx_L10_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_12 = NULL; - __pyx_t_11 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_12)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_12); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_11 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_v_x_train, __pyx_v_y_train, __pyx_v_i}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 814, __pyx_L10_error) - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_GOTREF(__pyx_t_3); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_v_x_train, __pyx_v_y_train, __pyx_v_i}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 814, __pyx_L10_error) - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_GOTREF(__pyx_t_3); - } else - #endif - { - __pyx_t_4 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 814, __pyx_L10_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_12) { - __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_12); __pyx_t_12 = NULL; - } - __Pyx_INCREF(__pyx_v_x_train); - __Pyx_GIVEREF(__pyx_v_x_train); - PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_11, __pyx_v_x_train); - __Pyx_INCREF(__pyx_v_y_train); - __Pyx_GIVEREF(__pyx_v_y_train); - PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_11, __pyx_v_y_train); - __Pyx_INCREF(__pyx_v_i); - __Pyx_GIVEREF(__pyx_v_i); - PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_11, __pyx_v_i); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 814, __pyx_L10_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { - PyObject* sequence = __pyx_t_3; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 814, __pyx_L10_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_12 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_1 = PyList_GET_ITEM(sequence, 0); - __pyx_t_4 = PyList_GET_ITEM(sequence, 1); - __pyx_t_12 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_12); - #else - __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 814, __pyx_L10_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 814, __pyx_L10_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_12 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 814, __pyx_L10_error) - __Pyx_GOTREF(__pyx_t_12); - #endif - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 814, __pyx_L10_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_16 = Py_TYPE(__pyx_t_10)->tp_iternext; - index = 0; __pyx_t_1 = __pyx_t_16(__pyx_t_10); if (unlikely(!__pyx_t_1)) goto __pyx_L18_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 1; __pyx_t_4 = __pyx_t_16(__pyx_t_10); if (unlikely(!__pyx_t_4)) goto __pyx_L18_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 2; __pyx_t_12 = __pyx_t_16(__pyx_t_10); if (unlikely(!__pyx_t_12)) goto __pyx_L18_unpacking_failed; - __Pyx_GOTREF(__pyx_t_12); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_10), 3) < 0) __PYX_ERR(0, 814, __pyx_L10_error) - __pyx_t_16 = NULL; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - goto __pyx_L19_unpacking_done; - __pyx_L18_unpacking_failed:; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_16 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 814, __pyx_L10_error) - __pyx_L19_unpacking_done:; - } - __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_1); - __pyx_t_1 = 0; - __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_4); - __pyx_t_4 = 0; - __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_12); - __pyx_t_12 = 0; - - /* "analysis.py":815 - * try: - * x, y, z = poly_regression(x_train, y_train, i) - * eqs.append(x) # <<<<<<<<<<<<<< - * rmss.append(y) - * r2s.append(z) - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_eqs, __pyx_v_x); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 815, __pyx_L10_error) - - /* "analysis.py":816 - * x, y, z = poly_regression(x_train, y_train, i) - * eqs.append(x) - * rmss.append(y) # <<<<<<<<<<<<<< - * r2s.append(z) - * except: - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_rmss, __pyx_v_y); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 816, __pyx_L10_error) - - /* "analysis.py":817 - * eqs.append(x) - * rmss.append(y) - * r2s.append(z) # <<<<<<<<<<<<<< - * except: - * pass - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_r2s, __pyx_v_z); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 817, __pyx_L10_error) - - /* "analysis.py":813 - * - * for i in range(0, _range + 1, 1): - * try: # <<<<<<<<<<<<<< - * x, y, z = poly_regression(x_train, y_train, i) - * eqs.append(x) - */ - } - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - goto __pyx_L17_try_end; - __pyx_L10_error:; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "analysis.py":818 - * rmss.append(y) - * r2s.append(z) - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L11_exception_handled; - } - __pyx_L11_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); - __pyx_L17_try_end:; - } - - /* "analysis.py":812 - * r2s = [] - * - * for i in range(0, _range + 1, 1): # <<<<<<<<<<<<<< - * try: - * x, y, z = poly_regression(x_train, y_train, i) - */ - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "analysis.py":821 - * pass - * - * for i in range(1, 100 * resolution + 1): # <<<<<<<<<<<<<< - * try: - * x, y, z = exp_regression(x_train, y_train, float(i / resolution)) - */ - __pyx_t_8 = PyNumber_Multiply(__pyx_int_100, __pyx_v_resolution); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_8, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_int_1); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_3); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { - __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_6 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 821, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_8))) { - if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 821, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } else { - if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 821, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } - } else { - __pyx_t_3 = __pyx_t_6(__pyx_t_8); - if (unlikely(!__pyx_t_3)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 821, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":822 - * - * for i in range(1, 100 * resolution + 1): - * try: # <<<<<<<<<<<<<< - * x, y, z = exp_regression(x_train, y_train, float(i / resolution)) - * eqs.append(x) - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_13); - /*try:*/ { - - /* "analysis.py":823 - * for i in range(1, 100 * resolution + 1): - * try: - * x, y, z = exp_regression(x_train, y_train, float(i / resolution)) # <<<<<<<<<<<<<< - * eqs.append(x) - * rmss.append(y) - */ - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_exp_regression); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 823, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_v_i, __pyx_v_resolution); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 823, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyNumber_Float(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 823, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = NULL; - __pyx_t_11 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_12); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_12, function); - __pyx_t_11 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_12)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_x_train, __pyx_v_y_train, __pyx_t_1}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L22_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { - PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_x_train, __pyx_v_y_train, __pyx_t_1}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L22_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else - #endif - { - __pyx_t_10 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 823, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_10); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_4); __pyx_t_4 = NULL; - } - __Pyx_INCREF(__pyx_v_x_train); - __Pyx_GIVEREF(__pyx_v_x_train); - PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_11, __pyx_v_x_train); - __Pyx_INCREF(__pyx_v_y_train); - __Pyx_GIVEREF(__pyx_v_y_train); - PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_11, __pyx_v_y_train); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_11, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { - PyObject* sequence = __pyx_t_3; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 823, __pyx_L22_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_12 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_12 = PyList_GET_ITEM(sequence, 0); - __pyx_t_10 = PyList_GET_ITEM(sequence, 1); - __pyx_t_1 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_12); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(__pyx_t_1); - #else - __pyx_t_12 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 823, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 823, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_1 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 823, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 823, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_16 = Py_TYPE(__pyx_t_4)->tp_iternext; - index = 0; __pyx_t_12 = __pyx_t_16(__pyx_t_4); if (unlikely(!__pyx_t_12)) goto __pyx_L30_unpacking_failed; - __Pyx_GOTREF(__pyx_t_12); - index = 1; __pyx_t_10 = __pyx_t_16(__pyx_t_4); if (unlikely(!__pyx_t_10)) goto __pyx_L30_unpacking_failed; - __Pyx_GOTREF(__pyx_t_10); - index = 2; __pyx_t_1 = __pyx_t_16(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L30_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_4), 3) < 0) __PYX_ERR(0, 823, __pyx_L22_error) - __pyx_t_16 = NULL; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L31_unpacking_done; - __pyx_L30_unpacking_failed:; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_16 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 823, __pyx_L22_error) - __pyx_L31_unpacking_done:; - } - __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_12); - __pyx_t_12 = 0; - __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_10); - __pyx_t_10 = 0; - __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":824 - * try: - * x, y, z = exp_regression(x_train, y_train, float(i / resolution)) - * eqs.append(x) # <<<<<<<<<<<<<< - * rmss.append(y) - * r2s.append(z) - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_eqs, __pyx_v_x); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 824, __pyx_L22_error) - - /* "analysis.py":825 - * x, y, z = exp_regression(x_train, y_train, float(i / resolution)) - * eqs.append(x) - * rmss.append(y) # <<<<<<<<<<<<<< - * r2s.append(z) - * except: - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_rmss, __pyx_v_y); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 825, __pyx_L22_error) - - /* "analysis.py":826 - * eqs.append(x) - * rmss.append(y) - * r2s.append(z) # <<<<<<<<<<<<<< - * except: - * pass - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_r2s, __pyx_v_z); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 826, __pyx_L22_error) - - /* "analysis.py":822 - * - * for i in range(1, 100 * resolution + 1): - * try: # <<<<<<<<<<<<<< - * x, y, z = exp_regression(x_train, y_train, float(i / resolution)) - * eqs.append(x) - */ - } - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - goto __pyx_L29_try_end; - __pyx_L22_error:; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "analysis.py":827 - * rmss.append(y) - * r2s.append(z) - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L23_exception_handled; - } - __pyx_L23_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_14, __pyx_t_13); - __pyx_L29_try_end:; - } - - /* "analysis.py":821 - * pass - * - * for i in range(1, 100 * resolution + 1): # <<<<<<<<<<<<<< - * try: - * x, y, z = exp_regression(x_train, y_train, float(i / resolution)) - */ - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "analysis.py":830 - * pass - * - * for i in range(1, 100 * resolution + 1): # <<<<<<<<<<<<<< - * try: - * x, y, z = log_regression(x_train, y_train, float(i / resolution)) - */ - __pyx_t_8 = PyNumber_Multiply(__pyx_int_100, __pyx_v_resolution); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_8, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_int_1); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_3); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { - __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_6 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_8))) { - if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 830, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } else { - if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 830, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } - } else { - __pyx_t_3 = __pyx_t_6(__pyx_t_8); - if (unlikely(!__pyx_t_3)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 830, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":831 - * - * for i in range(1, 100 * resolution + 1): - * try: # <<<<<<<<<<<<<< - * x, y, z = log_regression(x_train, y_train, float(i / resolution)) - * eqs.append(x) - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_15); - /*try:*/ { - - /* "analysis.py":832 - * for i in range(1, 100 * resolution + 1): - * try: - * x, y, z = log_regression(x_train, y_train, float(i / resolution)) # <<<<<<<<<<<<<< - * eqs.append(x) - * rmss.append(y) - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log_regression); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L34_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyNumber_Divide(__pyx_v_i, __pyx_v_resolution); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 832, __pyx_L34_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_12 = __Pyx_PyNumber_Float(__pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 832, __pyx_L34_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = NULL; - __pyx_t_11 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_11 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_v_x_train, __pyx_v_y_train, __pyx_t_12}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 832, __pyx_L34_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_v_x_train, __pyx_v_y_train, __pyx_t_12}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 832, __pyx_L34_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - } else - #endif - { - __pyx_t_4 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 832, __pyx_L34_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_10) { - __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_10); __pyx_t_10 = NULL; - } - __Pyx_INCREF(__pyx_v_x_train); - __Pyx_GIVEREF(__pyx_v_x_train); - PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_11, __pyx_v_x_train); - __Pyx_INCREF(__pyx_v_y_train); - __Pyx_GIVEREF(__pyx_v_y_train); - PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_11, __pyx_v_y_train); - __Pyx_GIVEREF(__pyx_t_12); - PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_11, __pyx_t_12); - __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 832, __pyx_L34_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { - PyObject* sequence = __pyx_t_3; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 832, __pyx_L34_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_12 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_1 = PyList_GET_ITEM(sequence, 0); - __pyx_t_4 = PyList_GET_ITEM(sequence, 1); - __pyx_t_12 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_12); - #else - __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L34_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 832, __pyx_L34_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_12 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 832, __pyx_L34_error) - __Pyx_GOTREF(__pyx_t_12); - #endif - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 832, __pyx_L34_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_16 = Py_TYPE(__pyx_t_10)->tp_iternext; - index = 0; __pyx_t_1 = __pyx_t_16(__pyx_t_10); if (unlikely(!__pyx_t_1)) goto __pyx_L42_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 1; __pyx_t_4 = __pyx_t_16(__pyx_t_10); if (unlikely(!__pyx_t_4)) goto __pyx_L42_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 2; __pyx_t_12 = __pyx_t_16(__pyx_t_10); if (unlikely(!__pyx_t_12)) goto __pyx_L42_unpacking_failed; - __Pyx_GOTREF(__pyx_t_12); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_10), 3) < 0) __PYX_ERR(0, 832, __pyx_L34_error) - __pyx_t_16 = NULL; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - goto __pyx_L43_unpacking_done; - __pyx_L42_unpacking_failed:; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_16 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 832, __pyx_L34_error) - __pyx_L43_unpacking_done:; - } - __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_1); - __pyx_t_1 = 0; - __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_4); - __pyx_t_4 = 0; - __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_12); - __pyx_t_12 = 0; - - /* "analysis.py":833 - * try: - * x, y, z = log_regression(x_train, y_train, float(i / resolution)) - * eqs.append(x) # <<<<<<<<<<<<<< - * rmss.append(y) - * r2s.append(z) - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_eqs, __pyx_v_x); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 833, __pyx_L34_error) - - /* "analysis.py":834 - * x, y, z = log_regression(x_train, y_train, float(i / resolution)) - * eqs.append(x) - * rmss.append(y) # <<<<<<<<<<<<<< - * r2s.append(z) - * except: - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_rmss, __pyx_v_y); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 834, __pyx_L34_error) - - /* "analysis.py":835 - * eqs.append(x) - * rmss.append(y) - * r2s.append(z) # <<<<<<<<<<<<<< - * except: - * pass - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_r2s, __pyx_v_z); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 835, __pyx_L34_error) - - /* "analysis.py":831 - * - * for i in range(1, 100 * resolution + 1): - * try: # <<<<<<<<<<<<<< - * x, y, z = log_regression(x_train, y_train, float(i / resolution)) - * eqs.append(x) - */ - } - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - goto __pyx_L41_try_end; - __pyx_L34_error:; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "analysis.py":836 - * rmss.append(y) - * r2s.append(z) - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L35_exception_handled; - } - __pyx_L35_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); - __pyx_L41_try_end:; - } - - /* "analysis.py":830 - * pass - * - * for i in range(1, 100 * resolution + 1): # <<<<<<<<<<<<<< - * try: - * x, y, z = log_regression(x_train, y_train, float(i / resolution)) - */ - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "analysis.py":839 - * pass - * - * try: # <<<<<<<<<<<<<< - * x, y, z = tanh_regression(x_train, y_train) - * - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_13); - /*try:*/ { - - /* "analysis.py":840 - * - * try: - * x, y, z = tanh_regression(x_train, y_train) # <<<<<<<<<<<<<< - * - * eqs.append(x) - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_tanh_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 840, __pyx_L44_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_12 = NULL; - __pyx_t_11 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_12)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_12); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_11 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_v_x_train, __pyx_v_y_train}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 840, __pyx_L44_error) - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_GOTREF(__pyx_t_8); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_v_x_train, __pyx_v_y_train}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 840, __pyx_L44_error) - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_GOTREF(__pyx_t_8); - } else - #endif - { - __pyx_t_4 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L44_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_12) { - __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_12); __pyx_t_12 = NULL; - } - __Pyx_INCREF(__pyx_v_x_train); - __Pyx_GIVEREF(__pyx_v_x_train); - PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_11, __pyx_v_x_train); - __Pyx_INCREF(__pyx_v_y_train); - __Pyx_GIVEREF(__pyx_v_y_train); - PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_11, __pyx_v_y_train); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 840, __pyx_L44_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) { - PyObject* sequence = __pyx_t_8; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 840, __pyx_L44_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_12 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_3 = PyList_GET_ITEM(sequence, 0); - __pyx_t_4 = PyList_GET_ITEM(sequence, 1); - __pyx_t_12 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_12); - #else - __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 840, __pyx_L44_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L44_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_12 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 840, __pyx_L44_error) - __Pyx_GOTREF(__pyx_t_12); - #endif - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_1 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 840, __pyx_L44_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_16 = Py_TYPE(__pyx_t_1)->tp_iternext; - index = 0; __pyx_t_3 = __pyx_t_16(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L50_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 1; __pyx_t_4 = __pyx_t_16(__pyx_t_1); if (unlikely(!__pyx_t_4)) goto __pyx_L50_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 2; __pyx_t_12 = __pyx_t_16(__pyx_t_1); if (unlikely(!__pyx_t_12)) goto __pyx_L50_unpacking_failed; - __Pyx_GOTREF(__pyx_t_12); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_1), 3) < 0) __PYX_ERR(0, 840, __pyx_L44_error) - __pyx_t_16 = NULL; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L51_unpacking_done; - __pyx_L50_unpacking_failed:; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_16 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 840, __pyx_L44_error) - __pyx_L51_unpacking_done:; - } - __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_3); - __pyx_t_3 = 0; - __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_4); - __pyx_t_4 = 0; - __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_12); - __pyx_t_12 = 0; - - /* "analysis.py":842 - * x, y, z = tanh_regression(x_train, y_train) - * - * eqs.append(x) # <<<<<<<<<<<<<< - * rmss.append(y) - * r2s.append(z) - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_eqs, __pyx_v_x); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 842, __pyx_L44_error) - - /* "analysis.py":843 - * - * eqs.append(x) - * rmss.append(y) # <<<<<<<<<<<<<< - * r2s.append(z) - * except: - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_rmss, __pyx_v_y); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 843, __pyx_L44_error) - - /* "analysis.py":844 - * eqs.append(x) - * rmss.append(y) - * r2s.append(z) # <<<<<<<<<<<<<< - * except: - * pass - */ - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_r2s, __pyx_v_z); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 844, __pyx_L44_error) - - /* "analysis.py":839 - * pass - * - * try: # <<<<<<<<<<<<<< - * x, y, z = tanh_regression(x_train, y_train) - * - */ - } - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - goto __pyx_L49_try_end; - __pyx_L44_error:; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "analysis.py":845 - * rmss.append(y) - * r2s.append(z) - * except: # <<<<<<<<<<<<<< - * pass - * - */ - /*except:*/ { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L45_exception_handled; - } - __pyx_L45_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_14, __pyx_t_13); - __pyx_L49_try_end:; - } - - /* "analysis.py":849 - * - * # marks all equations where r2 = 1 as they 95% of the time overfit the data - * for i in range(0, len(eqs), 1): # <<<<<<<<<<<<<< - * if r2s[i] == 1: - * eqs[i] = "" - */ - __pyx_t_5 = PyList_GET_SIZE(__pyx_v_eqs); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 849, __pyx_L1_error) - __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_8); - PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_8); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_int_1); - __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_12, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { - __pyx_t_12 = __pyx_t_8; __Pyx_INCREF(__pyx_t_12); __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_6 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 849, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_12))) { - if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_12)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 849, __pyx_L1_error) - #else - __pyx_t_8 = PySequence_ITEM(__pyx_t_12, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - } else { - if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_12)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 849, __pyx_L1_error) - #else - __pyx_t_8 = PySequence_ITEM(__pyx_t_12, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - } - } else { - __pyx_t_8 = __pyx_t_6(__pyx_t_12); - if (unlikely(!__pyx_t_8)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 849, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_8); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8); - __pyx_t_8 = 0; - - /* "analysis.py":850 - * # marks all equations where r2 = 1 as they 95% of the time overfit the data - * for i in range(0, len(eqs), 1): - * if r2s[i] == 1: # <<<<<<<<<<<<<< - * eqs[i] = "" - * rmss[i] = "" - */ - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_r2s, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 850, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_8, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 850, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 850, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_2) { - - /* "analysis.py":851 - * for i in range(0, len(eqs), 1): - * if r2s[i] == 1: - * eqs[i] = "" # <<<<<<<<<<<<<< - * rmss[i] = "" - * r2s[i] = "" - */ - if (unlikely(PyObject_SetItem(__pyx_v_eqs, __pyx_v_i, __pyx_kp_s__2) < 0)) __PYX_ERR(0, 851, __pyx_L1_error) - - /* "analysis.py":852 - * if r2s[i] == 1: - * eqs[i] = "" - * rmss[i] = "" # <<<<<<<<<<<<<< - * r2s[i] = "" - * - */ - if (unlikely(PyObject_SetItem(__pyx_v_rmss, __pyx_v_i, __pyx_kp_s__2) < 0)) __PYX_ERR(0, 852, __pyx_L1_error) - - /* "analysis.py":853 - * eqs[i] = "" - * rmss[i] = "" - * r2s[i] = "" # <<<<<<<<<<<<<< - * - * while True: # removes all equations marked for removal - */ - if (unlikely(PyObject_SetItem(__pyx_v_r2s, __pyx_v_i, __pyx_kp_s__2) < 0)) __PYX_ERR(0, 853, __pyx_L1_error) - - /* "analysis.py":850 - * # marks all equations where r2 = 1 as they 95% of the time overfit the data - * for i in range(0, len(eqs), 1): - * if r2s[i] == 1: # <<<<<<<<<<<<<< - * eqs[i] = "" - * rmss[i] = "" - */ - } - - /* "analysis.py":849 - * - * # marks all equations where r2 = 1 as they 95% of the time overfit the data - * for i in range(0, len(eqs), 1): # <<<<<<<<<<<<<< - * if r2s[i] == 1: - * eqs[i] = "" - */ - } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - /* "analysis.py":855 - * r2s[i] = "" - * - * while True: # removes all equations marked for removal # <<<<<<<<<<<<<< - * try: - * eqs.remove('') - */ - while (1) { - - /* "analysis.py":856 - * - * while True: # removes all equations marked for removal - * try: # <<<<<<<<<<<<<< - * eqs.remove('') - * rmss.remove('') - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_15); - /*try:*/ { - - /* "analysis.py":857 - * while True: # removes all equations marked for removal - * try: - * eqs.remove('') # <<<<<<<<<<<<<< - * rmss.remove('') - * r2s.remove('') - */ - __pyx_t_12 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_remove, __pyx_v_eqs, __pyx_kp_s__2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 857, __pyx_L57_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - /* "analysis.py":858 - * try: - * eqs.remove('') - * rmss.remove('') # <<<<<<<<<<<<<< - * r2s.remove('') - * except: - */ - __pyx_t_12 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_remove, __pyx_v_rmss, __pyx_kp_s__2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 858, __pyx_L57_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - /* "analysis.py":859 - * eqs.remove('') - * rmss.remove('') - * r2s.remove('') # <<<<<<<<<<<<<< - * except: - * break - */ - __pyx_t_12 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_remove, __pyx_v_r2s, __pyx_kp_s__2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 859, __pyx_L57_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - /* "analysis.py":856 - * - * while True: # removes all equations marked for removal - * try: # <<<<<<<<<<<<<< - * eqs.remove('') - * rmss.remove('') - */ - } - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - goto __pyx_L64_try_end; - __pyx_L57_error:; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "analysis.py":860 - * rmss.remove('') - * r2s.remove('') - * except: # <<<<<<<<<<<<<< - * break - * - */ - /*except:*/ { - __Pyx_AddTraceback("analysis.optimize_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 860, __pyx_L59_except_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GOTREF(__pyx_t_8); - - /* "analysis.py":861 - * r2s.remove('') - * except: - * break # <<<<<<<<<<<<<< - * - * overfit = [] - */ - goto __pyx_L65_except_break; - __pyx_L65_except_break:; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L62_try_break; - } - __pyx_L59_except_error:; - - /* "analysis.py":856 - * - * while True: # removes all equations marked for removal - * try: # <<<<<<<<<<<<<< - * eqs.remove('') - * rmss.remove('') - */ - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); - goto __pyx_L1_error; - __pyx_L62_try_break:; - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); - goto __pyx_L56_break; - __pyx_L64_try_end:; - } - } - __pyx_L56_break:; - - /* "analysis.py":863 - * break - * - * overfit = [] # <<<<<<<<<<<<<< - * - * for i in range(0, len(eqs), 1): - */ - __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 863, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_v_overfit = ((PyObject*)__pyx_t_8); - __pyx_t_8 = 0; - - /* "analysis.py":865 - * overfit = [] - * - * for i in range(0, len(eqs), 1): # <<<<<<<<<<<<<< - * - * overfit.append(calc_overfit(eqs[i], rmss[i], r2s[i], x_test, y_test)) - */ - __pyx_t_5 = PyList_GET_SIZE(__pyx_v_eqs); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 865, __pyx_L1_error) - __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 865, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 865, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_8); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_8); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_int_1); - __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 865, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { - __pyx_t_4 = __pyx_t_8; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 865, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 865, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_4))) { - if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 865, __pyx_L1_error) - #else - __pyx_t_8 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 865, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - } else { - if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 865, __pyx_L1_error) - #else - __pyx_t_8 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 865, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - } - } else { - __pyx_t_8 = __pyx_t_6(__pyx_t_4); - if (unlikely(!__pyx_t_8)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 865, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_8); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8); - __pyx_t_8 = 0; - - /* "analysis.py":867 - * for i in range(0, len(eqs), 1): - * - * overfit.append(calc_overfit(eqs[i], rmss[i], r2s[i], x_test, y_test)) # <<<<<<<<<<<<<< - * - * return eqs, rmss, r2s, overfit - */ - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_calc_overfit); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_eqs, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_rmss, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_r2s, __pyx_v_i); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_17 = NULL; - __pyx_t_11 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { - __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_12); - if (likely(__pyx_t_17)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); - __Pyx_INCREF(__pyx_t_17); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_12, function); - __pyx_t_11 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_12)) { - PyObject *__pyx_temp[6] = {__pyx_t_17, __pyx_t_3, __pyx_t_1, __pyx_t_10, __pyx_v_x_test, __pyx_v_y_test}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_11, 5+__pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 867, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { - PyObject *__pyx_temp[6] = {__pyx_t_17, __pyx_t_3, __pyx_t_1, __pyx_t_10, __pyx_v_x_test, __pyx_v_y_test}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_11, 5+__pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 867, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } else - #endif - { - __pyx_t_18 = PyTuple_New(5+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (__pyx_t_17) { - __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_17); __pyx_t_17 = NULL; - } - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_10); - PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_11, __pyx_t_10); - __Pyx_INCREF(__pyx_v_x_test); - __Pyx_GIVEREF(__pyx_v_x_test); - PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_11, __pyx_v_x_test); - __Pyx_INCREF(__pyx_v_y_test); - __Pyx_GIVEREF(__pyx_v_y_test); - PyTuple_SET_ITEM(__pyx_t_18, 4+__pyx_t_11, __pyx_v_y_test); - __pyx_t_3 = 0; - __pyx_t_1 = 0; - __pyx_t_10 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_18, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_overfit, __pyx_t_8); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 867, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - /* "analysis.py":865 - * overfit = [] - * - * for i in range(0, len(eqs), 1): # <<<<<<<<<<<<<< - * - * overfit.append(calc_overfit(eqs[i], rmss[i], r2s[i], x_test, y_test)) - */ - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "analysis.py":869 - * overfit.append(calc_overfit(eqs[i], rmss[i], r2s[i], x_test, y_test)) - * - * return eqs, rmss, r2s, overfit # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF(__pyx_v_eqs); - __Pyx_GIVEREF(__pyx_v_eqs); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_eqs); - __Pyx_INCREF(__pyx_v_rmss); - __Pyx_GIVEREF(__pyx_v_rmss); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_rmss); - __Pyx_INCREF(__pyx_v_r2s); - __Pyx_GIVEREF(__pyx_v_r2s); - PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_r2s); - __Pyx_INCREF(__pyx_v_overfit); - __Pyx_GIVEREF(__pyx_v_overfit); - PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_overfit); - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "analysis.py":782 - * - * # _range in poly regression is the range of powers tried, and in log/exp it is the inverse of the stepsize taken from -1000 to 1000 - * def optimize_regression(x, y, _range, resolution): # <<<<<<<<<<<<<< - * # usage not: for demonstration purpose only, performance is shit - * if type(resolution) != int: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_12); - __Pyx_XDECREF(__pyx_t_17); - __Pyx_XDECREF(__pyx_t_18); - __Pyx_AddTraceback("analysis.optimize_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_x_train); - __Pyx_XDECREF(__pyx_v_y_train); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_x_test); - __Pyx_XDECREF(__pyx_v_y_test); - __Pyx_XDECREF(__pyx_v_index); - __Pyx_XDECREF(__pyx_v_eqs); - __Pyx_XDECREF(__pyx_v_rmss); - __Pyx_XDECREF(__pyx_v_r2s); - __Pyx_XDECREF(__pyx_v_z); - __Pyx_XDECREF(__pyx_v_overfit); - __Pyx_XDECREF(__pyx_v_x); - __Pyx_XDECREF(__pyx_v_y); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":872 - * - * - * def select_best_regression(eqs, rmss, r2s, overfit, selector): # <<<<<<<<<<<<<< - * - * b_eq = "" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_33select_best_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_33select_best_regression = {"select_best_regression", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_33select_best_regression, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_33select_best_regression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_eqs = 0; - PyObject *__pyx_v_rmss = 0; - PyObject *__pyx_v_r2s = 0; - PyObject *__pyx_v_overfit = 0; - PyObject *__pyx_v_selector = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("select_best_regression (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_eqs,&__pyx_n_s_rmss,&__pyx_n_s_r2s,&__pyx_n_s_overfit,&__pyx_n_s_selector,0}; - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_eqs)) != 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_rmss)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("select_best_regression", 1, 5, 5, 1); __PYX_ERR(0, 872, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_r2s)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("select_best_regression", 1, 5, 5, 2); __PYX_ERR(0, 872, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_overfit)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("select_best_regression", 1, 5, 5, 3); __PYX_ERR(0, 872, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_selector)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("select_best_regression", 1, 5, 5, 4); __PYX_ERR(0, 872, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "select_best_regression") < 0)) __PYX_ERR(0, 872, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_eqs = values[0]; - __pyx_v_rmss = values[1]; - __pyx_v_r2s = values[2]; - __pyx_v_overfit = values[3]; - __pyx_v_selector = values[4]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("select_best_regression", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 872, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.select_best_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_32select_best_regression(__pyx_self, __pyx_v_eqs, __pyx_v_rmss, __pyx_v_r2s, __pyx_v_overfit, __pyx_v_selector); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_32select_best_regression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_eqs, PyObject *__pyx_v_rmss, PyObject *__pyx_v_r2s, PyObject *__pyx_v_overfit, PyObject *__pyx_v_selector) { - PyObject *__pyx_v_b_eq = NULL; - PyObject *__pyx_v_b_rms = NULL; - PyObject *__pyx_v_b_r2 = NULL; - PyObject *__pyx_v_b_overfit = NULL; - PyObject *__pyx_v_ind = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - __Pyx_RefNannySetupContext("select_best_regression", 0); - - /* "analysis.py":874 - * def select_best_regression(eqs, rmss, r2s, overfit, selector): - * - * b_eq = "" # <<<<<<<<<<<<<< - * b_rms = 0 - * b_r2 = 0 - */ - __Pyx_INCREF(__pyx_kp_s__2); - __pyx_v_b_eq = __pyx_kp_s__2; - - /* "analysis.py":875 - * - * b_eq = "" - * b_rms = 0 # <<<<<<<<<<<<<< - * b_r2 = 0 - * b_overfit = 0 - */ - __Pyx_INCREF(__pyx_int_0); - __pyx_v_b_rms = __pyx_int_0; - - /* "analysis.py":876 - * b_eq = "" - * b_rms = 0 - * b_r2 = 0 # <<<<<<<<<<<<<< - * b_overfit = 0 - * - */ - __Pyx_INCREF(__pyx_int_0); - __pyx_v_b_r2 = __pyx_int_0; - - /* "analysis.py":877 - * b_rms = 0 - * b_r2 = 0 - * b_overfit = 0 # <<<<<<<<<<<<<< - * - * ind = 0 - */ - __Pyx_INCREF(__pyx_int_0); - __pyx_v_b_overfit = __pyx_int_0; - - /* "analysis.py":879 - * b_overfit = 0 - * - * ind = 0 # <<<<<<<<<<<<<< - * - * if selector == "min_overfit": - */ - __Pyx_INCREF(__pyx_int_0); - __pyx_v_ind = __pyx_int_0; - - /* "analysis.py":881 - * ind = 0 - * - * if selector == "min_overfit": # <<<<<<<<<<<<<< - * - * ind = np.argmin(overfit) - */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_selector, __pyx_n_s_min_overfit, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 881, __pyx_L1_error) - if (__pyx_t_1) { - - /* "analysis.py":883 - * if selector == "min_overfit": - * - * ind = np.argmin(overfit) # <<<<<<<<<<<<<< - * - * b_eq = eqs[ind] - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 883, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_argmin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 883, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_v_overfit) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_overfit); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 883, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF_SET(__pyx_v_ind, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":885 - * ind = np.argmin(overfit) - * - * b_eq = eqs[ind] # <<<<<<<<<<<<<< - * b_rms = rmss[ind] - * b_r2 = r2s[ind] - */ - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_eqs, __pyx_v_ind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 885, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_b_eq, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":886 - * - * b_eq = eqs[ind] - * b_rms = rmss[ind] # <<<<<<<<<<<<<< - * b_r2 = r2s[ind] - * b_overfit = overfit[ind] - */ - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_rmss, __pyx_v_ind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 886, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_b_rms, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":887 - * b_eq = eqs[ind] - * b_rms = rmss[ind] - * b_r2 = r2s[ind] # <<<<<<<<<<<<<< - * b_overfit = overfit[ind] - * - */ - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_r2s, __pyx_v_ind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 887, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_b_r2, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":888 - * b_rms = rmss[ind] - * b_r2 = r2s[ind] - * b_overfit = overfit[ind] # <<<<<<<<<<<<<< - * - * if selector == "max_r2s": - */ - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_overfit, __pyx_v_ind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 888, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_b_overfit, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":881 - * ind = 0 - * - * if selector == "min_overfit": # <<<<<<<<<<<<<< - * - * ind = np.argmin(overfit) - */ - } - - /* "analysis.py":890 - * b_overfit = overfit[ind] - * - * if selector == "max_r2s": # <<<<<<<<<<<<<< - * - * ind = np.argmax(r2s) - */ - __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_selector, __pyx_n_s_max_r2s, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 890, __pyx_L1_error) - if (__pyx_t_1) { - - /* "analysis.py":892 - * if selector == "max_r2s": - * - * ind = np.argmax(r2s) # <<<<<<<<<<<<<< - * b_eq = eqs[ind] - * b_rms = rmss[ind] - */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 892, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_argmax); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 892, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_r2s) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_r2s); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 892, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF_SET(__pyx_v_ind, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":893 - * - * ind = np.argmax(r2s) - * b_eq = eqs[ind] # <<<<<<<<<<<<<< - * b_rms = rmss[ind] - * b_r2 = r2s[ind] - */ - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_eqs, __pyx_v_ind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 893, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_b_eq, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":894 - * ind = np.argmax(r2s) - * b_eq = eqs[ind] - * b_rms = rmss[ind] # <<<<<<<<<<<<<< - * b_r2 = r2s[ind] - * b_overfit = overfit[ind] - */ - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_rmss, __pyx_v_ind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 894, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_b_rms, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":895 - * b_eq = eqs[ind] - * b_rms = rmss[ind] - * b_r2 = r2s[ind] # <<<<<<<<<<<<<< - * b_overfit = overfit[ind] - * - */ - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_r2s, __pyx_v_ind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 895, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_b_r2, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":896 - * b_rms = rmss[ind] - * b_r2 = r2s[ind] - * b_overfit = overfit[ind] # <<<<<<<<<<<<<< - * - * return b_eq, b_rms, b_r2, b_overfit - */ - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_overfit, __pyx_v_ind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 896, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_b_overfit, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":890 - * b_overfit = overfit[ind] - * - * if selector == "max_r2s": # <<<<<<<<<<<<<< - * - * ind = np.argmax(r2s) - */ - } - - /* "analysis.py":898 - * b_overfit = overfit[ind] - * - * return b_eq, b_rms, b_r2, b_overfit # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 898, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_b_eq); - __Pyx_GIVEREF(__pyx_v_b_eq); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_b_eq); - __Pyx_INCREF(__pyx_v_b_rms); - __Pyx_GIVEREF(__pyx_v_b_rms); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_b_rms); - __Pyx_INCREF(__pyx_v_b_r2); - __Pyx_GIVEREF(__pyx_v_b_r2); - PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_b_r2); - __Pyx_INCREF(__pyx_v_b_overfit); - __Pyx_GIVEREF(__pyx_v_b_overfit); - PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_b_overfit); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - /* "analysis.py":872 - * - * - * def select_best_regression(eqs, rmss, r2s, overfit, selector): # <<<<<<<<<<<<<< - * - * b_eq = "" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("analysis.select_best_regression", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_b_eq); - __Pyx_XDECREF(__pyx_v_b_rms); - __Pyx_XDECREF(__pyx_v_b_r2); - __Pyx_XDECREF(__pyx_v_b_overfit); - __Pyx_XDECREF(__pyx_v_ind); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":901 - * - * - * def p_value(x, y): # takes 2 1d arrays # <<<<<<<<<<<<<< - * - * return stats.ttest_ind(x, y)[1] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_35p_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_35p_value = {"p_value", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_35p_value, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_35p_value(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_x = 0; - PyObject *__pyx_v_y = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("p_value (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,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_x)) != 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_y)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("p_value", 1, 2, 2, 1); __PYX_ERR(0, 901, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "p_value") < 0)) __PYX_ERR(0, 901, __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_x = values[0]; - __pyx_v_y = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("p_value", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 901, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.p_value", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_34p_value(__pyx_self, __pyx_v_x, __pyx_v_y); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_34p_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) { - PyObject *__pyx_r = NULL; - __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; - __Pyx_RefNannySetupContext("p_value", 0); - - /* "analysis.py":903 - * def p_value(x, y): # takes 2 1d arrays - * - * return stats.ttest_ind(x, y)[1] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_stats); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ttest_ind); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = NULL; - __pyx_t_4 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_4 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_x, __pyx_v_y}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 903, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_x, __pyx_v_y}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 903, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; - } - __Pyx_INCREF(__pyx_v_x); - __Pyx_GIVEREF(__pyx_v_x); - PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_x); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_y); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "analysis.py":901 - * - * - * def p_value(x, y): # takes 2 1d arrays # <<<<<<<<<<<<<< - * - * return stats.ttest_ind(x, y)[1] - */ - - /* 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_5); - __Pyx_AddTraceback("analysis.p_value", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":907 - * - * # assumes that rows are the independent variable and columns are the dependant. also assumes that time flows from lowest column to highest column. - * def basic_analysis(data): # <<<<<<<<<<<<<< - * - * row = len(data) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_37basic_analysis(PyObject *__pyx_self, PyObject *__pyx_v_data); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_37basic_analysis = {"basic_analysis", (PyCFunction)__pyx_pw_8analysis_37basic_analysis, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_37basic_analysis(PyObject *__pyx_self, PyObject *__pyx_v_data) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("basic_analysis (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_36basic_analysis(__pyx_self, ((PyObject *)__pyx_v_data)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_36basic_analysis(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data) { - Py_ssize_t __pyx_v_row; - PyObject *__pyx_v_column = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_column_max = NULL; - PyObject *__pyx_v_row_b_stats = NULL; - PyObject *__pyx_v_row_histo = NULL; - PyObject *__pyx_v_column_b_stats = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - Py_ssize_t __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *(*__pyx_t_4)(PyObject *); - Py_ssize_t __pyx_t_5; - int __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - int __pyx_t_9; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - __Pyx_RefNannySetupContext("basic_analysis", 0); - - /* "analysis.py":909 - * def basic_analysis(data): - * - * row = len(data) # <<<<<<<<<<<<<< - * column = [] - * - */ - __pyx_t_1 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 909, __pyx_L1_error) - __pyx_v_row = __pyx_t_1; - - /* "analysis.py":910 - * - * row = len(data) - * column = [] # <<<<<<<<<<<<<< - * - * for i in range(0, row, 1): - */ - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 910, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_column = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":912 - * column = [] - * - * for i in range(0, row, 1): # <<<<<<<<<<<<<< - * column.append(len(data[i])) - * - */ - __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 912, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 912, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_int_1); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 912, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { - __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0; - __pyx_t_4 = NULL; - } else { - __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 912, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 912, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - for (;;) { - if (likely(!__pyx_t_4)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_3)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_2); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 912, __pyx_L1_error) - #else - __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 912, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #endif - } else { - if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_2); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 912, __pyx_L1_error) - #else - __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 912, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #endif - } - } else { - __pyx_t_2 = __pyx_t_4(__pyx_t_3); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 912, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":913 - * - * for i in range(0, row, 1): - * column.append(len(data[i])) # <<<<<<<<<<<<<< - * - * column_max = max(column) - */ - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_data, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 913, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_column, __pyx_t_2); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 913, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":912 - * column = [] - * - * for i in range(0, row, 1): # <<<<<<<<<<<<<< - * column.append(len(data[i])) - * - */ - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "analysis.py":915 - * column.append(len(data[i])) - * - * column_max = max(column) # <<<<<<<<<<<<<< - * row_b_stats = [] - * row_histo = [] - */ - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_v_column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_column_max = __pyx_t_3; - __pyx_t_3 = 0; - - /* "analysis.py":916 - * - * column_max = max(column) - * row_b_stats = [] # <<<<<<<<<<<<<< - * row_histo = [] - * - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 916, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_row_b_stats = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":917 - * column_max = max(column) - * row_b_stats = [] - * row_histo = [] # <<<<<<<<<<<<<< - * - * for i in range(0, row, 1): - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 917, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_row_histo = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":919 - * row_histo = [] - * - * for i in range(0, row, 1): # <<<<<<<<<<<<<< - * row_b_stats.append(basic_stats(data, "row", i)) - * row_histo.append(histo_analysis(data[i], 0.67449, -0.67449, 0.67449)) - */ - __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_int_1); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { - __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = 0; - __pyx_t_4 = NULL; - } else { - __pyx_t_1 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 919, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - for (;;) { - if (likely(!__pyx_t_4)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_2)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 919, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } else { - if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_2)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 919, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } - } else { - __pyx_t_3 = __pyx_t_4(__pyx_t_2); - if (unlikely(!__pyx_t_3)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 919, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":920 - * - * for i in range(0, row, 1): - * row_b_stats.append(basic_stats(data, "row", i)) # <<<<<<<<<<<<<< - * row_histo.append(histo_analysis(data[i], 0.67449, -0.67449, 0.67449)) - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_basic_stats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = NULL; - __pyx_t_9 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - __pyx_t_9 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_7)) { - PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_data, __pyx_n_s_row, __pyx_v_i}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 920, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_3); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { - PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_data, __pyx_n_s_row, __pyx_v_i}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 920, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_3); - } else - #endif - { - __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - if (__pyx_t_8) { - __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; - } - __Pyx_INCREF(__pyx_v_data); - __Pyx_GIVEREF(__pyx_v_data); - PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_v_data); - __Pyx_INCREF(__pyx_n_s_row); - __Pyx_GIVEREF(__pyx_n_s_row); - PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_n_s_row); - __Pyx_INCREF(__pyx_v_i); - __Pyx_GIVEREF(__pyx_v_i); - PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_v_i); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_row_b_stats, __pyx_t_3); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 920, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "analysis.py":921 - * for i in range(0, row, 1): - * row_b_stats.append(basic_stats(data, "row", i)) - * row_histo.append(histo_analysis(data[i], 0.67449, -0.67449, 0.67449)) # <<<<<<<<<<<<<< - * - * column_b_stats = [] - */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_histo_analysis); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 921, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_data, __pyx_v_i); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 921, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = NULL; - __pyx_t_9 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - __pyx_t_9 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_7)) { - PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_10, __pyx_float_0_67449, __pyx_float_neg_0_67449, __pyx_float_0_67449}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { - PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_10, __pyx_float_0_67449, __pyx_float_neg_0_67449, __pyx_float_0_67449}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } else - #endif - { - __pyx_t_11 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 921, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (__pyx_t_8) { - __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8); __pyx_t_8 = NULL; - } - __Pyx_GIVEREF(__pyx_t_10); - PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_9, __pyx_t_10); - __Pyx_INCREF(__pyx_float_0_67449); - __Pyx_GIVEREF(__pyx_float_0_67449); - PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_9, __pyx_float_0_67449); - __Pyx_INCREF(__pyx_float_neg_0_67449); - __Pyx_GIVEREF(__pyx_float_neg_0_67449); - PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_9, __pyx_float_neg_0_67449); - __Pyx_INCREF(__pyx_float_0_67449); - __Pyx_GIVEREF(__pyx_float_0_67449); - PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_9, __pyx_float_0_67449); - __pyx_t_10 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_row_histo, __pyx_t_3); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 921, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "analysis.py":919 - * row_histo = [] - * - * for i in range(0, row, 1): # <<<<<<<<<<<<<< - * row_b_stats.append(basic_stats(data, "row", i)) - * row_histo.append(histo_analysis(data[i], 0.67449, -0.67449, 0.67449)) - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":923 - * row_histo.append(histo_analysis(data[i], 0.67449, -0.67449, 0.67449)) - * - * column_b_stats = [] # <<<<<<<<<<<<<< - * - * for i in range(0, column_max, 1): - */ - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 923, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_column_b_stats = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":925 - * column_b_stats = [] - * - * for i in range(0, column_max, 1): # <<<<<<<<<<<<<< - * column_b_stats.append(basic_stats(data, "column", i)) - * - */ - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 925, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0); - __Pyx_INCREF(__pyx_v_column_max); - __Pyx_GIVEREF(__pyx_v_column_max); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_column_max); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_int_1); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { - __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = 0; - __pyx_t_4 = NULL; - } else { - __pyx_t_1 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 925, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 925, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - for (;;) { - if (likely(!__pyx_t_4)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_2)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 925, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } else { - if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_2)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(0, 925, __pyx_L1_error) - #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - } - } else { - __pyx_t_3 = __pyx_t_4(__pyx_t_2); - if (unlikely(!__pyx_t_3)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 925, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":926 - * - * for i in range(0, column_max, 1): - * column_b_stats.append(basic_stats(data, "column", i)) # <<<<<<<<<<<<<< - * - * return[row_b_stats, column_b_stats, row_histo] - */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_basic_stats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_11 = NULL; - __pyx_t_9 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_11)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - __pyx_t_9 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_7)) { - PyObject *__pyx_temp[4] = {__pyx_t_11, __pyx_v_data, __pyx_n_s_column, __pyx_v_i}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 926, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_GOTREF(__pyx_t_3); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { - PyObject *__pyx_temp[4] = {__pyx_t_11, __pyx_v_data, __pyx_n_s_column, __pyx_v_i}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 926, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_GOTREF(__pyx_t_3); - } else - #endif - { - __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - if (__pyx_t_11) { - __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11); __pyx_t_11 = NULL; - } - __Pyx_INCREF(__pyx_v_data); - __Pyx_GIVEREF(__pyx_v_data); - PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_v_data); - __Pyx_INCREF(__pyx_n_s_column); - __Pyx_GIVEREF(__pyx_n_s_column); - PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_n_s_column); - __Pyx_INCREF(__pyx_v_i); - __Pyx_GIVEREF(__pyx_v_i); - PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_v_i); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_column_b_stats, __pyx_t_3); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 926, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "analysis.py":925 - * column_b_stats = [] - * - * for i in range(0, column_max, 1): # <<<<<<<<<<<<<< - * column_b_stats.append(basic_stats(data, "column", i)) - * - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":928 - * column_b_stats.append(basic_stats(data, "column", i)) - * - * return[row_b_stats, column_b_stats, row_histo] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 928, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_row_b_stats); - __Pyx_GIVEREF(__pyx_v_row_b_stats); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_v_row_b_stats); - __Pyx_INCREF(__pyx_v_column_b_stats); - __Pyx_GIVEREF(__pyx_v_column_b_stats); - PyList_SET_ITEM(__pyx_t_2, 1, __pyx_v_column_b_stats); - __Pyx_INCREF(__pyx_v_row_histo); - __Pyx_GIVEREF(__pyx_v_row_histo); - PyList_SET_ITEM(__pyx_t_2, 2, __pyx_v_row_histo); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - /* "analysis.py":907 - * - * # assumes that rows are the independent variable and columns are the dependant. also assumes that time flows from lowest column to highest column. - * def basic_analysis(data): # <<<<<<<<<<<<<< - * - * row = len(data) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_AddTraceback("analysis.basic_analysis", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_column); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_column_max); - __Pyx_XDECREF(__pyx_v_row_b_stats); - __Pyx_XDECREF(__pyx_v_row_histo); - __Pyx_XDECREF(__pyx_v_column_b_stats); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":931 - * - * - * def benchmark(x, y): # <<<<<<<<<<<<<< - * - * start_g = time.time() - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_39benchmark(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_39benchmark = {"benchmark", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_39benchmark, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_39benchmark(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_x = 0; - PyObject *__pyx_v_y = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("benchmark (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,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_x)) != 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_y)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("benchmark", 1, 2, 2, 1); __PYX_ERR(0, 931, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "benchmark") < 0)) __PYX_ERR(0, 931, __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_x = values[0]; - __pyx_v_y = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("benchmark", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 931, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.benchmark", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_38benchmark(__pyx_self, __pyx_v_x, __pyx_v_y); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_38benchmark(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) { - PyObject *__pyx_v_start_g = NULL; - PyObject *__pyx_v_end_g = NULL; - PyObject *__pyx_v_start_a = NULL; - PyObject *__pyx_v_end_a = NULL; - PyObject *__pyx_r = NULL; - __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; - __Pyx_RefNannySetupContext("benchmark", 0); - - /* "analysis.py":933 - * def benchmark(x, y): - * - * start_g = time.time() # <<<<<<<<<<<<<< - * generate_data("data/data.csv", x, y, -10, 10) - * end_g = time.time() - */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 933, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 933, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 933, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_start_g = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":934 - * - * start_g = time.time() - * generate_data("data/data.csv", x, y, -10, 10) # <<<<<<<<<<<<<< - * end_g = time.time() - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_generate_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = NULL; - __pyx_t_4 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_4 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[6] = {__pyx_t_2, __pyx_kp_s_data_data_csv, __pyx_v_x, __pyx_v_y, __pyx_int_neg_10, __pyx_int_10}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 934, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[6] = {__pyx_t_2, __pyx_kp_s_data_data_csv, __pyx_v_x, __pyx_v_y, __pyx_int_neg_10, __pyx_int_10}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 934, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_5 = PyTuple_New(5+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; - } - __Pyx_INCREF(__pyx_kp_s_data_data_csv); - __Pyx_GIVEREF(__pyx_kp_s_data_data_csv); - PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_kp_s_data_data_csv); - __Pyx_INCREF(__pyx_v_x); - __Pyx_GIVEREF(__pyx_v_x); - PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_x); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_y); - __Pyx_INCREF(__pyx_int_neg_10); - __Pyx_GIVEREF(__pyx_int_neg_10); - PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_4, __pyx_int_neg_10); - __Pyx_INCREF(__pyx_int_10); - __Pyx_GIVEREF(__pyx_int_10); - PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_4, __pyx_int_10); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":935 - * start_g = time.time() - * generate_data("data/data.csv", x, y, -10, 10) - * end_g = time.time() # <<<<<<<<<<<<<< - * - * start_a = time.time() - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 935, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 935, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 935, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v_end_g = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":937 - * end_g = time.time() - * - * start_a = time.time() # <<<<<<<<<<<<<< - * basic_analysis("data/data.csv") - * end_a = time.time() - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_time); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 937, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 937, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 937, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_start_a = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":938 - * - * start_a = time.time() - * basic_analysis("data/data.csv") # <<<<<<<<<<<<<< - * end_a = time.time() - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_basic_analysis); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 938, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_kp_s_data_data_csv) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_s_data_data_csv); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 938, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":939 - * start_a = time.time() - * basic_analysis("data/data.csv") - * end_a = time.time() # <<<<<<<<<<<<<< - * - * return [(end_g - start_g), (end_a - start_a)] - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v_end_a = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":941 - * end_a = time.time() - * - * return [(end_g - start_g), (end_a - start_a)] # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyNumber_Subtract(__pyx_v_end_g, __pyx_v_start_g); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 941, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = PyNumber_Subtract(__pyx_v_end_a, __pyx_v_start_a); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 941, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_5); - PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); - __pyx_t_1 = 0; - __pyx_t_5 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "analysis.py":931 - * - * - * def benchmark(x, y): # <<<<<<<<<<<<<< - * - * start_g = time.time() - */ - - /* 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_5); - __Pyx_AddTraceback("analysis.benchmark", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_start_g); - __Pyx_XDECREF(__pyx_v_end_g); - __Pyx_XDECREF(__pyx_v_start_a); - __Pyx_XDECREF(__pyx_v_end_a); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":944 - * - * - * def generate_data(filename, x, y, low, high): # <<<<<<<<<<<<<< - * - * file = open(filename, "w") - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_41generate_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_41generate_data = {"generate_data", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_41generate_data, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_41generate_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_filename = 0; - PyObject *__pyx_v_x = 0; - PyObject *__pyx_v_y = 0; - PyObject *__pyx_v_low = 0; - PyObject *__pyx_v_high = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("generate_data (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_low,&__pyx_n_s_high,0}; - PyObject* values[5] = {0,0,0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_filename)) != 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_x)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("generate_data", 1, 5, 5, 1); __PYX_ERR(0, 944, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("generate_data", 1, 5, 5, 2); __PYX_ERR(0, 944, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_low)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("generate_data", 1, 5, 5, 3); __PYX_ERR(0, 944, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_high)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("generate_data", 1, 5, 5, 4); __PYX_ERR(0, 944, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "generate_data") < 0)) __PYX_ERR(0, 944, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - values[3] = PyTuple_GET_ITEM(__pyx_args, 3); - values[4] = PyTuple_GET_ITEM(__pyx_args, 4); - } - __pyx_v_filename = values[0]; - __pyx_v_x = values[1]; - __pyx_v_y = values[2]; - __pyx_v_low = values[3]; - __pyx_v_high = values[4]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("generate_data", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 944, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.generate_data", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_40generate_data(__pyx_self, __pyx_v_filename, __pyx_v_x, __pyx_v_y, __pyx_v_low, __pyx_v_high); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_40generate_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_low, PyObject *__pyx_v_high) { - PyObject *__pyx_v_file = NULL; - CYTHON_UNUSED PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_temp = NULL; - CYTHON_UNUSED PyObject *__pyx_v_j = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - PyObject *(*__pyx_t_4)(PyObject *); - PyObject *__pyx_t_5 = NULL; - Py_ssize_t __pyx_t_6; - PyObject *(*__pyx_t_7)(PyObject *); - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - int __pyx_t_10; - PyObject *__pyx_t_11 = NULL; - __Pyx_RefNannySetupContext("generate_data", 0); - - /* "analysis.py":946 - * def generate_data(filename, x, y, low, high): - * - * file = open(filename, "w") # <<<<<<<<<<<<<< - * - * for i in range(0, y, 1): - */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_filename); - __Pyx_GIVEREF(__pyx_v_filename); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_filename); - __Pyx_INCREF(__pyx_n_s_w); - __Pyx_GIVEREF(__pyx_n_s_w); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_w); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_open, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_file = __pyx_t_2; - __pyx_t_2 = 0; - - /* "analysis.py":948 - * file = open(filename, "w") - * - * for i in range(0, y, 1): # <<<<<<<<<<<<<< - * temp = "" - * - */ - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0); - __Pyx_INCREF(__pyx_v_y); - __Pyx_GIVEREF(__pyx_v_y); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_y); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_int_1); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; - __pyx_t_4 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 948, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_4)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 948, __pyx_L1_error) - #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } else { - if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 948, __pyx_L1_error) - #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } - } else { - __pyx_t_1 = __pyx_t_4(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 948, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":949 - * - * for i in range(0, y, 1): - * temp = "" # <<<<<<<<<<<<<< - * - * for j in range(0, x - 1, 1): - */ - __Pyx_INCREF(__pyx_kp_s__2); - __Pyx_XDECREF_SET(__pyx_v_temp, __pyx_kp_s__2); - - /* "analysis.py":951 - * temp = "" - * - * for j in range(0, x - 1, 1): # <<<<<<<<<<<<<< - * temp = str(random.uniform(low, high)) + "," + temp - * - */ - __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_x, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_0); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); - __Pyx_INCREF(__pyx_int_1); - __Pyx_GIVEREF(__pyx_int_1); - PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_int_1); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 951, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_5))) { - if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 951, __pyx_L1_error) - #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } else { - if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 951, __pyx_L1_error) - #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } - } else { - __pyx_t_1 = __pyx_t_7(__pyx_t_5); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 951, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_XDECREF_SET(__pyx_v_j, __pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":952 - * - * for j in range(0, x - 1, 1): - * temp = str(random.uniform(low, high)) + "," + temp # <<<<<<<<<<<<<< - * - * temp = temp + str(random.uniform(low, high)) - */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_random); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_uniform); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = NULL; - __pyx_t_10 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_9, function); - __pyx_t_10 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_9)) { - PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_low, __pyx_v_high}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { - PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_low, __pyx_v_high}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (__pyx_t_8) { - __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8); __pyx_t_8 = NULL; - } - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_v_low); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_v_high); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyNumber_Add(__pyx_t_9, __pyx_kp_s__14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = PyNumber_Add(__pyx_t_1, __pyx_v_temp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF_SET(__pyx_v_temp, __pyx_t_9); - __pyx_t_9 = 0; - - /* "analysis.py":951 - * temp = "" - * - * for j in range(0, x - 1, 1): # <<<<<<<<<<<<<< - * temp = str(random.uniform(low, high)) + "," + temp - * - */ - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - /* "analysis.py":954 - * temp = str(random.uniform(low, high)) + "," + temp - * - * temp = temp + str(random.uniform(low, high)) # <<<<<<<<<<<<<< - * file.write(temp + "\n") - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_random); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 954, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_uniform); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 954, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = NULL; - __pyx_t_10 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_10 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_low, __pyx_v_high}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 954, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GOTREF(__pyx_t_5); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_low, __pyx_v_high}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 954, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GOTREF(__pyx_t_5); - } else - #endif - { - __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 954, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (__pyx_t_9) { - __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; - } - __Pyx_INCREF(__pyx_v_low); - __Pyx_GIVEREF(__pyx_v_low); - PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_v_low); - __Pyx_INCREF(__pyx_v_high); - __Pyx_GIVEREF(__pyx_v_high); - PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_v_high); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_11, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 954, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 954, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyNumber_Add(__pyx_v_temp, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 954, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF_SET(__pyx_v_temp, __pyx_t_5); - __pyx_t_5 = 0; - - /* "analysis.py":955 - * - * temp = temp + str(random.uniform(low, high)) - * file.write(temp + "\n") # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_file, __pyx_n_s_write); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = PyNumber_Add(__pyx_v_temp, __pyx_kp_s__15); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_9 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - __pyx_t_5 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_9, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_11); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - /* "analysis.py":948 - * file = open(filename, "w") - * - * for i in range(0, y, 1): # <<<<<<<<<<<<<< - * temp = "" - * - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":944 - * - * - * def generate_data(filename, x, y, low, high): # <<<<<<<<<<<<<< - * - * file = open(filename, "w") - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_AddTraceback("analysis.generate_data", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_file); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_temp); - __Pyx_XDECREF(__pyx_v_j); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":962 - * - * - * def _sum(data, start=0): # <<<<<<<<<<<<<< - * count = 0 - * n, d = _exact_ratio(start) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_43_sum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_43_sum = {"_sum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_43_sum, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_43_sum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_data = 0; - PyObject *__pyx_v_start = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_sum (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_start,0}; - PyObject* values[2] = {0,0}; - values[1] = ((PyObject *)((PyObject *)__pyx_int_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_data)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start); - if (value) { values[1] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_sum") < 0)) __PYX_ERR(0, 962, __pyx_L3_error) - } - } else { - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_data = values[0]; - __pyx_v_start = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_sum", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 962, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis._sum", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_42_sum(__pyx_self, __pyx_v_data, __pyx_v_start); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_gb_8analysis_4_sum_2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ - -/* "analysis.py":979 - * else: - * - * total = sum(Fraction(n, d) for d, n in sorted(partials.items())) # <<<<<<<<<<<<<< - * return (T, total, count) - * - */ - -static PyObject *__pyx_pf_8analysis_4_sum_genexpr(PyObject *__pyx_self) { - struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr *__pyx_cur_scope; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("genexpr", 0); - __pyx_cur_scope = (struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr *)__pyx_tp_new_8analysis___pyx_scope_struct_1_genexpr(__pyx_ptype_8analysis___pyx_scope_struct_1_genexpr, __pyx_empty_tuple, NULL); - if (unlikely(!__pyx_cur_scope)) { - __pyx_cur_scope = ((struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr *)Py_None); - __Pyx_INCREF(Py_None); - __PYX_ERR(0, 979, __pyx_L1_error) - } else { - __Pyx_GOTREF(__pyx_cur_scope); - } - __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_8analysis___pyx_scope_struct___sum *) __pyx_self; - __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); - __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); - { - __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_8analysis_4_sum_2generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_sum_locals_genexpr, __pyx_n_s_analysis); if (unlikely(!gen)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_DECREF(__pyx_cur_scope); - __Pyx_RefNannyFinishContext(); - return (PyObject *) gen; - } - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("analysis._sum.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_gb_8analysis_4_sum_2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ -{ - struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr *__pyx_cur_scope = ((struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr *)__pyx_generator->closure); - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *(*__pyx_t_8)(PyObject *); - int __pyx_t_9; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("genexpr", 0); - switch (__pyx_generator->resume_label) { - case 0: goto __pyx_L3_first_run; - case 1: goto __pyx_L8_resume_from_yield; - default: /* CPython raises the right error here */ - __Pyx_RefNannyFinishContext(); - return NULL; - } - __pyx_L3_first_run:; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 979, __pyx_L1_error) - if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_partials)) { __Pyx_RaiseClosureNameError("partials"); __PYX_ERR(0, 979, __pyx_L1_error) } - if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_partials == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(0, 979, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyDict_Items(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_partials); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - __pyx_t_4 = PyList_Sort(__pyx_t_1); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 979, __pyx_L1_error) - if (unlikely(__pyx_t_1 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 979, __pyx_L1_error) - } - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 979, __pyx_L1_error) - #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - 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(0, 979, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); - } else { - __pyx_t_2 = PyList_GET_ITEM(sequence, 0); - __pyx_t_6 = PyList_GET_ITEM(sequence, 1); - } - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_6); - #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; - index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 979, __pyx_L1_error) - __pyx_t_8 = NULL; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L7_unpacking_done; - __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_8 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 979, __pyx_L1_error) - __pyx_L7_unpacking_done:; - } - __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_d); - __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_d, __pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __pyx_t_2 = 0; - __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_n); - __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_n, __pyx_t_6); - __Pyx_GIVEREF(__pyx_t_6); - __pyx_t_6 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_Fraction); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = NULL; - __pyx_t_9 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); - __pyx_t_9 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_n, __pyx_cur_scope->__pyx_v_d}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_n, __pyx_cur_scope->__pyx_v_d}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_7 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = NULL; - } - __Pyx_INCREF(__pyx_cur_scope->__pyx_v_n); - __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_n); - PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_9, __pyx_cur_scope->__pyx_v_n); - __Pyx_INCREF(__pyx_cur_scope->__pyx_v_d); - __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_d); - PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_9, __pyx_cur_scope->__pyx_v_d); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - __Pyx_XGIVEREF(__pyx_t_3); - __pyx_cur_scope->__pyx_t_0 = __pyx_t_3; - __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - __Pyx_Coroutine_ResetAndClearException(__pyx_generator); - /* return from generator, yielding value */ - __pyx_generator->resume_label = 1; - return __pyx_r; - __pyx_L8_resume_from_yield:; - __pyx_t_3 = __pyx_cur_scope->__pyx_t_0; - __pyx_cur_scope->__pyx_t_0 = 0; - __Pyx_XGOTREF(__pyx_t_3); - __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 979, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); - - /* function exit code */ - PyErr_SetNone(PyExc_StopIteration); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_XDECREF(__pyx_r); __pyx_r = 0; - #if !CYTHON_USE_EXC_INFO_STACK - __Pyx_Coroutine_ResetAndClearException(__pyx_generator); - #endif - __pyx_generator->resume_label = -1; - __Pyx_Coroutine_clear((PyObject*)__pyx_generator); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":962 - * - * - * def _sum(data, start=0): # <<<<<<<<<<<<<< - * count = 0 - * n, d = _exact_ratio(start) - */ - -static PyObject *__pyx_pf_8analysis_42_sum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_start) { - struct __pyx_obj_8analysis___pyx_scope_struct___sum *__pyx_cur_scope; - PyObject *__pyx_v_count = NULL; - PyObject *__pyx_v_n = NULL; - PyObject *__pyx_v_d = NULL; - PyObject *__pyx_v_partials_get = NULL; - PyObject *__pyx_v_T = NULL; - PyObject *__pyx_v_typ = NULL; - PyObject *__pyx_v_values = NULL; - PyObject *__pyx_v_total = NULL; - 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; - PyObject *(*__pyx_t_5)(PyObject *); - int __pyx_t_6; - Py_ssize_t __pyx_t_7; - PyObject *(*__pyx_t_8)(PyObject *); - PyObject *__pyx_t_9 = NULL; - Py_ssize_t __pyx_t_10; - PyObject *(*__pyx_t_11)(PyObject *); - PyObject *__pyx_t_12 = NULL; - int __pyx_t_13; - int __pyx_t_14; - __Pyx_RefNannySetupContext("_sum", 0); - __pyx_cur_scope = (struct __pyx_obj_8analysis___pyx_scope_struct___sum *)__pyx_tp_new_8analysis___pyx_scope_struct___sum(__pyx_ptype_8analysis___pyx_scope_struct___sum, __pyx_empty_tuple, NULL); - if (unlikely(!__pyx_cur_scope)) { - __pyx_cur_scope = ((struct __pyx_obj_8analysis___pyx_scope_struct___sum *)Py_None); - __Pyx_INCREF(Py_None); - __PYX_ERR(0, 962, __pyx_L1_error) - } else { - __Pyx_GOTREF(__pyx_cur_scope); - } - - /* "analysis.py":963 - * - * def _sum(data, start=0): - * count = 0 # <<<<<<<<<<<<<< - * n, d = _exact_ratio(start) - * partials = {d: n} - */ - __Pyx_INCREF(__pyx_int_0); - __pyx_v_count = __pyx_int_0; - - /* "analysis.py":964 - * def _sum(data, start=0): - * count = 0 - * n, d = _exact_ratio(start) # <<<<<<<<<<<<<< - * partials = {d: n} - * partials_get = partials.get - */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exact_ratio); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 964, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_start) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_start); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 964, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - 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(0, 964, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); - } else { - __pyx_t_2 = PyList_GET_ITEM(sequence, 0); - __pyx_t_3 = PyList_GET_ITEM(sequence, 1); - } - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 964, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 964, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 964, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext; - index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) __PYX_ERR(0, 964, __pyx_L1_error) - __pyx_t_5 = NULL; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L4_unpacking_done; - __pyx_L3_unpacking_failed:; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 964, __pyx_L1_error) - __pyx_L4_unpacking_done:; - } - __pyx_v_n = __pyx_t_2; - __pyx_t_2 = 0; - __pyx_v_d = __pyx_t_3; - __pyx_t_3 = 0; - - /* "analysis.py":965 - * count = 0 - * n, d = _exact_ratio(start) - * partials = {d: n} # <<<<<<<<<<<<<< - * partials_get = partials.get - * T = _coerce(int, type(start)) - */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 965, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_t_1, __pyx_v_d, __pyx_v_n) < 0) __PYX_ERR(0, 965, __pyx_L1_error) - __Pyx_GIVEREF(__pyx_t_1); - __pyx_cur_scope->__pyx_v_partials = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":966 - * n, d = _exact_ratio(start) - * partials = {d: n} - * partials_get = partials.get # <<<<<<<<<<<<<< - * T = _coerce(int, type(start)) - * for typ, values in groupby(data, type): - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_partials, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 966, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_partials_get = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":967 - * partials = {d: n} - * partials_get = partials.get - * T = _coerce(int, type(start)) # <<<<<<<<<<<<<< - * for typ, values in groupby(data, type): - * T = _coerce(T, typ) # or raise TypeError - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_coerce); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 967, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = NULL; - __pyx_t_6 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_6 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)(&PyInt_Type)), ((PyObject *)Py_TYPE(__pyx_v_start))}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)(&PyInt_Type)), ((PyObject *)Py_TYPE(__pyx_v_start))}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 967, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; - } - __Pyx_INCREF(((PyObject *)(&PyInt_Type))); - __Pyx_GIVEREF(((PyObject *)(&PyInt_Type))); - PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, ((PyObject *)(&PyInt_Type))); - __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_start))); - __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_v_start))); - PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, ((PyObject *)Py_TYPE(__pyx_v_start))); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_T = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":968 - * partials_get = partials.get - * T = _coerce(int, type(start)) - * for typ, values in groupby(data, type): # <<<<<<<<<<<<<< - * T = _coerce(T, typ) # or raise TypeError - * for n, d in map(_exact_ratio, values): - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_groupby); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = NULL; - __pyx_t_6 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_6 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_data, ((PyObject *)(&PyType_Type))}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_data, ((PyObject *)(&PyType_Type))}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_2 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; - } - __Pyx_INCREF(__pyx_v_data); - __Pyx_GIVEREF(__pyx_v_data); - PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_v_data); - __Pyx_INCREF(((PyObject *)(&PyType_Type))); - __Pyx_GIVEREF(((PyObject *)(&PyType_Type))); - PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, ((PyObject *)(&PyType_Type))); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; - __pyx_t_8 = NULL; - } else { - __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 968, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_8)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 968, __pyx_L1_error) - #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } else { - if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 968, __pyx_L1_error) - #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } - } else { - __pyx_t_1 = __pyx_t_8(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 968, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_1); - } - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - 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(0, 968, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); - } else { - __pyx_t_2 = PyList_GET_ITEM(sequence, 0); - __pyx_t_4 = PyList_GET_ITEM(sequence, 1); - } - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_4); - #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = Py_TYPE(__pyx_t_9)->tp_iternext; - index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_9); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - index = 1; __pyx_t_4 = __pyx_t_5(__pyx_t_9); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_9), 2) < 0) __PYX_ERR(0, 968, __pyx_L1_error) - __pyx_t_5 = NULL; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L8_unpacking_done; - __pyx_L7_unpacking_failed:; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_5 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 968, __pyx_L1_error) - __pyx_L8_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_typ, __pyx_t_2); - __pyx_t_2 = 0; - __Pyx_XDECREF_SET(__pyx_v_values, __pyx_t_4); - __pyx_t_4 = 0; - - /* "analysis.py":969 - * T = _coerce(int, type(start)) - * for typ, values in groupby(data, type): - * T = _coerce(T, typ) # or raise TypeError # <<<<<<<<<<<<<< - * for n, d in map(_exact_ratio, values): - * count += 1 - */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_coerce); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 969, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = NULL; - __pyx_t_6 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - __pyx_t_6 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_4)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_T, __pyx_v_typ}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { - PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_T, __pyx_v_typ}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_9 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 969, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (__pyx_t_2) { - __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __pyx_t_2 = NULL; - } - __Pyx_INCREF(__pyx_v_T); - __Pyx_GIVEREF(__pyx_v_T); - PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_6, __pyx_v_T); - __Pyx_INCREF(__pyx_v_typ); - __Pyx_GIVEREF(__pyx_v_typ); - PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_6, __pyx_v_typ); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF_SET(__pyx_v_T, __pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":970 - * for typ, values in groupby(data, type): - * T = _coerce(T, typ) # or raise TypeError - * for n, d in map(_exact_ratio, values): # <<<<<<<<<<<<<< - * count += 1 - * partials[d] = partials_get(d, 0) + n - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_exact_ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); - __Pyx_INCREF(__pyx_v_values); - __Pyx_GIVEREF(__pyx_v_values); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_values); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0; - __pyx_t_11 = NULL; - } else { - __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 970, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_11)) { - if (likely(PyList_CheckExact(__pyx_t_4))) { - if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 970, __pyx_L1_error) - #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } else { - if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 970, __pyx_L1_error) - #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } - } else { - __pyx_t_1 = __pyx_t_11(__pyx_t_4); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 970, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_1); - } - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - 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(0, 970, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); - } else { - __pyx_t_9 = PyList_GET_ITEM(sequence, 0); - __pyx_t_2 = PyList_GET_ITEM(sequence, 1); - } - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(__pyx_t_2); - #else - __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_12 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = Py_TYPE(__pyx_t_12)->tp_iternext; - index = 0; __pyx_t_9 = __pyx_t_5(__pyx_t_12); if (unlikely(!__pyx_t_9)) goto __pyx_L11_unpacking_failed; - __Pyx_GOTREF(__pyx_t_9); - index = 1; __pyx_t_2 = __pyx_t_5(__pyx_t_12); if (unlikely(!__pyx_t_2)) goto __pyx_L11_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_12), 2) < 0) __PYX_ERR(0, 970, __pyx_L1_error) - __pyx_t_5 = NULL; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - goto __pyx_L12_unpacking_done; - __pyx_L11_unpacking_failed:; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_5 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 970, __pyx_L1_error) - __pyx_L12_unpacking_done:; - } - __Pyx_DECREF_SET(__pyx_v_n, __pyx_t_9); - __pyx_t_9 = 0; - __Pyx_DECREF_SET(__pyx_v_d, __pyx_t_2); - __pyx_t_2 = 0; - - /* "analysis.py":971 - * T = _coerce(T, typ) # or raise TypeError - * for n, d in map(_exact_ratio, values): - * count += 1 # <<<<<<<<<<<<<< - * partials[d] = partials_get(d, 0) + n - * if None in partials: - */ - __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_count, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 971, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_count, __pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":972 - * for n, d in map(_exact_ratio, values): - * count += 1 - * partials[d] = partials_get(d, 0) + n # <<<<<<<<<<<<<< - * if None in partials: - * - */ - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_cur_scope->__pyx_v_partials, __pyx_v_d, __pyx_int_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 972, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 972, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_partials, __pyx_v_d, __pyx_t_2) < 0)) __PYX_ERR(0, 972, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":970 - * for typ, values in groupby(data, type): - * T = _coerce(T, typ) # or raise TypeError - * for n, d in map(_exact_ratio, values): # <<<<<<<<<<<<<< - * count += 1 - * partials[d] = partials_get(d, 0) + n - */ - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "analysis.py":968 - * partials_get = partials.get - * T = _coerce(int, type(start)) - * for typ, values in groupby(data, type): # <<<<<<<<<<<<<< - * T = _coerce(T, typ) # or raise TypeError - * for n, d in map(_exact_ratio, values): - */ - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "analysis.py":973 - * count += 1 - * partials[d] = partials_get(d, 0) + n - * if None in partials: # <<<<<<<<<<<<<< - * - * total = partials[None] - */ - __pyx_t_13 = (__Pyx_PyDict_ContainsTF(Py_None, __pyx_cur_scope->__pyx_v_partials, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 973, __pyx_L1_error) - __pyx_t_14 = (__pyx_t_13 != 0); - if (__pyx_t_14) { - - /* "analysis.py":975 - * if None in partials: - * - * total = partials[None] # <<<<<<<<<<<<<< - * assert not _isfinite(total) - * else: - */ - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_partials, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_total = __pyx_t_3; - __pyx_t_3 = 0; - - /* "analysis.py":976 - * - * total = partials[None] - * assert not _isfinite(total) # <<<<<<<<<<<<<< - * else: - * - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(!Py_OptimizeFlag)) { - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_isfinite); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 976, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_v_total) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_total); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 976, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 976, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!((!__pyx_t_14) != 0))) { - PyErr_SetNone(PyExc_AssertionError); - __PYX_ERR(0, 976, __pyx_L1_error) - } - } - #endif - - /* "analysis.py":973 - * count += 1 - * partials[d] = partials_get(d, 0) + n - * if None in partials: # <<<<<<<<<<<<<< - * - * total = partials[None] - */ - goto __pyx_L13; - } - - /* "analysis.py":979 - * else: - * - * total = sum(Fraction(n, d) for d, n in sorted(partials.items())) # <<<<<<<<<<<<<< - * return (T, total, count) - * - */ - /*else*/ { - __pyx_t_3 = __pyx_pf_8analysis_4_sum_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 979, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_total = __pyx_t_4; - __pyx_t_4 = 0; - } - __pyx_L13:; - - /* "analysis.py":980 - * - * total = sum(Fraction(n, d) for d, n in sorted(partials.items())) - * return (T, total, count) # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF(__pyx_v_T); - __Pyx_GIVEREF(__pyx_v_T); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_T); - __Pyx_INCREF(__pyx_v_total); - __Pyx_GIVEREF(__pyx_v_total); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_total); - __Pyx_INCREF(__pyx_v_count); - __Pyx_GIVEREF(__pyx_v_count); - PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_count); - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "analysis.py":962 - * - * - * def _sum(data, start=0): # <<<<<<<<<<<<<< - * count = 0 - * n, d = _exact_ratio(start) - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_12); - __Pyx_AddTraceback("analysis._sum", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_count); - __Pyx_XDECREF(__pyx_v_n); - __Pyx_XDECREF(__pyx_v_d); - __Pyx_XDECREF(__pyx_v_partials_get); - __Pyx_XDECREF(__pyx_v_T); - __Pyx_XDECREF(__pyx_v_typ); - __Pyx_XDECREF(__pyx_v_values); - __Pyx_XDECREF(__pyx_v_total); - __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":983 - * - * - * def _isfinite(x): # <<<<<<<<<<<<<< - * try: - * return x.is_finite() # Likely a Decimal. - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_45_isfinite(PyObject *__pyx_self, PyObject *__pyx_v_x); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_45_isfinite = {"_isfinite", (PyCFunction)__pyx_pw_8analysis_45_isfinite, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_45_isfinite(PyObject *__pyx_self, PyObject *__pyx_v_x) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_isfinite (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_44_isfinite(__pyx_self, ((PyObject *)__pyx_v_x)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_44_isfinite(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x) { - 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; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - __Pyx_RefNannySetupContext("_isfinite", 0); - - /* "analysis.py":984 - * - * def _isfinite(x): - * try: # <<<<<<<<<<<<<< - * return x.is_finite() # Likely a Decimal. - * except AttributeError: - */ - { - __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:*/ { - - /* "analysis.py":985 - * def _isfinite(x): - * try: - * return x.is_finite() # Likely a Decimal. # <<<<<<<<<<<<<< - * except AttributeError: - * return math.isfinite(x) # Coerces to float first. - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_is_finite); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 985, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 985, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L7_try_return; - - /* "analysis.py":984 - * - * def _isfinite(x): - * try: # <<<<<<<<<<<<<< - * return x.is_finite() # Likely a Decimal. - * except AttributeError: - */ - } - __pyx_L3_error:; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - - /* "analysis.py":986 - * try: - * return x.is_finite() # Likely a Decimal. - * except AttributeError: # <<<<<<<<<<<<<< - * return math.isfinite(x) # Coerces to float first. - * - */ - __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); - if (__pyx_t_7) { - __Pyx_AddTraceback("analysis._isfinite", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(0, 986, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - - /* "analysis.py":987 - * return x.is_finite() # Likely a Decimal. - * except AttributeError: - * return math.isfinite(x) # Coerces to float first. # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_math); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 987, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_isfinite_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 987, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_10, function); - } - } - __pyx_t_8 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_9, __pyx_v_x) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_x); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 987, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_r = __pyx_t_8; - __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L6_except_return; - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "analysis.py":984 - * - * def _isfinite(x): - * try: # <<<<<<<<<<<<<< - * return x.is_finite() # Likely a Decimal. - * except AttributeError: - */ - __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_L7_try_return:; - __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_L0; - __pyx_L6_except_return:; - __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_L0; - } - - /* "analysis.py":983 - * - * - * def _isfinite(x): # <<<<<<<<<<<<<< - * try: - * return x.is_finite() # Likely a Decimal. - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("analysis._isfinite", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":990 - * - * - * def _coerce(T, S): # <<<<<<<<<<<<<< - * - * assert T is not bool, "initial type T is bool" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_47_coerce(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_47_coerce = {"_coerce", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_47_coerce, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_47_coerce(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_T = 0; - PyObject *__pyx_v_S = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_coerce (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_T,&__pyx_n_s_S,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_T)) != 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_S)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("_coerce", 1, 2, 2, 1); __PYX_ERR(0, 990, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_coerce") < 0)) __PYX_ERR(0, 990, __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_T = values[0]; - __pyx_v_S = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_coerce", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 990, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis._coerce", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_46_coerce(__pyx_self, __pyx_v_T, __pyx_v_S); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_46_coerce(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_T, PyObject *__pyx_v_S) { - PyObject *__pyx_v_msg = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - __Pyx_RefNannySetupContext("_coerce", 0); - - /* "analysis.py":992 - * def _coerce(T, S): - * - * assert T is not bool, "initial type T is bool" # <<<<<<<<<<<<<< - * - * if T is S: - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(!Py_OptimizeFlag)) { - __pyx_t_1 = (__pyx_v_T != ((PyObject*)&PyBool_Type)); - if (unlikely(!(__pyx_t_1 != 0))) { - PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_initial_type_T_is_bool); - __PYX_ERR(0, 992, __pyx_L1_error) - } - } - #endif - - /* "analysis.py":994 - * assert T is not bool, "initial type T is bool" - * - * if T is S: # <<<<<<<<<<<<<< - * return T - * - */ - __pyx_t_1 = (__pyx_v_T == __pyx_v_S); - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "analysis.py":995 - * - * if T is S: - * return T # <<<<<<<<<<<<<< - * - * if S is int or S is bool: - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_T); - __pyx_r = __pyx_v_T; - goto __pyx_L0; - - /* "analysis.py":994 - * assert T is not bool, "initial type T is bool" - * - * if T is S: # <<<<<<<<<<<<<< - * return T - * - */ - } - - /* "analysis.py":997 - * return T - * - * if S is int or S is bool: # <<<<<<<<<<<<<< - * return T - * if T is int: - */ - __pyx_t_1 = (__pyx_v_S == ((PyObject *)(&PyInt_Type))); - __pyx_t_3 = (__pyx_t_1 != 0); - if (!__pyx_t_3) { - } else { - __pyx_t_2 = __pyx_t_3; - goto __pyx_L5_bool_binop_done; - } - __pyx_t_3 = (__pyx_v_S == ((PyObject*)&PyBool_Type)); - __pyx_t_1 = (__pyx_t_3 != 0); - __pyx_t_2 = __pyx_t_1; - __pyx_L5_bool_binop_done:; - if (__pyx_t_2) { - - /* "analysis.py":998 - * - * if S is int or S is bool: - * return T # <<<<<<<<<<<<<< - * if T is int: - * return S - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_T); - __pyx_r = __pyx_v_T; - goto __pyx_L0; - - /* "analysis.py":997 - * return T - * - * if S is int or S is bool: # <<<<<<<<<<<<<< - * return T - * if T is int: - */ - } - - /* "analysis.py":999 - * if S is int or S is bool: - * return T - * if T is int: # <<<<<<<<<<<<<< - * return S - * - */ - __pyx_t_2 = (__pyx_v_T == ((PyObject *)(&PyInt_Type))); - __pyx_t_1 = (__pyx_t_2 != 0); - if (__pyx_t_1) { - - /* "analysis.py":1000 - * return T - * if T is int: - * return S # <<<<<<<<<<<<<< - * - * if issubclass(S, T): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_S); - __pyx_r = __pyx_v_S; - goto __pyx_L0; - - /* "analysis.py":999 - * if S is int or S is bool: - * return T - * if T is int: # <<<<<<<<<<<<<< - * return S - * - */ - } - - /* "analysis.py":1002 - * return S - * - * if issubclass(S, T): # <<<<<<<<<<<<<< - * return S - * if issubclass(T, S): - */ - __pyx_t_1 = PyObject_IsSubclass(__pyx_v_S, __pyx_v_T); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1002, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "analysis.py":1003 - * - * if issubclass(S, T): - * return S # <<<<<<<<<<<<<< - * if issubclass(T, S): - * return T - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_S); - __pyx_r = __pyx_v_S; - goto __pyx_L0; - - /* "analysis.py":1002 - * return S - * - * if issubclass(S, T): # <<<<<<<<<<<<<< - * return S - * if issubclass(T, S): - */ - } - - /* "analysis.py":1004 - * if issubclass(S, T): - * return S - * if issubclass(T, S): # <<<<<<<<<<<<<< - * return T - * - */ - __pyx_t_2 = PyObject_IsSubclass(__pyx_v_T, __pyx_v_S); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1004, __pyx_L1_error) - __pyx_t_1 = (__pyx_t_2 != 0); - if (__pyx_t_1) { - - /* "analysis.py":1005 - * return S - * if issubclass(T, S): - * return T # <<<<<<<<<<<<<< - * - * if issubclass(T, int): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_T); - __pyx_r = __pyx_v_T; - goto __pyx_L0; - - /* "analysis.py":1004 - * if issubclass(S, T): - * return S - * if issubclass(T, S): # <<<<<<<<<<<<<< - * return T - * - */ - } - - /* "analysis.py":1007 - * return T - * - * if issubclass(T, int): # <<<<<<<<<<<<<< - * return S - * if issubclass(S, int): - */ - __pyx_t_1 = PyObject_IsSubclass(__pyx_v_T, ((PyObject *)(&PyInt_Type))); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1007, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "analysis.py":1008 - * - * if issubclass(T, int): - * return S # <<<<<<<<<<<<<< - * if issubclass(S, int): - * return T - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_S); - __pyx_r = __pyx_v_S; - goto __pyx_L0; - - /* "analysis.py":1007 - * return T - * - * if issubclass(T, int): # <<<<<<<<<<<<<< - * return S - * if issubclass(S, int): - */ - } - - /* "analysis.py":1009 - * if issubclass(T, int): - * return S - * if issubclass(S, int): # <<<<<<<<<<<<<< - * return T - * - */ - __pyx_t_2 = PyObject_IsSubclass(__pyx_v_S, ((PyObject *)(&PyInt_Type))); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1009, __pyx_L1_error) - __pyx_t_1 = (__pyx_t_2 != 0); - if (__pyx_t_1) { - - /* "analysis.py":1010 - * return S - * if issubclass(S, int): - * return T # <<<<<<<<<<<<<< - * - * if issubclass(T, Fraction) and issubclass(S, float): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_T); - __pyx_r = __pyx_v_T; - goto __pyx_L0; - - /* "analysis.py":1009 - * if issubclass(T, int): - * return S - * if issubclass(S, int): # <<<<<<<<<<<<<< - * return T - * - */ - } - - /* "analysis.py":1012 - * return T - * - * if issubclass(T, Fraction) and issubclass(S, float): # <<<<<<<<<<<<<< - * return S - * if issubclass(T, float) and issubclass(S, Fraction): - */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Fraction); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyObject_IsSubclass(__pyx_v_T, __pyx_t_4); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1012, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = (__pyx_t_2 != 0); - if (__pyx_t_3) { - } else { - __pyx_t_1 = __pyx_t_3; - goto __pyx_L13_bool_binop_done; - } - __pyx_t_3 = PyObject_IsSubclass(__pyx_v_S, ((PyObject *)(&PyFloat_Type))); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1012, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_3 != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L13_bool_binop_done:; - if (__pyx_t_1) { - - /* "analysis.py":1013 - * - * if issubclass(T, Fraction) and issubclass(S, float): - * return S # <<<<<<<<<<<<<< - * if issubclass(T, float) and issubclass(S, Fraction): - * return T - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_S); - __pyx_r = __pyx_v_S; - goto __pyx_L0; - - /* "analysis.py":1012 - * return T - * - * if issubclass(T, Fraction) and issubclass(S, float): # <<<<<<<<<<<<<< - * return S - * if issubclass(T, float) and issubclass(S, Fraction): - */ - } - - /* "analysis.py":1014 - * if issubclass(T, Fraction) and issubclass(S, float): - * return S - * if issubclass(T, float) and issubclass(S, Fraction): # <<<<<<<<<<<<<< - * return T - * - */ - __pyx_t_2 = PyObject_IsSubclass(__pyx_v_T, ((PyObject *)(&PyFloat_Type))); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1014, __pyx_L1_error) - __pyx_t_3 = (__pyx_t_2 != 0); - if (__pyx_t_3) { - } else { - __pyx_t_1 = __pyx_t_3; - goto __pyx_L16_bool_binop_done; - } - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Fraction); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1014, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyObject_IsSubclass(__pyx_v_S, __pyx_t_4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1014, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = (__pyx_t_3 != 0); - __pyx_t_1 = __pyx_t_2; - __pyx_L16_bool_binop_done:; - if (__pyx_t_1) { - - /* "analysis.py":1015 - * return S - * if issubclass(T, float) and issubclass(S, Fraction): - * return T # <<<<<<<<<<<<<< - * - * msg = "don't know how to coerce %s and %s" - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_T); - __pyx_r = __pyx_v_T; - goto __pyx_L0; - - /* "analysis.py":1014 - * if issubclass(T, Fraction) and issubclass(S, float): - * return S - * if issubclass(T, float) and issubclass(S, Fraction): # <<<<<<<<<<<<<< - * return T - * - */ - } - - /* "analysis.py":1017 - * return T - * - * msg = "don't know how to coerce %s and %s" # <<<<<<<<<<<<<< - * raise TypeError(msg % (T.__name__, S.__name__)) - * - */ - __Pyx_INCREF(__pyx_kp_s_don_t_know_how_to_coerce_s_and_s); - __pyx_v_msg = __pyx_kp_s_don_t_know_how_to_coerce_s_and_s; - - /* "analysis.py":1018 - * - * msg = "don't know how to coerce %s and %s" - * raise TypeError(msg % (T.__name__, S.__name__)) # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_T, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1018, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_S, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1018, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1018, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_t_5 = PyNumber_Remainder(__pyx_v_msg, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1018, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1018, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_Raise(__pyx_t_6, 0, 0, 0); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __PYX_ERR(0, 1018, __pyx_L1_error) - - /* "analysis.py":990 - * - * - * def _coerce(T, S): # <<<<<<<<<<<<<< - * - * assert T is not bool, "initial type T is bool" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("analysis._coerce", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_msg); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1021 - * - * - * def _exact_ratio(x): # <<<<<<<<<<<<<< - * - * try: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_49_exact_ratio(PyObject *__pyx_self, PyObject *__pyx_v_x); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_49_exact_ratio = {"_exact_ratio", (PyCFunction)__pyx_pw_8analysis_49_exact_ratio, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_49_exact_ratio(PyObject *__pyx_self, PyObject *__pyx_v_x) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_exact_ratio (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_48_exact_ratio(__pyx_self, ((PyObject *)__pyx_v_x)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_48_exact_ratio(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x) { - PyObject *__pyx_v_msg = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - int __pyx_t_5; - int __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - int __pyx_t_13; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; - PyObject *__pyx_t_16 = NULL; - PyObject *__pyx_t_17 = NULL; - PyObject *__pyx_t_18 = NULL; - PyObject *__pyx_t_19 = NULL; - __Pyx_RefNannySetupContext("_exact_ratio", 0); - - /* "analysis.py":1023 - * def _exact_ratio(x): - * - * try: # <<<<<<<<<<<<<< - * - * if type(x) is float or type(x) is Decimal: - */ - { - __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:*/ { - - /* "analysis.py":1025 - * try: - * - * if type(x) is float or type(x) is Decimal: # <<<<<<<<<<<<<< - * return x.as_integer_ratio() - * try: - */ - __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_x)) == ((PyObject *)(&PyFloat_Type))); - __pyx_t_6 = (__pyx_t_5 != 0); - if (!__pyx_t_6) { - } else { - __pyx_t_4 = __pyx_t_6; - goto __pyx_L10_bool_binop_done; - } - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_Decimal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1025, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = (((PyObject *)Py_TYPE(__pyx_v_x)) == __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_5 = (__pyx_t_6 != 0); - __pyx_t_4 = __pyx_t_5; - __pyx_L10_bool_binop_done:; - if (__pyx_t_4) { - - /* "analysis.py":1026 - * - * if type(x) is float or type(x) is Decimal: - * return x.as_integer_ratio() # <<<<<<<<<<<<<< - * try: - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_as_integer_ratio); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1026, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - } - } - __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1026, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_r = __pyx_t_7; - __pyx_t_7 = 0; - goto __pyx_L7_try_return; - - /* "analysis.py":1025 - * try: - * - * if type(x) is float or type(x) is Decimal: # <<<<<<<<<<<<<< - * return x.as_integer_ratio() - * try: - */ - } - - /* "analysis.py":1027 - * if type(x) is float or type(x) is Decimal: - * return x.as_integer_ratio() - * try: # <<<<<<<<<<<<<< - * - * return (x.numerator, x.denominator) - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - /*try:*/ { - - /* "analysis.py":1029 - * try: - * - * return (x.numerator, x.denominator) # <<<<<<<<<<<<<< - * except AttributeError: - * try: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_numerator); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1029, __pyx_L12_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_denominator); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1029, __pyx_L12_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1029, __pyx_L12_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); - __Pyx_GIVEREF(__pyx_t_8); - PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8); - __pyx_t_7 = 0; - __pyx_t_8 = 0; - __pyx_r = __pyx_t_9; - __pyx_t_9 = 0; - goto __pyx_L16_try_return; - - /* "analysis.py":1027 - * if type(x) is float or type(x) is Decimal: - * return x.as_integer_ratio() - * try: # <<<<<<<<<<<<<< - * - * return (x.numerator, x.denominator) - */ - } - __pyx_L12_error:; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":1030 - * - * return (x.numerator, x.denominator) - * except AttributeError: # <<<<<<<<<<<<<< - * try: - * - */ - __pyx_t_13 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); - if (__pyx_t_13) { - __Pyx_AddTraceback("analysis._exact_ratio", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7) < 0) __PYX_ERR(0, 1030, __pyx_L14_except_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GOTREF(__pyx_t_8); - __Pyx_GOTREF(__pyx_t_7); - - /* "analysis.py":1031 - * return (x.numerator, x.denominator) - * except AttributeError: - * try: # <<<<<<<<<<<<<< - * - * return x.as_integer_ratio() - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_16); - /*try:*/ { - - /* "analysis.py":1033 - * try: - * - * return x.as_integer_ratio() # <<<<<<<<<<<<<< - * except AttributeError: - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_as_integer_ratio); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1033, __pyx_L20_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { - __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_18); - if (likely(__pyx_t_19)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); - __Pyx_INCREF(__pyx_t_19); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_18, function); - } - } - __pyx_t_17 = (__pyx_t_19) ? __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_t_19) : __Pyx_PyObject_CallNoArg(__pyx_t_18); - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1033, __pyx_L20_error) - __Pyx_GOTREF(__pyx_t_17); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_r = __pyx_t_17; - __pyx_t_17 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L24_try_return; - - /* "analysis.py":1031 - * return (x.numerator, x.denominator) - * except AttributeError: - * try: # <<<<<<<<<<<<<< - * - * return x.as_integer_ratio() - */ - } - __pyx_L20_error:; - __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - - /* "analysis.py":1034 - * - * return x.as_integer_ratio() - * except AttributeError: # <<<<<<<<<<<<<< - * - * pass - */ - __pyx_t_13 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); - if (__pyx_t_13) { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L21_exception_handled; - } - goto __pyx_L22_except_error; - __pyx_L22_except_error:; - - /* "analysis.py":1031 - * return (x.numerator, x.denominator) - * except AttributeError: - * try: # <<<<<<<<<<<<<< - * - * return x.as_integer_ratio() - */ - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_XGIVEREF(__pyx_t_16); - __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); - goto __pyx_L14_except_error; - __pyx_L24_try_return:; - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_XGIVEREF(__pyx_t_16); - __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); - goto __pyx_L15_except_return; - __pyx_L21_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_XGIVEREF(__pyx_t_16); - __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); - } - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L13_exception_handled; - } - goto __pyx_L14_except_error; - __pyx_L14_except_error:; - - /* "analysis.py":1027 - * if type(x) is float or type(x) is Decimal: - * return x.as_integer_ratio() - * try: # <<<<<<<<<<<<<< - * - * return (x.numerator, x.denominator) - */ - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - goto __pyx_L3_error; - __pyx_L16_try_return:; - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - goto __pyx_L7_try_return; - __pyx_L15_except_return:; - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - goto __pyx_L7_try_return; - __pyx_L13_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - } - - /* "analysis.py":1023 - * def _exact_ratio(x): - * - * try: # <<<<<<<<<<<<<< - * - * if type(x) is float or type(x) is Decimal: - */ - } - __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:; - __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":1037 - * - * pass - * except (OverflowError, ValueError): # <<<<<<<<<<<<<< - * - * assert not _isfinite(x) - */ - __pyx_t_13 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_OverflowError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); - if (__pyx_t_13) { - __Pyx_AddTraceback("analysis._exact_ratio", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 1037, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GOTREF(__pyx_t_8); - __Pyx_GOTREF(__pyx_t_9); - - /* "analysis.py":1039 - * except (OverflowError, ValueError): - * - * assert not _isfinite(x) # <<<<<<<<<<<<<< - * return (x, None) - * msg = "can't convert type '{}' to numerator/denominator" - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(!Py_OptimizeFlag)) { - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_isfinite); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1039, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_18))) { - __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_18); - if (likely(__pyx_t_19)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); - __Pyx_INCREF(__pyx_t_19); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_18, function); - } - } - __pyx_t_17 = (__pyx_t_19) ? __Pyx_PyObject_Call2Args(__pyx_t_18, __pyx_t_19, __pyx_v_x) : __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_v_x); - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1039, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_17); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1039, __pyx_L5_except_error) - __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (unlikely(!((!__pyx_t_4) != 0))) { - PyErr_SetNone(PyExc_AssertionError); - __PYX_ERR(0, 1039, __pyx_L5_except_error) - } - } - #endif - - /* "analysis.py":1040 - * - * assert not _isfinite(x) - * return (x, None) # <<<<<<<<<<<<<< - * msg = "can't convert type '{}' to numerator/denominator" - * raise TypeError(msg.format(type(x).__name__)) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_17 = PyTuple_New(2); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1040, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_17); - __Pyx_INCREF(__pyx_v_x); - __Pyx_GIVEREF(__pyx_v_x); - PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_v_x); - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - PyTuple_SET_ITEM(__pyx_t_17, 1, Py_None); - __pyx_r = __pyx_t_17; - __pyx_t_17 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L6_except_return; - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "analysis.py":1023 - * def _exact_ratio(x): - * - * try: # <<<<<<<<<<<<<< - * - * if type(x) is float or type(x) is Decimal: - */ - __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_L7_try_return:; - __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_L0; - __pyx_L6_except_return:; - __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_L0; - __pyx_L8_try_end:; - } - - /* "analysis.py":1041 - * assert not _isfinite(x) - * return (x, None) - * msg = "can't convert type '{}' to numerator/denominator" # <<<<<<<<<<<<<< - * raise TypeError(msg.format(type(x).__name__)) - * - */ - __Pyx_INCREF(__pyx_kp_s_can_t_convert_type_to_numerator); - __pyx_v_msg = __pyx_kp_s_can_t_convert_type_to_numerator; - - /* "analysis.py":1042 - * return (x, None) - * msg = "can't convert type '{}' to numerator/denominator" - * raise TypeError(msg.format(type(x).__name__)) # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_msg, __pyx_n_s_format); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1042, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_x)), __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1042, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_17 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_17)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_17); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - } - } - __pyx_t_9 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_17, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); - __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1042, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1042, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 1042, __pyx_L1_error) - - /* "analysis.py":1021 - * - * - * def _exact_ratio(x): # <<<<<<<<<<<<<< - * - * try: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_17); - __Pyx_XDECREF(__pyx_t_18); - __Pyx_XDECREF(__pyx_t_19); - __Pyx_AddTraceback("analysis._exact_ratio", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_msg); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1045 - * - * - * def _convert(value, T): # <<<<<<<<<<<<<< - * - * if type(value) is T: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_51_convert(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_51_convert = {"_convert", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_51_convert, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_51_convert(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_value = 0; - PyObject *__pyx_v_T = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_convert (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_value,&__pyx_n_s_T,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_value)) != 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_T)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("_convert", 1, 2, 2, 1); __PYX_ERR(0, 1045, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_convert") < 0)) __PYX_ERR(0, 1045, __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_value = values[0]; - __pyx_v_T = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_convert", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1045, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis._convert", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_50_convert(__pyx_self, __pyx_v_value, __pyx_v_T); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_50_convert(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value, PyObject *__pyx_v_T) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - int __pyx_t_10; - PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; - __Pyx_RefNannySetupContext("_convert", 0); - __Pyx_INCREF(__pyx_v_T); - - /* "analysis.py":1047 - * def _convert(value, T): - * - * if type(value) is T: # <<<<<<<<<<<<<< - * - * return value - */ - __pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_value)) == __pyx_v_T); - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "analysis.py":1049 - * if type(value) is T: - * - * return value # <<<<<<<<<<<<<< - * if issubclass(T, int) and value.denominator != 1: - * T = float - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_value); - __pyx_r = __pyx_v_value; - goto __pyx_L0; - - /* "analysis.py":1047 - * def _convert(value, T): - * - * if type(value) is T: # <<<<<<<<<<<<<< - * - * return value - */ - } - - /* "analysis.py":1050 - * - * return value - * if issubclass(T, int) and value.denominator != 1: # <<<<<<<<<<<<<< - * T = float - * try: - */ - __pyx_t_1 = PyObject_IsSubclass(__pyx_v_T, ((PyObject *)(&PyInt_Type))); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1050, __pyx_L1_error) - __pyx_t_3 = (__pyx_t_1 != 0); - if (__pyx_t_3) { - } else { - __pyx_t_2 = __pyx_t_3; - goto __pyx_L5_bool_binop_done; - } - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_denominator); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyInt_NeObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1050, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __pyx_t_3; - __pyx_L5_bool_binop_done:; - if (__pyx_t_2) { - - /* "analysis.py":1051 - * return value - * if issubclass(T, int) and value.denominator != 1: - * T = float # <<<<<<<<<<<<<< - * try: - * - */ - __Pyx_INCREF(((PyObject *)(&PyFloat_Type))); - __Pyx_DECREF_SET(__pyx_v_T, ((PyObject *)(&PyFloat_Type))); - - /* "analysis.py":1050 - * - * return value - * if issubclass(T, int) and value.denominator != 1: # <<<<<<<<<<<<<< - * T = float - * try: - */ - } - - /* "analysis.py":1052 - * if issubclass(T, int) and value.denominator != 1: - * T = float - * try: # <<<<<<<<<<<<<< - * - * return T(value) - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); - /*try:*/ { - - /* "analysis.py":1054 - * try: - * - * return T(value) # <<<<<<<<<<<<<< - * except TypeError: - * if issubclass(T, Decimal): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_T); - __pyx_t_4 = __pyx_v_T; __pyx_t_9 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_5 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_9, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_value); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1054, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L11_try_return; - - /* "analysis.py":1052 - * if issubclass(T, int) and value.denominator != 1: - * T = float - * try: # <<<<<<<<<<<<<< - * - * return T(value) - */ - } - __pyx_L7_error:; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "analysis.py":1055 - * - * return T(value) - * except TypeError: # <<<<<<<<<<<<<< - * if issubclass(T, Decimal): - * return T(value.numerator) / T(value.denominator) - */ - __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); - if (__pyx_t_10) { - __Pyx_AddTraceback("analysis._convert", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_9) < 0) __PYX_ERR(0, 1055, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GOTREF(__pyx_t_9); - - /* "analysis.py":1056 - * return T(value) - * except TypeError: - * if issubclass(T, Decimal): # <<<<<<<<<<<<<< - * return T(value.numerator) / T(value.denominator) - * else: - */ - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_Decimal); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1056, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_2 = PyObject_IsSubclass(__pyx_v_T, __pyx_t_11); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1056, __pyx_L9_except_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_3 = (__pyx_t_2 != 0); - if (likely(__pyx_t_3)) { - - /* "analysis.py":1057 - * except TypeError: - * if issubclass(T, Decimal): - * return T(value.numerator) / T(value.denominator) # <<<<<<<<<<<<<< - * else: - * raise - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_numerator); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1057, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_INCREF(__pyx_v_T); - __pyx_t_13 = __pyx_v_T; __pyx_t_14 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { - __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13); - if (likely(__pyx_t_14)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); - __Pyx_INCREF(__pyx_t_14); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_13, function); - } - } - __pyx_t_11 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_12); - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1057, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_denominator); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1057, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_INCREF(__pyx_v_T); - __pyx_t_14 = __pyx_v_T; __pyx_t_15 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { - __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14); - if (likely(__pyx_t_15)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); - __Pyx_INCREF(__pyx_t_15); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_14, function); - } - } - __pyx_t_13 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_15, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_12); - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1057, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_14 = __Pyx_PyNumber_Divide(__pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1057, __pyx_L9_except_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_r = __pyx_t_14; - __pyx_t_14 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L10_except_return; - - /* "analysis.py":1056 - * return T(value) - * except TypeError: - * if issubclass(T, Decimal): # <<<<<<<<<<<<<< - * return T(value.numerator) / T(value.denominator) - * else: - */ - } - - /* "analysis.py":1059 - * return T(value.numerator) / T(value.denominator) - * else: - * raise # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_GIVEREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_4); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_ErrRestoreWithState(__pyx_t_5, __pyx_t_4, __pyx_t_9); - __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_9 = 0; - __PYX_ERR(0, 1059, __pyx_L9_except_error) - } - } - goto __pyx_L9_except_error; - __pyx_L9_except_error:; - - /* "analysis.py":1052 - * if issubclass(T, int) and value.denominator != 1: - * T = float - * try: # <<<<<<<<<<<<<< - * - * return T(value) - */ - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); - goto __pyx_L1_error; - __pyx_L11_try_return:; - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); - goto __pyx_L0; - __pyx_L10_except_return:; - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); - goto __pyx_L0; - } - - /* "analysis.py":1045 - * - * - * def _convert(value, T): # <<<<<<<<<<<<<< - * - * if type(value) is T: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_XDECREF(__pyx_t_12); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("analysis._convert", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_T); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1062 - * - * - * def _counts(data): # <<<<<<<<<<<<<< - * - * table = collections.Counter(iter(data)).most_common() - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_53_counts(PyObject *__pyx_self, PyObject *__pyx_v_data); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_53_counts = {"_counts", (PyCFunction)__pyx_pw_8analysis_53_counts, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_53_counts(PyObject *__pyx_self, PyObject *__pyx_v_data) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_counts (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_52_counts(__pyx_self, ((PyObject *)__pyx_v_data)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_52_counts(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data) { - PyObject *__pyx_v_table = NULL; - PyObject *__pyx_v_maxfreq = NULL; - Py_ssize_t __pyx_v_i; - 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; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - Py_ssize_t __pyx_t_8; - Py_ssize_t __pyx_t_9; - Py_ssize_t __pyx_t_10; - __Pyx_RefNannySetupContext("_counts", 0); - - /* "analysis.py":1064 - * def _counts(data): - * - * table = collections.Counter(iter(data)).most_common() # <<<<<<<<<<<<<< - * if not table: - * return table - */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_collections); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1064, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_Counter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1064, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1064, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1064, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_most_common); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1064, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1064, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_table = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":1065 - * - * table = collections.Counter(iter(data)).most_common() - * if not table: # <<<<<<<<<<<<<< - * return table - * - */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_table); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1065, __pyx_L1_error) - __pyx_t_7 = ((!__pyx_t_6) != 0); - if (__pyx_t_7) { - - /* "analysis.py":1066 - * table = collections.Counter(iter(data)).most_common() - * if not table: - * return table # <<<<<<<<<<<<<< - * - * maxfreq = table[0][1] - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_table); - __pyx_r = __pyx_v_table; - goto __pyx_L0; - - /* "analysis.py":1065 - * - * table = collections.Counter(iter(data)).most_common() - * if not table: # <<<<<<<<<<<<<< - * return table - * - */ - } - - /* "analysis.py":1068 - * return table - * - * maxfreq = table[0][1] # <<<<<<<<<<<<<< - * for i in range(1, len(table)): - * if table[i][1] != maxfreq: - */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_table, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1068, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1068, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_maxfreq = __pyx_t_4; - __pyx_t_4 = 0; - - /* "analysis.py":1069 - * - * maxfreq = table[0][1] - * for i in range(1, len(table)): # <<<<<<<<<<<<<< - * if table[i][1] != maxfreq: - * table = table[:i] - */ - __pyx_t_8 = PyObject_Length(__pyx_v_table); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1069, __pyx_L1_error) - __pyx_t_9 = __pyx_t_8; - for (__pyx_t_10 = 1; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { - __pyx_v_i = __pyx_t_10; - - /* "analysis.py":1070 - * maxfreq = table[0][1] - * for i in range(1, len(table)): - * if table[i][1] != maxfreq: # <<<<<<<<<<<<<< - * table = table[:i] - * break - */ - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_table, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_v_maxfreq, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1070, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1070, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_7) { - - /* "analysis.py":1071 - * for i in range(1, len(table)): - * if table[i][1] != maxfreq: - * table = table[:i] # <<<<<<<<<<<<<< - * break - * return table - */ - __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_v_table, 0, __pyx_v_i, NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1071, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF_SET(__pyx_v_table, __pyx_t_4); - __pyx_t_4 = 0; - - /* "analysis.py":1072 - * if table[i][1] != maxfreq: - * table = table[:i] - * break # <<<<<<<<<<<<<< - * return table - * - */ - goto __pyx_L5_break; - - /* "analysis.py":1070 - * maxfreq = table[0][1] - * for i in range(1, len(table)): - * if table[i][1] != maxfreq: # <<<<<<<<<<<<<< - * table = table[:i] - * break - */ - } - } - __pyx_L5_break:; - - /* "analysis.py":1073 - * table = table[:i] - * break - * return table # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_table); - __pyx_r = __pyx_v_table; - goto __pyx_L0; - - /* "analysis.py":1062 - * - * - * def _counts(data): # <<<<<<<<<<<<<< - * - * table = collections.Counter(iter(data)).most_common() - */ - - /* 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); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("analysis._counts", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_table); - __Pyx_XDECREF(__pyx_v_maxfreq); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1076 - * - * - * def _find_lteq(a, x): # <<<<<<<<<<<<<< - * - * i = bisect_left(a, x) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_55_find_lteq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_55_find_lteq = {"_find_lteq", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_55_find_lteq, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_55_find_lteq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_a = 0; - PyObject *__pyx_v_x = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_find_lteq (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_a,&__pyx_n_s_x,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_a)) != 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_x)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("_find_lteq", 1, 2, 2, 1); __PYX_ERR(0, 1076, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_find_lteq") < 0)) __PYX_ERR(0, 1076, __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_a = values[0]; - __pyx_v_x = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_find_lteq", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1076, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis._find_lteq", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_54_find_lteq(__pyx_self, __pyx_v_a, __pyx_v_x); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_54_find_lteq(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_a, PyObject *__pyx_v_x) { - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_r = NULL; - __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; - int __pyx_t_6; - Py_ssize_t __pyx_t_7; - int __pyx_t_8; - __Pyx_RefNannySetupContext("_find_lteq", 0); - - /* "analysis.py":1078 - * def _find_lteq(a, x): - * - * i = bisect_left(a, x) # <<<<<<<<<<<<<< - * if i != len(a) and a[i] == x: - * return i - */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_bisect_left); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - __pyx_t_4 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_4 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_a, __pyx_v_x}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1078, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_a, __pyx_v_x}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1078, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (__pyx_t_3) { - __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; - } - __Pyx_INCREF(__pyx_v_a); - __Pyx_GIVEREF(__pyx_v_a); - PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_a); - __Pyx_INCREF(__pyx_v_x); - __Pyx_GIVEREF(__pyx_v_x); - PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_x); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_i = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":1079 - * - * i = bisect_left(a, x) - * if i != len(a) and a[i] == x: # <<<<<<<<<<<<<< - * return i - * raise ValueError - */ - __pyx_t_7 = PyObject_Length(__pyx_v_a); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1079, __pyx_L1_error) - __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_RichCompare(__pyx_v_i, __pyx_t_1, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1079, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1079, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_8) { - } else { - __pyx_t_6 = __pyx_t_8; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_a, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_v_x, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1079, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1079, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_t_8; - __pyx_L4_bool_binop_done:; - if (__pyx_t_6) { - - /* "analysis.py":1080 - * i = bisect_left(a, x) - * if i != len(a) and a[i] == x: - * return i # <<<<<<<<<<<<<< - * raise ValueError - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_i); - __pyx_r = __pyx_v_i; - goto __pyx_L0; - - /* "analysis.py":1079 - * - * i = bisect_left(a, x) - * if i != len(a) and a[i] == x: # <<<<<<<<<<<<<< - * return i - * raise ValueError - */ - } - - /* "analysis.py":1081 - * if i != len(a) and a[i] == x: - * return i - * raise ValueError # <<<<<<<<<<<<<< - * - * - */ - __Pyx_Raise(__pyx_builtin_ValueError, 0, 0, 0); - __PYX_ERR(0, 1081, __pyx_L1_error) - - /* "analysis.py":1076 - * - * - * def _find_lteq(a, x): # <<<<<<<<<<<<<< - * - * i = bisect_left(a, x) - */ - - /* 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_5); - __Pyx_AddTraceback("analysis._find_lteq", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1084 - * - * - * def _find_rteq(a, l, x): # <<<<<<<<<<<<<< - * - * i = bisect_right(a, x, lo=l) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_57_find_rteq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_57_find_rteq = {"_find_rteq", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_57_find_rteq, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_57_find_rteq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_a = 0; - PyObject *__pyx_v_l = 0; - PyObject *__pyx_v_x = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_find_rteq (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_a,&__pyx_n_s_l,&__pyx_n_s_x,0}; - PyObject* values[3] = {0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - 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_a)) != 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_l)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("_find_rteq", 1, 3, 3, 1); __PYX_ERR(0, 1084, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("_find_rteq", 1, 3, 3, 2); __PYX_ERR(0, 1084, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_find_rteq") < 0)) __PYX_ERR(0, 1084, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - } - __pyx_v_a = values[0]; - __pyx_v_l = values[1]; - __pyx_v_x = values[2]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_find_rteq", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1084, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis._find_rteq", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_56_find_rteq(__pyx_self, __pyx_v_a, __pyx_v_l, __pyx_v_x); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_56_find_rteq(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_a, PyObject *__pyx_v_l, PyObject *__pyx_v_x) { - PyObject *__pyx_v_i = NULL; - 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; - int __pyx_t_5; - Py_ssize_t __pyx_t_6; - int __pyx_t_7; - __Pyx_RefNannySetupContext("_find_rteq", 0); - - /* "analysis.py":1086 - * def _find_rteq(a, l, x): - * - * i = bisect_right(a, x, lo=l) # <<<<<<<<<<<<<< - * if i != (len(a) + 1) and a[i - 1] == x: - * return i - 1 - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_bisect_right); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_a); - __Pyx_GIVEREF(__pyx_v_a); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_a); - __Pyx_INCREF(__pyx_v_x); - __Pyx_GIVEREF(__pyx_v_x); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_x); - __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_lo, __pyx_v_l) < 0) __PYX_ERR(0, 1086, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_i = __pyx_t_4; - __pyx_t_4 = 0; - - /* "analysis.py":1087 - * - * i = bisect_right(a, x, lo=l) - * if i != (len(a) + 1) and a[i - 1] == x: # <<<<<<<<<<<<<< - * return i - 1 - * raise ValueError - */ - __pyx_t_6 = PyObject_Length(__pyx_v_a); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1087, __pyx_L1_error) - __pyx_t_4 = PyInt_FromSsize_t((__pyx_t_6 + 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyObject_RichCompare(__pyx_v_i, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_7) { - } else { - __pyx_t_5 = __pyx_t_7; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_i, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_v_x, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __pyx_t_7; - __pyx_L4_bool_binop_done:; - if (__pyx_t_5) { - - /* "analysis.py":1088 - * i = bisect_right(a, x, lo=l) - * if i != (len(a) + 1) and a[i - 1] == x: - * return i - 1 # <<<<<<<<<<<<<< - * raise ValueError - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_i, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "analysis.py":1087 - * - * i = bisect_right(a, x, lo=l) - * if i != (len(a) + 1) and a[i - 1] == x: # <<<<<<<<<<<<<< - * return i - 1 - * raise ValueError - */ - } - - /* "analysis.py":1089 - * if i != (len(a) + 1) and a[i - 1] == x: - * return i - 1 - * raise ValueError # <<<<<<<<<<<<<< - * - * - */ - __Pyx_Raise(__pyx_builtin_ValueError, 0, 0, 0); - __PYX_ERR(0, 1089, __pyx_L1_error) - - /* "analysis.py":1084 - * - * - * def _find_rteq(a, l, x): # <<<<<<<<<<<<<< - * - * i = bisect_right(a, x, lo=l) - */ - - /* 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); - __Pyx_AddTraceback("analysis._find_rteq", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_gb_8analysis_60generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ - -/* "analysis.py":1092 - * - * - * def _fail_neg(values, errmsg='negative value'): # <<<<<<<<<<<<<< - * - * for x in values: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_59_fail_neg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_59_fail_neg = {"_fail_neg", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_59_fail_neg, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_59_fail_neg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_values = 0; - PyObject *__pyx_v_errmsg = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_fail_neg (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_values,&__pyx_n_s_errmsg,0}; - PyObject* values[2] = {0,0}; - values[1] = ((PyObject *)((PyObject*)__pyx_kp_s_negative_value)); - 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_values)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_errmsg); - if (value) { values[1] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_fail_neg") < 0)) __PYX_ERR(0, 1092, __pyx_L3_error) - } - } else { - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_values = values[0]; - __pyx_v_errmsg = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_fail_neg", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1092, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis._fail_neg", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_58_fail_neg(__pyx_self, __pyx_v_values, __pyx_v_errmsg); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_58_fail_neg(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_values, PyObject *__pyx_v_errmsg) { - struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg *__pyx_cur_scope; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_fail_neg", 0); - __pyx_cur_scope = (struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg *)__pyx_tp_new_8analysis___pyx_scope_struct_2__fail_neg(__pyx_ptype_8analysis___pyx_scope_struct_2__fail_neg, __pyx_empty_tuple, NULL); - if (unlikely(!__pyx_cur_scope)) { - __pyx_cur_scope = ((struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg *)Py_None); - __Pyx_INCREF(Py_None); - __PYX_ERR(0, 1092, __pyx_L1_error) - } else { - __Pyx_GOTREF(__pyx_cur_scope); - } - __pyx_cur_scope->__pyx_v_values = __pyx_v_values; - __Pyx_INCREF(__pyx_cur_scope->__pyx_v_values); - __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_values); - __pyx_cur_scope->__pyx_v_errmsg = __pyx_v_errmsg; - __Pyx_INCREF(__pyx_cur_scope->__pyx_v_errmsg); - __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_errmsg); - { - __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_8analysis_60generator, __pyx_codeobj__16, (PyObject *) __pyx_cur_scope, __pyx_n_s_fail_neg, __pyx_n_s_fail_neg, __pyx_n_s_analysis); if (unlikely(!gen)) __PYX_ERR(0, 1092, __pyx_L1_error) - __Pyx_DECREF(__pyx_cur_scope); - __Pyx_RefNannyFinishContext(); - return (PyObject *) gen; - } - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("analysis._fail_neg", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_gb_8analysis_60generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ -{ - struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg *__pyx_cur_scope = ((struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg *)__pyx_generator->closure); - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *(*__pyx_t_3)(PyObject *); - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_fail_neg", 0); - switch (__pyx_generator->resume_label) { - case 0: goto __pyx_L3_first_run; - case 1: goto __pyx_L7_resume_from_yield; - default: /* CPython raises the right error here */ - __Pyx_RefNannyFinishContext(); - return NULL; - } - __pyx_L3_first_run:; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1092, __pyx_L1_error) - - /* "analysis.py":1094 - * def _fail_neg(values, errmsg='negative value'): - * - * for x in values: # <<<<<<<<<<<<<< - * if x < 0: - * raise StatisticsError(errmsg) - */ - if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_values)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_values)) { - __pyx_t_1 = __pyx_cur_scope->__pyx_v_values; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1094, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_3)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1094, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1094, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } - } else { - __pyx_t_4 = __pyx_t_3(__pyx_t_1); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 1094, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x); - __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_4); - __Pyx_GIVEREF(__pyx_t_4); - __pyx_t_4 = 0; - - /* "analysis.py":1095 - * - * for x in values: - * if x < 0: # <<<<<<<<<<<<<< - * raise StatisticsError(errmsg) - * yield x - */ - __pyx_t_4 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_x, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1095, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1095, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(__pyx_t_5)) { - - /* "analysis.py":1096 - * for x in values: - * if x < 0: - * raise StatisticsError(errmsg) # <<<<<<<<<<<<<< - * yield x - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_StatisticsError); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); - } - } - __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_errmsg) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_cur_scope->__pyx_v_errmsg); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_Raise(__pyx_t_4, 0, 0, 0); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 1096, __pyx_L1_error) - - /* "analysis.py":1095 - * - * for x in values: - * if x < 0: # <<<<<<<<<<<<<< - * raise StatisticsError(errmsg) - * yield x - */ - } - - /* "analysis.py":1097 - * if x < 0: - * raise StatisticsError(errmsg) - * yield x # <<<<<<<<<<<<<< - * - * - */ - __Pyx_INCREF(__pyx_cur_scope->__pyx_v_x); - __pyx_r = __pyx_cur_scope->__pyx_v_x; - __Pyx_XGIVEREF(__pyx_t_1); - __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; - __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; - __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - __Pyx_Coroutine_ResetAndClearException(__pyx_generator); - /* return from generator, yielding value */ - __pyx_generator->resume_label = 1; - return __pyx_r; - __pyx_L7_resume_from_yield:; - __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; - __pyx_cur_scope->__pyx_t_0 = 0; - __Pyx_XGOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; - __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1097, __pyx_L1_error) - - /* "analysis.py":1094 - * def _fail_neg(values, errmsg='negative value'): - * - * for x in values: # <<<<<<<<<<<<<< - * if x < 0: - * raise StatisticsError(errmsg) - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); - - /* "analysis.py":1092 - * - * - * def _fail_neg(values, errmsg='negative value'): # <<<<<<<<<<<<<< - * - * for x in values: - */ - - /* function exit code */ - PyErr_SetNone(PyExc_StopIteration); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("_fail_neg", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_XDECREF(__pyx_r); __pyx_r = 0; - #if !CYTHON_USE_EXC_INFO_STACK - __Pyx_Coroutine_ResetAndClearException(__pyx_generator); - #endif - __pyx_generator->resume_label = -1; - __Pyx_Coroutine_clear((PyObject*)__pyx_generator); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1100 - * - * - * def mean(data): # <<<<<<<<<<<<<< - * - * if iter(data) is data: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_62mean(PyObject *__pyx_self, PyObject *__pyx_v_data); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_62mean = {"mean", (PyCFunction)__pyx_pw_8analysis_62mean, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_62mean(PyObject *__pyx_self, PyObject *__pyx_v_data) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("mean (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_61mean(__pyx_self, ((PyObject *)__pyx_v_data)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_61mean(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data) { - PyObject *__pyx_v_n = NULL; - PyObject *__pyx_v_T = NULL; - PyObject *__pyx_v_total = NULL; - PyObject *__pyx_v_count = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); - int __pyx_t_10; - __Pyx_RefNannySetupContext("mean", 0); - __Pyx_INCREF(__pyx_v_data); - - /* "analysis.py":1102 - * def mean(data): - * - * if iter(data) is data: # <<<<<<<<<<<<<< - * data = list(data) - * n = len(data) - */ - __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__pyx_t_1 == __pyx_v_data); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = (__pyx_t_2 != 0); - if (__pyx_t_3) { - - /* "analysis.py":1103 - * - * if iter(data) is data: - * data = list(data) # <<<<<<<<<<<<<< - * n = len(data) - * if n < 1: - */ - __pyx_t_1 = PySequence_List(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":1102 - * def mean(data): - * - * if iter(data) is data: # <<<<<<<<<<<<<< - * data = list(data) - * n = len(data) - */ - } - - /* "analysis.py":1104 - * if iter(data) is data: - * data = list(data) - * n = len(data) # <<<<<<<<<<<<<< - * if n < 1: - * raise StatisticsError('mean requires at least one data point') - */ - __pyx_t_4 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1104, __pyx_L1_error) - __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1104, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_n = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":1105 - * data = list(data) - * n = len(data) - * if n < 1: # <<<<<<<<<<<<<< - * raise StatisticsError('mean requires at least one data point') - * T, total, count = _sum(data) - */ - __pyx_t_1 = PyObject_RichCompare(__pyx_v_n, __pyx_int_1, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1105, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1105, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(__pyx_t_3)) { - - /* "analysis.py":1106 - * n = len(data) - * if n < 1: - * raise StatisticsError('mean requires at least one data point') # <<<<<<<<<<<<<< - * T, total, count = _sum(data) - * assert count == n - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_StatisticsError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_kp_s_mean_requires_at_least_one_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_s_mean_requires_at_least_one_data); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 1106, __pyx_L1_error) - - /* "analysis.py":1105 - * data = list(data) - * n = len(data) - * if n < 1: # <<<<<<<<<<<<<< - * raise StatisticsError('mean requires at least one data point') - * T, total, count = _sum(data) - */ - } - - /* "analysis.py":1107 - * if n < 1: - * raise StatisticsError('mean requires at least one data point') - * T, total, count = _sum(data) # <<<<<<<<<<<<<< - * assert count == n - * return _convert(total / n, T) - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sum_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_data) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_data); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1107, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_5 = PyList_GET_ITEM(sequence, 0); - __pyx_t_6 = PyList_GET_ITEM(sequence, 1); - __pyx_t_7 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - #else - __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; - index = 0; __pyx_t_5 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_5); - index = 1; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 2; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 3) < 0) __PYX_ERR(0, 1107, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L6_unpacking_done; - __pyx_L5_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1107, __pyx_L1_error) - __pyx_L6_unpacking_done:; - } - __pyx_v_T = __pyx_t_5; - __pyx_t_5 = 0; - __pyx_v_total = __pyx_t_6; - __pyx_t_6 = 0; - __pyx_v_count = __pyx_t_7; - __pyx_t_7 = 0; - - /* "analysis.py":1108 - * raise StatisticsError('mean requires at least one data point') - * T, total, count = _sum(data) - * assert count == n # <<<<<<<<<<<<<< - * return _convert(total / n, T) - * - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(!Py_OptimizeFlag)) { - __pyx_t_1 = PyObject_RichCompare(__pyx_v_count, __pyx_v_n, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1108, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1108, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_3)) { - PyErr_SetNone(PyExc_AssertionError); - __PYX_ERR(0, 1108, __pyx_L1_error) - } - } - #endif - - /* "analysis.py":1109 - * T, total, count = _sum(data) - * assert count == n - * return _convert(total / n, T) # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_convert); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_v_total, __pyx_v_n); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = NULL; - __pyx_t_10 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - __pyx_t_10 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_7)) { - PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_v_T}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1109, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { - PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_v_T}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1109, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } else - #endif - { - __pyx_t_8 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (__pyx_t_5) { - __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; - } - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_10, __pyx_t_6); - __Pyx_INCREF(__pyx_v_T); - __Pyx_GIVEREF(__pyx_v_T); - PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_10, __pyx_v_T); - __pyx_t_6 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":1100 - * - * - * def mean(data): # <<<<<<<<<<<<<< - * - * if iter(data) is data: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("analysis.mean", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_n); - __Pyx_XDECREF(__pyx_v_T); - __Pyx_XDECREF(__pyx_v_total); - __Pyx_XDECREF(__pyx_v_count); - __Pyx_XDECREF(__pyx_v_data); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1112 - * - * - * def median(data): # <<<<<<<<<<<<<< - * - * data = sorted(data) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_64median(PyObject *__pyx_self, PyObject *__pyx_v_data); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_64median = {"median", (PyCFunction)__pyx_pw_8analysis_64median, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_64median(PyObject *__pyx_self, PyObject *__pyx_v_data) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("median (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_63median(__pyx_self, ((PyObject *)__pyx_v_data)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_63median(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data) { - PyObject *__pyx_v_n = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - Py_ssize_t __pyx_t_4; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - __Pyx_RefNannySetupContext("median", 0); - __Pyx_INCREF(__pyx_v_data); - - /* "analysis.py":1114 - * def median(data): - * - * data = sorted(data) # <<<<<<<<<<<<<< - * n = len(data) - * if n == 0: - */ - __pyx_t_2 = PySequence_List(__pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1114, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - __pyx_t_3 = PyList_Sort(__pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1114, __pyx_L1_error) - __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":1115 - * - * data = sorted(data) - * n = len(data) # <<<<<<<<<<<<<< - * if n == 0: - * raise StatisticsError("no median for empty data") - */ - __pyx_t_4 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1115, __pyx_L1_error) - __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_n = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":1116 - * data = sorted(data) - * n = len(data) - * if n == 0: # <<<<<<<<<<<<<< - * raise StatisticsError("no median for empty data") - * if n % 2 == 1: - */ - __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_n, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1116, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1116, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(__pyx_t_5)) { - - /* "analysis.py":1117 - * n = len(data) - * if n == 0: - * raise StatisticsError("no median for empty data") # <<<<<<<<<<<<<< - * if n % 2 == 1: - * return data[n // 2] - */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatisticsError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_kp_s_no_median_for_empty_data) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_s_no_median_for_empty_data); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 1117, __pyx_L1_error) - - /* "analysis.py":1116 - * data = sorted(data) - * n = len(data) - * if n == 0: # <<<<<<<<<<<<<< - * raise StatisticsError("no median for empty data") - * if n % 2 == 1: - */ - } - - /* "analysis.py":1118 - * if n == 0: - * raise StatisticsError("no median for empty data") - * if n % 2 == 1: # <<<<<<<<<<<<<< - * return data[n // 2] - * else: - */ - __pyx_t_1 = __Pyx_PyInt_RemainderObjC(__pyx_v_n, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1118, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1118, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1118, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_5) { - - /* "analysis.py":1119 - * raise StatisticsError("no median for empty data") - * if n % 2 == 1: - * return data[n // 2] # <<<<<<<<<<<<<< - * else: - * i = n // 2 - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyInt_FloorDivideObjC(__pyx_v_n, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_data, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":1118 - * if n == 0: - * raise StatisticsError("no median for empty data") - * if n % 2 == 1: # <<<<<<<<<<<<<< - * return data[n // 2] - * else: - */ - } - - /* "analysis.py":1121 - * return data[n // 2] - * else: - * i = n // 2 # <<<<<<<<<<<<<< - * return (data[i - 1] + data[i]) / 2 - * - */ - /*else*/ { - __pyx_t_1 = __Pyx_PyInt_FloorDivideObjC(__pyx_v_n, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_i = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":1122 - * else: - * i = n // 2 - * return (data[i - 1] + data[i]) / 2 # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_i, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_data, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_data, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_int_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - } - - /* "analysis.py":1112 - * - * - * def median(data): # <<<<<<<<<<<<<< - * - * data = sorted(data) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("analysis.median", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_n); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_data); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1125 - * - * - * def mode(data): # <<<<<<<<<<<<<< - * - * table = _counts(data) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_66mode(PyObject *__pyx_self, PyObject *__pyx_v_data); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_66mode = {"mode", (PyCFunction)__pyx_pw_8analysis_66mode, METH_O, 0}; -static PyObject *__pyx_pw_8analysis_66mode(PyObject *__pyx_self, PyObject *__pyx_v_data) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("mode (wrapper)", 0); - __pyx_r = __pyx_pf_8analysis_65mode(__pyx_self, ((PyObject *)__pyx_v_data)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_65mode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data) { - PyObject *__pyx_v_table = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - Py_ssize_t __pyx_t_4; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - __Pyx_RefNannySetupContext("mode", 0); - - /* "analysis.py":1127 - * def mode(data): - * - * table = _counts(data) # <<<<<<<<<<<<<< - * if len(table) == 1: - * return table[0][0] - */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_counts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1127, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_data) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_data); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_table = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":1128 - * - * table = _counts(data) - * if len(table) == 1: # <<<<<<<<<<<<<< - * return table[0][0] - * elif table: - */ - __pyx_t_4 = PyObject_Length(__pyx_v_table); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1128, __pyx_L1_error) - __pyx_t_5 = ((__pyx_t_4 == 1) != 0); - if (__pyx_t_5) { - - /* "analysis.py":1129 - * table = _counts(data) - * if len(table) == 1: - * return table[0][0] # <<<<<<<<<<<<<< - * elif table: - * raise StatisticsError( - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_table, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - /* "analysis.py":1128 - * - * table = _counts(data) - * if len(table) == 1: # <<<<<<<<<<<<<< - * return table[0][0] - * elif table: - */ - } - - /* "analysis.py":1130 - * if len(table) == 1: - * return table[0][0] - * elif table: # <<<<<<<<<<<<<< - * raise StatisticsError( - * 'no unique mode; found %d equally common values' % len(table) - */ - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_table); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1130, __pyx_L1_error) - if (unlikely(__pyx_t_5)) { - - /* "analysis.py":1131 - * return table[0][0] - * elif table: - * raise StatisticsError( # <<<<<<<<<<<<<< - * 'no unique mode; found %d equally common values' % len(table) - * ) - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StatisticsError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - /* "analysis.py":1132 - * elif table: - * raise StatisticsError( - * 'no unique mode; found %d equally common values' % len(table) # <<<<<<<<<<<<<< - * ) - * else: - */ - __pyx_t_4 = PyObject_Length(__pyx_v_table); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1132, __pyx_L1_error) - __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_no_unique_mode_found_d_equally_c, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1131, __pyx_L1_error) - - /* "analysis.py":1130 - * if len(table) == 1: - * return table[0][0] - * elif table: # <<<<<<<<<<<<<< - * raise StatisticsError( - * 'no unique mode; found %d equally common values' % len(table) - */ - } - - /* "analysis.py":1135 - * ) - * else: - * raise StatisticsError('no mode for empty data') # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StatisticsError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_kp_s_no_mode_for_empty_data) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_kp_s_no_mode_for_empty_data); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1135, __pyx_L1_error) - } - - /* "analysis.py":1125 - * - * - * def mode(data): # <<<<<<<<<<<<<< - * - * table = _counts(data) - */ - - /* 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_6); - __Pyx_AddTraceback("analysis.mode", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_table); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1138 - * - * - * def _ss(data, c=None): # <<<<<<<<<<<<<< - * - * if c is None: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_68_ss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_68_ss = {"_ss", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_68_ss, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_68_ss(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_data = 0; - PyObject *__pyx_v_c = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ss (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_c,0}; - PyObject* values[2] = {0,0}; - values[1] = ((PyObject *)((PyObject *)Py_None)); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 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_data)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c); - if (value) { values[1] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_ss") < 0)) __PYX_ERR(0, 1138, __pyx_L3_error) - } - } else { - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_data = values[0]; - __pyx_v_c = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ss", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1138, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis._ss", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_67_ss(__pyx_self, __pyx_v_data, __pyx_v_c); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_gb_8analysis_3_ss_2generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ - -/* "analysis.py":1142 - * if c is None: - * c = mean(data) - * T, total, count = _sum((x - c)**2 for x in data) # <<<<<<<<<<<<<< - * - * U, total2, count2 = _sum((x - c) for x in data) - */ - -static PyObject *__pyx_pf_8analysis_3_ss_genexpr(PyObject *__pyx_self) { - struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr *__pyx_cur_scope; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("genexpr", 0); - __pyx_cur_scope = (struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr *)__pyx_tp_new_8analysis___pyx_scope_struct_4_genexpr(__pyx_ptype_8analysis___pyx_scope_struct_4_genexpr, __pyx_empty_tuple, NULL); - if (unlikely(!__pyx_cur_scope)) { - __pyx_cur_scope = ((struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr *)Py_None); - __Pyx_INCREF(Py_None); - __PYX_ERR(0, 1142, __pyx_L1_error) - } else { - __Pyx_GOTREF(__pyx_cur_scope); - } - __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *) __pyx_self; - __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); - __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); - { - __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_8analysis_3_ss_2generator2, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_ss_locals_genexpr, __pyx_n_s_analysis); if (unlikely(!gen)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_DECREF(__pyx_cur_scope); - __Pyx_RefNannyFinishContext(); - return (PyObject *) gen; - } - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("analysis._ss.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_gb_8analysis_3_ss_2generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ -{ - struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr *__pyx_cur_scope = ((struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr *)__pyx_generator->closure); - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *(*__pyx_t_3)(PyObject *); - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("genexpr", 0); - switch (__pyx_generator->resume_label) { - case 0: goto __pyx_L3_first_run; - case 1: goto __pyx_L6_resume_from_yield; - default: /* CPython raises the right error here */ - __Pyx_RefNannyFinishContext(); - return NULL; - } - __pyx_L3_first_run:; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1142, __pyx_L1_error) - if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_data)) { __Pyx_RaiseClosureNameError("data"); __PYX_ERR(0, 1142, __pyx_L1_error) } - if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_data)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_data)) { - __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_data; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1142, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_3)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1142, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1142, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } - } else { - __pyx_t_4 = __pyx_t_3(__pyx_t_1); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 1142, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x); - __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_4); - __Pyx_GIVEREF(__pyx_t_4); - __pyx_t_4 = 0; - if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_c)) { __Pyx_RaiseClosureNameError("c"); __PYX_ERR(0, 1142, __pyx_L1_error) } - __pyx_t_4 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_x, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyNumber_Power(__pyx_t_4, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - __Pyx_XGIVEREF(__pyx_t_1); - __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; - __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; - __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - __Pyx_Coroutine_ResetAndClearException(__pyx_generator); - /* return from generator, yielding value */ - __pyx_generator->resume_label = 1; - return __pyx_r; - __pyx_L6_resume_from_yield:; - __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; - __pyx_cur_scope->__pyx_t_0 = 0; - __Pyx_XGOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; - __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1142, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); - - /* function exit code */ - PyErr_SetNone(PyExc_StopIteration); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_XDECREF(__pyx_r); __pyx_r = 0; - #if !CYTHON_USE_EXC_INFO_STACK - __Pyx_Coroutine_ResetAndClearException(__pyx_generator); - #endif - __pyx_generator->resume_label = -1; - __Pyx_Coroutine_clear((PyObject*)__pyx_generator); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_gb_8analysis_3_ss_5generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ - -/* "analysis.py":1144 - * T, total, count = _sum((x - c)**2 for x in data) - * - * U, total2, count2 = _sum((x - c) for x in data) # <<<<<<<<<<<<<< - * assert T == U and count == count2 - * total -= total2**2 / len(data) - */ - -static PyObject *__pyx_pf_8analysis_3_ss_3genexpr(PyObject *__pyx_self) { - struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr *__pyx_cur_scope; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("genexpr", 0); - __pyx_cur_scope = (struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr *)__pyx_tp_new_8analysis___pyx_scope_struct_5_genexpr(__pyx_ptype_8analysis___pyx_scope_struct_5_genexpr, __pyx_empty_tuple, NULL); - if (unlikely(!__pyx_cur_scope)) { - __pyx_cur_scope = ((struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr *)Py_None); - __Pyx_INCREF(Py_None); - __PYX_ERR(0, 1144, __pyx_L1_error) - } else { - __Pyx_GOTREF(__pyx_cur_scope); - } - __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *) __pyx_self; - __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); - __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); - { - __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_8analysis_3_ss_5generator3, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_ss_locals_genexpr, __pyx_n_s_analysis); if (unlikely(!gen)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_DECREF(__pyx_cur_scope); - __Pyx_RefNannyFinishContext(); - return (PyObject *) gen; - } - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("analysis._ss.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_gb_8analysis_3_ss_5generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ -{ - struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr *__pyx_cur_scope = ((struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr *)__pyx_generator->closure); - PyObject *__pyx_r = NULL; - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *(*__pyx_t_3)(PyObject *); - PyObject *__pyx_t_4 = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("genexpr", 0); - switch (__pyx_generator->resume_label) { - case 0: goto __pyx_L3_first_run; - case 1: goto __pyx_L6_resume_from_yield; - default: /* CPython raises the right error here */ - __Pyx_RefNannyFinishContext(); - return NULL; - } - __pyx_L3_first_run:; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1144, __pyx_L1_error) - if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_data)) { __Pyx_RaiseClosureNameError("data"); __PYX_ERR(0, 1144, __pyx_L1_error) } - if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_data)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_data)) { - __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_data; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1144, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_3)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1144, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1144, __pyx_L1_error) - #else - __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } - } else { - __pyx_t_4 = __pyx_t_3(__pyx_t_1); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 1144, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x); - __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_4); - __Pyx_GIVEREF(__pyx_t_4); - __pyx_t_4 = 0; - if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_c)) { __Pyx_RaiseClosureNameError("c"); __PYX_ERR(0, 1144, __pyx_L1_error) } - __pyx_t_4 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_x, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - __Pyx_XGIVEREF(__pyx_t_1); - __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; - __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; - __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - __Pyx_Coroutine_ResetAndClearException(__pyx_generator); - /* return from generator, yielding value */ - __pyx_generator->resume_label = 1; - return __pyx_r; - __pyx_L6_resume_from_yield:; - __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; - __pyx_cur_scope->__pyx_t_0 = 0; - __Pyx_XGOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; - __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1144, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); - - /* function exit code */ - PyErr_SetNone(PyExc_StopIteration); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_XDECREF(__pyx_r); __pyx_r = 0; - #if !CYTHON_USE_EXC_INFO_STACK - __Pyx_Coroutine_ResetAndClearException(__pyx_generator); - #endif - __pyx_generator->resume_label = -1; - __Pyx_Coroutine_clear((PyObject*)__pyx_generator); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1138 - * - * - * def _ss(data, c=None): # <<<<<<<<<<<<<< - * - * if c is None: - */ - -static PyObject *__pyx_pf_8analysis_67_ss(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_c) { - struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *__pyx_cur_scope; - PyObject *__pyx_v_T = NULL; - PyObject *__pyx_v_total = NULL; - PyObject *__pyx_v_count = NULL; - PyObject *__pyx_v_U = NULL; - PyObject *__pyx_v_total2 = NULL; - PyObject *__pyx_v_count2 = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *(*__pyx_t_8)(PyObject *); - Py_ssize_t __pyx_t_9; - __Pyx_RefNannySetupContext("_ss", 0); - __pyx_cur_scope = (struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *)__pyx_tp_new_8analysis___pyx_scope_struct_3__ss(__pyx_ptype_8analysis___pyx_scope_struct_3__ss, __pyx_empty_tuple, NULL); - if (unlikely(!__pyx_cur_scope)) { - __pyx_cur_scope = ((struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *)Py_None); - __Pyx_INCREF(Py_None); - __PYX_ERR(0, 1138, __pyx_L1_error) - } else { - __Pyx_GOTREF(__pyx_cur_scope); - } - __pyx_cur_scope->__pyx_v_data = __pyx_v_data; - __Pyx_INCREF(__pyx_cur_scope->__pyx_v_data); - __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_data); - __pyx_cur_scope->__pyx_v_c = __pyx_v_c; - __Pyx_INCREF(__pyx_cur_scope->__pyx_v_c); - __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_c); - - /* "analysis.py":1140 - * def _ss(data, c=None): - * - * if c is None: # <<<<<<<<<<<<<< - * c = mean(data) - * T, total, count = _sum((x - c)**2 for x in data) - */ - __pyx_t_1 = (__pyx_cur_scope->__pyx_v_c == Py_None); - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "analysis.py":1141 - * - * if c is None: - * c = mean(data) # <<<<<<<<<<<<<< - * T, total, count = _sum((x - c)**2 for x in data) - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_mean); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1141, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_cur_scope->__pyx_v_data) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_cur_scope->__pyx_v_data); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1141, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_c); - __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - __pyx_t_3 = 0; - - /* "analysis.py":1140 - * def _ss(data, c=None): - * - * if c is None: # <<<<<<<<<<<<<< - * c = mean(data) - * T, total, count = _sum((x - c)**2 for x in data) - */ - } - - /* "analysis.py":1142 - * if c is None: - * c = mean(data) - * T, total, count = _sum((x - c)**2 for x in data) # <<<<<<<<<<<<<< - * - * U, total2, count2 = _sum((x - c) for x in data) - */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sum_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __pyx_pf_8analysis_3_ss_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { - PyObject* sequence = __pyx_t_3; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1142, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_4 = PyList_GET_ITEM(sequence, 0); - __pyx_t_5 = PyList_GET_ITEM(sequence, 1); - __pyx_t_6 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - #else - __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - #endif - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; - index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed; - __Pyx_GOTREF(__pyx_t_5); - index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L4_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(0, 1142, __pyx_L1_error) - __pyx_t_8 = NULL; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L5_unpacking_done; - __pyx_L4_unpacking_failed:; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_8 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1142, __pyx_L1_error) - __pyx_L5_unpacking_done:; - } - __pyx_v_T = __pyx_t_4; - __pyx_t_4 = 0; - __pyx_v_total = __pyx_t_5; - __pyx_t_5 = 0; - __pyx_v_count = __pyx_t_6; - __pyx_t_6 = 0; - - /* "analysis.py":1144 - * T, total, count = _sum((x - c)**2 for x in data) - * - * U, total2, count2 = _sum((x - c) for x in data) # <<<<<<<<<<<<<< - * assert T == U and count == count2 - * total -= total2**2 / len(data) - */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_sum_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __pyx_pf_8analysis_3_ss_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); - } - } - __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { - PyObject* sequence = __pyx_t_3; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1144, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_6 = PyList_GET_ITEM(sequence, 0); - __pyx_t_5 = PyList_GET_ITEM(sequence, 1); - __pyx_t_4 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - #else - __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; - index = 0; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_5); - index = 2; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(0, 1144, __pyx_L1_error) - __pyx_t_8 = NULL; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L7_unpacking_done; - __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_8 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1144, __pyx_L1_error) - __pyx_L7_unpacking_done:; - } - __pyx_v_U = __pyx_t_6; - __pyx_t_6 = 0; - __pyx_v_total2 = __pyx_t_5; - __pyx_t_5 = 0; - __pyx_v_count2 = __pyx_t_4; - __pyx_t_4 = 0; - - /* "analysis.py":1145 - * - * U, total2, count2 = _sum((x - c) for x in data) - * assert T == U and count == count2 # <<<<<<<<<<<<<< - * total -= total2**2 / len(data) - * assert not total < 0, 'negative sum of square deviations: %f' % total - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(!Py_OptimizeFlag)) { - __pyx_t_3 = PyObject_RichCompare(__pyx_v_T, __pyx_v_U, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1145, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1145, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_1) { - } else { - __pyx_t_2 = __pyx_t_1; - goto __pyx_L8_bool_binop_done; - } - __pyx_t_3 = PyObject_RichCompare(__pyx_v_count, __pyx_v_count2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1145, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1145, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __pyx_t_1; - __pyx_L8_bool_binop_done:; - if (unlikely(!__pyx_t_2)) { - PyErr_SetNone(PyExc_AssertionError); - __PYX_ERR(0, 1145, __pyx_L1_error) - } - } - #endif - - /* "analysis.py":1146 - * U, total2, count2 = _sum((x - c) for x in data) - * assert T == U and count == count2 - * total -= total2**2 / len(data) # <<<<<<<<<<<<<< - * assert not total < 0, 'negative sum of square deviations: %f' % total - * return (T, total) - */ - __pyx_t_3 = PyNumber_Power(__pyx_v_total2, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __pyx_cur_scope->__pyx_v_data; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_9 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1146, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_v_total, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF_SET(__pyx_v_total, __pyx_t_4); - __pyx_t_4 = 0; - - /* "analysis.py":1147 - * assert T == U and count == count2 - * total -= total2**2 / len(data) - * assert not total < 0, 'negative sum of square deviations: %f' % total # <<<<<<<<<<<<<< - * return (T, total) - * - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(!Py_OptimizeFlag)) { - __pyx_t_4 = PyObject_RichCompare(__pyx_v_total, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1147, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1147, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!((!__pyx_t_2) != 0))) { - __pyx_t_4 = __Pyx_PyString_FormatSafe(__pyx_kp_s_negative_sum_of_square_deviation, __pyx_v_total); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - PyErr_SetObject(PyExc_AssertionError, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 1147, __pyx_L1_error) - } - } - #endif - - /* "analysis.py":1148 - * total -= total2**2 / len(data) - * assert not total < 0, 'negative sum of square deviations: %f' % total - * return (T, total) # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF(__pyx_v_T); - __Pyx_GIVEREF(__pyx_v_T); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_T); - __Pyx_INCREF(__pyx_v_total); - __Pyx_GIVEREF(__pyx_v_total); - PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_total); - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "analysis.py":1138 - * - * - * def _ss(data, c=None): # <<<<<<<<<<<<<< - * - * if c is None: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("analysis._ss", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_T); - __Pyx_XDECREF(__pyx_v_total); - __Pyx_XDECREF(__pyx_v_count); - __Pyx_XDECREF(__pyx_v_U); - __Pyx_XDECREF(__pyx_v_total2); - __Pyx_XDECREF(__pyx_v_count2); - __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1151 - * - * - * def variance(data, xbar=None): # <<<<<<<<<<<<<< - * - * if iter(data) is data: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_70variance(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_70variance = {"variance", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_70variance, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_70variance(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_data = 0; - PyObject *__pyx_v_xbar = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("variance (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_xbar,0}; - PyObject* values[2] = {0,0}; - values[1] = ((PyObject *)((PyObject *)Py_None)); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 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_data)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xbar); - if (value) { values[1] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "variance") < 0)) __PYX_ERR(0, 1151, __pyx_L3_error) - } - } else { - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_data = values[0]; - __pyx_v_xbar = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("variance", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1151, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.variance", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_69variance(__pyx_self, __pyx_v_data, __pyx_v_xbar); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_69variance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_xbar) { - PyObject *__pyx_v_n = NULL; - PyObject *__pyx_v_T = NULL; - PyObject *__pyx_v_ss = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); - PyObject *__pyx_t_10 = NULL; - __Pyx_RefNannySetupContext("variance", 0); - __Pyx_INCREF(__pyx_v_data); - - /* "analysis.py":1153 - * def variance(data, xbar=None): - * - * if iter(data) is data: # <<<<<<<<<<<<<< - * data = list(data) - * n = len(data) - */ - __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1153, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__pyx_t_1 == __pyx_v_data); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = (__pyx_t_2 != 0); - if (__pyx_t_3) { - - /* "analysis.py":1154 - * - * if iter(data) is data: - * data = list(data) # <<<<<<<<<<<<<< - * n = len(data) - * if n < 2: - */ - __pyx_t_1 = PySequence_List(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1154, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_1); - __pyx_t_1 = 0; - - /* "analysis.py":1153 - * def variance(data, xbar=None): - * - * if iter(data) is data: # <<<<<<<<<<<<<< - * data = list(data) - * n = len(data) - */ - } - - /* "analysis.py":1155 - * if iter(data) is data: - * data = list(data) - * n = len(data) # <<<<<<<<<<<<<< - * if n < 2: - * raise StatisticsError('variance requires at least two data points') - */ - __pyx_t_4 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1155, __pyx_L1_error) - __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_n = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":1156 - * data = list(data) - * n = len(data) - * if n < 2: # <<<<<<<<<<<<<< - * raise StatisticsError('variance requires at least two data points') - * T, ss = _ss(data, xbar) - */ - __pyx_t_1 = PyObject_RichCompare(__pyx_v_n, __pyx_int_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1156, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1156, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(__pyx_t_3)) { - - /* "analysis.py":1157 - * n = len(data) - * if n < 2: - * raise StatisticsError('variance requires at least two data points') # <<<<<<<<<<<<<< - * T, ss = _ss(data, xbar) - * return _convert(ss / (n - 1), T) - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_StatisticsError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - } - } - __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_kp_s_variance_requires_at_least_two_d) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_s_variance_requires_at_least_two_d); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 1157, __pyx_L1_error) - - /* "analysis.py":1156 - * data = list(data) - * n = len(data) - * if n < 2: # <<<<<<<<<<<<<< - * raise StatisticsError('variance requires at least two data points') - * T, ss = _ss(data, xbar) - */ - } - - /* "analysis.py":1158 - * if n < 2: - * raise StatisticsError('variance requires at least two data points') - * T, ss = _ss(data, xbar) # <<<<<<<<<<<<<< - * return _convert(ss / (n - 1), T) - * - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ss); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - __pyx_t_7 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - __pyx_t_7 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_5)) { - PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_data, __pyx_v_xbar}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1158, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { - PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_data, __pyx_v_xbar}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1158, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (__pyx_t_6) { - __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; - } - __Pyx_INCREF(__pyx_v_data); - __Pyx_GIVEREF(__pyx_v_data); - PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_data); - __Pyx_INCREF(__pyx_v_xbar); - __Pyx_GIVEREF(__pyx_v_xbar); - PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_xbar); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - 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(0, 1158, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); - } else { - __pyx_t_5 = PyList_GET_ITEM(sequence, 0); - __pyx_t_8 = PyList_GET_ITEM(sequence, 1); - } - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx_t_8); - #else - __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; - index = 0; __pyx_t_5 = __pyx_t_9(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_5); - index = 1; __pyx_t_8 = __pyx_t_9(__pyx_t_6); if (unlikely(!__pyx_t_8)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_6), 2) < 0) __PYX_ERR(0, 1158, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L6_unpacking_done; - __pyx_L5_unpacking_failed:; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1158, __pyx_L1_error) - __pyx_L6_unpacking_done:; - } - __pyx_v_T = __pyx_t_5; - __pyx_t_5 = 0; - __pyx_v_ss = __pyx_t_8; - __pyx_t_8 = 0; - - /* "analysis.py":1159 - * raise StatisticsError('variance requires at least two data points') - * T, ss = _ss(data, xbar) - * return _convert(ss / (n - 1), T) # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_convert); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyInt_SubtractObjC(__pyx_v_n, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_v_ss, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = NULL; - __pyx_t_7 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - __pyx_t_7 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_v_T}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1159, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { - PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_v_T}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1159, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } else - #endif - { - __pyx_t_10 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - if (__pyx_t_5) { - __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __pyx_t_5 = NULL; - } - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_7, __pyx_t_6); - __Pyx_INCREF(__pyx_v_T); - __Pyx_GIVEREF(__pyx_v_T); - PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_7, __pyx_v_T); - __pyx_t_6 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "analysis.py":1151 - * - * - * def variance(data, xbar=None): # <<<<<<<<<<<<<< - * - * if iter(data) is data: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("analysis.variance", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_n); - __Pyx_XDECREF(__pyx_v_T); - __Pyx_XDECREF(__pyx_v_ss); - __Pyx_XDECREF(__pyx_v_data); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "analysis.py":1162 - * - * - * def stdev(data, xbar=None): # <<<<<<<<<<<<<< - * - * var = variance(data, xbar) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_8analysis_72stdev(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_8analysis_72stdev = {"stdev", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8analysis_72stdev, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_8analysis_72stdev(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_data = 0; - PyObject *__pyx_v_xbar = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stdev (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_xbar,0}; - PyObject* values[2] = {0,0}; - values[1] = ((PyObject *)((PyObject *)Py_None)); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 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_data)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xbar); - if (value) { values[1] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stdev") < 0)) __PYX_ERR(0, 1162, __pyx_L3_error) - } - } else { - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_data = values[0]; - __pyx_v_xbar = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stdev", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1162, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("analysis.stdev", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_8analysis_71stdev(__pyx_self, __pyx_v_data, __pyx_v_xbar); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_8analysis_71stdev(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_xbar) { - PyObject *__pyx_v_var = NULL; - PyObject *__pyx_r = NULL; - __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; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - __Pyx_RefNannySetupContext("stdev", 0); - - /* "analysis.py":1164 - * def stdev(data, xbar=None): - * - * var = variance(data, xbar) # <<<<<<<<<<<<<< - * try: - * return var.sqrt() - */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_variance); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - __pyx_t_4 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_4 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_data, __pyx_v_xbar}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1164, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_data, __pyx_v_xbar}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1164, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GOTREF(__pyx_t_1); - } else - #endif - { - __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (__pyx_t_3) { - __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; - } - __Pyx_INCREF(__pyx_v_data); - __Pyx_GIVEREF(__pyx_v_data); - PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_data); - __Pyx_INCREF(__pyx_v_xbar); - __Pyx_GIVEREF(__pyx_v_xbar); - PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_xbar); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_var = __pyx_t_1; - __pyx_t_1 = 0; - - /* "analysis.py":1165 - * - * var = variance(data, xbar) - * try: # <<<<<<<<<<<<<< - * return var.sqrt() - * except AttributeError: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); - /*try:*/ { - - /* "analysis.py":1166 - * var = variance(data, xbar) - * try: - * return var.sqrt() # <<<<<<<<<<<<<< - * except AttributeError: - * return math.sqrt(var) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1166, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1166, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L7_try_return; - - /* "analysis.py":1165 - * - * var = variance(data, xbar) - * try: # <<<<<<<<<<<<<< - * return var.sqrt() - * except AttributeError: - */ - } - __pyx_L3_error:; - __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; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - - /* "analysis.py":1167 - * try: - * return var.sqrt() - * except AttributeError: # <<<<<<<<<<<<<< - * return math.sqrt(var) - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); - if (__pyx_t_4) { - __Pyx_AddTraceback("analysis.stdev", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_5) < 0) __PYX_ERR(0, 1167, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GOTREF(__pyx_t_5); - - /* "analysis.py":1168 - * return var.sqrt() - * except AttributeError: - * return math.sqrt(var) # <<<<<<<<<<<<<< - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_math); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1168, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1168, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_10, function); - } - } - __pyx_t_3 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_9, __pyx_v_var) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_var); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1168, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L6_except_return; - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - - /* "analysis.py":1165 - * - * var = variance(data, xbar) - * try: # <<<<<<<<<<<<<< - * return var.sqrt() - * except AttributeError: - */ - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); - goto __pyx_L1_error; - __pyx_L7_try_return:; - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); - goto __pyx_L0; - __pyx_L6_except_return:; - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); - goto __pyx_L0; - } - - /* "analysis.py":1162 - * - * - * def stdev(data, xbar=None): # <<<<<<<<<<<<<< - * - * var = variance(data, xbar) - */ - - /* 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_5); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("analysis.stdev", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_var); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static struct __pyx_obj_8analysis___pyx_scope_struct___sum *__pyx_freelist_8analysis___pyx_scope_struct___sum[8]; -static int __pyx_freecount_8analysis___pyx_scope_struct___sum = 0; - -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct___sum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_8analysis___pyx_scope_struct___sum > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct___sum)))) { - o = (PyObject*)__pyx_freelist_8analysis___pyx_scope_struct___sum[--__pyx_freecount_8analysis___pyx_scope_struct___sum]; - memset(o, 0, sizeof(struct __pyx_obj_8analysis___pyx_scope_struct___sum)); - (void) PyObject_INIT(o, t); - PyObject_GC_Track(o); - } else { - o = (*t->tp_alloc)(t, 0); - if (unlikely(!o)) return 0; - } - return o; -} - -static void __pyx_tp_dealloc_8analysis___pyx_scope_struct___sum(PyObject *o) { - struct __pyx_obj_8analysis___pyx_scope_struct___sum *p = (struct __pyx_obj_8analysis___pyx_scope_struct___sum *)o; - PyObject_GC_UnTrack(o); - Py_CLEAR(p->__pyx_v_partials); - if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_8analysis___pyx_scope_struct___sum < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct___sum)))) { - __pyx_freelist_8analysis___pyx_scope_struct___sum[__pyx_freecount_8analysis___pyx_scope_struct___sum++] = ((struct __pyx_obj_8analysis___pyx_scope_struct___sum *)o); - } else { - (*Py_TYPE(o)->tp_free)(o); - } -} - -static int __pyx_tp_traverse_8analysis___pyx_scope_struct___sum(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_8analysis___pyx_scope_struct___sum *p = (struct __pyx_obj_8analysis___pyx_scope_struct___sum *)o; - if (p->__pyx_v_partials) { - e = (*v)(p->__pyx_v_partials, a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_8analysis___pyx_scope_struct___sum(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_8analysis___pyx_scope_struct___sum *p = (struct __pyx_obj_8analysis___pyx_scope_struct___sum *)o; - tmp = ((PyObject*)p->__pyx_v_partials); - p->__pyx_v_partials = ((PyObject*)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static PyTypeObject __pyx_type_8analysis___pyx_scope_struct___sum = { - PyVarObject_HEAD_INIT(0, 0) - "analysis.__pyx_scope_struct___sum", /*tp_name*/ - sizeof(struct __pyx_obj_8analysis___pyx_scope_struct___sum), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_8analysis___pyx_scope_struct___sum, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_8analysis___pyx_scope_struct___sum, /*tp_traverse*/ - __pyx_tp_clear_8analysis___pyx_scope_struct___sum, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - 0, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_8analysis___pyx_scope_struct___sum, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif -}; - -static struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr *__pyx_freelist_8analysis___pyx_scope_struct_1_genexpr[8]; -static int __pyx_freecount_8analysis___pyx_scope_struct_1_genexpr = 0; - -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct_1_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_8analysis___pyx_scope_struct_1_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr)))) { - o = (PyObject*)__pyx_freelist_8analysis___pyx_scope_struct_1_genexpr[--__pyx_freecount_8analysis___pyx_scope_struct_1_genexpr]; - memset(o, 0, sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr)); - (void) PyObject_INIT(o, t); - PyObject_GC_Track(o); - } else { - o = (*t->tp_alloc)(t, 0); - if (unlikely(!o)) return 0; - } - return o; -} - -static void __pyx_tp_dealloc_8analysis___pyx_scope_struct_1_genexpr(PyObject *o) { - struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr *)o; - PyObject_GC_UnTrack(o); - Py_CLEAR(p->__pyx_outer_scope); - Py_CLEAR(p->__pyx_v_d); - Py_CLEAR(p->__pyx_v_n); - Py_CLEAR(p->__pyx_t_0); - if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_8analysis___pyx_scope_struct_1_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr)))) { - __pyx_freelist_8analysis___pyx_scope_struct_1_genexpr[__pyx_freecount_8analysis___pyx_scope_struct_1_genexpr++] = ((struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr *)o); - } else { - (*Py_TYPE(o)->tp_free)(o); - } -} - -static int __pyx_tp_traverse_8analysis___pyx_scope_struct_1_genexpr(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr *)o; - if (p->__pyx_outer_scope) { - e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e; - } - if (p->__pyx_v_d) { - e = (*v)(p->__pyx_v_d, a); if (e) return e; - } - if (p->__pyx_v_n) { - e = (*v)(p->__pyx_v_n, a); if (e) return e; - } - if (p->__pyx_t_0) { - e = (*v)(p->__pyx_t_0, a); if (e) return e; - } - return 0; -} - -static PyTypeObject __pyx_type_8analysis___pyx_scope_struct_1_genexpr = { - PyVarObject_HEAD_INIT(0, 0) - "analysis.__pyx_scope_struct_1_genexpr", /*tp_name*/ - sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_1_genexpr), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_8analysis___pyx_scope_struct_1_genexpr, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_8analysis___pyx_scope_struct_1_genexpr, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - 0, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_8analysis___pyx_scope_struct_1_genexpr, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif -}; - -static struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg *__pyx_freelist_8analysis___pyx_scope_struct_2__fail_neg[8]; -static int __pyx_freecount_8analysis___pyx_scope_struct_2__fail_neg = 0; - -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct_2__fail_neg(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_8analysis___pyx_scope_struct_2__fail_neg > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg)))) { - o = (PyObject*)__pyx_freelist_8analysis___pyx_scope_struct_2__fail_neg[--__pyx_freecount_8analysis___pyx_scope_struct_2__fail_neg]; - memset(o, 0, sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg)); - (void) PyObject_INIT(o, t); - PyObject_GC_Track(o); - } else { - o = (*t->tp_alloc)(t, 0); - if (unlikely(!o)) return 0; - } - return o; -} - -static void __pyx_tp_dealloc_8analysis___pyx_scope_struct_2__fail_neg(PyObject *o) { - struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg *p = (struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg *)o; - PyObject_GC_UnTrack(o); - Py_CLEAR(p->__pyx_v_errmsg); - Py_CLEAR(p->__pyx_v_values); - Py_CLEAR(p->__pyx_v_x); - Py_CLEAR(p->__pyx_t_0); - if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_8analysis___pyx_scope_struct_2__fail_neg < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg)))) { - __pyx_freelist_8analysis___pyx_scope_struct_2__fail_neg[__pyx_freecount_8analysis___pyx_scope_struct_2__fail_neg++] = ((struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg *)o); - } else { - (*Py_TYPE(o)->tp_free)(o); - } -} - -static int __pyx_tp_traverse_8analysis___pyx_scope_struct_2__fail_neg(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg *p = (struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg *)o; - if (p->__pyx_v_errmsg) { - e = (*v)(p->__pyx_v_errmsg, a); if (e) return e; - } - if (p->__pyx_v_values) { - e = (*v)(p->__pyx_v_values, a); if (e) return e; - } - if (p->__pyx_v_x) { - e = (*v)(p->__pyx_v_x, a); if (e) return e; - } - if (p->__pyx_t_0) { - e = (*v)(p->__pyx_t_0, a); if (e) return e; - } - return 0; -} - -static PyTypeObject __pyx_type_8analysis___pyx_scope_struct_2__fail_neg = { - PyVarObject_HEAD_INIT(0, 0) - "analysis.__pyx_scope_struct_2__fail_neg", /*tp_name*/ - sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_2__fail_neg), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_8analysis___pyx_scope_struct_2__fail_neg, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_8analysis___pyx_scope_struct_2__fail_neg, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - 0, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_8analysis___pyx_scope_struct_2__fail_neg, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif -}; - -static struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *__pyx_freelist_8analysis___pyx_scope_struct_3__ss[8]; -static int __pyx_freecount_8analysis___pyx_scope_struct_3__ss = 0; - -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct_3__ss(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_8analysis___pyx_scope_struct_3__ss > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_3__ss)))) { - o = (PyObject*)__pyx_freelist_8analysis___pyx_scope_struct_3__ss[--__pyx_freecount_8analysis___pyx_scope_struct_3__ss]; - memset(o, 0, sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_3__ss)); - (void) PyObject_INIT(o, t); - PyObject_GC_Track(o); - } else { - o = (*t->tp_alloc)(t, 0); - if (unlikely(!o)) return 0; - } - return o; -} - -static void __pyx_tp_dealloc_8analysis___pyx_scope_struct_3__ss(PyObject *o) { - struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *p = (struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *)o; - PyObject_GC_UnTrack(o); - Py_CLEAR(p->__pyx_v_c); - Py_CLEAR(p->__pyx_v_data); - if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_8analysis___pyx_scope_struct_3__ss < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_3__ss)))) { - __pyx_freelist_8analysis___pyx_scope_struct_3__ss[__pyx_freecount_8analysis___pyx_scope_struct_3__ss++] = ((struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *)o); - } else { - (*Py_TYPE(o)->tp_free)(o); - } -} - -static int __pyx_tp_traverse_8analysis___pyx_scope_struct_3__ss(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *p = (struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *)o; - if (p->__pyx_v_c) { - e = (*v)(p->__pyx_v_c, a); if (e) return e; - } - if (p->__pyx_v_data) { - e = (*v)(p->__pyx_v_data, a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_8analysis___pyx_scope_struct_3__ss(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *p = (struct __pyx_obj_8analysis___pyx_scope_struct_3__ss *)o; - tmp = ((PyObject*)p->__pyx_v_c); - p->__pyx_v_c = Py_None; Py_INCREF(Py_None); - Py_XDECREF(tmp); - tmp = ((PyObject*)p->__pyx_v_data); - p->__pyx_v_data = Py_None; Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static PyTypeObject __pyx_type_8analysis___pyx_scope_struct_3__ss = { - PyVarObject_HEAD_INIT(0, 0) - "analysis.__pyx_scope_struct_3__ss", /*tp_name*/ - sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_3__ss), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_8analysis___pyx_scope_struct_3__ss, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_8analysis___pyx_scope_struct_3__ss, /*tp_traverse*/ - __pyx_tp_clear_8analysis___pyx_scope_struct_3__ss, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - 0, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_8analysis___pyx_scope_struct_3__ss, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif -}; - -static struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr *__pyx_freelist_8analysis___pyx_scope_struct_4_genexpr[8]; -static int __pyx_freecount_8analysis___pyx_scope_struct_4_genexpr = 0; - -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct_4_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_8analysis___pyx_scope_struct_4_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr)))) { - o = (PyObject*)__pyx_freelist_8analysis___pyx_scope_struct_4_genexpr[--__pyx_freecount_8analysis___pyx_scope_struct_4_genexpr]; - memset(o, 0, sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr)); - (void) PyObject_INIT(o, t); - PyObject_GC_Track(o); - } else { - o = (*t->tp_alloc)(t, 0); - if (unlikely(!o)) return 0; - } - return o; -} - -static void __pyx_tp_dealloc_8analysis___pyx_scope_struct_4_genexpr(PyObject *o) { - struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr *p = (struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr *)o; - PyObject_GC_UnTrack(o); - Py_CLEAR(p->__pyx_outer_scope); - Py_CLEAR(p->__pyx_v_x); - Py_CLEAR(p->__pyx_t_0); - if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_8analysis___pyx_scope_struct_4_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr)))) { - __pyx_freelist_8analysis___pyx_scope_struct_4_genexpr[__pyx_freecount_8analysis___pyx_scope_struct_4_genexpr++] = ((struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr *)o); - } else { - (*Py_TYPE(o)->tp_free)(o); - } -} - -static int __pyx_tp_traverse_8analysis___pyx_scope_struct_4_genexpr(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr *p = (struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr *)o; - if (p->__pyx_outer_scope) { - e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e; - } - if (p->__pyx_v_x) { - e = (*v)(p->__pyx_v_x, a); if (e) return e; - } - if (p->__pyx_t_0) { - e = (*v)(p->__pyx_t_0, a); if (e) return e; - } - return 0; -} - -static PyTypeObject __pyx_type_8analysis___pyx_scope_struct_4_genexpr = { - PyVarObject_HEAD_INIT(0, 0) - "analysis.__pyx_scope_struct_4_genexpr", /*tp_name*/ - sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_4_genexpr), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_8analysis___pyx_scope_struct_4_genexpr, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_8analysis___pyx_scope_struct_4_genexpr, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - 0, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_8analysis___pyx_scope_struct_4_genexpr, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif -}; - -static struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr *__pyx_freelist_8analysis___pyx_scope_struct_5_genexpr[8]; -static int __pyx_freecount_8analysis___pyx_scope_struct_5_genexpr = 0; - -static PyObject *__pyx_tp_new_8analysis___pyx_scope_struct_5_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_8analysis___pyx_scope_struct_5_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr)))) { - o = (PyObject*)__pyx_freelist_8analysis___pyx_scope_struct_5_genexpr[--__pyx_freecount_8analysis___pyx_scope_struct_5_genexpr]; - memset(o, 0, sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr)); - (void) PyObject_INIT(o, t); - PyObject_GC_Track(o); - } else { - o = (*t->tp_alloc)(t, 0); - if (unlikely(!o)) return 0; - } - return o; -} - -static void __pyx_tp_dealloc_8analysis___pyx_scope_struct_5_genexpr(PyObject *o) { - struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr *p = (struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr *)o; - PyObject_GC_UnTrack(o); - Py_CLEAR(p->__pyx_outer_scope); - Py_CLEAR(p->__pyx_v_x); - Py_CLEAR(p->__pyx_t_0); - if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_8analysis___pyx_scope_struct_5_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr)))) { - __pyx_freelist_8analysis___pyx_scope_struct_5_genexpr[__pyx_freecount_8analysis___pyx_scope_struct_5_genexpr++] = ((struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr *)o); - } else { - (*Py_TYPE(o)->tp_free)(o); - } -} - -static int __pyx_tp_traverse_8analysis___pyx_scope_struct_5_genexpr(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr *p = (struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr *)o; - if (p->__pyx_outer_scope) { - e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e; - } - if (p->__pyx_v_x) { - e = (*v)(p->__pyx_v_x, a); if (e) return e; - } - if (p->__pyx_t_0) { - e = (*v)(p->__pyx_t_0, a); if (e) return e; - } - return 0; -} - -static PyTypeObject __pyx_type_8analysis___pyx_scope_struct_5_genexpr = { - PyVarObject_HEAD_INIT(0, 0) - "analysis.__pyx_scope_struct_5_genexpr", /*tp_name*/ - sizeof(struct __pyx_obj_8analysis___pyx_scope_struct_5_genexpr), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_8analysis___pyx_scope_struct_5_genexpr, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_8analysis___pyx_scope_struct_5_genexpr, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - 0, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_8analysis___pyx_scope_struct_5_genexpr, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif -}; - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; - -static int __pyx_import_star_set(PyObject *o, PyObject* py_name, char *name) { - static const char* internal_type_names[] = { - "__pyx_ctuple_Py_ssize_t", - "__pyx_ctuple_Py_ssize_t_struct", - "__pyx_ctuple_double", - "__pyx_ctuple_double_struct", - "__pyx_ctuple_long__and_Py_ssize_t", - "__pyx_ctuple_long__and_Py_ssize_t__and_long", - "__pyx_ctuple_long__and_Py_ssize_t__and_long_struct", - "__pyx_ctuple_long__and_Py_ssize_t_struct", - "__pyx_scope_struct_1_genexpr", - "__pyx_scope_struct_2__fail_neg", - "__pyx_scope_struct_3__ss", - "__pyx_scope_struct_4_genexpr", - "__pyx_scope_struct_5_genexpr", - "__pyx_scope_struct___sum", - 0 - }; - const char** type_name = internal_type_names; - while (*type_name) { - if (__Pyx_StrEq(name, *type_name)) { - PyErr_Format(PyExc_TypeError, "Cannot overwrite C type %s", name); - goto bad; - } - type_name++; - } - if (0); - else { - if (PyObject_SetAttr(__pyx_m, py_name, o) < 0) goto bad; - } - return 0; - bad: - return -1; -} - -static int -__Pyx_import_all_from(PyObject *locals, PyObject *v) -{ - PyObject *all = PyObject_GetAttrString(v, "__all__"); - PyObject *dict, *name, *value; - int skip_leading_underscores = 0; - int pos, err; - if (all == NULL) { - if (!PyErr_ExceptionMatches(PyExc_AttributeError)) - return -1; - PyErr_Clear(); - dict = PyObject_GetAttrString(v, "__dict__"); - if (dict == NULL) { - if (!PyErr_ExceptionMatches(PyExc_AttributeError)) - return -1; - PyErr_SetString(PyExc_ImportError, - "from-import-* object has no __dict__ and no __all__"); - return -1; - } -#if PY_MAJOR_VERSION < 3 - all = PyObject_CallMethod(dict, (char *)"keys", NULL); -#else - all = PyMapping_Keys(dict); -#endif - Py_DECREF(dict); - if (all == NULL) - return -1; - skip_leading_underscores = 1; - } - for (pos = 0, err = 0; ; pos++) { - name = PySequence_GetItem(all, pos); - if (name == NULL) { - if (!PyErr_ExceptionMatches(PyExc_IndexError)) - err = -1; - else - PyErr_Clear(); - break; - } - if (skip_leading_underscores && -#if PY_MAJOR_VERSION < 3 - PyString_Check(name) && - PyString_AS_STRING(name)[0] == '_') -#else - PyUnicode_Check(name) && - PyUnicode_AS_UNICODE(name)[0] == '_') -#endif - { - Py_DECREF(name); - continue; - } - value = PyObject_GetAttr(v, name); - if (value == NULL) - err = -1; - else if (PyDict_CheckExact(locals)) - err = PyDict_SetItem(locals, name, value); - else - err = PyObject_SetItem(locals, name, value); - Py_DECREF(name); - Py_XDECREF(value); - if (err != 0) - break; - } - Py_DECREF(all); - return err; -} -static int __pyx_import_star(PyObject* m) { - int i; - int ret = -1; - char* s; - PyObject *locals = 0; - PyObject *list = 0; -#if PY_MAJOR_VERSION >= 3 - PyObject *utf8_name = 0; -#endif - PyObject *name; - PyObject *item; - locals = PyDict_New(); if (!locals) goto bad; - if (__Pyx_import_all_from(locals, m) < 0) goto bad; - list = PyDict_Items(locals); if (!list) goto bad; - for(i=0; i= 3 - utf8_name = PyUnicode_AsUTF8String(name); - if (!utf8_name) goto bad; - s = PyBytes_AS_STRING(utf8_name); - if (__pyx_import_star_set(item, name, s) < 0) goto bad; - Py_DECREF(utf8_name); utf8_name = 0; -#else - s = PyString_AsString(name); - if (!s) goto bad; - if (__pyx_import_star_set(item, name, s) < 0) goto bad; -#endif - } - ret = 0; -bad: - Py_XDECREF(locals); - Py_XDECREF(list); -#if PY_MAJOR_VERSION >= 3 - Py_XDECREF(utf8_name); -#endif - return ret; -} - - - -#if PY_MAJOR_VERSION >= 3 -#if CYTHON_PEP489_MULTI_PHASE_INIT -static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ -static int __pyx_pymod_exec_analysis(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec_analysis}, - {0, NULL} -}; -#endif - -static struct PyModuleDef __pyx_moduledef = { - PyModuleDef_HEAD_INIT, - "analysis", - 0, /* m_doc */ - #if CYTHON_PEP489_MULTI_PHASE_INIT - 0, /* m_size */ - #else - -1, /* m_size */ - #endif - __pyx_methods /* m_methods */, - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_moduledef_slots, /* m_slots */ - #else - NULL, /* m_reload */ - #endif - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ -}; -#endif -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define CYTHON_SMALL_CODE __attribute__((cold)) -#else - #define CYTHON_SMALL_CODE -#endif -#endif - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_, __pyx_k_, sizeof(__pyx_k_), 0, 0, 1, 0}, - {&__pyx_kp_s_1_0_8_005, __pyx_k_1_0_8_005, sizeof(__pyx_k_1_0_8_005), 0, 0, 1, 0}, - {&__pyx_kp_s_1d, __pyx_k_1d, sizeof(__pyx_k_1d), 0, 0, 1, 0}, - {&__pyx_kp_s_Arthur_Lu_arthurlu_ttic_edu_Jaco, __pyx_k_Arthur_Lu_arthurlu_ttic_edu_Jaco, sizeof(__pyx_k_Arthur_Lu_arthurlu_ttic_edu_Jaco), 0, 0, 1, 0}, - {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1}, - {&__pyx_n_s_Counter, __pyx_k_Counter, sizeof(__pyx_k_Counter), 0, 0, 1, 1}, - {&__pyx_n_s_Decimal, __pyx_k_Decimal, sizeof(__pyx_k_Decimal), 0, 0, 1, 1}, - {&__pyx_n_s_Fraction, __pyx_k_Fraction, sizeof(__pyx_k_Fraction), 0, 0, 1, 1}, - {&__pyx_n_s_OverflowError, __pyx_k_OverflowError, sizeof(__pyx_k_OverflowError), 0, 0, 1, 1}, - {&__pyx_n_s_S, __pyx_k_S, sizeof(__pyx_k_S), 0, 0, 1, 1}, - {&__pyx_n_s_StatisticsError, __pyx_k_StatisticsError, sizeof(__pyx_k_StatisticsError), 0, 0, 1, 1}, - {&__pyx_n_s_T, __pyx_k_T, sizeof(__pyx_k_T), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, - {&__pyx_n_s_U, __pyx_k_U, sizeof(__pyx_k_U), 0, 0, 1, 1}, - {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_kp_s__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 0, 1, 0}, - {&__pyx_kp_s__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 0, 1, 0}, - {&__pyx_kp_s__14, __pyx_k__14, sizeof(__pyx_k__14), 0, 0, 1, 0}, - {&__pyx_kp_s__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 0, 1, 0}, - {&__pyx_n_s__17, __pyx_k__17, sizeof(__pyx_k__17), 0, 0, 1, 1}, - {&__pyx_kp_s__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 0, 1, 0}, - {&__pyx_kp_s__5, __pyx_k__5, sizeof(__pyx_k__5), 0, 0, 1, 0}, - {&__pyx_kp_s__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 0, 1, 0}, - {&__pyx_kp_s__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 1, 0}, - {&__pyx_kp_s__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 0, 1, 0}, - {&__pyx_kp_s__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 0, 1, 0}, - {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1}, - {&__pyx_n_s_adam, __pyx_k_adam, sizeof(__pyx_k_adam), 0, 0, 1, 1}, - {&__pyx_n_s_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 0, 1, 1}, - {&__pyx_n_s_analysis, __pyx_k_analysis, sizeof(__pyx_k_analysis), 0, 0, 1, 1}, - {&__pyx_kp_s_analysis_py, __pyx_k_analysis_py, sizeof(__pyx_k_analysis_py), 0, 0, 1, 0}, - {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1}, - {&__pyx_n_s_arg, __pyx_k_arg, sizeof(__pyx_k_arg), 0, 0, 1, 1}, - {&__pyx_n_s_argmax, __pyx_k_argmax, sizeof(__pyx_k_argmax), 0, 0, 1, 1}, - {&__pyx_n_s_argmin, __pyx_k_argmin, sizeof(__pyx_k_argmin), 0, 0, 1, 1}, - {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, - {&__pyx_n_s_array, __pyx_k_array, sizeof(__pyx_k_array), 0, 0, 1, 1}, - {&__pyx_n_s_as_integer_ratio, __pyx_k_as_integer_ratio, sizeof(__pyx_k_as_integer_ratio), 0, 0, 1, 1}, - {&__pyx_n_s_author, __pyx_k_author, sizeof(__pyx_k_author), 0, 0, 1, 1}, - {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1}, - {&__pyx_n_s_b_eq, __pyx_k_b_eq, sizeof(__pyx_k_b_eq), 0, 0, 1, 1}, - {&__pyx_n_s_b_overfit, __pyx_k_b_overfit, sizeof(__pyx_k_b_overfit), 0, 0, 1, 1}, - {&__pyx_n_s_b_r2, __pyx_k_b_r2, sizeof(__pyx_k_b_r2), 0, 0, 1, 1}, - {&__pyx_n_s_b_rms, __pyx_k_b_rms, sizeof(__pyx_k_b_rms), 0, 0, 1, 1}, - {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1}, - {&__pyx_n_s_basic_analysis, __pyx_k_basic_analysis, sizeof(__pyx_k_basic_analysis), 0, 0, 1, 1}, - {&__pyx_n_s_basic_stats, __pyx_k_basic_stats, sizeof(__pyx_k_basic_stats), 0, 0, 1, 1}, - {&__pyx_kp_s_basic_stats_requires_3_args_data, __pyx_k_basic_stats_requires_3_args_data, sizeof(__pyx_k_basic_stats_requires_3_args_data), 0, 0, 1, 0}, - {&__pyx_n_s_benchmark, __pyx_k_benchmark, sizeof(__pyx_k_benchmark), 0, 0, 1, 1}, - {&__pyx_n_s_bisect, __pyx_k_bisect, sizeof(__pyx_k_bisect), 0, 0, 1, 1}, - {&__pyx_n_s_bisect_left, __pyx_k_bisect_left, sizeof(__pyx_k_bisect_left), 0, 0, 1, 1}, - {&__pyx_n_s_bisect_right, __pyx_k_bisect_right, sizeof(__pyx_k_bisect_right), 0, 0, 1, 1}, - {&__pyx_n_s_both, __pyx_k_both, sizeof(__pyx_k_both), 0, 0, 1, 1}, - {&__pyx_n_s_builtins, __pyx_k_builtins, sizeof(__pyx_k_builtins), 0, 0, 1, 1}, - {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, - {&__pyx_n_s_c_data, __pyx_k_c_data, sizeof(__pyx_k_c_data), 0, 0, 1, 1}, - {&__pyx_n_s_c_data_sorted, __pyx_k_c_data_sorted, sizeof(__pyx_k_c_data_sorted), 0, 0, 1, 1}, - {&__pyx_n_s_c_effects, __pyx_k_c_effects, sizeof(__pyx_k_c_effects), 0, 0, 1, 1}, - {&__pyx_n_s_c_entities, __pyx_k_c_entities, sizeof(__pyx_k_c_entities), 0, 0, 1, 1}, - {&__pyx_n_s_c_entities___init, __pyx_k_c_entities___init, sizeof(__pyx_k_c_entities___init), 0, 0, 1, 1}, - {&__pyx_n_s_c_entities_append, __pyx_k_c_entities_append, sizeof(__pyx_k_c_entities_append), 0, 0, 1, 1}, - {&__pyx_n_s_c_entities_debug, __pyx_k_c_entities_debug, sizeof(__pyx_k_c_entities_debug), 0, 0, 1, 1}, - {&__pyx_n_s_c_entities_edit, __pyx_k_c_entities_edit, sizeof(__pyx_k_c_entities_edit), 0, 0, 1, 1}, - {&__pyx_kp_s_c_entities_has_attributes_names, __pyx_k_c_entities_has_attributes_names, sizeof(__pyx_k_c_entities_has_attributes_names), 0, 0, 1, 0}, - {&__pyx_n_s_c_entities_regurgitate, __pyx_k_c_entities_regurgitate, sizeof(__pyx_k_c_entities_regurgitate), 0, 0, 1, 1}, - {&__pyx_n_s_c_entities_search, __pyx_k_c_entities_search, sizeof(__pyx_k_c_entities_search), 0, 0, 1, 1}, - {&__pyx_n_s_c_ids, __pyx_k_c_ids, sizeof(__pyx_k_c_ids), 0, 0, 1, 1}, - {&__pyx_n_s_c_logic, __pyx_k_c_logic, sizeof(__pyx_k_c_logic), 0, 0, 1, 1}, - {&__pyx_n_s_c_names, __pyx_k_c_names, sizeof(__pyx_k_c_names), 0, 0, 1, 1}, - {&__pyx_n_s_c_perim, __pyx_k_c_perim, sizeof(__pyx_k_c_perim), 0, 0, 1, 1}, - {&__pyx_n_s_c_pos, __pyx_k_c_pos, sizeof(__pyx_k_c_pos), 0, 0, 1, 1}, - {&__pyx_n_s_c_properties, __pyx_k_c_properties, sizeof(__pyx_k_c_properties), 0, 0, 1, 1}, - {&__pyx_n_s_calc_overfit, __pyx_k_calc_overfit, sizeof(__pyx_k_calc_overfit), 0, 0, 1, 1}, - {&__pyx_kp_s_can_t_convert_type_to_numerator, __pyx_k_can_t_convert_type_to_numerator, sizeof(__pyx_k_can_t_convert_type_to_numerator), 0, 0, 1, 0}, - {&__pyx_n_s_changelog, __pyx_k_changelog, sizeof(__pyx_k_changelog), 0, 0, 1, 1}, - {&__pyx_kp_s_changelog_1_0_8_005_minor_fixes, __pyx_k_changelog_1_0_8_005_minor_fixes, sizeof(__pyx_k_changelog_1_0_8_005_minor_fixes), 0, 0, 1, 0}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, - {&__pyx_n_s_coerce, __pyx_k_coerce, sizeof(__pyx_k_coerce), 0, 0, 1, 1}, - {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1}, - {&__pyx_n_s_column, __pyx_k_column, sizeof(__pyx_k_column), 0, 0, 1, 1}, - {&__pyx_n_s_column_b_stats, __pyx_k_column_b_stats, sizeof(__pyx_k_column_b_stats), 0, 0, 1, 1}, - {&__pyx_n_s_column_max, __pyx_k_column_max, sizeof(__pyx_k_column_max), 0, 0, 1, 1}, - {&__pyx_n_s_convert, __pyx_k_convert, sizeof(__pyx_k_convert), 0, 0, 1, 1}, - {&__pyx_kp_s_could_not_assign_cpu, __pyx_k_could_not_assign_cpu, sizeof(__pyx_k_could_not_assign_cpu), 0, 0, 1, 0}, - {&__pyx_kp_s_could_not_assign_cuda_or_cpu, __pyx_k_could_not_assign_cuda_or_cpu, sizeof(__pyx_k_could_not_assign_cuda_or_cpu), 0, 0, 1, 0}, - {&__pyx_n_s_count, __pyx_k_count, sizeof(__pyx_k_count), 0, 0, 1, 1}, - {&__pyx_n_s_count2, __pyx_k_count2, sizeof(__pyx_k_count2), 0, 0, 1, 1}, - {&__pyx_n_s_counts, __pyx_k_counts, sizeof(__pyx_k_counts), 0, 0, 1, 1}, - {&__pyx_n_s_cpu, __pyx_k_cpu, sizeof(__pyx_k_cpu), 0, 0, 1, 1}, - {&__pyx_n_s_csv, __pyx_k_csv, sizeof(__pyx_k_csv), 0, 0, 1, 1}, - {&__pyx_n_s_csvfile, __pyx_k_csvfile, sizeof(__pyx_k_csvfile), 0, 0, 1, 1}, - {&__pyx_n_s_cuda, __pyx_k_cuda, sizeof(__pyx_k_cuda), 0, 0, 1, 1}, - {&__pyx_n_s_curve_fit, __pyx_k_curve_fit, sizeof(__pyx_k_curve_fit), 0, 0, 1, 1}, - {&__pyx_n_s_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 0, 1, 1}, - {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1}, - {&__pyx_kp_s_data_data_csv, __pyx_k_data_data_csv, sizeof(__pyx_k_data_data_csv), 0, 0, 1, 0}, - {&__pyx_n_s_data_t, __pyx_k_data_t, sizeof(__pyx_k_data_t), 0, 0, 1, 1}, - {&__pyx_n_s_debug, __pyx_k_debug, sizeof(__pyx_k_debug), 0, 0, 1, 1}, - {&__pyx_n_s_decimal, __pyx_k_decimal, sizeof(__pyx_k_decimal), 0, 0, 1, 1}, - {&__pyx_n_s_deg, __pyx_k_deg, sizeof(__pyx_k_deg), 0, 0, 1, 1}, - {&__pyx_n_s_delta, __pyx_k_delta, sizeof(__pyx_k_delta), 0, 0, 1, 1}, - {&__pyx_n_s_denominator, __pyx_k_denominator, sizeof(__pyx_k_denominator), 0, 0, 1, 1}, - {&__pyx_n_s_derivative, __pyx_k_derivative, sizeof(__pyx_k_derivative), 0, 0, 1, 1}, - {&__pyx_n_s_derivative_sorted, __pyx_k_derivative_sorted, sizeof(__pyx_k_derivative_sorted), 0, 0, 1, 1}, - {&__pyx_n_s_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1}, - {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, - {&__pyx_kp_s_don_t_know_how_to_coerce_s_and_s, __pyx_k_don_t_know_how_to_coerce_s_and_s, sizeof(__pyx_k_don_t_know_how_to_coerce_s_and_s), 0, 0, 1, 0}, - {&__pyx_n_s_e, __pyx_k_e, sizeof(__pyx_k_e), 0, 0, 1, 1}, - {&__pyx_n_s_edit, __pyx_k_edit, sizeof(__pyx_k_edit), 0, 0, 1, 1}, - {&__pyx_n_s_effects, __pyx_k_effects, sizeof(__pyx_k_effects), 0, 0, 1, 1}, - {&__pyx_n_s_end, __pyx_k_end, sizeof(__pyx_k_end), 0, 0, 1, 1}, - {&__pyx_n_s_end_a, __pyx_k_end_a, sizeof(__pyx_k_end_a), 0, 0, 1, 1}, - {&__pyx_n_s_end_g, __pyx_k_end_g, sizeof(__pyx_k_end_g), 0, 0, 1, 1}, - {&__pyx_n_s_enter, __pyx_k_enter, sizeof(__pyx_k_enter), 0, 0, 1, 1}, - {&__pyx_n_s_eq_str, __pyx_k_eq_str, sizeof(__pyx_k_eq_str), 0, 0, 1, 1}, - {&__pyx_n_s_eqs, __pyx_k_eqs, sizeof(__pyx_k_eqs), 0, 0, 1, 1}, - {&__pyx_n_s_equation, __pyx_k_equation, sizeof(__pyx_k_equation), 0, 0, 1, 1}, - {&__pyx_n_s_errmsg, __pyx_k_errmsg, sizeof(__pyx_k_errmsg), 0, 0, 1, 1}, - {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, - {&__pyx_n_s_eve, __pyx_k_eve, sizeof(__pyx_k_eve), 0, 0, 1, 1}, - {&__pyx_n_s_exact_ratio, __pyx_k_exact_ratio, sizeof(__pyx_k_exact_ratio), 0, 0, 1, 1}, - {&__pyx_n_s_exit, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1}, - {&__pyx_n_s_exp_regression, __pyx_k_exp_regression, sizeof(__pyx_k_exp_regression), 0, 0, 1, 1}, - {&__pyx_n_s_fail_neg, __pyx_k_fail_neg, sizeof(__pyx_k_fail_neg), 0, 0, 1, 1}, - {&__pyx_n_s_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 0, 1, 1}, - {&__pyx_n_s_file_array, __pyx_k_file_array, sizeof(__pyx_k_file_array), 0, 0, 1, 1}, - {&__pyx_n_s_filename, __pyx_k_filename, sizeof(__pyx_k_filename), 0, 0, 1, 1}, - {&__pyx_n_s_filepath, __pyx_k_filepath, sizeof(__pyx_k_filepath), 0, 0, 1, 1}, - {&__pyx_n_s_find_lteq, __pyx_k_find_lteq, sizeof(__pyx_k_find_lteq), 0, 0, 1, 1}, - {&__pyx_n_s_find_rteq, __pyx_k_find_rteq, sizeof(__pyx_k_find_rteq), 0, 0, 1, 1}, - {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1}, - {&__pyx_n_s_floor, __pyx_k_floor, sizeof(__pyx_k_floor), 0, 0, 1, 1}, - {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, - {&__pyx_n_s_fractions, __pyx_k_fractions, sizeof(__pyx_k_fractions), 0, 0, 1, 1}, - {&__pyx_n_s_functools, __pyx_k_functools, sizeof(__pyx_k_functools), 0, 0, 1, 1}, - {&__pyx_n_s_generate_data, __pyx_k_generate_data, sizeof(__pyx_k_generate_data), 0, 0, 1, 1}, - {&__pyx_n_s_genexpr, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1}, - {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1}, - {&__pyx_n_s_groupby, __pyx_k_groupby, sizeof(__pyx_k_groupby), 0, 0, 1, 1}, - {&__pyx_n_s_high, __pyx_k_high, sizeof(__pyx_k_high), 0, 0, 1, 1}, - {&__pyx_n_s_high_bound, __pyx_k_high_bound, sizeof(__pyx_k_high_bound), 0, 0, 1, 1}, - {&__pyx_n_s_hist_data, __pyx_k_hist_data, sizeof(__pyx_k_hist_data), 0, 0, 1, 1}, - {&__pyx_n_s_histo_analysis, __pyx_k_histo_analysis, sizeof(__pyx_k_histo_analysis), 0, 0, 1, 1}, - {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, - {&__pyx_n_s_ids, __pyx_k_ids, sizeof(__pyx_k_ids), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_ind, __pyx_k_ind, sizeof(__pyx_k_ind), 0, 0, 1, 1}, - {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1}, - {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, - {&__pyx_n_s_init_device, __pyx_k_init_device, sizeof(__pyx_k_init_device), 0, 0, 1, 1}, - {&__pyx_kp_s_initial_type_T_is_bool, __pyx_k_initial_type_T_is_bool, sizeof(__pyx_k_initial_type_T_is_bool), 0, 0, 1, 0}, - {&__pyx_n_s_is_available, __pyx_k_is_available, sizeof(__pyx_k_is_available), 0, 0, 1, 1}, - {&__pyx_n_s_is_finite, __pyx_k_is_finite, sizeof(__pyx_k_is_finite), 0, 0, 1, 1}, - {&__pyx_n_s_isfinite, __pyx_k_isfinite, sizeof(__pyx_k_isfinite), 0, 0, 1, 1}, - {&__pyx_n_s_isfinite_2, __pyx_k_isfinite_2, sizeof(__pyx_k_isfinite_2), 0, 0, 1, 1}, - {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1}, - {&__pyx_n_s_itertools, __pyx_k_itertools, sizeof(__pyx_k_itertools), 0, 0, 1, 1}, - {&__pyx_n_s_j, __pyx_k_j, sizeof(__pyx_k_j), 0, 0, 1, 1}, - {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1}, - {&__pyx_n_s_l, __pyx_k_l, sizeof(__pyx_k_l), 0, 0, 1, 1}, - {&__pyx_n_s_lo, __pyx_k_lo, sizeof(__pyx_k_lo), 0, 0, 1, 1}, - {&__pyx_n_s_load_csv, __pyx_k_load_csv, sizeof(__pyx_k_load_csv), 0, 0, 1, 1}, - {&__pyx_n_s_log, __pyx_k_log, sizeof(__pyx_k_log), 0, 0, 1, 1}, - {&__pyx_n_s_log_regression, __pyx_k_log_regression, sizeof(__pyx_k_log_regression), 0, 0, 1, 1}, - {&__pyx_n_s_logic, __pyx_k_logic, sizeof(__pyx_k_logic), 0, 0, 1, 1}, - {&__pyx_n_s_low, __pyx_k_low, sizeof(__pyx_k_low), 0, 0, 1, 1}, - {&__pyx_n_s_low_bound, __pyx_k_low_bound, sizeof(__pyx_k_low_bound), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_map, __pyx_k_map, sizeof(__pyx_k_map), 0, 0, 1, 1}, - {&__pyx_n_s_math, __pyx_k_math, sizeof(__pyx_k_math), 0, 0, 1, 1}, - {&__pyx_n_s_matplotlib, __pyx_k_matplotlib, sizeof(__pyx_k_matplotlib), 0, 0, 1, 1}, - {&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1}, - {&__pyx_n_s_max_r2s, __pyx_k_max_r2s, sizeof(__pyx_k_max_r2s), 0, 0, 1, 1}, - {&__pyx_n_s_maxfreq, __pyx_k_maxfreq, sizeof(__pyx_k_maxfreq), 0, 0, 1, 1}, - {&__pyx_n_s_mean, __pyx_k_mean, sizeof(__pyx_k_mean), 0, 0, 1, 1}, - {&__pyx_n_s_mean_2, __pyx_k_mean_2, sizeof(__pyx_k_mean_2), 0, 0, 1, 1}, - {&__pyx_n_s_mean_derivative, __pyx_k_mean_derivative, sizeof(__pyx_k_mean_derivative), 0, 0, 1, 1}, - {&__pyx_kp_s_mean_requires_at_least_one_data, __pyx_k_mean_requires_at_least_one_data, sizeof(__pyx_k_mean_requires_at_least_one_data), 0, 0, 1, 0}, - {&__pyx_n_s_median, __pyx_k_median, sizeof(__pyx_k_median), 0, 0, 1, 1}, - {&__pyx_n_s_median_2, __pyx_k_median_2, sizeof(__pyx_k_median_2), 0, 0, 1, 1}, - {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, - {&__pyx_n_s_method, __pyx_k_method, sizeof(__pyx_k_method), 0, 0, 1, 1}, - {&__pyx_kp_s_method_error, __pyx_k_method_error, sizeof(__pyx_k_method_error), 0, 0, 1, 0}, - {&__pyx_n_s_metrics, __pyx_k_metrics, sizeof(__pyx_k_metrics), 0, 0, 1, 1}, - {&__pyx_n_s_min_overfit, __pyx_k_min_overfit, sizeof(__pyx_k_min_overfit), 0, 0, 1, 1}, - {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, - {&__pyx_n_s_mode_2, __pyx_k_mode_2, sizeof(__pyx_k_mode_2), 0, 0, 1, 1}, - {&__pyx_kp_s_mode_error, __pyx_k_mode_error, sizeof(__pyx_k_mode_error), 0, 0, 1, 0}, - {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, - {&__pyx_n_s_most_common, __pyx_k_most_common, sizeof(__pyx_k_most_common), 0, 0, 1, 1}, - {&__pyx_n_s_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 0, 0, 1, 1}, - {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1}, - {&__pyx_n_s_n_effect, __pyx_k_n_effect, sizeof(__pyx_k_n_effect), 0, 0, 1, 1}, - {&__pyx_n_s_n_id, __pyx_k_n_id, sizeof(__pyx_k_n_id), 0, 0, 1, 1}, - {&__pyx_n_s_n_logic, __pyx_k_n_logic, sizeof(__pyx_k_n_logic), 0, 0, 1, 1}, - {&__pyx_n_s_n_name, __pyx_k_n_name, sizeof(__pyx_k_n_name), 0, 0, 1, 1}, - {&__pyx_n_s_n_perim, __pyx_k_n_perim, sizeof(__pyx_k_n_perim), 0, 0, 1, 1}, - {&__pyx_n_s_n_pos, __pyx_k_n_pos, sizeof(__pyx_k_n_pos), 0, 0, 1, 1}, - {&__pyx_n_s_n_property, __pyx_k_n_property, sizeof(__pyx_k_n_property), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, - {&__pyx_n_s_names, __pyx_k_names, sizeof(__pyx_k_names), 0, 0, 1, 1}, - {&__pyx_n_s_nc_entities, __pyx_k_nc_entities, sizeof(__pyx_k_nc_entities), 0, 0, 1, 1}, - {&__pyx_n_s_nc_entities___init, __pyx_k_nc_entities___init, sizeof(__pyx_k_nc_entities___init), 0, 0, 1, 1}, - {&__pyx_n_s_nc_entities_append, __pyx_k_nc_entities_append, sizeof(__pyx_k_nc_entities_append), 0, 0, 1, 1}, - {&__pyx_n_s_nc_entities_debug, __pyx_k_nc_entities_debug, sizeof(__pyx_k_nc_entities_debug), 0, 0, 1, 1}, - {&__pyx_n_s_nc_entities_edit, __pyx_k_nc_entities_edit, sizeof(__pyx_k_nc_entities_edit), 0, 0, 1, 1}, - {&__pyx_kp_s_nc_entities_non_controlable_enti, __pyx_k_nc_entities_non_controlable_enti, sizeof(__pyx_k_nc_entities_non_controlable_enti), 0, 0, 1, 0}, - {&__pyx_n_s_nc_entities_regurgitate, __pyx_k_nc_entities_regurgitate, sizeof(__pyx_k_nc_entities_regurgitate), 0, 0, 1, 1}, - {&__pyx_n_s_nc_entities_search, __pyx_k_nc_entities_search, sizeof(__pyx_k_nc_entities_search), 0, 0, 1, 1}, - {&__pyx_kp_s_negative_sum_of_square_deviation, __pyx_k_negative_sum_of_square_deviation, sizeof(__pyx_k_negative_sum_of_square_deviation), 0, 0, 1, 0}, - {&__pyx_kp_s_negative_value, __pyx_k_negative_value, sizeof(__pyx_k_negative_value), 0, 0, 1, 0}, - {&__pyx_n_s_newline, __pyx_k_newline, sizeof(__pyx_k_newline), 0, 0, 1, 1}, - {&__pyx_kp_s_no_median_for_empty_data, __pyx_k_no_median_for_empty_data, sizeof(__pyx_k_no_median_for_empty_data), 0, 0, 1, 0}, - {&__pyx_kp_s_no_mode_for_empty_data, __pyx_k_no_mode_for_empty_data, sizeof(__pyx_k_no_mode_for_empty_data), 0, 0, 1, 0}, - {&__pyx_kp_s_no_unique_mode_found_d_equally_c, __pyx_k_no_unique_mode_found_d_equally_c, sizeof(__pyx_k_no_unique_mode_found_d_equally_c), 0, 0, 1, 0}, - {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, - {&__pyx_kp_s_np_log_z_np_log, __pyx_k_np_log_z_np_log, sizeof(__pyx_k_np_log_z_np_log), 0, 0, 1, 0}, - {&__pyx_kp_s_np_tanh, __pyx_k_np_tanh, sizeof(__pyx_k_np_tanh), 0, 0, 1, 0}, - {&__pyx_n_s_null, __pyx_k_null, sizeof(__pyx_k_null), 0, 0, 1, 1}, - {&__pyx_n_s_numbers, __pyx_k_numbers, sizeof(__pyx_k_numbers), 0, 0, 1, 1}, - {&__pyx_n_s_numerator, __pyx_k_numerator, sizeof(__pyx_k_numerator), 0, 0, 1, 1}, - {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, - {&__pyx_n_s_objectives, __pyx_k_objectives, sizeof(__pyx_k_objectives), 0, 0, 1, 1}, - {&__pyx_n_s_objectives___init, __pyx_k_objectives___init, sizeof(__pyx_k_objectives___init), 0, 0, 1, 1}, - {&__pyx_n_s_objectives_append, __pyx_k_objectives_append, sizeof(__pyx_k_objectives_append), 0, 0, 1, 1}, - {&__pyx_n_s_objectives_debug, __pyx_k_objectives_debug, sizeof(__pyx_k_objectives_debug), 0, 0, 1, 1}, - {&__pyx_n_s_objectives_edit, __pyx_k_objectives_edit, sizeof(__pyx_k_objectives_edit), 0, 0, 1, 1}, - {&__pyx_kp_s_objectives_has_atributes_names_i, __pyx_k_objectives_has_atributes_names_i, sizeof(__pyx_k_objectives_has_atributes_names_i), 0, 0, 1, 0}, - {&__pyx_n_s_objectives_regurgitate, __pyx_k_objectives_regurgitate, sizeof(__pyx_k_objectives_regurgitate), 0, 0, 1, 1}, - {&__pyx_n_s_objectives_search, __pyx_k_objectives_search, sizeof(__pyx_k_objectives_search), 0, 0, 1, 1}, - {&__pyx_n_s_obstacles, __pyx_k_obstacles, sizeof(__pyx_k_obstacles), 0, 0, 1, 1}, - {&__pyx_n_s_obstacles___init, __pyx_k_obstacles___init, sizeof(__pyx_k_obstacles___init), 0, 0, 1, 1}, - {&__pyx_n_s_obstacles_append, __pyx_k_obstacles_append, sizeof(__pyx_k_obstacles_append), 0, 0, 1, 1}, - {&__pyx_n_s_obstacles_debug, __pyx_k_obstacles_debug, sizeof(__pyx_k_obstacles_debug), 0, 0, 1, 1}, - {&__pyx_n_s_obstacles_edit, __pyx_k_obstacles_edit, sizeof(__pyx_k_obstacles_edit), 0, 0, 1, 1}, - {&__pyx_kp_s_obstacles_has_atributes_names_id, __pyx_k_obstacles_has_atributes_names_id, sizeof(__pyx_k_obstacles_has_atributes_names_id), 0, 0, 1, 0}, - {&__pyx_n_s_obstacles_regurgitate, __pyx_k_obstacles_regurgitate, sizeof(__pyx_k_obstacles_regurgitate), 0, 0, 1, 1}, - {&__pyx_n_s_obstacles_search, __pyx_k_obstacles_search, sizeof(__pyx_k_obstacles_search), 0, 0, 1, 1}, - {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1}, - {&__pyx_n_s_optimize_regression, __pyx_k_optimize_regression, sizeof(__pyx_k_optimize_regression), 0, 0, 1, 1}, - {&__pyx_n_s_overfit, __pyx_k_overfit, sizeof(__pyx_k_overfit), 0, 0, 1, 1}, - {&__pyx_n_s_p_value, __pyx_k_p_value, sizeof(__pyx_k_p_value), 0, 0, 1, 1}, - {&__pyx_n_s_pandas, __pyx_k_pandas, sizeof(__pyx_k_pandas), 0, 0, 1, 1}, - {&__pyx_n_s_partials, __pyx_k_partials, sizeof(__pyx_k_partials), 0, 0, 1, 1}, - {&__pyx_n_s_partials_get, __pyx_k_partials_get, sizeof(__pyx_k_partials_get), 0, 0, 1, 1}, - {&__pyx_n_s_perims, __pyx_k_perims, sizeof(__pyx_k_perims), 0, 0, 1, 1}, - {&__pyx_n_s_pi, __pyx_k_pi, sizeof(__pyx_k_pi), 0, 0, 1, 1}, - {&__pyx_n_s_point, __pyx_k_point, sizeof(__pyx_k_point), 0, 0, 1, 1}, - {&__pyx_n_s_poly_regression, __pyx_k_poly_regression, sizeof(__pyx_k_poly_regression), 0, 0, 1, 1}, - {&__pyx_n_s_polyfit, __pyx_k_polyfit, sizeof(__pyx_k_polyfit), 0, 0, 1, 1}, - {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1}, - {&__pyx_n_s_pos, __pyx_k_pos, sizeof(__pyx_k_pos), 0, 0, 1, 1}, - {&__pyx_n_s_position, __pyx_k_position, sizeof(__pyx_k_position), 0, 0, 1, 1}, - {&__pyx_n_s_power, __pyx_k_power, sizeof(__pyx_k_power), 0, 0, 1, 1}, - {&__pyx_n_s_pred_change, __pyx_k_pred_change, sizeof(__pyx_k_pred_change), 0, 0, 1, 1}, - {&__pyx_n_s_predictions, __pyx_k_predictions, sizeof(__pyx_k_predictions), 0, 0, 1, 1}, - {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, - {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1}, - {&__pyx_n_s_properties, __pyx_k_properties, sizeof(__pyx_k_properties), 0, 0, 1, 1}, - {&__pyx_n_s_q_str, __pyx_k_q_str, sizeof(__pyx_k_q_str), 0, 0, 1, 1}, - {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, - {&__pyx_n_s_r2_d2, __pyx_k_r2_d2, sizeof(__pyx_k_r2_d2), 0, 0, 1, 1}, - {&__pyx_n_s_r2_score, __pyx_k_r2_score, sizeof(__pyx_k_r2_score), 0, 0, 1, 1}, - {&__pyx_n_s_r2_test, __pyx_k_r2_test, sizeof(__pyx_k_r2_test), 0, 0, 1, 1}, - {&__pyx_n_s_r2_train, __pyx_k_r2_train, sizeof(__pyx_k_r2_train), 0, 0, 1, 1}, - {&__pyx_n_s_r2s, __pyx_k_r2s, sizeof(__pyx_k_r2s), 0, 0, 1, 1}, - {&__pyx_n_s_r_data, __pyx_k_r_data, sizeof(__pyx_k_r_data), 0, 0, 1, 1}, - {&__pyx_n_s_r_squared, __pyx_k_r_squared, sizeof(__pyx_k_r_squared), 0, 0, 1, 1}, - {&__pyx_n_s_randint, __pyx_k_randint, sizeof(__pyx_k_randint), 0, 0, 1, 1}, - {&__pyx_n_s_random, __pyx_k_random, sizeof(__pyx_k_random), 0, 0, 1, 1}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_range_2, __pyx_k_range_2, sizeof(__pyx_k_range_2), 0, 0, 1, 1}, - {&__pyx_n_s_reader, __pyx_k_reader, sizeof(__pyx_k_reader), 0, 0, 1, 1}, - {&__pyx_n_s_reg_eq, __pyx_k_reg_eq, sizeof(__pyx_k_reg_eq), 0, 0, 1, 1}, - {&__pyx_n_s_regurgitate, __pyx_k_regurgitate, sizeof(__pyx_k_regurgitate), 0, 0, 1, 1}, - {&__pyx_n_s_remove, __pyx_k_remove, sizeof(__pyx_k_remove), 0, 0, 1, 1}, - {&__pyx_n_s_resolution, __pyx_k_resolution, sizeof(__pyx_k_resolution), 0, 0, 1, 1}, - {&__pyx_kp_s_resolution_must_be_int, __pyx_k_resolution_must_be_int, sizeof(__pyx_k_resolution_must_be_int), 0, 0, 1, 0}, - {&__pyx_kp_s_returns_list_of_predicted_values, __pyx_k_returns_list_of_predicted_values, sizeof(__pyx_k_returns_list_of_predicted_values), 0, 0, 1, 0}, - {&__pyx_n_s_rms, __pyx_k_rms, sizeof(__pyx_k_rms), 0, 0, 1, 1}, - {&__pyx_n_s_rms_2, __pyx_k_rms_2, sizeof(__pyx_k_rms_2), 0, 0, 1, 1}, - {&__pyx_n_s_rms_test, __pyx_k_rms_test, sizeof(__pyx_k_rms_test), 0, 0, 1, 1}, - {&__pyx_n_s_rms_train, __pyx_k_rms_train, sizeof(__pyx_k_rms_train), 0, 0, 1, 1}, - {&__pyx_n_s_rmss, __pyx_k_rmss, sizeof(__pyx_k_rmss), 0, 0, 1, 1}, - {&__pyx_n_s_row, __pyx_k_row, sizeof(__pyx_k_row), 0, 0, 1, 1}, - {&__pyx_n_s_row_b_stats, __pyx_k_row_b_stats, sizeof(__pyx_k_row_b_stats), 0, 0, 1, 1}, - {&__pyx_n_s_row_histo, __pyx_k_row_histo, sizeof(__pyx_k_row_histo), 0, 0, 1, 1}, - {&__pyx_n_s_scipy, __pyx_k_scipy, sizeof(__pyx_k_scipy), 0, 0, 1, 1}, - {&__pyx_n_s_scipy_optimize, __pyx_k_scipy_optimize, sizeof(__pyx_k_scipy_optimize), 0, 0, 1, 1}, - {&__pyx_n_s_score, __pyx_k_score, sizeof(__pyx_k_score), 0, 0, 1, 1}, - {&__pyx_n_s_search, __pyx_k_search, sizeof(__pyx_k_search), 0, 0, 1, 1}, - {&__pyx_n_s_select_best_regression, __pyx_k_select_best_regression, sizeof(__pyx_k_select_best_regression), 0, 0, 1, 1}, - {&__pyx_n_s_selector, __pyx_k_selector, sizeof(__pyx_k_selector), 0, 0, 1, 1}, - {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, - {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1}, - {&__pyx_n_s_setting, __pyx_k_setting, sizeof(__pyx_k_setting), 0, 0, 1, 1}, - {&__pyx_n_s_sklearn, __pyx_k_sklearn, sizeof(__pyx_k_sklearn), 0, 0, 1, 1}, - {&__pyx_n_s_sorted, __pyx_k_sorted, sizeof(__pyx_k_sorted), 0, 0, 1, 1}, - {&__pyx_kp_s_specified_device_does_not_exist, __pyx_k_specified_device_does_not_exist, sizeof(__pyx_k_specified_device_does_not_exist), 0, 0, 1, 0}, - {&__pyx_n_s_sqrt, __pyx_k_sqrt, sizeof(__pyx_k_sqrt), 0, 0, 1, 1}, - {&__pyx_n_s_ss, __pyx_k_ss, sizeof(__pyx_k_ss), 0, 0, 1, 1}, - {&__pyx_n_s_ss_2, __pyx_k_ss_2, sizeof(__pyx_k_ss_2), 0, 0, 1, 1}, - {&__pyx_n_s_ss_locals_genexpr, __pyx_k_ss_locals_genexpr, sizeof(__pyx_k_ss_locals_genexpr), 0, 0, 1, 1}, - {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, - {&__pyx_n_s_start_a, __pyx_k_start_a, sizeof(__pyx_k_start_a), 0, 0, 1, 1}, - {&__pyx_n_s_start_g, __pyx_k_start_g, sizeof(__pyx_k_start_g), 0, 0, 1, 1}, - {&__pyx_n_s_stats, __pyx_k_stats, sizeof(__pyx_k_stats), 0, 0, 1, 1}, - {&__pyx_n_s_stdev, __pyx_k_stdev, sizeof(__pyx_k_stdev), 0, 0, 1, 1}, - {&__pyx_n_s_stdev_2, __pyx_k_stdev_2, sizeof(__pyx_k_stdev_2), 0, 0, 1, 1}, - {&__pyx_n_s_stdev_derivative, __pyx_k_stdev_derivative, sizeof(__pyx_k_stdev_derivative), 0, 0, 1, 1}, - {&__pyx_n_s_stdev_z_split, __pyx_k_stdev_z_split, sizeof(__pyx_k_stdev_z_split), 0, 0, 1, 1}, - {&__pyx_n_s_strip_data, __pyx_k_strip_data, sizeof(__pyx_k_strip_data), 0, 0, 1, 1}, - {&__pyx_n_s_sum, __pyx_k_sum, sizeof(__pyx_k_sum), 0, 0, 1, 1}, - {&__pyx_n_s_sum_2, __pyx_k_sum_2, sizeof(__pyx_k_sum_2), 0, 0, 1, 1}, - {&__pyx_n_s_sum_locals_genexpr, __pyx_k_sum_locals_genexpr, sizeof(__pyx_k_sum_locals_genexpr), 0, 0, 1, 1}, - {&__pyx_n_s_table, __pyx_k_table, sizeof(__pyx_k_table), 0, 0, 1, 1}, - {&__pyx_n_s_tanh, __pyx_k_tanh, sizeof(__pyx_k_tanh), 0, 0, 1, 1}, - {&__pyx_n_s_tanh_regression, __pyx_k_tanh_regression, sizeof(__pyx_k_tanh_regression), 0, 0, 1, 1}, - {&__pyx_n_s_tanh_regression_locals_tanh, __pyx_k_tanh_regression_locals_tanh, sizeof(__pyx_k_tanh_regression_locals_tanh), 0, 0, 1, 1}, - {&__pyx_n_s_targets, __pyx_k_targets, sizeof(__pyx_k_targets), 0, 0, 1, 1}, - {&__pyx_n_s_temp, __pyx_k_temp, sizeof(__pyx_k_temp), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1}, - {&__pyx_n_s_time, __pyx_k_time, sizeof(__pyx_k_time), 0, 0, 1, 1}, - {&__pyx_n_s_tolist, __pyx_k_tolist, sizeof(__pyx_k_tolist), 0, 0, 1, 1}, - {&__pyx_n_s_torch, __pyx_k_torch, sizeof(__pyx_k_torch), 0, 0, 1, 1}, - {&__pyx_n_s_total, __pyx_k_total, sizeof(__pyx_k_total), 0, 0, 1, 1}, - {&__pyx_n_s_total2, __pyx_k_total2, sizeof(__pyx_k_total2), 0, 0, 1, 1}, - {&__pyx_n_s_ttest_ind, __pyx_k_ttest_ind, sizeof(__pyx_k_ttest_ind), 0, 0, 1, 1}, - {&__pyx_n_s_typ, __pyx_k_typ, sizeof(__pyx_k_typ), 0, 0, 1, 1}, - {&__pyx_n_s_uniform, __pyx_k_uniform, sizeof(__pyx_k_uniform), 0, 0, 1, 1}, - {&__pyx_n_s_vals, __pyx_k_vals, sizeof(__pyx_k_vals), 0, 0, 1, 1}, - {&__pyx_kp_s_vals_append, __pyx_k_vals_append, sizeof(__pyx_k_vals_append), 0, 0, 1, 0}, - {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, - {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1}, - {&__pyx_n_s_var, __pyx_k_var, sizeof(__pyx_k_var), 0, 0, 1, 1}, - {&__pyx_n_s_variance, __pyx_k_variance, sizeof(__pyx_k_variance), 0, 0, 1, 1}, - {&__pyx_n_s_variance_2, __pyx_k_variance_2, sizeof(__pyx_k_variance_2), 0, 0, 1, 1}, - {&__pyx_kp_s_variance_requires_at_least_two_d, __pyx_k_variance_requires_at_least_two_d, sizeof(__pyx_k_variance_requires_at_least_two_d), 0, 0, 1, 0}, - {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1}, - {&__pyx_n_s_w, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1}, - {&__pyx_n_s_write, __pyx_k_write, sizeof(__pyx_k_write), 0, 0, 1, 1}, - {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1}, - {&__pyx_n_s_x_fit, __pyx_k_x_fit, sizeof(__pyx_k_x_fit), 0, 0, 1, 1}, - {&__pyx_n_s_x_norm, __pyx_k_x_norm, sizeof(__pyx_k_x_norm), 0, 0, 1, 1}, - {&__pyx_n_s_x_test, __pyx_k_x_test, sizeof(__pyx_k_x_test), 0, 0, 1, 1}, - {&__pyx_n_s_x_train, __pyx_k_x_train, sizeof(__pyx_k_x_train), 0, 0, 1, 1}, - {&__pyx_n_s_xbar, __pyx_k_xbar, sizeof(__pyx_k_xbar), 0, 0, 1, 1}, - {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1}, - {&__pyx_n_s_y_fit, __pyx_k_y_fit, sizeof(__pyx_k_y_fit), 0, 0, 1, 1}, - {&__pyx_n_s_y_norm, __pyx_k_y_norm, sizeof(__pyx_k_y_norm), 0, 0, 1, 1}, - {&__pyx_n_s_y_test, __pyx_k_y_test, sizeof(__pyx_k_y_test), 0, 0, 1, 1}, - {&__pyx_n_s_y_train, __pyx_k_y_train, sizeof(__pyx_k_y_train), 0, 0, 1, 1}, - {&__pyx_kp_s_z, __pyx_k_z, sizeof(__pyx_k_z), 0, 0, 1, 0}, - {&__pyx_n_s_z_2, __pyx_k_z_2, sizeof(__pyx_k_z_2), 0, 0, 1, 1}, - {&__pyx_kp_s_z_3, __pyx_k_z_3, sizeof(__pyx_k_z_3), 0, 0, 1, 0}, - {&__pyx_kp_s_z_4, __pyx_k_z_4, sizeof(__pyx_k_z_4), 0, 0, 1, 0}, - {&__pyx_n_s_z_normalize, __pyx_k_z_normalize, sizeof(__pyx_k_z_normalize), 0, 0, 1, 1}, - {&__pyx_n_s_z_score, __pyx_k_z_score, sizeof(__pyx_k_z_score), 0, 0, 1, 1}, - {&__pyx_n_s_z_split, __pyx_k_z_split, sizeof(__pyx_k_z_split), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 157, __pyx_L1_error) - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 206, __pyx_L1_error) - __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s_open); if (!__pyx_builtin_open) __PYX_ERR(0, 418, __pyx_L1_error) - __pyx_builtin_sorted = __Pyx_GetBuiltinName(__pyx_n_s_sorted); if (!__pyx_builtin_sorted) __PYX_ERR(0, 588, __pyx_L1_error) - __pyx_builtin_max = __Pyx_GetBuiltinName(__pyx_n_s_max); if (!__pyx_builtin_max) __PYX_ERR(0, 915, __pyx_L1_error) - __pyx_builtin_map = __Pyx_GetBuiltinName(__pyx_n_s_map); if (!__pyx_builtin_map) __PYX_ERR(0, 970, __pyx_L1_error) - __pyx_builtin_sum = __Pyx_GetBuiltinName(__pyx_n_s_sum); if (!__pyx_builtin_sum) __PYX_ERR(0, 979, __pyx_L1_error) - __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 986, __pyx_L1_error) - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 1018, __pyx_L1_error) - __pyx_builtin_OverflowError = __Pyx_GetBuiltinName(__pyx_n_s_OverflowError); if (!__pyx_builtin_OverflowError) __PYX_ERR(0, 1037, __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); - - /* "analysis.py":418 - * - * def load_csv(filepath): - * with open(filepath, newline='') as csvfile: # <<<<<<<<<<<<<< - * file_array = list(csv.reader(csvfile)) - * csvfile.close() - */ - __pyx_tuple__3 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - - /* "analysis.py":606 - * pred_change = mean_derivative - * - * predictions.append(float(hist_data[-1:][0]) + pred_change) # <<<<<<<<<<<<<< - * - * i = i + delta - */ - __pyx_slice__4 = PySlice_New(__pyx_int_neg_1, Py_None, Py_None); if (unlikely(!__pyx_slice__4)) __PYX_ERR(0, 606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_slice__4); - __Pyx_GIVEREF(__pyx_slice__4); - - /* "analysis.py":713 - * def tanh_regression(x, y): - * - * def tanh(x, a, b, c, d): # <<<<<<<<<<<<<< - * - * return a * np.tanh(b * (x - c)) + d - */ - __pyx_tuple__11 = PyTuple_Pack(5, __pyx_n_s_x, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_c, __pyx_n_s_d); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 713, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__11); - __Pyx_GIVEREF(__pyx_tuple__11); - __pyx_codeobj__12 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__11, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_tanh, 713, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__12)) __PYX_ERR(0, 713, __pyx_L1_error) - - /* "analysis.py":157 - * - * - * class error(ValueError): # <<<<<<<<<<<<<< - * pass - * - */ - __pyx_tuple__18 = PyTuple_Pack(1, __pyx_builtin_ValueError); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__18); - __Pyx_GIVEREF(__pyx_tuple__18); - - /* "analysis.py":161 - * - * - * def _init_device(setting, arg): # initiates computation device for ANNs # <<<<<<<<<<<<<< - * if setting == "cuda": - * try: - */ - __pyx_tuple__19 = PyTuple_Pack(2, __pyx_n_s_setting, __pyx_n_s_arg); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 161, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__19); - __Pyx_GIVEREF(__pyx_tuple__19); - __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__19, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_init_device, 161, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(0, 161, __pyx_L1_error) - - /* "analysis.py":184 - * c_logic = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("c_entities has attributes names, ids, positions, properties, and logic. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, nd array of properties, and nd array of logic") - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - */ - __pyx_tuple__21 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__21); - __Pyx_GIVEREF(__pyx_tuple__21); - __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_debug, 184, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 184, __pyx_L1_error) - - /* "analysis.py":188 - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - * - * def __init__(self, names, ids, pos, properties, logic): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - __pyx_tuple__23 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_names, __pyx_n_s_ids, __pyx_n_s_pos, __pyx_n_s_properties, __pyx_n_s_logic); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 188, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__23); - __Pyx_GIVEREF(__pyx_tuple__23); - __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(6, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_init, 188, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 188, __pyx_L1_error) - - /* "analysis.py":196 - * return None - * - * def append(self, n_name, n_id, n_pos, n_property, n_logic): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - __pyx_tuple__25 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_n_name, __pyx_n_s_n_id, __pyx_n_s_n_pos, __pyx_n_s_n_property, __pyx_n_s_n_logic); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__25); - __Pyx_GIVEREF(__pyx_tuple__25); - __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(6, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_append, 196, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 196, __pyx_L1_error) - - /* "analysis.py":204 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_logic): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_tuple__27 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_search, __pyx_n_s_n_name, __pyx_n_s_n_id, __pyx_n_s_n_pos, __pyx_n_s_n_property, __pyx_n_s_n_logic, __pyx_n_s_position, __pyx_n_s_i); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__27); - __Pyx_GIVEREF(__pyx_tuple__27); - __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(7, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_edit, 204, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 204, __pyx_L1_error) - - /* "analysis.py":226 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_tuple__29 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_search, __pyx_n_s_position, __pyx_n_s_i); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__29); - __Pyx_GIVEREF(__pyx_tuple__29); - __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_search, 226, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 226, __pyx_L1_error) - - /* "analysis.py":234 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_logic[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - * - */ - __pyx_tuple__31 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__31); - __Pyx_GIVEREF(__pyx_tuple__31); - __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_regurgitate, 234, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 234, __pyx_L1_error) - - /* "analysis.py":246 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("nc_entities (non-controlable entities) has attributes names, ids, positions, properties, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, 2d array of properties, and 2d array of effects.") - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - */ - __pyx_tuple__33 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 246, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__33); - __Pyx_GIVEREF(__pyx_tuple__33); - __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_debug, 246, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 246, __pyx_L1_error) - - /* "analysis.py":250 - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - * - * def __init__(self, names, ids, pos, properties, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - __pyx_tuple__35 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_names, __pyx_n_s_ids, __pyx_n_s_pos, __pyx_n_s_properties, __pyx_n_s_effects); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__35); - __Pyx_GIVEREF(__pyx_tuple__35); - __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(6, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_init, 250, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 250, __pyx_L1_error) - - /* "analysis.py":258 - * return None - * - * def append(self, n_name, n_id, n_pos, n_property, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - __pyx_tuple__37 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_n_name, __pyx_n_s_n_id, __pyx_n_s_n_pos, __pyx_n_s_n_property, __pyx_n_s_n_effect); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 258, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__37); - __Pyx_GIVEREF(__pyx_tuple__37); - __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(6, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_append, 258, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 258, __pyx_L1_error) - - /* "analysis.py":267 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_tuple__39 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_search, __pyx_n_s_n_name, __pyx_n_s_n_id, __pyx_n_s_n_pos, __pyx_n_s_n_property, __pyx_n_s_n_effect, __pyx_n_s_position, __pyx_n_s_i); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 267, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__39); - __Pyx_GIVEREF(__pyx_tuple__39); - __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(7, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_edit, 267, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 267, __pyx_L1_error) - - /* "analysis.py":289 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_tuple__41 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_search, __pyx_n_s_position, __pyx_n_s_i); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__41); - __Pyx_GIVEREF(__pyx_tuple__41); - __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_search, 289, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 289, __pyx_L1_error) - - /* "analysis.py":297 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - */ - __pyx_tuple__43 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__43); - __Pyx_GIVEREF(__pyx_tuple__43); - __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_regurgitate, 297, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(0, 297, __pyx_L1_error) - - /* "analysis.py":309 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("obstacles has atributes names, ids, positions, perimeters, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 3d array of perimeters, 2d array of effects.") - * return [self.c_names, self.c_ids, self.c_perim, self.c_effects] - */ - __pyx_tuple__45 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__45); - __Pyx_GIVEREF(__pyx_tuple__45); - __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_debug, 309, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 309, __pyx_L1_error) - - /* "analysis.py":313 - * return [self.c_names, self.c_ids, self.c_perim, self.c_effects] - * - * def __init__(self, names, ids, perims, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - __pyx_tuple__47 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_names, __pyx_n_s_ids, __pyx_n_s_perims, __pyx_n_s_effects); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 313, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__47); - __Pyx_GIVEREF(__pyx_tuple__47); - __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__47, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_init, 313, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(0, 313, __pyx_L1_error) - - /* "analysis.py":320 - * return None - * - * def append(self, n_name, n_id, n_perim, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - __pyx_tuple__49 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_n_name, __pyx_n_s_n_id, __pyx_n_s_n_perim, __pyx_n_s_n_effect); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(0, 320, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__49); - __Pyx_GIVEREF(__pyx_tuple__49); - __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__49, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_append, 320, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(0, 320, __pyx_L1_error) - - /* "analysis.py":327 - * return None - * - * def edit(self, search, n_name, n_id, n_perim, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_tuple__51 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_search, __pyx_n_s_n_name, __pyx_n_s_n_id, __pyx_n_s_n_perim, __pyx_n_s_n_effect, __pyx_n_s_position, __pyx_n_s_i); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(0, 327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__51); - __Pyx_GIVEREF(__pyx_tuple__51); - __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(6, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__51, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_edit, 327, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 327, __pyx_L1_error) - - /* "analysis.py":347 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_tuple__53 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_search, __pyx_n_s_position, __pyx_n_s_i); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__53); - __Pyx_GIVEREF(__pyx_tuple__53); - __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_search, 347, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 347, __pyx_L1_error) - - /* "analysis.py":355 - * return [self.c_names[position], self.c_ids[position], self.c_perim[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_perim, self.c_effects] - * - */ - __pyx_tuple__55 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 355, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__55); - __Pyx_GIVEREF(__pyx_tuple__55); - __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_regurgitate, 355, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 355, __pyx_L1_error) - - /* "analysis.py":366 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("objectives has atributes names, ids, positions, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 1d array of effects.") - * return [self.c_names, self.c_ids, self.c_pos, self.c_effects] - */ - __pyx_tuple__57 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 366, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__57); - __Pyx_GIVEREF(__pyx_tuple__57); - __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_debug, 366, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 366, __pyx_L1_error) - - /* "analysis.py":370 - * return [self.c_names, self.c_ids, self.c_pos, self.c_effects] - * - * def __init__(self, names, ids, pos, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - __pyx_tuple__59 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_names, __pyx_n_s_ids, __pyx_n_s_pos, __pyx_n_s_effects); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(0, 370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__59); - __Pyx_GIVEREF(__pyx_tuple__59); - __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_init, 370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(0, 370, __pyx_L1_error) - - /* "analysis.py":377 - * return None - * - * def append(self, n_name, n_id, n_pos, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - __pyx_tuple__61 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_n_name, __pyx_n_s_n_id, __pyx_n_s_n_pos, __pyx_n_s_n_effect); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(0, 377, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__61); - __Pyx_GIVEREF(__pyx_tuple__61); - __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_append, 377, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 377, __pyx_L1_error) - - /* "analysis.py":384 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * print(self.c_ids) - */ - __pyx_tuple__63 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_search, __pyx_n_s_n_name, __pyx_n_s_n_id, __pyx_n_s_n_pos, __pyx_n_s_n_effect, __pyx_n_s_position, __pyx_n_s_i); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(0, 384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__63); - __Pyx_GIVEREF(__pyx_tuple__63); - __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(6, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__63, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_edit, 384, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(0, 384, __pyx_L1_error) - - /* "analysis.py":405 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_tuple__65 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_search, __pyx_n_s_position, __pyx_n_s_i); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(0, 405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__65); - __Pyx_GIVEREF(__pyx_tuple__65); - __pyx_codeobj__66 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__65, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_search, 405, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__66)) __PYX_ERR(0, 405, __pyx_L1_error) - - /* "analysis.py":413 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_pos, self.c_effects] - * - */ - __pyx_tuple__67 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(0, 413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__67); - __Pyx_GIVEREF(__pyx_tuple__67); - __pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__67, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_regurgitate, 413, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(0, 413, __pyx_L1_error) - - /* "analysis.py":417 - * - * - * def load_csv(filepath): # <<<<<<<<<<<<<< - * with open(filepath, newline='') as csvfile: - * file_array = list(csv.reader(csvfile)) - */ - __pyx_tuple__69 = PyTuple_Pack(3, __pyx_n_s_filepath, __pyx_n_s_csvfile, __pyx_n_s_file_array); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(0, 417, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__69); - __Pyx_GIVEREF(__pyx_tuple__69); - __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_load_csv, 417, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(0, 417, __pyx_L1_error) - - /* "analysis.py":425 - * - * # data=array, mode = ['1d':1d_basic_stats, 'column':c_basic_stats, 'row':r_basic_stats], arg for mode 1 or mode 2 for column or row - * def basic_stats(data, method, arg): # <<<<<<<<<<<<<< - * - * if method == 'debug': - */ - __pyx_tuple__71 = PyTuple_Pack(13, __pyx_n_s_data, __pyx_n_s_method, __pyx_n_s_arg, __pyx_n_s_data_t, __pyx_n_s_i, __pyx_n_s_mean_2, __pyx_n_s_median_2, __pyx_n_s_mode_2, __pyx_n_s_stdev_2, __pyx_n_s_variance_2, __pyx_n_s_c_data, __pyx_n_s_c_data_sorted, __pyx_n_s_r_data); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(0, 425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__71); - __Pyx_GIVEREF(__pyx_tuple__71); - __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(3, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_basic_stats, 425, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 425, __pyx_L1_error) - - /* "analysis.py":511 - * - * # returns z score with inputs of point, mean and standard deviation of spread - * def z_score(point, mean, stdev): # <<<<<<<<<<<<<< - * score = (point - mean) / stdev - * return score - */ - __pyx_tuple__73 = PyTuple_Pack(4, __pyx_n_s_point, __pyx_n_s_mean, __pyx_n_s_stdev, __pyx_n_s_score); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__73); - __Pyx_GIVEREF(__pyx_tuple__73); - __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_z_score, 511, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 511, __pyx_L1_error) - - /* "analysis.py":517 - * - * # mode is either 'x' or 'y' or 'both' depending on the variable(s) to be normalized - * def z_normalize(x, y, mode): # <<<<<<<<<<<<<< - * - * x_norm = [] - */ - __pyx_tuple__75 = PyTuple_Pack(13, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_mode, __pyx_n_s_x_norm, __pyx_n_s_y_norm, __pyx_n_s_mean, __pyx_n_s_stdev, __pyx_n_s_mean_2, __pyx_n_s_median_2, __pyx_n_s_mode_2, __pyx_n_s_stdev_2, __pyx_n_s_variance_2, __pyx_n_s_i); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 517, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__75); - __Pyx_GIVEREF(__pyx_tuple__75); - __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(3, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_z_normalize, 517, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 517, __pyx_L1_error) - - /* "analysis.py":560 - * - * # returns n-th percentile of spread given mean, standard deviation, lower z-score, and upper z-score - * def stdev_z_split(mean, stdev, delta, low_bound, high_bound): # <<<<<<<<<<<<<< - * - * z_split = [] - */ - __pyx_tuple__77 = PyTuple_Pack(7, __pyx_n_s_mean, __pyx_n_s_stdev, __pyx_n_s_delta, __pyx_n_s_low_bound, __pyx_n_s_high_bound, __pyx_n_s_z_split, __pyx_n_s_i); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__77); - __Pyx_GIVEREF(__pyx_tuple__77); - __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_stdev_z_split, 560, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 560, __pyx_L1_error) - - /* "analysis.py":575 - * - * - * def histo_analysis(hist_data, delta, low_bound, high_bound): # <<<<<<<<<<<<<< - * - * if hist_data == 'debug': - */ - __pyx_tuple__79 = PyTuple_Pack(11, __pyx_n_s_hist_data, __pyx_n_s_delta, __pyx_n_s_low_bound, __pyx_n_s_high_bound, __pyx_n_s_derivative, __pyx_n_s_i, __pyx_n_s_derivative_sorted, __pyx_n_s_mean_derivative, __pyx_n_s_stdev_derivative, __pyx_n_s_predictions, __pyx_n_s_pred_change); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(0, 575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__79); - __Pyx_GIVEREF(__pyx_tuple__79); - __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_histo_analysis, 575, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(0, 575, __pyx_L1_error) - - /* "analysis.py":613 - * - * - * def poly_regression(x, y, power): # <<<<<<<<<<<<<< - * - * if x == "null": # if x is 'null', then x will be filled with integer points between 1 and the size of y - */ - __pyx_tuple__81 = PyTuple_Pack(10, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_power, __pyx_n_s_i, __pyx_n_s_reg_eq, __pyx_n_s_eq_str, __pyx_n_s_vals, __pyx_n_s_z_2, __pyx_n_s_rms, __pyx_n_s_r2_d2); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(0, 613, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__81); - __Pyx_GIVEREF(__pyx_tuple__81); - __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(3, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_poly_regression, 613, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(0, 613, __pyx_L1_error) - - /* "analysis.py":649 - * - * - * def log_regression(x, y, base): # <<<<<<<<<<<<<< - * - * x_fit = [] - */ - __pyx_tuple__83 = PyTuple_Pack(11, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_base, __pyx_n_s_x_fit, __pyx_n_s_i, __pyx_n_s_reg_eq, __pyx_n_s_q_str, __pyx_n_s_vals, __pyx_n_s_z_2, __pyx_n_s_rms, __pyx_n_s_r2_d2); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(0, 649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__83); - __Pyx_GIVEREF(__pyx_tuple__83); - __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_log_regression, 649, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(0, 649, __pyx_L1_error) - - /* "analysis.py":680 - * - * - * def exp_regression(x, y, base): # <<<<<<<<<<<<<< - * - * y_fit = [] - */ - __pyx_tuple__85 = PyTuple_Pack(11, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_base, __pyx_n_s_y_fit, __pyx_n_s_i, __pyx_n_s_reg_eq, __pyx_n_s_eq_str, __pyx_n_s_vals, __pyx_n_s_z_2, __pyx_n_s_rms, __pyx_n_s_r2_d2); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(0, 680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__85); - __Pyx_GIVEREF(__pyx_tuple__85); - __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_exp_regression, 680, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(0, 680, __pyx_L1_error) - - /* "analysis.py":711 - * - * - * def tanh_regression(x, y): # <<<<<<<<<<<<<< - * - * def tanh(x, a, b, c, d): - */ - __pyx_tuple__87 = PyTuple_Pack(11, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_tanh, __pyx_n_s_tanh, __pyx_n_s_reg_eq, __pyx_n_s_eq_str, __pyx_n_s_vals, __pyx_n_s_i, __pyx_n_s_z_2, __pyx_n_s_rms, __pyx_n_s_r2_d2); if (unlikely(!__pyx_tuple__87)) __PYX_ERR(0, 711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__87); - __Pyx_GIVEREF(__pyx_tuple__87); - __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(2, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_tanh_regression, 711, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(0, 711, __pyx_L1_error) - - /* "analysis.py":735 - * - * - * def r_squared(predictions, targets): # assumes equal size inputs # <<<<<<<<<<<<<< - * - * return metrics.r2_score(np.array(targets), np.array(predictions)) - */ - __pyx_tuple__89 = PyTuple_Pack(2, __pyx_n_s_predictions, __pyx_n_s_targets); if (unlikely(!__pyx_tuple__89)) __PYX_ERR(0, 735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__89); - __Pyx_GIVEREF(__pyx_tuple__89); - __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__89, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_r_squared, 735, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(0, 735, __pyx_L1_error) - - /* "analysis.py":740 - * - * - * def rms(predictions, targets): # assumes equal size inputs # <<<<<<<<<<<<<< - * - * _sum = 0 - */ - __pyx_tuple__91 = PyTuple_Pack(4, __pyx_n_s_predictions, __pyx_n_s_targets, __pyx_n_s_sum_2, __pyx_n_s_i); if (unlikely(!__pyx_tuple__91)) __PYX_ERR(0, 740, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__91); - __Pyx_GIVEREF(__pyx_tuple__91); - __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__91, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_rms_2, 740, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(0, 740, __pyx_L1_error) - - /* "analysis.py":750 - * - * - * def calc_overfit(equation, rms_train, r2_train, x_test, y_test): # <<<<<<<<<<<<<< - * - * # performance overfit = performance(train) - performance(test) where performance is r^2 - */ - __pyx_tuple__93 = PyTuple_Pack(10, __pyx_n_s_equation, __pyx_n_s_rms_train, __pyx_n_s_r2_train, __pyx_n_s_x_test, __pyx_n_s_y_test, __pyx_n_s_vals, __pyx_n_s_i, __pyx_n_s_z_2, __pyx_n_s_r2_test, __pyx_n_s_rms_test); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(0, 750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__93); - __Pyx_GIVEREF(__pyx_tuple__93); - __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(5, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_calc_overfit, 750, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(0, 750, __pyx_L1_error) - - /* "analysis.py":769 - * - * - * def strip_data(data, mode): # <<<<<<<<<<<<<< - * - * if mode == "adam": # x is the row number, y are the data - */ - __pyx_tuple__95 = PyTuple_Pack(2, __pyx_n_s_data, __pyx_n_s_mode); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(0, 769, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__95); - __Pyx_GIVEREF(__pyx_tuple__95); - __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_strip_data, 769, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(0, 769, __pyx_L1_error) - - /* "analysis.py":782 - * - * # _range in poly regression is the range of powers tried, and in log/exp it is the inverse of the stepsize taken from -1000 to 1000 - * def optimize_regression(x, y, _range, resolution): # <<<<<<<<<<<<<< - * # usage not: for demonstration purpose only, performance is shit - * if type(resolution) != int: - */ - __pyx_tuple__97 = PyTuple_Pack(15, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_range_2, __pyx_n_s_resolution, __pyx_n_s_x_train, __pyx_n_s_y_train, __pyx_n_s_i, __pyx_n_s_x_test, __pyx_n_s_y_test, __pyx_n_s_index, __pyx_n_s_eqs, __pyx_n_s_rmss, __pyx_n_s_r2s, __pyx_n_s_z_2, __pyx_n_s_overfit); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(0, 782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__97); - __Pyx_GIVEREF(__pyx_tuple__97); - __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(4, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__97, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_optimize_regression, 782, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(0, 782, __pyx_L1_error) - - /* "analysis.py":872 - * - * - * def select_best_regression(eqs, rmss, r2s, overfit, selector): # <<<<<<<<<<<<<< - * - * b_eq = "" - */ - __pyx_tuple__99 = PyTuple_Pack(10, __pyx_n_s_eqs, __pyx_n_s_rmss, __pyx_n_s_r2s, __pyx_n_s_overfit, __pyx_n_s_selector, __pyx_n_s_b_eq, __pyx_n_s_b_rms, __pyx_n_s_b_r2, __pyx_n_s_b_overfit, __pyx_n_s_ind); if (unlikely(!__pyx_tuple__99)) __PYX_ERR(0, 872, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__99); - __Pyx_GIVEREF(__pyx_tuple__99); - __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(5, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__99, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_select_best_regression, 872, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(0, 872, __pyx_L1_error) - - /* "analysis.py":901 - * - * - * def p_value(x, y): # takes 2 1d arrays # <<<<<<<<<<<<<< - * - * return stats.ttest_ind(x, y)[1] - */ - __pyx_tuple__101 = PyTuple_Pack(2, __pyx_n_s_x, __pyx_n_s_y); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(0, 901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__101); - __Pyx_GIVEREF(__pyx_tuple__101); - __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_p_value, 901, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(0, 901, __pyx_L1_error) - - /* "analysis.py":907 - * - * # assumes that rows are the independent variable and columns are the dependant. also assumes that time flows from lowest column to highest column. - * def basic_analysis(data): # <<<<<<<<<<<<<< - * - * row = len(data) - */ - __pyx_tuple__103 = PyTuple_Pack(8, __pyx_n_s_data, __pyx_n_s_row, __pyx_n_s_column, __pyx_n_s_i, __pyx_n_s_column_max, __pyx_n_s_row_b_stats, __pyx_n_s_row_histo, __pyx_n_s_column_b_stats); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(0, 907, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__103); - __Pyx_GIVEREF(__pyx_tuple__103); - __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__103, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_basic_analysis, 907, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(0, 907, __pyx_L1_error) - - /* "analysis.py":931 - * - * - * def benchmark(x, y): # <<<<<<<<<<<<<< - * - * start_g = time.time() - */ - __pyx_tuple__105 = PyTuple_Pack(6, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_start_g, __pyx_n_s_end_g, __pyx_n_s_start_a, __pyx_n_s_end_a); if (unlikely(!__pyx_tuple__105)) __PYX_ERR(0, 931, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__105); - __Pyx_GIVEREF(__pyx_tuple__105); - __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_benchmark, 931, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(0, 931, __pyx_L1_error) - - /* "analysis.py":944 - * - * - * def generate_data(filename, x, y, low, high): # <<<<<<<<<<<<<< - * - * file = open(filename, "w") - */ - __pyx_tuple__107 = PyTuple_Pack(9, __pyx_n_s_filename, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_low, __pyx_n_s_high, __pyx_n_s_file, __pyx_n_s_i, __pyx_n_s_temp, __pyx_n_s_j); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(0, 944, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__107); - __Pyx_GIVEREF(__pyx_tuple__107); - __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(5, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_generate_data, 944, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(0, 944, __pyx_L1_error) - - /* "analysis.py":958 - * - * - * class StatisticsError(ValueError): # <<<<<<<<<<<<<< - * pass - * - */ - __pyx_tuple__109 = PyTuple_Pack(1, __pyx_builtin_ValueError); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(0, 958, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__109); - __Pyx_GIVEREF(__pyx_tuple__109); - - /* "analysis.py":962 - * - * - * def _sum(data, start=0): # <<<<<<<<<<<<<< - * count = 0 - * n, d = _exact_ratio(start) - */ - __pyx_tuple__110 = PyTuple_Pack(13, __pyx_n_s_data, __pyx_n_s_start, __pyx_n_s_count, __pyx_n_s_n, __pyx_n_s_d, __pyx_n_s_partials, __pyx_n_s_partials_get, __pyx_n_s_T, __pyx_n_s_typ, __pyx_n_s_values, __pyx_n_s_total, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__110)) __PYX_ERR(0, 962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__110); - __Pyx_GIVEREF(__pyx_tuple__110); - __pyx_codeobj__111 = (PyObject*)__Pyx_PyCode_New(2, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_sum_2, 962, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__111)) __PYX_ERR(0, 962, __pyx_L1_error) - __pyx_tuple__112 = PyTuple_Pack(1, ((PyObject *)__pyx_int_0)); if (unlikely(!__pyx_tuple__112)) __PYX_ERR(0, 962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__112); - __Pyx_GIVEREF(__pyx_tuple__112); - - /* "analysis.py":983 - * - * - * def _isfinite(x): # <<<<<<<<<<<<<< - * try: - * return x.is_finite() # Likely a Decimal. - */ - __pyx_tuple__113 = PyTuple_Pack(1, __pyx_n_s_x); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(0, 983, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__113); - __Pyx_GIVEREF(__pyx_tuple__113); - __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__113, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_isfinite, 983, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(0, 983, __pyx_L1_error) - - /* "analysis.py":990 - * - * - * def _coerce(T, S): # <<<<<<<<<<<<<< - * - * assert T is not bool, "initial type T is bool" - */ - __pyx_tuple__115 = PyTuple_Pack(3, __pyx_n_s_T, __pyx_n_s_S, __pyx_n_s_msg); if (unlikely(!__pyx_tuple__115)) __PYX_ERR(0, 990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__115); - __Pyx_GIVEREF(__pyx_tuple__115); - __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__115, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_coerce, 990, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(0, 990, __pyx_L1_error) - - /* "analysis.py":1021 - * - * - * def _exact_ratio(x): # <<<<<<<<<<<<<< - * - * try: - */ - __pyx_tuple__117 = PyTuple_Pack(2, __pyx_n_s_x, __pyx_n_s_msg); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(0, 1021, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__117); - __Pyx_GIVEREF(__pyx_tuple__117); - __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_exact_ratio, 1021, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(0, 1021, __pyx_L1_error) - - /* "analysis.py":1045 - * - * - * def _convert(value, T): # <<<<<<<<<<<<<< - * - * if type(value) is T: - */ - __pyx_tuple__119 = PyTuple_Pack(2, __pyx_n_s_value, __pyx_n_s_T); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(0, 1045, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__119); - __Pyx_GIVEREF(__pyx_tuple__119); - __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_convert, 1045, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(0, 1045, __pyx_L1_error) - - /* "analysis.py":1062 - * - * - * def _counts(data): # <<<<<<<<<<<<<< - * - * table = collections.Counter(iter(data)).most_common() - */ - __pyx_tuple__121 = PyTuple_Pack(4, __pyx_n_s_data, __pyx_n_s_table, __pyx_n_s_maxfreq, __pyx_n_s_i); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(0, 1062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__121); - __Pyx_GIVEREF(__pyx_tuple__121); - __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_counts, 1062, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(0, 1062, __pyx_L1_error) - - /* "analysis.py":1076 - * - * - * def _find_lteq(a, x): # <<<<<<<<<<<<<< - * - * i = bisect_left(a, x) - */ - __pyx_tuple__123 = PyTuple_Pack(3, __pyx_n_s_a, __pyx_n_s_x, __pyx_n_s_i); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(0, 1076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__123); - __Pyx_GIVEREF(__pyx_tuple__123); - __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_find_lteq, 1076, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(0, 1076, __pyx_L1_error) - - /* "analysis.py":1084 - * - * - * def _find_rteq(a, l, x): # <<<<<<<<<<<<<< - * - * i = bisect_right(a, x, lo=l) - */ - __pyx_tuple__125 = PyTuple_Pack(4, __pyx_n_s_a, __pyx_n_s_l, __pyx_n_s_x, __pyx_n_s_i); if (unlikely(!__pyx_tuple__125)) __PYX_ERR(0, 1084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__125); - __Pyx_GIVEREF(__pyx_tuple__125); - __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__125, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_find_rteq, 1084, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(0, 1084, __pyx_L1_error) - - /* "analysis.py":1092 - * - * - * def _fail_neg(values, errmsg='negative value'): # <<<<<<<<<<<<<< - * - * for x in values: - */ - __pyx_tuple__127 = PyTuple_Pack(3, __pyx_n_s_values, __pyx_n_s_errmsg, __pyx_n_s_x); if (unlikely(!__pyx_tuple__127)) __PYX_ERR(0, 1092, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__127); - __Pyx_GIVEREF(__pyx_tuple__127); - __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__127, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_fail_neg, 1092, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(0, 1092, __pyx_L1_error) - __pyx_tuple__128 = PyTuple_Pack(1, ((PyObject*)__pyx_kp_s_negative_value)); if (unlikely(!__pyx_tuple__128)) __PYX_ERR(0, 1092, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__128); - __Pyx_GIVEREF(__pyx_tuple__128); - - /* "analysis.py":1100 - * - * - * def mean(data): # <<<<<<<<<<<<<< - * - * if iter(data) is data: - */ - __pyx_tuple__129 = PyTuple_Pack(5, __pyx_n_s_data, __pyx_n_s_n, __pyx_n_s_T, __pyx_n_s_total, __pyx_n_s_count); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(0, 1100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__129); - __Pyx_GIVEREF(__pyx_tuple__129); - __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__129, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_mean, 1100, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(0, 1100, __pyx_L1_error) - - /* "analysis.py":1112 - * - * - * def median(data): # <<<<<<<<<<<<<< - * - * data = sorted(data) - */ - __pyx_tuple__131 = PyTuple_Pack(3, __pyx_n_s_data, __pyx_n_s_n, __pyx_n_s_i); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(0, 1112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__131); - __Pyx_GIVEREF(__pyx_tuple__131); - __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__131, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_median, 1112, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(0, 1112, __pyx_L1_error) - - /* "analysis.py":1125 - * - * - * def mode(data): # <<<<<<<<<<<<<< - * - * table = _counts(data) - */ - __pyx_tuple__133 = PyTuple_Pack(2, __pyx_n_s_data, __pyx_n_s_table); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(0, 1125, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__133); - __Pyx_GIVEREF(__pyx_tuple__133); - __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__133, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_mode, 1125, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(0, 1125, __pyx_L1_error) - - /* "analysis.py":1138 - * - * - * def _ss(data, c=None): # <<<<<<<<<<<<<< - * - * if c is None: - */ - __pyx_tuple__135 = PyTuple_Pack(11, __pyx_n_s_data, __pyx_n_s_c, __pyx_n_s_T, __pyx_n_s_total, __pyx_n_s_count, __pyx_n_s_U, __pyx_n_s_total2, __pyx_n_s_count2, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__135)) __PYX_ERR(0, 1138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__135); - __Pyx_GIVEREF(__pyx_tuple__135); - __pyx_codeobj__136 = (PyObject*)__Pyx_PyCode_New(2, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__135, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_ss, 1138, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__136)) __PYX_ERR(0, 1138, __pyx_L1_error) - __pyx_tuple__137 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__137)) __PYX_ERR(0, 1138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__137); - __Pyx_GIVEREF(__pyx_tuple__137); - - /* "analysis.py":1151 - * - * - * def variance(data, xbar=None): # <<<<<<<<<<<<<< - * - * if iter(data) is data: - */ - __pyx_tuple__138 = PyTuple_Pack(5, __pyx_n_s_data, __pyx_n_s_xbar, __pyx_n_s_n, __pyx_n_s_T, __pyx_n_s_ss_2); if (unlikely(!__pyx_tuple__138)) __PYX_ERR(0, 1151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__138); - __Pyx_GIVEREF(__pyx_tuple__138); - __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_variance, 1151, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(0, 1151, __pyx_L1_error) - __pyx_tuple__140 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__140)) __PYX_ERR(0, 1151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__140); - __Pyx_GIVEREF(__pyx_tuple__140); - - /* "analysis.py":1162 - * - * - * def stdev(data, xbar=None): # <<<<<<<<<<<<<< - * - * var = variance(data, xbar) - */ - __pyx_tuple__141 = PyTuple_Pack(3, __pyx_n_s_data, __pyx_n_s_xbar, __pyx_n_s_var); if (unlikely(!__pyx_tuple__141)) __PYX_ERR(0, 1162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__141); - __Pyx_GIVEREF(__pyx_tuple__141); - __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__141, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_analysis_py, __pyx_n_s_stdev, 1162, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(0, 1162, __pyx_L1_error) - __pyx_tuple__143 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(0, 1162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__143); - __Pyx_GIVEREF(__pyx_tuple__143); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { - __pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type; - __pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type; - __pyx_umethod_PyList_Type_remove.type = (PyObject*)&PyList_Type; - if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); - __pyx_float_0_67449 = PyFloat_FromDouble(0.67449); if (unlikely(!__pyx_float_0_67449)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_float_neg_0_5 = PyFloat_FromDouble(-0.5); if (unlikely(!__pyx_float_neg_0_5)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_float_neg_0_67449 = PyFloat_FromDouble(-0.67449); if (unlikely(!__pyx_float_neg_0_67449)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_100 = PyInt_FromLong(100); if (unlikely(!__pyx_int_100)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_neg_10 = PyInt_FromLong(-10); if (unlikely(!__pyx_int_neg_10)) __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 ---*/ - if (PyType_Ready(&__pyx_type_8analysis___pyx_scope_struct___sum) < 0) __PYX_ERR(0, 962, __pyx_L1_error) - __pyx_type_8analysis___pyx_scope_struct___sum.tp_print = 0; - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8analysis___pyx_scope_struct___sum.tp_dictoffset && __pyx_type_8analysis___pyx_scope_struct___sum.tp_getattro == PyObject_GenericGetAttr)) { - __pyx_type_8analysis___pyx_scope_struct___sum.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; - } - __pyx_ptype_8analysis___pyx_scope_struct___sum = &__pyx_type_8analysis___pyx_scope_struct___sum; - if (PyType_Ready(&__pyx_type_8analysis___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(0, 979, __pyx_L1_error) - __pyx_type_8analysis___pyx_scope_struct_1_genexpr.tp_print = 0; - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8analysis___pyx_scope_struct_1_genexpr.tp_dictoffset && __pyx_type_8analysis___pyx_scope_struct_1_genexpr.tp_getattro == PyObject_GenericGetAttr)) { - __pyx_type_8analysis___pyx_scope_struct_1_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; - } - __pyx_ptype_8analysis___pyx_scope_struct_1_genexpr = &__pyx_type_8analysis___pyx_scope_struct_1_genexpr; - if (PyType_Ready(&__pyx_type_8analysis___pyx_scope_struct_2__fail_neg) < 0) __PYX_ERR(0, 1092, __pyx_L1_error) - __pyx_type_8analysis___pyx_scope_struct_2__fail_neg.tp_print = 0; - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8analysis___pyx_scope_struct_2__fail_neg.tp_dictoffset && __pyx_type_8analysis___pyx_scope_struct_2__fail_neg.tp_getattro == PyObject_GenericGetAttr)) { - __pyx_type_8analysis___pyx_scope_struct_2__fail_neg.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; - } - __pyx_ptype_8analysis___pyx_scope_struct_2__fail_neg = &__pyx_type_8analysis___pyx_scope_struct_2__fail_neg; - if (PyType_Ready(&__pyx_type_8analysis___pyx_scope_struct_3__ss) < 0) __PYX_ERR(0, 1138, __pyx_L1_error) - __pyx_type_8analysis___pyx_scope_struct_3__ss.tp_print = 0; - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8analysis___pyx_scope_struct_3__ss.tp_dictoffset && __pyx_type_8analysis___pyx_scope_struct_3__ss.tp_getattro == PyObject_GenericGetAttr)) { - __pyx_type_8analysis___pyx_scope_struct_3__ss.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; - } - __pyx_ptype_8analysis___pyx_scope_struct_3__ss = &__pyx_type_8analysis___pyx_scope_struct_3__ss; - if (PyType_Ready(&__pyx_type_8analysis___pyx_scope_struct_4_genexpr) < 0) __PYX_ERR(0, 1142, __pyx_L1_error) - __pyx_type_8analysis___pyx_scope_struct_4_genexpr.tp_print = 0; - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8analysis___pyx_scope_struct_4_genexpr.tp_dictoffset && __pyx_type_8analysis___pyx_scope_struct_4_genexpr.tp_getattro == PyObject_GenericGetAttr)) { - __pyx_type_8analysis___pyx_scope_struct_4_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; - } - __pyx_ptype_8analysis___pyx_scope_struct_4_genexpr = &__pyx_type_8analysis___pyx_scope_struct_4_genexpr; - if (PyType_Ready(&__pyx_type_8analysis___pyx_scope_struct_5_genexpr) < 0) __PYX_ERR(0, 1144, __pyx_L1_error) - __pyx_type_8analysis___pyx_scope_struct_5_genexpr.tp_print = 0; - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8analysis___pyx_scope_struct_5_genexpr.tp_dictoffset && __pyx_type_8analysis___pyx_scope_struct_5_genexpr.tp_getattro == PyObject_GenericGetAttr)) { - __pyx_type_8analysis___pyx_scope_struct_5_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; - } - __pyx_ptype_8analysis___pyx_scope_struct_5_genexpr = &__pyx_type_8analysis___pyx_scope_struct_5_genexpr; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -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; -} - - -#if PY_MAJOR_VERSION < 3 -#ifdef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC void -#else -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#endif -#else -#ifdef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC PyObject * -#else -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#endif -#endif - - -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC initanalysis(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC initanalysis(void) -#else -__Pyx_PyMODINIT_FUNC PyInit_analysis(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC PyInit_analysis(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { - #if PY_VERSION_HEX >= 0x030700A1 - 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)) - #else - 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)) - #endif - { - 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_analysis(PyObject *__pyx_pyinit_module) -#endif -#endif -{ - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { - if (__pyx_m == __pyx_pyinit_module) return 0; - PyErr_SetString(PyExc_RuntimeError, "Module 'analysis' has already been imported. Re-initialisation is not supported."); - return -1; - } - #elif PY_MAJOR_VERSION >= 3 - if (__pyx_m) return __Pyx_NewRef(__pyx_m); - #endif - #if CYTHON_REFNANNY -__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"); -} -#endif - __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_analysis(void)", 0); - if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #ifdef __Pxy_PyFrame_Initialize_Offsets - __Pxy_PyFrame_Initialize_Offsets(); - #endif - __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) - #ifdef __Pyx_CyFunction_USED - if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_FusedFunction_USED - if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Coroutine_USED - if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Generator_USED - if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_AsyncGen_USED - if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_StopAsyncIteration_USED - if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ - PyEval_InitThreads(); - #endif - #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; - Py_INCREF(__pyx_m); - #else - #if PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4("analysis", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); - #else - __pyx_m = PyModule_Create(&__pyx_moduledef); - #endif - if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - __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) - __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) - #if CYTHON_COMPILING_IN_PYPY - Py_INCREF(__pyx_b); - #endif - 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 PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) - if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - if (__pyx_module_is_main_analysis) { - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - } - #if PY_MAJOR_VERSION >= 3 - { - PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) - if (!PyDict_GetItemString(modules, "analysis")) { - if (unlikely(PyDict_SetItemString(modules, "analysis", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - } - } - #endif - /*--- 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(); - if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; - (void)__Pyx_modinit_type_import_code(); - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - - /* "analysis.py":10 - * # setup: - * - * __version__ = "1.0.8.005" # <<<<<<<<<<<<<< - * - * # changelog should be viewed using print(analysis.__changelog__) - */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_version, __pyx_kp_s_1_0_8_005) < 0) __PYX_ERR(0, 10, __pyx_L1_error) - - /* "analysis.py":13 - * - * # changelog should be viewed using print(analysis.__changelog__) - * __changelog__ = """changelog: # <<<<<<<<<<<<<< - * 1.0.8.005: - * - minor fixes - */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_changelog, __pyx_kp_s_changelog_1_0_8_005_minor_fixes) < 0) __PYX_ERR(0, 13, __pyx_L1_error) - - /* "analysis.py":102 - * - * __author__ = ( - * "Arthur Lu , " # <<<<<<<<<<<<<< - * "Jacob Levine ," - * ) - */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_author, __pyx_kp_s_Arthur_Lu_arthurlu_ttic_edu_Jaco) < 0) __PYX_ERR(0, 101, __pyx_L1_error) - - /* "analysis.py":106 - * ) - * - * __all__ = [ # <<<<<<<<<<<<<< - * '_init_device', - * 'c_entities', - */ - __pyx_t_1 = PyList_New(21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_n_s_init_device); - __Pyx_GIVEREF(__pyx_n_s_init_device); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_init_device); - __Pyx_INCREF(__pyx_n_s_c_entities); - __Pyx_GIVEREF(__pyx_n_s_c_entities); - PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_c_entities); - __Pyx_INCREF(__pyx_n_s_nc_entities); - __Pyx_GIVEREF(__pyx_n_s_nc_entities); - PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_nc_entities); - __Pyx_INCREF(__pyx_n_s_obstacles); - __Pyx_GIVEREF(__pyx_n_s_obstacles); - PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_obstacles); - __Pyx_INCREF(__pyx_n_s_objectives); - __Pyx_GIVEREF(__pyx_n_s_objectives); - PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_s_objectives); - __Pyx_INCREF(__pyx_n_s_load_csv); - __Pyx_GIVEREF(__pyx_n_s_load_csv); - PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_s_load_csv); - __Pyx_INCREF(__pyx_n_s_basic_stats); - __Pyx_GIVEREF(__pyx_n_s_basic_stats); - PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_s_basic_stats); - __Pyx_INCREF(__pyx_n_s_z_score); - __Pyx_GIVEREF(__pyx_n_s_z_score); - PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_s_z_score); - __Pyx_INCREF(__pyx_n_s_z_normalize); - __Pyx_GIVEREF(__pyx_n_s_z_normalize); - PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_s_z_normalize); - __Pyx_INCREF(__pyx_n_s_stdev_z_split); - __Pyx_GIVEREF(__pyx_n_s_stdev_z_split); - PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_s_stdev_z_split); - __Pyx_INCREF(__pyx_n_s_histo_analysis); - __Pyx_GIVEREF(__pyx_n_s_histo_analysis); - PyList_SET_ITEM(__pyx_t_1, 10, __pyx_n_s_histo_analysis); - __Pyx_INCREF(__pyx_n_s_poly_regression); - __Pyx_GIVEREF(__pyx_n_s_poly_regression); - PyList_SET_ITEM(__pyx_t_1, 11, __pyx_n_s_poly_regression); - __Pyx_INCREF(__pyx_n_s_log_regression); - __Pyx_GIVEREF(__pyx_n_s_log_regression); - PyList_SET_ITEM(__pyx_t_1, 12, __pyx_n_s_log_regression); - __Pyx_INCREF(__pyx_n_s_exp_regression); - __Pyx_GIVEREF(__pyx_n_s_exp_regression); - PyList_SET_ITEM(__pyx_t_1, 13, __pyx_n_s_exp_regression); - __Pyx_INCREF(__pyx_n_s_r_squared); - __Pyx_GIVEREF(__pyx_n_s_r_squared); - PyList_SET_ITEM(__pyx_t_1, 14, __pyx_n_s_r_squared); - __Pyx_INCREF(__pyx_n_s_rms_2); - __Pyx_GIVEREF(__pyx_n_s_rms_2); - PyList_SET_ITEM(__pyx_t_1, 15, __pyx_n_s_rms_2); - __Pyx_INCREF(__pyx_n_s_calc_overfit); - __Pyx_GIVEREF(__pyx_n_s_calc_overfit); - PyList_SET_ITEM(__pyx_t_1, 16, __pyx_n_s_calc_overfit); - __Pyx_INCREF(__pyx_n_s_strip_data); - __Pyx_GIVEREF(__pyx_n_s_strip_data); - PyList_SET_ITEM(__pyx_t_1, 17, __pyx_n_s_strip_data); - __Pyx_INCREF(__pyx_n_s_optimize_regression); - __Pyx_GIVEREF(__pyx_n_s_optimize_regression); - PyList_SET_ITEM(__pyx_t_1, 18, __pyx_n_s_optimize_regression); - __Pyx_INCREF(__pyx_n_s_select_best_regression); - __Pyx_GIVEREF(__pyx_n_s_select_best_regression); - PyList_SET_ITEM(__pyx_t_1, 19, __pyx_n_s_select_best_regression); - __Pyx_INCREF(__pyx_n_s_basic_analysis); - __Pyx_GIVEREF(__pyx_n_s_basic_analysis); - PyList_SET_ITEM(__pyx_t_1, 20, __pyx_n_s_basic_analysis); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_all, __pyx_t_1) < 0) __PYX_ERR(0, 106, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":135 - * # imports (now in alphabetical order! v 1.0.3.006): - * - * from bisect import bisect_left, bisect_right # <<<<<<<<<<<<<< - * import collections - * import csv - */ - __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_n_s_bisect_left); - __Pyx_GIVEREF(__pyx_n_s_bisect_left); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_bisect_left); - __Pyx_INCREF(__pyx_n_s_bisect_right); - __Pyx_GIVEREF(__pyx_n_s_bisect_right); - PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_bisect_right); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_bisect, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_bisect_left); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_bisect_left, __pyx_t_1) < 0) __PYX_ERR(0, 135, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_bisect_right); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_bisect_right, __pyx_t_1) < 0) __PYX_ERR(0, 135, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":136 - * - * from bisect import bisect_left, bisect_right - * import collections # <<<<<<<<<<<<<< - * import csv - * from decimal import Decimal - */ - __pyx_t_2 = __Pyx_Import(__pyx_n_s_collections, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_collections, __pyx_t_2) < 0) __PYX_ERR(0, 136, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":137 - * from bisect import bisect_left, bisect_right - * import collections - * import csv # <<<<<<<<<<<<<< - * from decimal import Decimal - * import functools - */ - __pyx_t_2 = __Pyx_Import(__pyx_n_s_csv, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_csv, __pyx_t_2) < 0) __PYX_ERR(0, 137, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":138 - * import collections - * import csv - * from decimal import Decimal # <<<<<<<<<<<<<< - * import functools - * from fractions import Fraction - */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_n_s_Decimal); - __Pyx_GIVEREF(__pyx_n_s_Decimal); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Decimal); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_decimal, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Decimal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_Decimal, __pyx_t_2) < 0) __PYX_ERR(0, 138, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":139 - * import csv - * from decimal import Decimal - * import functools # <<<<<<<<<<<<<< - * from fractions import Fraction - * from itertools import groupby - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_functools, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_functools, __pyx_t_1) < 0) __PYX_ERR(0, 139, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":140 - * from decimal import Decimal - * import functools - * from fractions import Fraction # <<<<<<<<<<<<<< - * from itertools import groupby - * import math - */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_n_s_Fraction); - __Pyx_GIVEREF(__pyx_n_s_Fraction); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_Fraction); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_fractions, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Fraction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_Fraction, __pyx_t_1) < 0) __PYX_ERR(0, 140, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":141 - * import functools - * from fractions import Fraction - * from itertools import groupby # <<<<<<<<<<<<<< - * import math - * import matplotlib - */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_n_s_groupby); - __Pyx_GIVEREF(__pyx_n_s_groupby); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_groupby); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_itertools, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_groupby); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_groupby, __pyx_t_2) < 0) __PYX_ERR(0, 141, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":142 - * from fractions import Fraction - * from itertools import groupby - * import math # <<<<<<<<<<<<<< - * import matplotlib - * import numbers - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_math, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_math, __pyx_t_1) < 0) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":143 - * from itertools import groupby - * import math - * import matplotlib # <<<<<<<<<<<<<< - * import numbers - * import numpy as np - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_matplotlib, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_matplotlib, __pyx_t_1) < 0) __PYX_ERR(0, 143, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":144 - * import math - * import matplotlib - * import numbers # <<<<<<<<<<<<<< - * import numpy as np - * import pandas - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_numbers, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_numbers, __pyx_t_1) < 0) __PYX_ERR(0, 144, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":145 - * import matplotlib - * import numbers - * import numpy as np # <<<<<<<<<<<<<< - * import pandas - * import random - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 145, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 145, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":146 - * import numbers - * import numpy as np - * import pandas # <<<<<<<<<<<<<< - * import random - * import scipy - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pandas, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pandas, __pyx_t_1) < 0) __PYX_ERR(0, 146, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":147 - * import numpy as np - * import pandas - * import random # <<<<<<<<<<<<<< - * import scipy - * from scipy.optimize import curve_fit - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_random, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_random, __pyx_t_1) < 0) __PYX_ERR(0, 147, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":148 - * import pandas - * import random - * import scipy # <<<<<<<<<<<<<< - * from scipy.optimize import curve_fit - * from scipy import stats - */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_scipy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_scipy, __pyx_t_1) < 0) __PYX_ERR(0, 148, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":149 - * import random - * import scipy - * from scipy.optimize import curve_fit # <<<<<<<<<<<<<< - * from scipy import stats - * from sklearn import * - */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_n_s_curve_fit); - __Pyx_GIVEREF(__pyx_n_s_curve_fit); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_curve_fit); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_scipy_optimize, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_curve_fit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_curve_fit, __pyx_t_1) < 0) __PYX_ERR(0, 149, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":150 - * import scipy - * from scipy.optimize import curve_fit - * from scipy import stats # <<<<<<<<<<<<<< - * from sklearn import * - * # import statistics <-- statistics.py functions have been integrated into analysis.py as of v 1.0.3.002 - */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_n_s_stats); - __Pyx_GIVEREF(__pyx_n_s_stats); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_stats); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_scipy, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_stats); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stats, __pyx_t_2) < 0) __PYX_ERR(0, 150, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":151 - * from scipy.optimize import curve_fit - * from scipy import stats - * from sklearn import * # <<<<<<<<<<<<<< - * # import statistics <-- statistics.py functions have been integrated into analysis.py as of v 1.0.3.002 - * import time - */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_n_s__17); - __Pyx_GIVEREF(__pyx_n_s__17); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s__17); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_sklearn, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_import_star(__pyx_t_2) < 0) __PYX_ERR(0, 151, __pyx_L1_error); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":153 - * from sklearn import * - * # import statistics <-- statistics.py functions have been integrated into analysis.py as of v 1.0.3.002 - * import time # <<<<<<<<<<<<<< - * import torch - * - */ - __pyx_t_2 = __Pyx_Import(__pyx_n_s_time, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 153, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_time, __pyx_t_2) < 0) __PYX_ERR(0, 153, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":154 - * # import statistics <-- statistics.py functions have been integrated into analysis.py as of v 1.0.3.002 - * import time - * import torch # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_2 = __Pyx_Import(__pyx_n_s_torch, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_torch, __pyx_t_2) < 0) __PYX_ERR(0, 154, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":157 - * - * - * class error(ValueError): # <<<<<<<<<<<<<< - * pass - * - */ - __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__18); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_tuple__18, __pyx_n_s_error, __pyx_n_s_error, (PyObject *) NULL, __pyx_n_s_analysis, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_error, __pyx_tuple__18, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_error, __pyx_t_3) < 0) __PYX_ERR(0, 157, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":161 - * - * - * def _init_device(setting, arg): # initiates computation device for ANNs # <<<<<<<<<<<<<< - * if setting == "cuda": - * try: - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_1_init_device, 0, __pyx_n_s_init_device, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__20)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 161, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_init_device, __pyx_t_2) < 0) __PYX_ERR(0, 161, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":176 - * - * - * class c_entities: # <<<<<<<<<<<<<< - * - * c_names = [] - */ - __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_c_entities, __pyx_n_s_c_entities, (PyObject *) NULL, __pyx_n_s_analysis, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - - /* "analysis.py":178 - * class c_entities: - * - * c_names = [] # <<<<<<<<<<<<<< - * c_ids = [] - * c_pos = [] - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_names, __pyx_t_1) < 0) __PYX_ERR(0, 178, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":179 - * - * c_names = [] - * c_ids = [] # <<<<<<<<<<<<<< - * c_pos = [] - * c_properties = [] - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_ids, __pyx_t_1) < 0) __PYX_ERR(0, 179, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":180 - * c_names = [] - * c_ids = [] - * c_pos = [] # <<<<<<<<<<<<<< - * c_properties = [] - * c_logic = [] - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 180, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_pos, __pyx_t_1) < 0) __PYX_ERR(0, 180, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":181 - * c_ids = [] - * c_pos = [] - * c_properties = [] # <<<<<<<<<<<<<< - * c_logic = [] - * - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_properties, __pyx_t_1) < 0) __PYX_ERR(0, 181, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":182 - * c_pos = [] - * c_properties = [] - * c_logic = [] # <<<<<<<<<<<<<< - * - * def debug(self): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_logic, __pyx_t_1) < 0) __PYX_ERR(0, 182, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":184 - * c_logic = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("c_entities has attributes names, ids, positions, properties, and logic. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, nd array of properties, and nd array of logic") - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10c_entities_1debug, 0, __pyx_n_s_c_entities_debug, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_debug, __pyx_t_1) < 0) __PYX_ERR(0, 184, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":188 - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - * - * def __init__(self, names, ids, pos, properties, logic): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10c_entities_3__init__, 0, __pyx_n_s_c_entities___init, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 188, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_init, __pyx_t_1) < 0) __PYX_ERR(0, 188, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":196 - * return None - * - * def append(self, n_name, n_id, n_pos, n_property, n_logic): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10c_entities_5append, 0, __pyx_n_s_c_entities_append, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_append, __pyx_t_1) < 0) __PYX_ERR(0, 196, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":204 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_logic): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10c_entities_7edit, 0, __pyx_n_s_c_entities_edit, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_edit, __pyx_t_1) < 0) __PYX_ERR(0, 204, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":226 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10c_entities_9search, 0, __pyx_n_s_c_entities_search, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_search, __pyx_t_1) < 0) __PYX_ERR(0, 226, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":234 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_logic[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_logic] - * - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10c_entities_11regurgitate, 0, __pyx_n_s_c_entities_regurgitate, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_regurgitate, __pyx_t_1) < 0) __PYX_ERR(0, 234, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":176 - * - * - * class c_entities: # <<<<<<<<<<<<<< - * - * c_names = [] - */ - __pyx_t_1 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_c_entities, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_c_entities, __pyx_t_1) < 0) __PYX_ERR(0, 176, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":238 - * - * - * class nc_entities: # <<<<<<<<<<<<<< - * - * c_names = [] - */ - __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_nc_entities, __pyx_n_s_nc_entities, (PyObject *) NULL, __pyx_n_s_analysis, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 238, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - - /* "analysis.py":240 - * class nc_entities: - * - * c_names = [] # <<<<<<<<<<<<<< - * c_ids = [] - * c_pos = [] - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 240, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_names, __pyx_t_1) < 0) __PYX_ERR(0, 240, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":241 - * - * c_names = [] - * c_ids = [] # <<<<<<<<<<<<<< - * c_pos = [] - * c_properties = [] - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_ids, __pyx_t_1) < 0) __PYX_ERR(0, 241, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":242 - * c_names = [] - * c_ids = [] - * c_pos = [] # <<<<<<<<<<<<<< - * c_properties = [] - * c_effects = [] - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 242, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_pos, __pyx_t_1) < 0) __PYX_ERR(0, 242, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":243 - * c_ids = [] - * c_pos = [] - * c_properties = [] # <<<<<<<<<<<<<< - * c_effects = [] - * - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_properties, __pyx_t_1) < 0) __PYX_ERR(0, 243, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":244 - * c_pos = [] - * c_properties = [] - * c_effects = [] # <<<<<<<<<<<<<< - * - * def debug(self): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 244, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_effects, __pyx_t_1) < 0) __PYX_ERR(0, 244, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":246 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("nc_entities (non-controlable entities) has attributes names, ids, positions, properties, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of positions, 2d array of properties, and 2d array of effects.") - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_11nc_entities_1debug, 0, __pyx_n_s_nc_entities_debug, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 246, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_debug, __pyx_t_1) < 0) __PYX_ERR(0, 246, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":250 - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - * - * def __init__(self, names, ids, pos, properties, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_11nc_entities_3__init__, 0, __pyx_n_s_nc_entities___init, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_init, __pyx_t_1) < 0) __PYX_ERR(0, 250, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":258 - * return None - * - * def append(self, n_name, n_id, n_pos, n_property, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_11nc_entities_5append, 0, __pyx_n_s_nc_entities_append, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_append, __pyx_t_1) < 0) __PYX_ERR(0, 258, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":267 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_property, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_11nc_entities_7edit, 0, __pyx_n_s_nc_entities_edit, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_edit, __pyx_t_1) < 0) __PYX_ERR(0, 267, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":289 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_11nc_entities_9search, 0, __pyx_n_s_nc_entities_search, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_search, __pyx_t_1) < 0) __PYX_ERR(0, 289, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":297 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_properties[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * - * return[self.c_names, self.c_ids, self.c_pos, self.c_properties, self.c_effects] - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_11nc_entities_11regurgitate, 0, __pyx_n_s_nc_entities_regurgitate, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_regurgitate, __pyx_t_1) < 0) __PYX_ERR(0, 297, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":238 - * - * - * class nc_entities: # <<<<<<<<<<<<<< - * - * c_names = [] - */ - __pyx_t_1 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_nc_entities, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_nc_entities, __pyx_t_1) < 0) __PYX_ERR(0, 238, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":302 - * - * - * class obstacles: # <<<<<<<<<<<<<< - * - * c_names = [] - */ - __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_obstacles, __pyx_n_s_obstacles, (PyObject *) NULL, __pyx_n_s_analysis, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - - /* "analysis.py":304 - * class obstacles: - * - * c_names = [] # <<<<<<<<<<<<<< - * c_ids = [] - * c_perim = [] - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 304, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_names, __pyx_t_1) < 0) __PYX_ERR(0, 304, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":305 - * - * c_names = [] - * c_ids = [] # <<<<<<<<<<<<<< - * c_perim = [] - * c_effects = [] - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_ids, __pyx_t_1) < 0) __PYX_ERR(0, 305, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":306 - * c_names = [] - * c_ids = [] - * c_perim = [] # <<<<<<<<<<<<<< - * c_effects = [] - * - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_perim, __pyx_t_1) < 0) __PYX_ERR(0, 306, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":307 - * c_ids = [] - * c_perim = [] - * c_effects = [] # <<<<<<<<<<<<<< - * - * def debug(self): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_effects, __pyx_t_1) < 0) __PYX_ERR(0, 307, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":309 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("obstacles has atributes names, ids, positions, perimeters, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 3d array of perimeters, 2d array of effects.") - * return [self.c_names, self.c_ids, self.c_perim, self.c_effects] - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_9obstacles_1debug, 0, __pyx_n_s_obstacles_debug, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_debug, __pyx_t_1) < 0) __PYX_ERR(0, 309, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":313 - * return [self.c_names, self.c_ids, self.c_perim, self.c_effects] - * - * def __init__(self, names, ids, perims, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_9obstacles_3__init__, 0, __pyx_n_s_obstacles___init, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_init, __pyx_t_1) < 0) __PYX_ERR(0, 313, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":320 - * return None - * - * def append(self, n_name, n_id, n_perim, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_9obstacles_5append, 0, __pyx_n_s_obstacles_append, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 320, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_append, __pyx_t_1) < 0) __PYX_ERR(0, 320, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":327 - * return None - * - * def edit(self, search, n_name, n_id, n_perim, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_9obstacles_7edit, 0, __pyx_n_s_obstacles_edit, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_edit, __pyx_t_1) < 0) __PYX_ERR(0, 327, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":347 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_9obstacles_9search, 0, __pyx_n_s_obstacles_search, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_search, __pyx_t_1) < 0) __PYX_ERR(0, 347, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":355 - * return [self.c_names[position], self.c_ids[position], self.c_perim[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_perim, self.c_effects] - * - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_9obstacles_11regurgitate, 0, __pyx_n_s_obstacles_regurgitate, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 355, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_regurgitate, __pyx_t_1) < 0) __PYX_ERR(0, 355, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":302 - * - * - * class obstacles: # <<<<<<<<<<<<<< - * - * c_names = [] - */ - __pyx_t_1 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_obstacles, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_obstacles, __pyx_t_1) < 0) __PYX_ERR(0, 302, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":359 - * - * - * class objectives: # <<<<<<<<<<<<<< - * - * c_names = [] - */ - __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_objectives, __pyx_n_s_objectives, (PyObject *) NULL, __pyx_n_s_analysis, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - - /* "analysis.py":361 - * class objectives: - * - * c_names = [] # <<<<<<<<<<<<<< - * c_ids = [] - * c_pos = [] - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 361, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_names, __pyx_t_1) < 0) __PYX_ERR(0, 361, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":362 - * - * c_names = [] - * c_ids = [] # <<<<<<<<<<<<<< - * c_pos = [] - * c_effects = [] - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_ids, __pyx_t_1) < 0) __PYX_ERR(0, 362, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":363 - * c_names = [] - * c_ids = [] - * c_pos = [] # <<<<<<<<<<<<<< - * c_effects = [] - * - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 363, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_pos, __pyx_t_1) < 0) __PYX_ERR(0, 363, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":364 - * c_ids = [] - * c_pos = [] - * c_effects = [] # <<<<<<<<<<<<<< - * - * def debug(self): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_c_effects, __pyx_t_1) < 0) __PYX_ERR(0, 364, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":366 - * c_effects = [] - * - * def debug(self): # <<<<<<<<<<<<<< - * print("objectives has atributes names, ids, positions, and effects. __init__ takes self, 1d array of names, 1d array of ids, 2d array of position, 1d array of effects.") - * return [self.c_names, self.c_ids, self.c_pos, self.c_effects] - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10objectives_1debug, 0, __pyx_n_s_objectives_debug, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_debug, __pyx_t_1) < 0) __PYX_ERR(0, 366, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":370 - * return [self.c_names, self.c_ids, self.c_pos, self.c_effects] - * - * def __init__(self, names, ids, pos, effects): # <<<<<<<<<<<<<< - * self.c_names = names - * self.c_ids = ids - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10objectives_3__init__, 0, __pyx_n_s_objectives___init, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_init, __pyx_t_1) < 0) __PYX_ERR(0, 370, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":377 - * return None - * - * def append(self, n_name, n_id, n_pos, n_effect): # <<<<<<<<<<<<<< - * self.c_names.append(n_name) - * self.c_ids.append(n_id) - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10objectives_5append, 0, __pyx_n_s_objectives_append, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 377, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_append, __pyx_t_1) < 0) __PYX_ERR(0, 377, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":384 - * return None - * - * def edit(self, search, n_name, n_id, n_pos, n_effect): # <<<<<<<<<<<<<< - * position = 0 - * print(self.c_ids) - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10objectives_7edit, 0, __pyx_n_s_objectives_edit, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_edit, __pyx_t_1) < 0) __PYX_ERR(0, 384, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":405 - * return None - * - * def search(self, search): # <<<<<<<<<<<<<< - * position = 0 - * for i in range(0, len(self.c_ids), 1): - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10objectives_9search, 0, __pyx_n_s_objectives_search, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_search, __pyx_t_1) < 0) __PYX_ERR(0, 405, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":413 - * return [self.c_names[position], self.c_ids[position], self.c_pos[position], self.c_effects[position]] - * - * def regurgitate(self): # <<<<<<<<<<<<<< - * return[self.c_names, self.c_ids, self.c_pos, self.c_effects] - * - */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_10objectives_11regurgitate, 0, __pyx_n_s_objectives_regurgitate, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_regurgitate, __pyx_t_1) < 0) __PYX_ERR(0, 413, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "analysis.py":359 - * - * - * class objectives: # <<<<<<<<<<<<<< - * - * c_names = [] - */ - __pyx_t_1 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_objectives, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_objectives, __pyx_t_1) < 0) __PYX_ERR(0, 359, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":417 - * - * - * def load_csv(filepath): # <<<<<<<<<<<<<< - * with open(filepath, newline='') as csvfile: - * file_array = list(csv.reader(csvfile)) - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_3load_csv, 0, __pyx_n_s_load_csv, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 417, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_load_csv, __pyx_t_2) < 0) __PYX_ERR(0, 417, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":425 - * - * # data=array, mode = ['1d':1d_basic_stats, 'column':c_basic_stats, 'row':r_basic_stats], arg for mode 1 or mode 2 for column or row - * def basic_stats(data, method, arg): # <<<<<<<<<<<<<< - * - * if method == 'debug': - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_5basic_stats, 0, __pyx_n_s_basic_stats, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_basic_stats, __pyx_t_2) < 0) __PYX_ERR(0, 425, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":511 - * - * # returns z score with inputs of point, mean and standard deviation of spread - * def z_score(point, mean, stdev): # <<<<<<<<<<<<<< - * score = (point - mean) / stdev - * return score - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_7z_score, 0, __pyx_n_s_z_score, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_z_score, __pyx_t_2) < 0) __PYX_ERR(0, 511, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":517 - * - * # mode is either 'x' or 'y' or 'both' depending on the variable(s) to be normalized - * def z_normalize(x, y, mode): # <<<<<<<<<<<<<< - * - * x_norm = [] - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_9z_normalize, 0, __pyx_n_s_z_normalize, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 517, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_z_normalize, __pyx_t_2) < 0) __PYX_ERR(0, 517, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":560 - * - * # returns n-th percentile of spread given mean, standard deviation, lower z-score, and upper z-score - * def stdev_z_split(mean, stdev, delta, low_bound, high_bound): # <<<<<<<<<<<<<< - * - * z_split = [] - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_11stdev_z_split, 0, __pyx_n_s_stdev_z_split, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stdev_z_split, __pyx_t_2) < 0) __PYX_ERR(0, 560, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":575 - * - * - * def histo_analysis(hist_data, delta, low_bound, high_bound): # <<<<<<<<<<<<<< - * - * if hist_data == 'debug': - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_13histo_analysis, 0, __pyx_n_s_histo_analysis, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_histo_analysis, __pyx_t_2) < 0) __PYX_ERR(0, 575, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":613 - * - * - * def poly_regression(x, y, power): # <<<<<<<<<<<<<< - * - * if x == "null": # if x is 'null', then x will be filled with integer points between 1 and the size of y - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_15poly_regression, 0, __pyx_n_s_poly_regression, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 613, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_poly_regression, __pyx_t_2) < 0) __PYX_ERR(0, 613, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":649 - * - * - * def log_regression(x, y, base): # <<<<<<<<<<<<<< - * - * x_fit = [] - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_17log_regression, 0, __pyx_n_s_log_regression, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_log_regression, __pyx_t_2) < 0) __PYX_ERR(0, 649, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":680 - * - * - * def exp_regression(x, y, base): # <<<<<<<<<<<<<< - * - * y_fit = [] - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_19exp_regression, 0, __pyx_n_s_exp_regression, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_exp_regression, __pyx_t_2) < 0) __PYX_ERR(0, 680, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":711 - * - * - * def tanh_regression(x, y): # <<<<<<<<<<<<<< - * - * def tanh(x, a, b, c, d): - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_21tanh_regression, 0, __pyx_n_s_tanh_regression, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_tanh_regression, __pyx_t_2) < 0) __PYX_ERR(0, 711, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":735 - * - * - * def r_squared(predictions, targets): # assumes equal size inputs # <<<<<<<<<<<<<< - * - * return metrics.r2_score(np.array(targets), np.array(predictions)) - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_23r_squared, 0, __pyx_n_s_r_squared, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_r_squared, __pyx_t_2) < 0) __PYX_ERR(0, 735, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":740 - * - * - * def rms(predictions, targets): # assumes equal size inputs # <<<<<<<<<<<<<< - * - * _sum = 0 - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_25rms, 0, __pyx_n_s_rms_2, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 740, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_rms_2, __pyx_t_2) < 0) __PYX_ERR(0, 740, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":750 - * - * - * def calc_overfit(equation, rms_train, r2_train, x_test, y_test): # <<<<<<<<<<<<<< - * - * # performance overfit = performance(train) - performance(test) where performance is r^2 - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_27calc_overfit, 0, __pyx_n_s_calc_overfit, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_calc_overfit, __pyx_t_2) < 0) __PYX_ERR(0, 750, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":769 - * - * - * def strip_data(data, mode): # <<<<<<<<<<<<<< - * - * if mode == "adam": # x is the row number, y are the data - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_29strip_data, 0, __pyx_n_s_strip_data, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 769, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_strip_data, __pyx_t_2) < 0) __PYX_ERR(0, 769, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":782 - * - * # _range in poly regression is the range of powers tried, and in log/exp it is the inverse of the stepsize taken from -1000 to 1000 - * def optimize_regression(x, y, _range, resolution): # <<<<<<<<<<<<<< - * # usage not: for demonstration purpose only, performance is shit - * if type(resolution) != int: - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_31optimize_regression, 0, __pyx_n_s_optimize_regression, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_optimize_regression, __pyx_t_2) < 0) __PYX_ERR(0, 782, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":872 - * - * - * def select_best_regression(eqs, rmss, r2s, overfit, selector): # <<<<<<<<<<<<<< - * - * b_eq = "" - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_33select_best_regression, 0, __pyx_n_s_select_best_regression, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_select_best_regression, __pyx_t_2) < 0) __PYX_ERR(0, 872, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":901 - * - * - * def p_value(x, y): # takes 2 1d arrays # <<<<<<<<<<<<<< - * - * return stats.ttest_ind(x, y)[1] - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_35p_value, 0, __pyx_n_s_p_value, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_p_value, __pyx_t_2) < 0) __PYX_ERR(0, 901, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":907 - * - * # assumes that rows are the independent variable and columns are the dependant. also assumes that time flows from lowest column to highest column. - * def basic_analysis(data): # <<<<<<<<<<<<<< - * - * row = len(data) - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_37basic_analysis, 0, __pyx_n_s_basic_analysis, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_basic_analysis, __pyx_t_2) < 0) __PYX_ERR(0, 907, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":931 - * - * - * def benchmark(x, y): # <<<<<<<<<<<<<< - * - * start_g = time.time() - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_39benchmark, 0, __pyx_n_s_benchmark, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__106)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 931, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_benchmark, __pyx_t_2) < 0) __PYX_ERR(0, 931, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":944 - * - * - * def generate_data(filename, x, y, low, high): # <<<<<<<<<<<<<< - * - * file = open(filename, "w") - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_41generate_data, 0, __pyx_n_s_generate_data, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 944, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_generate_data, __pyx_t_2) < 0) __PYX_ERR(0, 944, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":958 - * - * - * class StatisticsError(ValueError): # <<<<<<<<<<<<<< - * pass - * - */ - __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__109); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 958, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_tuple__109, __pyx_n_s_StatisticsError, __pyx_n_s_StatisticsError, (PyObject *) NULL, __pyx_n_s_analysis, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_StatisticsError, __pyx_tuple__109, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 958, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_StatisticsError, __pyx_t_3) < 0) __PYX_ERR(0, 958, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":962 - * - * - * def _sum(data, start=0): # <<<<<<<<<<<<<< - * count = 0 - * n, d = _exact_ratio(start) - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_43_sum, 0, __pyx_n_s_sum_2, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__111)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__112); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_sum_2, __pyx_t_2) < 0) __PYX_ERR(0, 962, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":983 - * - * - * def _isfinite(x): # <<<<<<<<<<<<<< - * try: - * return x.is_finite() # Likely a Decimal. - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_45_isfinite, 0, __pyx_n_s_isfinite, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 983, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_isfinite, __pyx_t_2) < 0) __PYX_ERR(0, 983, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":990 - * - * - * def _coerce(T, S): # <<<<<<<<<<<<<< - * - * assert T is not bool, "initial type T is bool" - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_47_coerce, 0, __pyx_n_s_coerce, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_coerce, __pyx_t_2) < 0) __PYX_ERR(0, 990, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1021 - * - * - * def _exact_ratio(x): # <<<<<<<<<<<<<< - * - * try: - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_49_exact_ratio, 0, __pyx_n_s_exact_ratio, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1021, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_exact_ratio, __pyx_t_2) < 0) __PYX_ERR(0, 1021, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1045 - * - * - * def _convert(value, T): # <<<<<<<<<<<<<< - * - * if type(value) is T: - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_51_convert, 0, __pyx_n_s_convert, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1045, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_convert, __pyx_t_2) < 0) __PYX_ERR(0, 1045, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1062 - * - * - * def _counts(data): # <<<<<<<<<<<<<< - * - * table = collections.Counter(iter(data)).most_common() - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_53_counts, 0, __pyx_n_s_counts, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_counts, __pyx_t_2) < 0) __PYX_ERR(0, 1062, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1076 - * - * - * def _find_lteq(a, x): # <<<<<<<<<<<<<< - * - * i = bisect_left(a, x) - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_55_find_lteq, 0, __pyx_n_s_find_lteq, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_lteq, __pyx_t_2) < 0) __PYX_ERR(0, 1076, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1084 - * - * - * def _find_rteq(a, l, x): # <<<<<<<<<<<<<< - * - * i = bisect_right(a, x, lo=l) - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_57_find_rteq, 0, __pyx_n_s_find_rteq, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_rteq, __pyx_t_2) < 0) __PYX_ERR(0, 1084, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1092 - * - * - * def _fail_neg(values, errmsg='negative value'): # <<<<<<<<<<<<<< - * - * for x in values: - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_59_fail_neg, 0, __pyx_n_s_fail_neg, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1092, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__128); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_fail_neg, __pyx_t_2) < 0) __PYX_ERR(0, 1092, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1100 - * - * - * def mean(data): # <<<<<<<<<<<<<< - * - * if iter(data) is data: - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_62mean, 0, __pyx_n_s_mean, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_mean, __pyx_t_2) < 0) __PYX_ERR(0, 1100, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1112 - * - * - * def median(data): # <<<<<<<<<<<<<< - * - * data = sorted(data) - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_64median, 0, __pyx_n_s_median, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_median, __pyx_t_2) < 0) __PYX_ERR(0, 1112, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1125 - * - * - * def mode(data): # <<<<<<<<<<<<<< - * - * table = _counts(data) - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_66mode, 0, __pyx_n_s_mode, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1125, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_mode, __pyx_t_2) < 0) __PYX_ERR(0, 1125, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1138 - * - * - * def _ss(data, c=None): # <<<<<<<<<<<<<< - * - * if c is None: - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_68_ss, 0, __pyx_n_s_ss, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__136)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__137); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ss, __pyx_t_2) < 0) __PYX_ERR(0, 1138, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1151 - * - * - * def variance(data, xbar=None): # <<<<<<<<<<<<<< - * - * if iter(data) is data: - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_70variance, 0, __pyx_n_s_variance, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__140); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_variance, __pyx_t_2) < 0) __PYX_ERR(0, 1151, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1162 - * - * - * def stdev(data, xbar=None): # <<<<<<<<<<<<<< - * - * var = variance(data, xbar) - */ - __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_8analysis_72stdev, 0, __pyx_n_s_stdev, NULL, __pyx_n_s_analysis, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__143); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stdev, __pyx_t_2) < 0) __PYX_ERR(0, 1162, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "analysis.py":1 - * # Titan Robotics Team 2022: Data Analysis Module # <<<<<<<<<<<<<< - * # Written by Arthur Lu & Jacob Levine - * # Notes: - */ - __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; - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - if (__pyx_m) { - if (__pyx_d) { - __Pyx_AddTraceback("init analysis", __pyx_clineno, __pyx_lineno, __pyx_filename); - } - Py_CLEAR(__pyx_m); - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init analysis"); - } - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - #if CYTHON_PEP489_MULTI_PHASE_INIT - return (__pyx_m != NULL) ? 0 : -1; - #elif PY_MAJOR_VERSION >= 3 - return __pyx_m; - #else - return; - #endif -} - -/* --- Runtime support code --- */ -/* Refnanny */ -#if CYTHON_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; -} -#endif - -/* PyObjectGetAttrStr */ -#if CYTHON_USE_TYPE_SLOTS -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 PY_MAJOR_VERSION < 3 - if (likely(tp->tp_getattr)) - return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); -#endif - return PyObject_GetAttr(obj, attr_name); -} -#endif - -/* GetBuiltinName */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name) { - PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); - if (unlikely(!result)) { - PyErr_Format(PyExc_NameError, -#if PY_MAJOR_VERSION >= 3 - "name '%U' is not defined", name); -#else - "name '%.200s' is not defined", PyString_AS_STRING(name)); -#endif - } - 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, - #if PY_MAJOR_VERSION >= 3 - "%s() got multiple values for keyword argument '%U'", func_name, kw_name); - #else - "%s() got multiple values for keyword argument '%s'", func_name, - PyString_AsString(kw_name)); - #endif -} - -/* 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 PY_MAJOR_VERSION < 3 - if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - if ((**argname == key) || ( - (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) - && _PyString_Eq(**argname, key))) { - goto arg_passed_twice; - } - argname++; - } - } - } else - #endif - if (likely(PyUnicode_Check(key))) { - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) goto arg_passed_twice; - argname++; - } - } - } else - 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, - #if PY_MAJOR_VERSION < 3 - "%.200s() got an unexpected keyword argument '%.200s'", - function_name, PyString_AsString(key)); - #else - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif -bad: - return -1; -} - -/* BytesEquals */ -static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { -#if CYTHON_COMPILING_IN_PYPY - return PyObject_RichCompareBool(s1, s2, equals); -#else - if (s1 == s2) { - return (equals == Py_EQ); - } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { - const char *ps1, *ps2; - Py_ssize_t length = PyBytes_GET_SIZE(s1); - if (length != PyBytes_GET_SIZE(s2)) - return (equals == Py_NE); - ps1 = PyBytes_AS_STRING(s1); - ps2 = PyBytes_AS_STRING(s2); - if (ps1[0] != ps2[0]) { - return (equals == Py_NE); - } else if (length == 1) { - return (equals == Py_EQ); - } else { - int result; -#if CYTHON_USE_UNICODE_INTERNALS - Py_hash_t hash1, hash2; - hash1 = ((PyBytesObject*)s1)->ob_shash; - hash2 = ((PyBytesObject*)s2)->ob_shash; - if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { - return (equals == Py_NE); - } -#endif - result = memcmp(ps1, ps2, (size_t)length); - return (equals == Py_EQ) ? (result == 0) : (result != 0); - } - } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { - return (equals == Py_NE); - } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { - return (equals == Py_NE); - } else { - int result; - PyObject* py_result = PyObject_RichCompare(s1, s2, equals); - if (!py_result) - return -1; - result = __Pyx_PyObject_IsTrue(py_result); - Py_DECREF(py_result); - return result; - } -#endif -} - -/* UnicodeEquals */ -static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { -#if CYTHON_COMPILING_IN_PYPY - return PyObject_RichCompareBool(s1, s2, equals); -#else -#if PY_MAJOR_VERSION < 3 - PyObject* owned_ref = NULL; -#endif - int s1_is_unicode, s2_is_unicode; - if (s1 == s2) { - goto return_eq; - } - s1_is_unicode = PyUnicode_CheckExact(s1); - s2_is_unicode = PyUnicode_CheckExact(s2); -#if PY_MAJOR_VERSION < 3 - if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { - owned_ref = PyUnicode_FromObject(s2); - if (unlikely(!owned_ref)) - return -1; - s2 = owned_ref; - s2_is_unicode = 1; - } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { - owned_ref = PyUnicode_FromObject(s1); - if (unlikely(!owned_ref)) - return -1; - s1 = owned_ref; - s1_is_unicode = 1; - } else if (((!s2_is_unicode) & (!s1_is_unicode))) { - return __Pyx_PyBytes_Equals(s1, s2, equals); - } -#endif - if (s1_is_unicode & s2_is_unicode) { - Py_ssize_t length; - int kind; - void *data1, *data2; - if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) - return -1; - length = __Pyx_PyUnicode_GET_LENGTH(s1); - if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { - goto return_ne; - } -#if CYTHON_USE_UNICODE_INTERNALS - { - Py_hash_t hash1, hash2; - #if CYTHON_PEP393_ENABLED - hash1 = ((PyASCIIObject*)s1)->hash; - hash2 = ((PyASCIIObject*)s2)->hash; - #else - hash1 = ((PyUnicodeObject*)s1)->hash; - hash2 = ((PyUnicodeObject*)s2)->hash; - #endif - if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { - goto return_ne; - } - } -#endif - kind = __Pyx_PyUnicode_KIND(s1); - if (kind != __Pyx_PyUnicode_KIND(s2)) { - goto return_ne; - } - data1 = __Pyx_PyUnicode_DATA(s1); - data2 = __Pyx_PyUnicode_DATA(s2); - if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { - goto return_ne; - } else if (length == 1) { - goto return_eq; - } else { - int result = memcmp(data1, data2, (size_t)(length * kind)); - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(owned_ref); - #endif - return (equals == Py_EQ) ? (result == 0) : (result != 0); - } - } else if ((s1 == Py_None) & s2_is_unicode) { - goto return_ne; - } else if ((s2 == Py_None) & s1_is_unicode) { - goto return_ne; - } else { - int result; - PyObject* py_result = PyObject_RichCompare(s1, s2, equals); - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(owned_ref); - #endif - if (!py_result) - return -1; - result = __Pyx_PyObject_IsTrue(py_result); - Py_DECREF(py_result); - return result; - } -return_eq: - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(owned_ref); - #endif - return (equals == Py_EQ); -return_ne: - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(owned_ref); - #endif - return (equals == Py_NE); -#endif -} - -/* PyDictVersioning */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -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) { -#if CYTHON_COMPILING_IN_CPYTHON - dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); -#else - dictptr = _PyObject_GetDictPtr(obj); -#endif - } - 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); -} -#endif - -/* GetModuleGlobalName */ -#if CYTHON_USE_DICT_VERSIONS -static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) -#else -static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) -#endif -{ - PyObject *result; -#if !CYTHON_AVOID_BORROWED_REFS -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 - 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; - } -#else - 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); - } -#endif -#else - 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(); -#endif - return __Pyx_GetBuiltinName(name); -} - -/* PyFunctionFastCall */ -#if CYTHON_FAST_PYCALL -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; -} -#if 1 || PY_VERSION_HEX < 0x030600B1 -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; -#if PY_MAJOR_VERSION >= 3 - PyObject *kwdefs; -#endif - 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 ( -#if PY_MAJOR_VERSION >= 3 - co->co_kwonlyargcount == 0 && -#endif - 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); -#if PY_MAJOR_VERSION >= 3 - kwdefs = PyFunction_GET_KW_DEFAULTS(func); -#endif - if (argdefs != NULL) { - d = &PyTuple_GET_ITEM(argdefs, 0); - nd = Py_SIZE(argdefs); - } - else { - d = NULL; - nd = 0; - } -#if PY_MAJOR_VERSION >= 3 - result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, - args, nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, nargs, - k, (int)nk, - d, (int)nd, closure); -#endif - Py_XDECREF(kwtuple); -done: - Py_LeaveRecursiveCall(); - return result; -} -#endif -#endif - -/* PyObjectCall */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; - ternaryfunc call = func->ob_type->tp_call; - 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; -} -#endif - -/* PyObjectCallMethO */ -#if CYTHON_COMPILING_IN_CPYTHON -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; -} -#endif - -/* PyObjectCallNoArg */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { -#if CYTHON_FAST_PYCALL - if (PyFunction_Check(func)) { - return __Pyx_PyFunction_FastCall(func, NULL, 0); - } -#endif -#ifdef __Pyx_CyFunction_USED - if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) -#else - if (likely(PyCFunction_Check(func))) -#endif - { - if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { - return __Pyx_PyObject_CallMethO(func, NULL); - } - } - return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); -} -#endif - -/* PyCFunctionFastCall */ -#if CYTHON_FAST_PYCCALL -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); - } -} -#endif - -/* PyObjectCallOneArg */ -#if CYTHON_COMPILING_IN_CPYTHON -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 CYTHON_FAST_PYCALL - if (PyFunction_Check(func)) { - return __Pyx_PyFunction_FastCall(func, &arg, 1); - } -#endif - if (likely(PyCFunction_Check(func))) { - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); -#if CYTHON_FAST_PYCCALL - } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); -#endif - } - } - return __Pyx__PyObject_CallOneArg(func, arg); -} -#else -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; -} -#endif - -/* PyObjectCall2Args */ -static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { - PyObject *args, *result = NULL; - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(function)) { - PyObject *args[2] = {arg1, arg2}; - return __Pyx_PyFunction_FastCall(function, args, 2); - } - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(function)) { - PyObject *args[2] = {arg1, arg2}; - return __Pyx_PyCFunction_FastCall(function, args, 2); - } - #endif - args = PyTuple_New(2); - if (unlikely(!args)) goto done; - Py_INCREF(arg1); - PyTuple_SET_ITEM(args, 0, arg1); - Py_INCREF(arg2); - PyTuple_SET_ITEM(args, 1, arg2); - Py_INCREF(function); - result = __Pyx_PyObject_Call(function, args, NULL); - Py_DECREF(args); - Py_DECREF(function); -done: - return result; -} - -/* GetTopmostException */ -#if CYTHON_USE_EXC_INFO_STACK -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; -} -#endif - -/* SaveResetException */ -#if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - #if CYTHON_USE_EXC_INFO_STACK - _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); - *type = exc_info->exc_type; - *value = exc_info->exc_value; - *tb = exc_info->exc_traceback; - #else - *type = tstate->exc_type; - *value = tstate->exc_value; - *tb = tstate->exc_traceback; - #endif - 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; - #if CYTHON_USE_EXC_INFO_STACK - _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; - #else - 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; - #endif - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -} -#endif - -/* GetException */ -#if CYTHON_FAST_THREAD_STATE -static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) -#else -static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) -#endif -{ - PyObject *local_type, *local_value, *local_tb; -#if CYTHON_FAST_THREAD_STATE - 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; -#else - PyErr_Fetch(&local_type, &local_value, &local_tb); -#endif - PyErr_NormalizeException(&local_type, &local_value, &local_tb); -#if CYTHON_FAST_THREAD_STATE - if (unlikely(tstate->curexc_type)) -#else - if (unlikely(PyErr_Occurred())) -#endif - goto bad; - #if PY_MAJOR_VERSION >= 3 - if (local_tb) { - if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) - goto bad; - } - #endif - Py_XINCREF(local_tb); - Py_XINCREF(local_type); - Py_XINCREF(local_value); - *type = local_type; - *value = local_value; - *tb = local_tb; -#if CYTHON_FAST_THREAD_STATE - #if CYTHON_USE_EXC_INFO_STACK - { - _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; - } - #else - 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; - #endif - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -#else - PyErr_SetExcInfo(local_type, local_value, local_tb); -#endif - return 0; -bad: - *type = 0; - *value = 0; - *tb = 0; - Py_XDECREF(local_type); - Py_XDECREF(local_value); - Py_XDECREF(local_tb); - return -1; -} - -/* PyErrFetchRestore */ -#if CYTHON_FAST_THREAD_STATE -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; -} -#endif - -/* RaiseException */ -#if PY_MAJOR_VERSION < 3 -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 CYTHON_COMPILING_IN_PYPY - if (!value) { - Py_INCREF(Py_None); - value = Py_None; - } -#endif - 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; -} -#else -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) { -#if CYTHON_COMPILING_IN_PYPY - 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); -#else - 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); - } -#endif - } -bad: - Py_XDECREF(owned_instance); - return; -} -#endif - -/* PyObjectSetAttrStr */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_setattro)) - return tp->tp_setattro(obj, attr_name, value); -#if PY_MAJOR_VERSION < 3 - if (likely(tp->tp_setattr)) - return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value); -#endif - return PyObject_SetAttr(obj, attr_name, value); -} -#endif - -/* PyObjectGetMethod */ -static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { - PyObject *attr; -#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP - PyTypeObject *tp = Py_TYPE(obj); - PyObject *descr; - descrgetfunc f = NULL; - PyObject **dictptr, *dict; - int meth_found = 0; - assert (*method == NULL); - if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { - attr = __Pyx_PyObject_GetAttrStr(obj, name); - goto try_unpack; - } - if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { - return 0; - } - descr = _PyType_Lookup(tp, name); - if (likely(descr != NULL)) { - Py_INCREF(descr); -#if PY_MAJOR_VERSION >= 3 - #ifdef __Pyx_CyFunction_USED - if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) - #else - if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type))) - #endif -#else - #ifdef __Pyx_CyFunction_USED - if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) - #else - if (likely(PyFunction_Check(descr))) - #endif -#endif - { - meth_found = 1; - } else { - f = Py_TYPE(descr)->tp_descr_get; - if (f != NULL && PyDescr_IsData(descr)) { - attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); - Py_DECREF(descr); - goto try_unpack; - } - } - } - dictptr = _PyObject_GetDictPtr(obj); - if (dictptr != NULL && (dict = *dictptr) != NULL) { - Py_INCREF(dict); - attr = __Pyx_PyDict_GetItemStr(dict, name); - if (attr != NULL) { - Py_INCREF(attr); - Py_DECREF(dict); - Py_XDECREF(descr); - goto try_unpack; - } - Py_DECREF(dict); - } - if (meth_found) { - *method = descr; - return 1; - } - if (f != NULL) { - attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); - Py_DECREF(descr); - goto try_unpack; - } - if (descr != NULL) { - *method = descr; - return 0; - } - PyErr_Format(PyExc_AttributeError, -#if PY_MAJOR_VERSION >= 3 - "'%.50s' object has no attribute '%U'", - tp->tp_name, name); -#else - "'%.50s' object has no attribute '%.400s'", - tp->tp_name, PyString_AS_STRING(name)); -#endif - return 0; -#else - attr = __Pyx_PyObject_GetAttrStr(obj, name); - goto try_unpack; -#endif -try_unpack: -#if CYTHON_UNPACK_METHODS - if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { - PyObject *function = PyMethod_GET_FUNCTION(attr); - Py_INCREF(function); - Py_DECREF(attr); - *method = function; - return 1; - } -#endif - *method = attr; - return 0; -} - -/* PyObjectCallMethod1 */ -static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) { - PyObject *result = __Pyx_PyObject_CallOneArg(method, arg); - Py_DECREF(method); - return result; -} -static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) { - PyObject *method = NULL, *result; - int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); - if (likely(is_method)) { - result = __Pyx_PyObject_Call2Args(method, obj, arg); - Py_DECREF(method); - return result; - } - if (unlikely(!method)) return NULL; - return __Pyx__PyObject_CallMethod1(method, arg); -} - -/* append */ -static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x) { - if (likely(PyList_CheckExact(L))) { - if (unlikely(__Pyx_PyList_Append(L, x) < 0)) return -1; - } else { - PyObject* retval = __Pyx_PyObject_CallMethod1(L, __pyx_n_s_append, x); - if (unlikely(!retval)) - return -1; - Py_DECREF(retval); - } - return 0; -} - -/* GetItemInt */ -static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { - PyObject *r; - if (!j) return NULL; - r = PyObject_GetItem(o, j); - Py_DECREF(j); - return r; -} -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, - CYTHON_NCP_UNUSED int wraparound, - CYTHON_NCP_UNUSED int boundscheck) { -#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - Py_ssize_t wrapped_i = i; - if (wraparound & unlikely(i < 0)) { - wrapped_i += PyList_GET_SIZE(o); - } - if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { - PyObject *r = PyList_GET_ITEM(o, wrapped_i); - Py_INCREF(r); - return r; - } - return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); -#else - return PySequence_GetItem(o, i); -#endif -} -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, - CYTHON_NCP_UNUSED int wraparound, - CYTHON_NCP_UNUSED int boundscheck) { -#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - Py_ssize_t wrapped_i = i; - if (wraparound & unlikely(i < 0)) { - wrapped_i += PyTuple_GET_SIZE(o); - } - if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { - PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); - Py_INCREF(r); - return r; - } - return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); -#else - return PySequence_GetItem(o, i); -#endif -} -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, - CYTHON_NCP_UNUSED int wraparound, - CYTHON_NCP_UNUSED int boundscheck) { -#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS - if (is_list || PyList_CheckExact(o)) { - Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); - if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { - PyObject *r = PyList_GET_ITEM(o, n); - Py_INCREF(r); - return r; - } - } - else if (PyTuple_CheckExact(o)) { - Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); - if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { - PyObject *r = PyTuple_GET_ITEM(o, n); - Py_INCREF(r); - return r; - } - } else { - PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; - if (likely(m && m->sq_item)) { - if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { - Py_ssize_t l = m->sq_length(o); - if (likely(l >= 0)) { - i += l; - } else { - if (!PyErr_ExceptionMatches(PyExc_OverflowError)) - return NULL; - PyErr_Clear(); - } - } - return m->sq_item(o, i); - } - } -#else - if (is_list || PySequence_Check(o)) { - return PySequence_GetItem(o, i); - } -#endif - return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); -} - -/* SetItemInt */ -static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) { - int r; - if (!j) return -1; - r = PyObject_SetItem(o, j, v); - Py_DECREF(j); - return r; -} -static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, - CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { -#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS - if (is_list || PyList_CheckExact(o)) { - Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o)); - if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) { - PyObject* old = PyList_GET_ITEM(o, n); - Py_INCREF(v); - PyList_SET_ITEM(o, n, v); - Py_DECREF(old); - return 1; - } - } else { - PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; - if (likely(m && m->sq_ass_item)) { - if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { - Py_ssize_t l = m->sq_length(o); - if (likely(l >= 0)) { - i += l; - } else { - if (!PyErr_ExceptionMatches(PyExc_OverflowError)) - return -1; - PyErr_Clear(); - } - } - return m->sq_ass_item(o, i, v); - } - } -#else -#if CYTHON_COMPILING_IN_PYPY - if (is_list || (PySequence_Check(o) && !PyDict_Check(o))) -#else - if (is_list || PySequence_Check(o)) -#endif - { - return PySequence_SetItem(o, i, v); - } -#endif - return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v); -} - -/* None */ -static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { - PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); -} - -/* PyIntCompare */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) { - if (op1 == op2) { - Py_RETURN_TRUE; - } - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - const long b = intval; - long a = PyInt_AS_LONG(op1); - if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } - #endif - #if CYTHON_USE_PYLONG_INTERNALS - if (likely(PyLong_CheckExact(op1))) { - int unequal; - unsigned long uintval; - Py_ssize_t size = Py_SIZE(op1); - const digit* digits = ((PyLongObject*)op1)->ob_digit; - if (intval == 0) { - if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } else if (intval < 0) { - if (size >= 0) - Py_RETURN_FALSE; - intval = -intval; - size = -size; - } else { - if (size <= 0) - Py_RETURN_FALSE; - } - uintval = (unsigned long) intval; -#if PyLong_SHIFT * 4 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 4)) { - unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif -#if PyLong_SHIFT * 3 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 3)) { - unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif -#if PyLong_SHIFT * 2 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 2)) { - unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif -#if PyLong_SHIFT * 1 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 1)) { - unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif - unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK)); - if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } - #endif - if (PyFloat_CheckExact(op1)) { - const long b = intval; - double a = PyFloat_AS_DOUBLE(op1); - if ((double)a == (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } - return ( - PyObject_RichCompare(op1, op2, Py_EQ)); -} - -/* ObjectGetItem */ -#if CYTHON_USE_TYPE_SLOTS -static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { - PyObject *runerr; - Py_ssize_t key_value; - PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; - if (unlikely(!(m && m->sq_item))) { - PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); - return NULL; - } - key_value = __Pyx_PyIndex_AsSsize_t(index); - if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { - return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); - } - if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { - PyErr_Clear(); - PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); - } - return NULL; -} -static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { - PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; - if (likely(m && m->mp_subscript)) { - return m->mp_subscript(obj, key); - } - return __Pyx_PyObject_GetIndex(obj, key); -} -#endif - -/* 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"); -} - -/* IterFinish */ -static CYTHON_INLINE int __Pyx_IterFinish(void) { -#if CYTHON_FAST_THREAD_STATE - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject* exc_type = tstate->curexc_type; - if (unlikely(exc_type)) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) { - PyObject *exc_value, *exc_tb; - exc_value = tstate->curexc_value; - exc_tb = tstate->curexc_traceback; - tstate->curexc_type = 0; - tstate->curexc_value = 0; - tstate->curexc_traceback = 0; - Py_DECREF(exc_type); - Py_XDECREF(exc_value); - Py_XDECREF(exc_tb); - return 0; - } else { - return -1; - } - } - return 0; -#else - if (unlikely(PyErr_Occurred())) { - if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { - PyErr_Clear(); - return 0; - } else { - return -1; - } - } - return 0; -#endif -} - -/* UnpackItemEndCheck */ -static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { - if (unlikely(retval)) { - Py_DECREF(retval); - __Pyx_RaiseTooManyValuesError(expected); - return -1; - } else { - return __Pyx_IterFinish(); - } - return 0; -} - -/* pyobject_as_double */ -static double __Pyx__PyObject_AsDouble(PyObject* obj) { - PyObject* float_value; -#if !CYTHON_USE_TYPE_SLOTS - float_value = PyNumber_Float(obj); if ((0)) goto bad; -#else - PyNumberMethods *nb = Py_TYPE(obj)->tp_as_number; - if (likely(nb) && likely(nb->nb_float)) { - float_value = nb->nb_float(obj); - if (likely(float_value) && unlikely(!PyFloat_Check(float_value))) { - PyErr_Format(PyExc_TypeError, - "__float__ returned non-float (type %.200s)", - Py_TYPE(float_value)->tp_name); - Py_DECREF(float_value); - goto bad; - } - } else if (PyUnicode_CheckExact(obj) || PyBytes_CheckExact(obj)) { -#if PY_MAJOR_VERSION >= 3 - float_value = PyFloat_FromString(obj); -#else - float_value = PyFloat_FromString(obj, 0); -#endif - } else { - PyObject* args = PyTuple_New(1); - if (unlikely(!args)) goto bad; - PyTuple_SET_ITEM(args, 0, obj); - float_value = PyObject_Call((PyObject*)&PyFloat_Type, args, 0); - PyTuple_SET_ITEM(args, 0, 0); - Py_DECREF(args); - } -#endif - if (likely(float_value)) { - double value = PyFloat_AS_DOUBLE(float_value); - Py_DECREF(float_value); - return value; - } -bad: - return (double)-1; -} - -/* PyIntBinop */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) { - (void)inplace; - (void)zerodivision_check; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - const long b = intval; - long x; - long a = PyInt_AS_LONG(op1); - x = (long)((unsigned long)a - b); - if (likely((x^a) >= 0 || (x^~b) >= 0)) - return PyInt_FromLong(x); - return PyLong_Type.tp_as_number->nb_subtract(op1, op2); - } - #endif - #if CYTHON_USE_PYLONG_INTERNALS - if (likely(PyLong_CheckExact(op1))) { - const long b = intval; - long a, x; -#ifdef HAVE_LONG_LONG - const PY_LONG_LONG llb = intval; - PY_LONG_LONG lla, llx; -#endif - const digit* digits = ((PyLongObject*)op1)->ob_digit; - const Py_ssize_t size = Py_SIZE(op1); - if (likely(__Pyx_sst_abs(size) <= 1)) { - a = likely(size) ? digits[0] : 0; - if (size == -1) a = -a; - } else { - switch (size) { - case -2: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 2: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case -3: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 3: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case -4: - if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 4: - if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2); - } - } - x = a - b; - return PyLong_FromLong(x); -#ifdef HAVE_LONG_LONG - long_long: - llx = lla - llb; - return PyLong_FromLongLong(llx); -#endif - - - } - #endif - if (PyFloat_CheckExact(op1)) { - const long b = intval; - double a = PyFloat_AS_DOUBLE(op1); - double result; - PyFPE_START_PROTECT("subtract", return NULL) - result = ((double)a) - (double)b; - PyFPE_END_PROTECT(result) - return PyFloat_FromDouble(result); - } - return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2); -} -#endif - -/* SliceObject */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj, - Py_ssize_t cstart, Py_ssize_t cstop, - PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice, - int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) { -#if CYTHON_USE_TYPE_SLOTS - PyMappingMethods* mp; -#if PY_MAJOR_VERSION < 3 - PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence; - if (likely(ms && ms->sq_slice)) { - if (!has_cstart) { - if (_py_start && (*_py_start != Py_None)) { - cstart = __Pyx_PyIndex_AsSsize_t(*_py_start); - if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; - } else - cstart = 0; - } - if (!has_cstop) { - if (_py_stop && (*_py_stop != Py_None)) { - cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop); - if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; - } else - cstop = PY_SSIZE_T_MAX; - } - if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) { - Py_ssize_t l = ms->sq_length(obj); - if (likely(l >= 0)) { - if (cstop < 0) { - cstop += l; - if (cstop < 0) cstop = 0; - } - if (cstart < 0) { - cstart += l; - if (cstart < 0) cstart = 0; - } - } else { - if (!PyErr_ExceptionMatches(PyExc_OverflowError)) - goto bad; - PyErr_Clear(); - } - } - return ms->sq_slice(obj, cstart, cstop); - } -#endif - mp = Py_TYPE(obj)->tp_as_mapping; - if (likely(mp && mp->mp_subscript)) -#endif - { - PyObject* result; - PyObject *py_slice, *py_start, *py_stop; - if (_py_slice) { - py_slice = *_py_slice; - } else { - PyObject* owned_start = NULL; - PyObject* owned_stop = NULL; - if (_py_start) { - py_start = *_py_start; - } else { - if (has_cstart) { - owned_start = py_start = PyInt_FromSsize_t(cstart); - if (unlikely(!py_start)) goto bad; - } else - py_start = Py_None; - } - if (_py_stop) { - py_stop = *_py_stop; - } else { - if (has_cstop) { - owned_stop = py_stop = PyInt_FromSsize_t(cstop); - if (unlikely(!py_stop)) { - Py_XDECREF(owned_start); - goto bad; - } - } else - py_stop = Py_None; - } - py_slice = PySlice_New(py_start, py_stop, Py_None); - Py_XDECREF(owned_start); - Py_XDECREF(owned_stop); - if (unlikely(!py_slice)) goto bad; - } -#if CYTHON_USE_TYPE_SLOTS - result = mp->mp_subscript(obj, py_slice); -#else - result = PyObject_GetItem(obj, py_slice); -#endif - if (!_py_slice) { - Py_DECREF(py_slice); - } - return result; - } - PyErr_Format(PyExc_TypeError, - "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name); -bad: - return NULL; -} - -/* PyIntBinop */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) { - (void)inplace; - (void)zerodivision_check; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - const long b = intval; - long x; - long a = PyInt_AS_LONG(op1); - x = (long)((unsigned long)a + b); - if (likely((x^a) >= 0 || (x^b) >= 0)) - return PyInt_FromLong(x); - return PyLong_Type.tp_as_number->nb_add(op1, op2); - } - #endif - #if CYTHON_USE_PYLONG_INTERNALS - if (likely(PyLong_CheckExact(op1))) { - const long b = intval; - long a, x; -#ifdef HAVE_LONG_LONG - const PY_LONG_LONG llb = intval; - PY_LONG_LONG lla, llx; -#endif - const digit* digits = ((PyLongObject*)op1)->ob_digit; - const Py_ssize_t size = Py_SIZE(op1); - if (likely(__Pyx_sst_abs(size) <= 1)) { - a = likely(size) ? digits[0] : 0; - if (size == -1) a = -a; - } else { - switch (size) { - case -2: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 2: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case -3: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 3: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case -4: - if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 4: - if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - default: return PyLong_Type.tp_as_number->nb_add(op1, op2); - } - } - x = a + b; - return PyLong_FromLong(x); -#ifdef HAVE_LONG_LONG - long_long: - llx = lla + llb; - return PyLong_FromLongLong(llx); -#endif - - - } - #endif - if (PyFloat_CheckExact(op1)) { - const long b = intval; - double a = PyFloat_AS_DOUBLE(op1); - double result; - PyFPE_START_PROTECT("add", return NULL) - result = ((double)a) + (double)b; - PyFPE_END_PROTECT(result) - return PyFloat_FromDouble(result); - } - return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); -} -#endif - -/* FetchCommonType */ -static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { - PyObject* fake_module; - PyTypeObject* cached_type = NULL; - fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI); - if (!fake_module) return NULL; - Py_INCREF(fake_module); - cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name); - if (cached_type) { - if (!PyType_Check((PyObject*)cached_type)) { - PyErr_Format(PyExc_TypeError, - "Shared Cython type %.200s is not a type object", - type->tp_name); - goto bad; - } - if (cached_type->tp_basicsize != type->tp_basicsize) { - PyErr_Format(PyExc_TypeError, - "Shared Cython type %.200s has the wrong size, try recompiling", - type->tp_name); - goto bad; - } - } else { - if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; - PyErr_Clear(); - if (PyType_Ready(type) < 0) goto bad; - if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0) - goto bad; - Py_INCREF(type); - cached_type = type; - } -done: - Py_DECREF(fake_module); - return cached_type; -bad: - Py_XDECREF(cached_type); - cached_type = NULL; - goto done; -} - -/* CythonFunction */ -#include -static PyObject * -__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure) -{ - if (unlikely(op->func_doc == NULL)) { - if (op->func.m_ml->ml_doc) { -#if PY_MAJOR_VERSION >= 3 - op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc); -#else - op->func_doc = PyString_FromString(op->func.m_ml->ml_doc); -#endif - if (unlikely(op->func_doc == NULL)) - return NULL; - } else { - Py_INCREF(Py_None); - return Py_None; - } - } - Py_INCREF(op->func_doc); - return op->func_doc; -} -static int -__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) -{ - PyObject *tmp = op->func_doc; - if (value == NULL) { - value = Py_None; - } - Py_INCREF(value); - op->func_doc = value; - Py_XDECREF(tmp); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) -{ - if (unlikely(op->func_name == NULL)) { -#if PY_MAJOR_VERSION >= 3 - op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name); -#else - op->func_name = PyString_InternFromString(op->func.m_ml->ml_name); -#endif - if (unlikely(op->func_name == NULL)) - return NULL; - } - Py_INCREF(op->func_name); - return op->func_name; -} -static int -__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) -{ - PyObject *tmp; -#if PY_MAJOR_VERSION >= 3 - if (unlikely(value == NULL || !PyUnicode_Check(value))) -#else - if (unlikely(value == NULL || !PyString_Check(value))) -#endif - { - PyErr_SetString(PyExc_TypeError, - "__name__ must be set to a string object"); - return -1; - } - tmp = op->func_name; - Py_INCREF(value); - op->func_name = value; - Py_XDECREF(tmp); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) -{ - Py_INCREF(op->func_qualname); - return op->func_qualname; -} -static int -__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) -{ - PyObject *tmp; -#if PY_MAJOR_VERSION >= 3 - if (unlikely(value == NULL || !PyUnicode_Check(value))) -#else - if (unlikely(value == NULL || !PyString_Check(value))) -#endif - { - PyErr_SetString(PyExc_TypeError, - "__qualname__ must be set to a string object"); - return -1; - } - tmp = op->func_qualname; - Py_INCREF(value); - op->func_qualname = value; - Py_XDECREF(tmp); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure) -{ - PyObject *self; - self = m->func_closure; - if (self == NULL) - self = Py_None; - Py_INCREF(self); - return self; -} -static PyObject * -__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) -{ - if (unlikely(op->func_dict == NULL)) { - op->func_dict = PyDict_New(); - if (unlikely(op->func_dict == NULL)) - return NULL; - } - Py_INCREF(op->func_dict); - return op->func_dict; -} -static int -__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) -{ - PyObject *tmp; - if (unlikely(value == NULL)) { - PyErr_SetString(PyExc_TypeError, - "function's dictionary may not be deleted"); - return -1; - } - if (unlikely(!PyDict_Check(value))) { - PyErr_SetString(PyExc_TypeError, - "setting function's dictionary to a non-dict"); - return -1; - } - tmp = op->func_dict; - Py_INCREF(value); - op->func_dict = value; - Py_XDECREF(tmp); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) -{ - Py_INCREF(op->func_globals); - return op->func_globals; -} -static PyObject * -__Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) -{ - Py_INCREF(Py_None); - return Py_None; -} -static PyObject * -__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) -{ - PyObject* result = (op->func_code) ? op->func_code : Py_None; - Py_INCREF(result); - return result; -} -static int -__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { - int result = 0; - PyObject *res = op->defaults_getter((PyObject *) op); - if (unlikely(!res)) - return -1; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - op->defaults_tuple = PyTuple_GET_ITEM(res, 0); - Py_INCREF(op->defaults_tuple); - op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); - Py_INCREF(op->defaults_kwdict); - #else - op->defaults_tuple = PySequence_ITEM(res, 0); - if (unlikely(!op->defaults_tuple)) result = -1; - else { - op->defaults_kwdict = PySequence_ITEM(res, 1); - if (unlikely(!op->defaults_kwdict)) result = -1; - } - #endif - Py_DECREF(res); - return result; -} -static int -__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { - PyObject* tmp; - if (!value) { - value = Py_None; - } else if (value != Py_None && !PyTuple_Check(value)) { - PyErr_SetString(PyExc_TypeError, - "__defaults__ must be set to a tuple object"); - return -1; - } - Py_INCREF(value); - tmp = op->defaults_tuple; - op->defaults_tuple = value; - Py_XDECREF(tmp); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { - PyObject* result = op->defaults_tuple; - if (unlikely(!result)) { - if (op->defaults_getter) { - if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; - result = op->defaults_tuple; - } else { - result = Py_None; - } - } - Py_INCREF(result); - return result; -} -static int -__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { - PyObject* tmp; - if (!value) { - value = Py_None; - } else if (value != Py_None && !PyDict_Check(value)) { - PyErr_SetString(PyExc_TypeError, - "__kwdefaults__ must be set to a dict object"); - return -1; - } - Py_INCREF(value); - tmp = op->defaults_kwdict; - op->defaults_kwdict = value; - Py_XDECREF(tmp); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { - PyObject* result = op->defaults_kwdict; - if (unlikely(!result)) { - if (op->defaults_getter) { - if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; - result = op->defaults_kwdict; - } else { - result = Py_None; - } - } - Py_INCREF(result); - return result; -} -static int -__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { - PyObject* tmp; - if (!value || value == Py_None) { - value = NULL; - } else if (!PyDict_Check(value)) { - PyErr_SetString(PyExc_TypeError, - "__annotations__ must be set to a dict object"); - return -1; - } - Py_XINCREF(value); - tmp = op->func_annotations; - op->func_annotations = value; - Py_XDECREF(tmp); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { - PyObject* result = op->func_annotations; - if (unlikely(!result)) { - result = PyDict_New(); - if (unlikely(!result)) return NULL; - op->func_annotations = result; - } - Py_INCREF(result); - return result; -} -static PyGetSetDef __pyx_CyFunction_getsets[] = { - {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, - {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, - {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, - {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, - {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, - {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0}, - {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, - {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, - {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, - {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, - {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, - {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, - {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, - {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, - {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, - {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, - {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, - {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, - {0, 0, 0, 0, 0} -}; -static PyMemberDef __pyx_CyFunction_members[] = { - {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0}, - {0, 0, 0, 0, 0} -}; -static PyObject * -__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args) -{ -#if PY_MAJOR_VERSION >= 3 - return PyUnicode_FromString(m->func.m_ml->ml_name); -#else - return PyString_FromString(m->func.m_ml->ml_name); -#endif -} -static PyMethodDef __pyx_CyFunction_methods[] = { - {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, - {0, 0, 0, 0} -}; -#if PY_VERSION_HEX < 0x030500A0 -#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) -#else -#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist) -#endif -static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject* qualname, - PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { - __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type); - if (op == NULL) - return NULL; - op->flags = flags; - __Pyx_CyFunction_weakreflist(op) = NULL; - op->func.m_ml = ml; - op->func.m_self = (PyObject *) op; - Py_XINCREF(closure); - op->func_closure = closure; - Py_XINCREF(module); - op->func.m_module = module; - op->func_dict = NULL; - op->func_name = NULL; - Py_INCREF(qualname); - op->func_qualname = qualname; - op->func_doc = NULL; - op->func_classobj = NULL; - op->func_globals = globals; - Py_INCREF(op->func_globals); - Py_XINCREF(code); - op->func_code = code; - op->defaults_pyobjects = 0; - op->defaults = NULL; - op->defaults_tuple = NULL; - op->defaults_kwdict = NULL; - op->defaults_getter = NULL; - op->func_annotations = NULL; - PyObject_GC_Track(op); - return (PyObject *) op; -} -static int -__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) -{ - Py_CLEAR(m->func_closure); - Py_CLEAR(m->func.m_module); - Py_CLEAR(m->func_dict); - Py_CLEAR(m->func_name); - Py_CLEAR(m->func_qualname); - Py_CLEAR(m->func_doc); - Py_CLEAR(m->func_globals); - Py_CLEAR(m->func_code); - Py_CLEAR(m->func_classobj); - Py_CLEAR(m->defaults_tuple); - Py_CLEAR(m->defaults_kwdict); - Py_CLEAR(m->func_annotations); - if (m->defaults) { - PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); - int i; - for (i = 0; i < m->defaults_pyobjects; i++) - Py_XDECREF(pydefaults[i]); - PyObject_Free(m->defaults); - m->defaults = NULL; - } - return 0; -} -static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m) -{ - if (__Pyx_CyFunction_weakreflist(m) != NULL) - PyObject_ClearWeakRefs((PyObject *) m); - __Pyx_CyFunction_clear(m); - PyObject_GC_Del(m); -} -static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) -{ - PyObject_GC_UnTrack(m); - __Pyx__CyFunction_dealloc(m); -} -static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) -{ - Py_VISIT(m->func_closure); - Py_VISIT(m->func.m_module); - Py_VISIT(m->func_dict); - Py_VISIT(m->func_name); - Py_VISIT(m->func_qualname); - Py_VISIT(m->func_doc); - Py_VISIT(m->func_globals); - Py_VISIT(m->func_code); - Py_VISIT(m->func_classobj); - Py_VISIT(m->defaults_tuple); - Py_VISIT(m->defaults_kwdict); - if (m->defaults) { - PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); - int i; - for (i = 0; i < m->defaults_pyobjects; i++) - Py_VISIT(pydefaults[i]); - } - return 0; -} -static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type) -{ - __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; - if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) { - Py_INCREF(func); - return func; - } - if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) { - if (type == NULL) - type = (PyObject *)(Py_TYPE(obj)); - return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type))); - } - if (obj == Py_None) - obj = NULL; - return __Pyx_PyMethod_New(func, obj, type); -} -static PyObject* -__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) -{ -#if PY_MAJOR_VERSION >= 3 - return PyUnicode_FromFormat("", - op->func_qualname, (void *)op); -#else - return PyString_FromFormat("", - PyString_AsString(op->func_qualname), (void *)op); -#endif -} -static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { - PyCFunctionObject* f = (PyCFunctionObject*)func; - PyCFunction meth = f->m_ml->ml_meth; - Py_ssize_t size; - switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { - case METH_VARARGS: - if (likely(kw == NULL || PyDict_Size(kw) == 0)) - return (*meth)(self, arg); - break; - case METH_VARARGS | METH_KEYWORDS: - return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw); - case METH_NOARGS: - if (likely(kw == NULL || PyDict_Size(kw) == 0)) { - size = PyTuple_GET_SIZE(arg); - if (likely(size == 0)) - return (*meth)(self, NULL); - PyErr_Format(PyExc_TypeError, - "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", - f->m_ml->ml_name, size); - return NULL; - } - break; - case METH_O: - if (likely(kw == NULL || PyDict_Size(kw) == 0)) { - size = PyTuple_GET_SIZE(arg); - if (likely(size == 1)) { - PyObject *result, *arg0; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - arg0 = PyTuple_GET_ITEM(arg, 0); - #else - arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; - #endif - result = (*meth)(self, arg0); - #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) - Py_DECREF(arg0); - #endif - return result; - } - PyErr_Format(PyExc_TypeError, - "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", - f->m_ml->ml_name, size); - return NULL; - } - break; - default: - PyErr_SetString(PyExc_SystemError, "Bad call flags in " - "__Pyx_CyFunction_Call. METH_OLDARGS is no " - "longer supported!"); - return NULL; - } - PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", - f->m_ml->ml_name); - return NULL; -} -static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { - return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw); -} -static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { - PyObject *result; - __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; - if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { - Py_ssize_t argc; - PyObject *new_args; - PyObject *self; - argc = PyTuple_GET_SIZE(args); - new_args = PyTuple_GetSlice(args, 1, argc); - if (unlikely(!new_args)) - return NULL; - self = PyTuple_GetItem(args, 0); - if (unlikely(!self)) { - Py_DECREF(new_args); - return NULL; - } - result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); - Py_DECREF(new_args); - } else { - result = __Pyx_CyFunction_Call(func, args, kw); - } - return result; -} -static PyTypeObject __pyx_CyFunctionType_type = { - PyVarObject_HEAD_INIT(0, 0) - "cython_function_or_method", - sizeof(__pyx_CyFunctionObject), - 0, - (destructor) __Pyx_CyFunction_dealloc, - 0, - 0, - 0, -#if PY_MAJOR_VERSION < 3 - 0, -#else - 0, -#endif - (reprfunc) __Pyx_CyFunction_repr, - 0, - 0, - 0, - 0, - __Pyx_CyFunction_CallAsMethod, - 0, - 0, - 0, - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, - 0, - (traverseproc) __Pyx_CyFunction_traverse, - (inquiry) __Pyx_CyFunction_clear, - 0, -#if PY_VERSION_HEX < 0x030500A0 - offsetof(__pyx_CyFunctionObject, func_weakreflist), -#else - offsetof(PyCFunctionObject, m_weakreflist), -#endif - 0, - 0, - __pyx_CyFunction_methods, - __pyx_CyFunction_members, - __pyx_CyFunction_getsets, - 0, - 0, - __Pyx_CyFunction_descr_get, - 0, - offsetof(__pyx_CyFunctionObject, func_dict), - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, -#if PY_VERSION_HEX >= 0x030400a1 - 0, -#endif -}; -static int __pyx_CyFunction_init(void) { - __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); - if (unlikely(__pyx_CyFunctionType == NULL)) { - return -1; - } - return 0; -} -static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { - __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; - m->defaults = PyObject_Malloc(size); - if (unlikely(!m->defaults)) - return PyErr_NoMemory(); - memset(m->defaults, 0, size); - m->defaults_pyobjects = pyobjects; - return m->defaults; -} -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { - __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; - m->defaults_tuple = tuple; - Py_INCREF(tuple); -} -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { - __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; - m->defaults_kwdict = dict; - Py_INCREF(dict); -} -static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { - __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; - m->func_annotations = dict; - Py_INCREF(dict); -} - -/* pop_index */ -static PyObject* __Pyx__PyObject_PopNewIndex(PyObject* L, PyObject* py_ix) { - PyObject *r; - if (unlikely(!py_ix)) return NULL; - r = __Pyx__PyObject_PopIndex(L, py_ix); - Py_DECREF(py_ix); - return r; -} -static PyObject* __Pyx__PyObject_PopIndex(PyObject* L, PyObject* py_ix) { - return __Pyx_PyObject_CallMethod1(L, __pyx_n_s_pop, py_ix); -} -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static PyObject* __Pyx__PyList_PopIndex(PyObject* L, PyObject* py_ix, Py_ssize_t ix) { - Py_ssize_t size = PyList_GET_SIZE(L); - if (likely(size > (((PyListObject*)L)->allocated >> 1))) { - Py_ssize_t cix = ix; - if (cix < 0) { - cix += size; - } - if (likely(__Pyx_is_valid_index(cix, size))) { - PyObject* v = PyList_GET_ITEM(L, cix); - Py_SIZE(L) -= 1; - size -= 1; - memmove(&PyList_GET_ITEM(L, cix), &PyList_GET_ITEM(L, cix+1), (size_t)(size-cix)*sizeof(PyObject*)); - return v; - } - } - if (py_ix == Py_None) { - return __Pyx__PyObject_PopNewIndex(L, PyInt_FromSsize_t(ix)); - } else { - return __Pyx__PyObject_PopIndex(L, py_ix); - } -} -#endif - -/* UnpackUnboundCMethod */ -static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) { - PyObject *method; - method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name); - if (unlikely(!method)) - return -1; - target->method = method; -#if CYTHON_COMPILING_IN_CPYTHON - #if PY_MAJOR_VERSION >= 3 - if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type))) - #endif - { - PyMethodDescrObject *descr = (PyMethodDescrObject*) method; - target->func = descr->d_method->ml_meth; - target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS); - } -#endif - return 0; -} - -/* CallUnboundCMethod1 */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) { - if (likely(cfunc->func)) { - int flag = cfunc->flag; - if (flag == METH_O) { - return (*(cfunc->func))(self, arg); - } else if (PY_VERSION_HEX >= 0x030600B1 && flag == METH_FASTCALL) { - if (PY_VERSION_HEX >= 0x030700A0) { - return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, &arg, 1); - } else { - return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL); - } - } else if (PY_VERSION_HEX >= 0x030700A0 && flag == (METH_FASTCALL | METH_KEYWORDS)) { - return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL); - } - } - return __Pyx__CallUnboundCMethod1(cfunc, self, arg); -} -#endif -static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){ - PyObject *args, *result = NULL; - if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; -#if CYTHON_COMPILING_IN_CPYTHON - if (cfunc->func && (cfunc->flag & METH_VARARGS)) { - args = PyTuple_New(1); - if (unlikely(!args)) goto bad; - Py_INCREF(arg); - PyTuple_SET_ITEM(args, 0, arg); - if (cfunc->flag & METH_KEYWORDS) - result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL); - else - result = (*cfunc->func)(self, args); - } else { - args = PyTuple_New(2); - if (unlikely(!args)) goto bad; - Py_INCREF(self); - PyTuple_SET_ITEM(args, 0, self); - Py_INCREF(arg); - PyTuple_SET_ITEM(args, 1, arg); - result = __Pyx_PyObject_Call(cfunc->method, args, NULL); - } -#else - args = PyTuple_Pack(2, self, arg); - if (unlikely(!args)) goto bad; - result = __Pyx_PyObject_Call(cfunc->method, args, NULL); -#endif -bad: - Py_XDECREF(args); - return result; -} - -/* CallUnboundCMethod0 */ -static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) { - PyObject *args, *result = NULL; - if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; -#if CYTHON_ASSUME_SAFE_MACROS - args = PyTuple_New(1); - if (unlikely(!args)) goto bad; - Py_INCREF(self); - PyTuple_SET_ITEM(args, 0, self); -#else - args = PyTuple_Pack(1, self); - if (unlikely(!args)) goto bad; -#endif - result = __Pyx_PyObject_Call(cfunc->method, args, NULL); - Py_DECREF(args); -bad: - return result; -} - -/* py_dict_items */ -static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) { - if (PY_MAJOR_VERSION >= 3) - return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_items, d); - else - return PyDict_Items(d); -} - -/* None */ -static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) { - PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname); -} - -/* CallUnboundCMethod2 */ -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1 -static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) { - if (likely(cfunc->func)) { - PyObject *args[2] = {arg1, arg2}; - if (cfunc->flag == METH_FASTCALL) { - #if PY_VERSION_HEX >= 0x030700A0 - return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, args, 2); - #else - return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL); - #endif - } - #if PY_VERSION_HEX >= 0x030700A0 - if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS)) - return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL); - #endif - } - return __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2); -} -#endif -static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){ - PyObject *args, *result = NULL; - if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; -#if CYTHON_COMPILING_IN_CPYTHON - if (cfunc->func && (cfunc->flag & METH_VARARGS)) { - args = PyTuple_New(2); - if (unlikely(!args)) goto bad; - Py_INCREF(arg1); - PyTuple_SET_ITEM(args, 0, arg1); - Py_INCREF(arg2); - PyTuple_SET_ITEM(args, 1, arg2); - if (cfunc->flag & METH_KEYWORDS) - result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL); - else - result = (*cfunc->func)(self, args); - } else { - args = PyTuple_New(3); - if (unlikely(!args)) goto bad; - Py_INCREF(self); - PyTuple_SET_ITEM(args, 0, self); - Py_INCREF(arg1); - PyTuple_SET_ITEM(args, 1, arg1); - Py_INCREF(arg2); - PyTuple_SET_ITEM(args, 2, arg2); - result = __Pyx_PyObject_Call(cfunc->method, args, NULL); - } -#else - args = PyTuple_Pack(3, self, arg1, arg2); - if (unlikely(!args)) goto bad; - result = __Pyx_PyObject_Call(cfunc->method, args, NULL); -#endif -bad: - Py_XDECREF(args); - return result; -} - -/* dict_getitem_default */ -static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) { - PyObject* value; -#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY - value = PyDict_GetItemWithError(d, key); - if (unlikely(!value)) { - if (unlikely(PyErr_Occurred())) - return NULL; - value = default_value; - } - Py_INCREF(value); - if ((1)); -#else - if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) { - value = PyDict_GetItem(d, key); - if (unlikely(!value)) { - value = default_value; - } - Py_INCREF(value); - } -#endif - else { - if (default_value == Py_None) - value = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_get, d, key); - else - value = __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyDict_Type_get, d, key, default_value); - } - return value; -} - -/* DictGetItem */ -#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY -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; -} -#endif - -/* PyErrExceptionMatches */ -#if CYTHON_FAST_THREAD_STATE -static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { - Py_ssize_t i, n; - n = PyTuple_GET_SIZE(tuple); -#if PY_MAJOR_VERSION >= 3 - for (i=0; icurexc_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); -} -#endif - -/* PyIntCompare */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_NeObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) { - if (op1 == op2) { - Py_RETURN_FALSE; - } - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - const long b = intval; - long a = PyInt_AS_LONG(op1); - if (a != b) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } - #endif - #if CYTHON_USE_PYLONG_INTERNALS - if (likely(PyLong_CheckExact(op1))) { - int unequal; - unsigned long uintval; - Py_ssize_t size = Py_SIZE(op1); - const digit* digits = ((PyLongObject*)op1)->ob_digit; - if (intval == 0) { - if (size != 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } else if (intval < 0) { - if (size >= 0) - Py_RETURN_TRUE; - intval = -intval; - size = -size; - } else { - if (size <= 0) - Py_RETURN_TRUE; - } - uintval = (unsigned long) intval; -#if PyLong_SHIFT * 4 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 4)) { - unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif -#if PyLong_SHIFT * 3 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 3)) { - unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif -#if PyLong_SHIFT * 2 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 2)) { - unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif -#if PyLong_SHIFT * 1 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 1)) { - unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif - unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK)); - if (unequal != 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } - #endif - if (PyFloat_CheckExact(op1)) { - const long b = intval; - double a = PyFloat_AS_DOUBLE(op1); - if ((double)a != (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } - return ( - PyObject_RichCompare(op1, op2, Py_NE)); -} - -/* PyIntBinop */ -#if !CYTHON_COMPILING_IN_PYPY -#if PY_MAJOR_VERSION < 3 || CYTHON_USE_PYLONG_INTERNALS -#define __Pyx_PyInt_RemainderObjC_ZeroDivisionError(operand)\ - if (unlikely(zerodivision_check && ((operand) == 0))) {\ - PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");\ - return NULL;\ - } -#endif -static PyObject* __Pyx_PyInt_RemainderObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) { - (void)inplace; - (void)zerodivision_check; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - const long b = intval; - long x; - long a = PyInt_AS_LONG(op1); - __Pyx_PyInt_RemainderObjC_ZeroDivisionError(b) - x = a % b; - x += ((x != 0) & ((x ^ b) < 0)) * b; - return PyInt_FromLong(x); - } - #endif - #if CYTHON_USE_PYLONG_INTERNALS - if (likely(PyLong_CheckExact(op1))) { - const long b = intval; - long a, x; -#ifdef HAVE_LONG_LONG - const PY_LONG_LONG llb = intval; - PY_LONG_LONG lla, llx; -#endif - const digit* digits = ((PyLongObject*)op1)->ob_digit; - const Py_ssize_t size = Py_SIZE(op1); - if (likely(__Pyx_sst_abs(size) <= 1)) { - a = likely(size) ? digits[0] : 0; - if (size == -1) a = -a; - } else { - switch (size) { - case -2: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 2: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case -3: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 3: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case -4: - if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 4: - if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - default: return PyLong_Type.tp_as_number->nb_remainder(op1, op2); - } - } - __Pyx_PyInt_RemainderObjC_ZeroDivisionError(b) - x = a % b; - x += ((x != 0) & ((x ^ b) < 0)) * b; - return PyLong_FromLong(x); -#ifdef HAVE_LONG_LONG - long_long: - llx = lla % llb; - llx += ((llx != 0) & ((llx ^ llb) < 0)) * llb; - return PyLong_FromLongLong(llx); -#endif - - - } - #endif - return (inplace ? PyNumber_InPlaceRemainder : PyNumber_Remainder)(op1, op2); -} -#endif - -/* PyIntBinop */ -#if !CYTHON_COMPILING_IN_PYPY -#if PY_MAJOR_VERSION < 3 || CYTHON_USE_PYLONG_INTERNALS -#define __Pyx_PyInt_FloorDivideObjC_ZeroDivisionError(operand)\ - if (unlikely(zerodivision_check && ((operand) == 0))) {\ - PyErr_SetString(PyExc_ZeroDivisionError, "integer division by zero");\ - return NULL;\ - } -#endif -static PyObject* __Pyx_PyInt_FloorDivideObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) { - (void)inplace; - (void)zerodivision_check; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - const long b = intval; - long x; - long a = PyInt_AS_LONG(op1); - __Pyx_PyInt_FloorDivideObjC_ZeroDivisionError(b) - if (unlikely(b == -1 && ((unsigned long)a) == 0-(unsigned long)a)) - return PyInt_Type.tp_as_number->nb_floor_divide(op1, op2); - else { - long q, r; - q = a / b; - r = a - q*b; - q -= ((r != 0) & ((r ^ b) < 0)); - x = q; - } - return PyInt_FromLong(x); - } - #endif - #if CYTHON_USE_PYLONG_INTERNALS - if (likely(PyLong_CheckExact(op1))) { - const long b = intval; - long a, x; -#ifdef HAVE_LONG_LONG - const PY_LONG_LONG llb = intval; - PY_LONG_LONG lla, llx; -#endif - const digit* digits = ((PyLongObject*)op1)->ob_digit; - const Py_ssize_t size = Py_SIZE(op1); - if (likely(__Pyx_sst_abs(size) <= 1)) { - a = likely(size) ? digits[0] : 0; - if (size == -1) a = -a; - } else { - switch (size) { - case -2: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 2: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case -3: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 3: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case -4: - if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { - lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - case 4: - if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; -#ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { - lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; -#endif - } - CYTHON_FALLTHROUGH; - default: return PyLong_Type.tp_as_number->nb_floor_divide(op1, op2); - } - } - __Pyx_PyInt_FloorDivideObjC_ZeroDivisionError(b) - { - long q, r; - q = a / b; - r = a - q*b; - q -= ((r != 0) & ((r ^ b) < 0)); - x = q; - } - return PyLong_FromLong(x); -#ifdef HAVE_LONG_LONG - long_long: - { - PY_LONG_LONG q, r; - q = lla / llb; - r = lla - q*llb; - q -= ((r != 0) & ((r ^ llb) < 0)); - llx = q; - } - return PyLong_FromLongLong(llx); -#endif - - - } - #endif - return (inplace ? PyNumber_InPlaceFloorDivide : PyNumber_FloorDivide)(op1, op2); -} -#endif - -/* PyObject_GenericGetAttrNoDict */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { - PyErr_Format(PyExc_AttributeError, -#if PY_MAJOR_VERSION >= 3 - "'%.50s' object has no attribute '%U'", - tp->tp_name, attr_name); -#else - "'%.50s' object has no attribute '%.400s'", - tp->tp_name, PyString_AS_STRING(attr_name)); -#endif - return NULL; -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { - PyObject *descr; - PyTypeObject *tp = Py_TYPE(obj); - if (unlikely(!PyString_Check(attr_name))) { - return PyObject_GenericGetAttr(obj, attr_name); - } - assert(!tp->tp_dictoffset); - descr = _PyType_Lookup(tp, attr_name); - if (unlikely(!descr)) { - return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); - } - Py_INCREF(descr); - #if PY_MAJOR_VERSION < 3 - if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) - #endif - { - descrgetfunc f = Py_TYPE(descr)->tp_descr_get; - if (unlikely(f)) { - PyObject *res = f(descr, obj, (PyObject *)tp); - Py_DECREF(descr); - return res; - } - } - return descr; -} -#endif - -/* 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; - #if PY_MAJOR_VERSION < 3 - PyObject *py_import; - py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); - if (!py_import) - goto bad; - #endif - 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 PY_MAJOR_VERSION >= 3 - 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; - } - #endif - if (!module) { - #if PY_MAJOR_VERSION < 3 - 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); - #else - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, level); - #endif - } - } -bad: - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(py_import); - #endif - Py_XDECREF(empty_list); - Py_XDECREF(empty_dict); - return module; -} - -/* ImportFrom */ -static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { - PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); - if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Format(PyExc_ImportError, - #if PY_MAJOR_VERSION < 3 - "cannot import name %.230s", PyString_AS_STRING(name)); - #else - "cannot import name %S", name); - #endif - } - return value; -} - -/* CalculateMetaclass */ -static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { - Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases); - for (i=0; i < nbases; i++) { - PyTypeObject *tmptype; - PyObject *tmp = PyTuple_GET_ITEM(bases, i); - tmptype = Py_TYPE(tmp); -#if PY_MAJOR_VERSION < 3 - if (tmptype == &PyClass_Type) - continue; -#endif - if (!metaclass) { - metaclass = tmptype; - continue; - } - if (PyType_IsSubtype(metaclass, tmptype)) - continue; - if (PyType_IsSubtype(tmptype, metaclass)) { - metaclass = tmptype; - continue; - } - PyErr_SetString(PyExc_TypeError, - "metaclass conflict: " - "the metaclass of a derived class " - "must be a (non-strict) subclass " - "of the metaclasses of all its bases"); - return NULL; - } - if (!metaclass) { -#if PY_MAJOR_VERSION < 3 - metaclass = &PyClass_Type; -#else - metaclass = &PyType_Type; -#endif - } - Py_INCREF((PyObject*) metaclass); - return (PyObject*) metaclass; -} - -/* Py3ClassCreate */ -static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, - PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) { - PyObject *ns; - if (metaclass) { - PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare); - if (prep) { - PyObject *pargs = PyTuple_Pack(2, name, bases); - if (unlikely(!pargs)) { - Py_DECREF(prep); - return NULL; - } - ns = PyObject_Call(prep, pargs, mkw); - Py_DECREF(prep); - Py_DECREF(pargs); - } else { - if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError))) - return NULL; - PyErr_Clear(); - ns = PyDict_New(); - } - } else { - ns = PyDict_New(); - } - if (unlikely(!ns)) - return NULL; - if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad; - if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad; - if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad; - return ns; -bad: - Py_DECREF(ns); - return NULL; -} -static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, - PyObject *dict, PyObject *mkw, - int calculate_metaclass, int allow_py2_metaclass) { - PyObject *result, *margs; - PyObject *owned_metaclass = NULL; - if (allow_py2_metaclass) { - owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass); - if (owned_metaclass) { - metaclass = owned_metaclass; - } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) { - PyErr_Clear(); - } else { - return NULL; - } - } - if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) { - metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases); - Py_XDECREF(owned_metaclass); - if (unlikely(!metaclass)) - return NULL; - owned_metaclass = metaclass; - } - margs = PyTuple_Pack(3, name, bases, dict); - if (unlikely(!margs)) { - result = NULL; - } else { - result = PyObject_Call(metaclass, margs, mkw); - Py_DECREF(margs); - } - Py_XDECREF(owned_metaclass); - return result; -} - -/* CLineInTraceback */ -#ifndef CYTHON_CLINE_IN_TRACEBACK -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; -#if CYTHON_COMPILING_IN_CPYTHON - PyObject **cython_runtime_dict; -#endif - if (unlikely(!__pyx_cython_runtime)) { - return c_line; - } - __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); -#if CYTHON_COMPILING_IN_CPYTHON - 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 -#endif - { - 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; -} -#endif - -/* 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 */ -#include "compile.h" -#include "frameobject.h" -#include "traceback.h" -static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; - #if PY_MAJOR_VERSION < 3 - py_srcfile = PyString_FromString(filename); - #else - py_srcfile = PyUnicode_FromString(filename); - #endif - if (!py_srcfile) goto bad; - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); - #endif - } - 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); -} - -/* Print */ -#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3 -static PyObject *__Pyx_GetStdout(void) { - PyObject *f = PySys_GetObject((char *)"stdout"); - if (!f) { - PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout"); - } - return f; -} -static int __Pyx_Print(PyObject* f, PyObject *arg_tuple, int newline) { - int i; - if (!f) { - if (!(f = __Pyx_GetStdout())) - return -1; - } - Py_INCREF(f); - for (i=0; i < PyTuple_GET_SIZE(arg_tuple); i++) { - PyObject* v; - if (PyFile_SoftSpace(f, 1)) { - if (PyFile_WriteString(" ", f) < 0) - goto error; - } - v = PyTuple_GET_ITEM(arg_tuple, i); - if (PyFile_WriteObject(v, f, Py_PRINT_RAW) < 0) - goto error; - if (PyString_Check(v)) { - char *s = PyString_AsString(v); - Py_ssize_t len = PyString_Size(v); - if (len > 0) { - switch (s[len-1]) { - case ' ': break; - case '\f': case '\r': case '\n': case '\t': case '\v': - PyFile_SoftSpace(f, 0); - break; - default: break; - } - } - } - } - if (newline) { - if (PyFile_WriteString("\n", f) < 0) - goto error; - PyFile_SoftSpace(f, 0); - } - Py_DECREF(f); - return 0; -error: - Py_DECREF(f); - return -1; -} -#else -static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) { - PyObject* kwargs = 0; - PyObject* result = 0; - PyObject* end_string; - if (unlikely(!__pyx_print)) { - __pyx_print = PyObject_GetAttr(__pyx_b, __pyx_n_s_print); - if (!__pyx_print) - return -1; - } - if (stream) { - kwargs = PyDict_New(); - if (unlikely(!kwargs)) - return -1; - if (unlikely(PyDict_SetItem(kwargs, __pyx_n_s_file, stream) < 0)) - goto bad; - if (!newline) { - end_string = PyUnicode_FromStringAndSize(" ", 1); - if (unlikely(!end_string)) - goto bad; - if (PyDict_SetItem(kwargs, __pyx_n_s_end, end_string) < 0) { - Py_DECREF(end_string); - goto bad; - } - Py_DECREF(end_string); - } - } else if (!newline) { - if (unlikely(!__pyx_print_kwargs)) { - __pyx_print_kwargs = PyDict_New(); - if (unlikely(!__pyx_print_kwargs)) - return -1; - end_string = PyUnicode_FromStringAndSize(" ", 1); - if (unlikely(!end_string)) - return -1; - if (PyDict_SetItem(__pyx_print_kwargs, __pyx_n_s_end, end_string) < 0) { - Py_DECREF(end_string); - return -1; - } - Py_DECREF(end_string); - } - kwargs = __pyx_print_kwargs; - } - result = PyObject_Call(__pyx_print, arg_tuple, kwargs); - if (unlikely(kwargs) && (kwargs != __pyx_print_kwargs)) - Py_DECREF(kwargs); - if (!result) - return -1; - Py_DECREF(result); - return 0; -bad: - if (kwargs != __pyx_print_kwargs) - Py_XDECREF(kwargs); - return -1; -} -#endif - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } -} - -/* PyExec */ -static CYTHON_INLINE PyObject* __Pyx_PyExec2(PyObject* o, PyObject* globals) { - return __Pyx_PyExec3(o, globals, NULL); -} -static PyObject* __Pyx_PyExec3(PyObject* o, PyObject* globals, PyObject* locals) { - PyObject* result; - PyObject* s = 0; - char *code = 0; - if (!globals || globals == Py_None) { - globals = __pyx_d; - } else if (!PyDict_Check(globals)) { - PyErr_Format(PyExc_TypeError, "exec() arg 2 must be a dict, not %.200s", - Py_TYPE(globals)->tp_name); - goto bad; - } - if (!locals || locals == Py_None) { - locals = globals; - } - if (__Pyx_PyDict_GetItemStr(globals, __pyx_n_s_builtins) == NULL) { - if (PyDict_SetItem(globals, __pyx_n_s_builtins, PyEval_GetBuiltins()) < 0) - goto bad; - } - if (PyCode_Check(o)) { - if (__Pyx_PyCode_HasFreeVars((PyCodeObject *)o)) { - PyErr_SetString(PyExc_TypeError, - "code object passed to exec() may not contain free variables"); - goto bad; - } - #if CYTHON_COMPILING_IN_PYPY || PY_VERSION_HEX < 0x030200B1 - result = PyEval_EvalCode((PyCodeObject *)o, globals, locals); - #else - result = PyEval_EvalCode(o, globals, locals); - #endif - } else { - PyCompilerFlags cf; - cf.cf_flags = 0; - if (PyUnicode_Check(o)) { - cf.cf_flags = PyCF_SOURCE_IS_UTF8; - s = PyUnicode_AsUTF8String(o); - if (!s) goto bad; - o = s; - #if PY_MAJOR_VERSION >= 3 - } else if (!PyBytes_Check(o)) { - #else - } else if (!PyString_Check(o)) { - #endif - PyErr_Format(PyExc_TypeError, - "exec: arg 1 must be string, bytes or code object, got %.200s", - Py_TYPE(o)->tp_name); - goto bad; - } - #if PY_MAJOR_VERSION >= 3 - code = PyBytes_AS_STRING(o); - #else - code = PyString_AS_STRING(o); - #endif - if (PyEval_MergeCompilerFlags(&cf)) { - result = PyRun_StringFlags(code, Py_file_input, globals, locals, &cf); - } else { - result = PyRun_String(code, Py_file_input, globals, locals); - } - Py_XDECREF(s); - } - return result; -bad: - Py_XDECREF(s); - return 0; -} - -/* PrintOne */ -#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3 -static int __Pyx_PrintOne(PyObject* f, PyObject *o) { - if (!f) { - if (!(f = __Pyx_GetStdout())) - return -1; - } - Py_INCREF(f); - if (PyFile_SoftSpace(f, 0)) { - if (PyFile_WriteString(" ", f) < 0) - goto error; - } - if (PyFile_WriteObject(o, f, Py_PRINT_RAW) < 0) - goto error; - if (PyFile_WriteString("\n", f) < 0) - goto error; - Py_DECREF(f); - return 0; -error: - Py_DECREF(f); - return -1; - /* the line below is just to avoid C compiler - * warnings about unused functions */ - return __Pyx_Print(f, NULL, 0); -} -#else -static int __Pyx_PrintOne(PyObject* stream, PyObject *o) { - int res; - PyObject* arg_tuple = PyTuple_Pack(1, o); - if (unlikely(!arg_tuple)) - return -1; - res = __Pyx_Print(stream, arg_tuple, 1); - Py_DECREF(arg_tuple); - return res; -} -#endif - -/* GetAttr */ -static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { -#if CYTHON_USE_TYPE_SLOTS -#if PY_MAJOR_VERSION >= 3 - if (likely(PyUnicode_Check(n))) -#else - if (likely(PyString_Check(n))) -#endif - return __Pyx_PyObject_GetAttrStr(o, n); -#endif - return PyObject_GetAttr(o, n); -} - -/* Globals */ -static PyObject* __Pyx_Globals(void) { - Py_ssize_t i; - PyObject *names; - PyObject *globals = __pyx_d; - Py_INCREF(globals); - names = PyObject_Dir(__pyx_m); - if (!names) - goto bad; - for (i = PyList_GET_SIZE(names)-1; i >= 0; i--) { -#if CYTHON_COMPILING_IN_PYPY - PyObject* name = PySequence_ITEM(names, i); - if (!name) - goto bad; -#else - PyObject* name = PyList_GET_ITEM(names, i); -#endif - if (!PyDict_Contains(globals, name)) { - PyObject* value = __Pyx_GetAttr(__pyx_m, name); - if (!value) { -#if CYTHON_COMPILING_IN_PYPY - Py_DECREF(name); -#endif - goto bad; - } - if (PyDict_SetItem(globals, name, value) < 0) { -#if CYTHON_COMPILING_IN_PYPY - Py_DECREF(name); -#endif - Py_DECREF(value); - goto bad; - } - } -#if CYTHON_COMPILING_IN_PYPY - Py_DECREF(name); -#endif - } - Py_DECREF(names); - return globals; -bad: - Py_XDECREF(names); - Py_XDECREF(globals); - return NULL; -} - -/* CIntFromPyVerify */ -#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) -#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ - {\ - func_type value = func_value;\ - if (sizeof(target_type) < sizeof(func_type)) {\ - if (unlikely(value != (func_type) (target_type) value)) {\ - func_type zero = 0;\ - if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ - return (target_type) -1;\ - if (is_unsigned && unlikely(value < zero))\ - goto raise_neg_overflow;\ - else\ - goto raise_overflow;\ - }\ - }\ - return (target_type) value;\ - } - -/* 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 PY_MAJOR_VERSION < 3 - 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 -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - 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; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(long) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - 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; - } -#endif - if (sizeof(long) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - 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; - } -#endif - 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; -} - -/* 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 PY_MAJOR_VERSION < 3 - 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 -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - 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; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(int) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - 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; - } -#endif - if (sizeof(int) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - 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; - } -#endif - 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; -} - -/* FastTypeChecks */ -#if CYTHON_COMPILING_IN_CPYTHON -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); -} -#if PY_MAJOR_VERSION == 2 -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; -} -#else -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; -} -#endif -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); -#if PY_MAJOR_VERSION >= 3 - for (i=0; iexc_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; - #else - 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; - #endif - *type = tmp_type; - *value = tmp_value; - *tb = tmp_tb; -} -#else -static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { - PyObject *tmp_type, *tmp_value, *tmp_tb; - PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); - PyErr_SetExcInfo(*type, *value, *tb); - *type = tmp_type; - *value = tmp_value; - *tb = tmp_tb; -} -#endif - -/* CoroutineBase */ -#include -#include -#define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom) -static int __Pyx_PyGen__FetchStopIterationValue(CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject **pvalue) { - PyObject *et, *ev, *tb; - PyObject *value = NULL; - __Pyx_ErrFetch(&et, &ev, &tb); - if (!et) { - Py_XDECREF(tb); - Py_XDECREF(ev); - Py_INCREF(Py_None); - *pvalue = Py_None; - return 0; - } - if (likely(et == PyExc_StopIteration)) { - if (!ev) { - Py_INCREF(Py_None); - value = Py_None; - } -#if PY_VERSION_HEX >= 0x030300A0 - else if (Py_TYPE(ev) == (PyTypeObject*)PyExc_StopIteration) { - value = ((PyStopIterationObject *)ev)->value; - Py_INCREF(value); - Py_DECREF(ev); - } -#endif - else if (unlikely(PyTuple_Check(ev))) { - if (PyTuple_GET_SIZE(ev) >= 1) { -#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - value = PyTuple_GET_ITEM(ev, 0); - Py_INCREF(value); -#else - value = PySequence_ITEM(ev, 0); -#endif - } else { - Py_INCREF(Py_None); - value = Py_None; - } - Py_DECREF(ev); - } - else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) { - value = ev; - } - if (likely(value)) { - Py_XDECREF(tb); - Py_DECREF(et); - *pvalue = value; - return 0; - } - } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) { - __Pyx_ErrRestore(et, ev, tb); - return -1; - } - PyErr_NormalizeException(&et, &ev, &tb); - if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) { - __Pyx_ErrRestore(et, ev, tb); - return -1; - } - Py_XDECREF(tb); - Py_DECREF(et); -#if PY_VERSION_HEX >= 0x030300A0 - value = ((PyStopIterationObject *)ev)->value; - Py_INCREF(value); - Py_DECREF(ev); -#else - { - PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args); - Py_DECREF(ev); - if (likely(args)) { - value = PySequence_GetItem(args, 0); - Py_DECREF(args); - } - if (unlikely(!value)) { - __Pyx_ErrRestore(NULL, NULL, NULL); - Py_INCREF(Py_None); - value = Py_None; - } - } -#endif - *pvalue = value; - return 0; -} -static CYTHON_INLINE -void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) { - PyObject *t, *v, *tb; - t = exc_state->exc_type; - v = exc_state->exc_value; - tb = exc_state->exc_traceback; - exc_state->exc_type = NULL; - exc_state->exc_value = NULL; - exc_state->exc_traceback = NULL; - Py_XDECREF(t); - Py_XDECREF(v); - Py_XDECREF(tb); -} -#define __Pyx_Coroutine_AlreadyRunningError(gen) (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL) -static void __Pyx__Coroutine_AlreadyRunningError(CYTHON_UNUSED __pyx_CoroutineObject *gen) { - const char *msg; - if ((0)) { - #ifdef __Pyx_Coroutine_USED - } else if (__Pyx_Coroutine_Check((PyObject*)gen)) { - msg = "coroutine already executing"; - #endif - #ifdef __Pyx_AsyncGen_USED - } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) { - msg = "async generator already executing"; - #endif - } else { - msg = "generator already executing"; - } - PyErr_SetString(PyExc_ValueError, msg); -} -#define __Pyx_Coroutine_NotStartedError(gen) (__Pyx__Coroutine_NotStartedError(gen), (PyObject*)NULL) -static void __Pyx__Coroutine_NotStartedError(CYTHON_UNUSED PyObject *gen) { - const char *msg; - if ((0)) { - #ifdef __Pyx_Coroutine_USED - } else if (__Pyx_Coroutine_Check(gen)) { - msg = "can't send non-None value to a just-started coroutine"; - #endif - #ifdef __Pyx_AsyncGen_USED - } else if (__Pyx_AsyncGen_CheckExact(gen)) { - msg = "can't send non-None value to a just-started async generator"; - #endif - } else { - msg = "can't send non-None value to a just-started generator"; - } - PyErr_SetString(PyExc_TypeError, msg); -} -#define __Pyx_Coroutine_AlreadyTerminatedError(gen, value, closing) (__Pyx__Coroutine_AlreadyTerminatedError(gen, value, closing), (PyObject*)NULL) -static void __Pyx__Coroutine_AlreadyTerminatedError(CYTHON_UNUSED PyObject *gen, PyObject *value, CYTHON_UNUSED int closing) { - #ifdef __Pyx_Coroutine_USED - if (!closing && __Pyx_Coroutine_Check(gen)) { - PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine"); - } else - #endif - if (value) { - #ifdef __Pyx_AsyncGen_USED - if (__Pyx_AsyncGen_CheckExact(gen)) - PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration); - else - #endif - PyErr_SetNone(PyExc_StopIteration); - } -} -static -PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, int closing) { - __Pyx_PyThreadState_declare - PyThreadState *tstate; - __Pyx_ExcInfoStruct *exc_state; - PyObject *retval; - assert(!self->is_running); - if (unlikely(self->resume_label == 0)) { - if (unlikely(value && value != Py_None)) { - return __Pyx_Coroutine_NotStartedError((PyObject*)self); - } - } - if (unlikely(self->resume_label == -1)) { - return __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing); - } -#if CYTHON_FAST_THREAD_STATE - __Pyx_PyThreadState_assign - tstate = __pyx_tstate; -#else - tstate = __Pyx_PyThreadState_Current; -#endif - exc_state = &self->gi_exc_state; - if (exc_state->exc_type) { - #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON - #else - if (exc_state->exc_traceback) { - PyTracebackObject *tb = (PyTracebackObject *) exc_state->exc_traceback; - PyFrameObject *f = tb->tb_frame; - Py_XINCREF(tstate->frame); - assert(f->f_back == NULL); - f->f_back = tstate->frame; - } - #endif - } -#if CYTHON_USE_EXC_INFO_STACK - exc_state->previous_item = tstate->exc_info; - tstate->exc_info = exc_state; -#else - if (exc_state->exc_type) { - __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback); - } else { - __Pyx_Coroutine_ExceptionClear(exc_state); - __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback); - } -#endif - self->is_running = 1; - retval = self->body((PyObject *) self, tstate, value); - self->is_running = 0; -#if CYTHON_USE_EXC_INFO_STACK - exc_state = &self->gi_exc_state; - tstate->exc_info = exc_state->previous_item; - exc_state->previous_item = NULL; - __Pyx_Coroutine_ResetFrameBackpointer(exc_state); -#endif - return retval; -} -static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) { - PyObject *exc_tb = exc_state->exc_traceback; - if (likely(exc_tb)) { -#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON -#else - PyTracebackObject *tb = (PyTracebackObject *) exc_tb; - PyFrameObject *f = tb->tb_frame; - Py_CLEAR(f->f_back); -#endif - } -} -static CYTHON_INLINE -PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *retval) { - if (unlikely(!retval)) { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - if (!__Pyx_PyErr_Occurred()) { - PyObject *exc = PyExc_StopIteration; - #ifdef __Pyx_AsyncGen_USED - if (__Pyx_AsyncGen_CheckExact(gen)) - exc = __Pyx_PyExc_StopAsyncIteration; - #endif - __Pyx_PyErr_SetNone(exc); - } - } - return retval; -} -static CYTHON_INLINE -PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) { - PyObject *ret; - PyObject *val = NULL; - __Pyx_Coroutine_Undelegate(gen); - __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val); - ret = __Pyx_Coroutine_SendEx(gen, val, 0); - Py_XDECREF(val); - return ret; -} -static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) { - PyObject *retval; - __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; - PyObject *yf = gen->yieldfrom; - if (unlikely(gen->is_running)) - return __Pyx_Coroutine_AlreadyRunningError(gen); - if (yf) { - PyObject *ret; - gen->is_running = 1; - #ifdef __Pyx_Generator_USED - if (__Pyx_Generator_CheckExact(yf)) { - ret = __Pyx_Coroutine_Send(yf, value); - } else - #endif - #ifdef __Pyx_Coroutine_USED - if (__Pyx_Coroutine_Check(yf)) { - ret = __Pyx_Coroutine_Send(yf, value); - } else - #endif - #ifdef __Pyx_AsyncGen_USED - if (__pyx_PyAsyncGenASend_CheckExact(yf)) { - ret = __Pyx_async_gen_asend_send(yf, value); - } else - #endif - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) - if (PyGen_CheckExact(yf)) { - ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); - } else - #endif - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) - if (PyCoro_CheckExact(yf)) { - ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); - } else - #endif - { - if (value == Py_None) - ret = Py_TYPE(yf)->tp_iternext(yf); - else - ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value); - } - gen->is_running = 0; - if (likely(ret)) { - return ret; - } - retval = __Pyx_Coroutine_FinishDelegation(gen); - } else { - retval = __Pyx_Coroutine_SendEx(gen, value, 0); - } - return __Pyx_Coroutine_MethodReturn(self, retval); -} -static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) { - PyObject *retval = NULL; - int err = 0; - #ifdef __Pyx_Generator_USED - if (__Pyx_Generator_CheckExact(yf)) { - retval = __Pyx_Coroutine_Close(yf); - if (!retval) - return -1; - } else - #endif - #ifdef __Pyx_Coroutine_USED - if (__Pyx_Coroutine_Check(yf)) { - retval = __Pyx_Coroutine_Close(yf); - if (!retval) - return -1; - } else - if (__Pyx_CoroutineAwait_CheckExact(yf)) { - retval = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf, NULL); - if (!retval) - return -1; - } else - #endif - #ifdef __Pyx_AsyncGen_USED - if (__pyx_PyAsyncGenASend_CheckExact(yf)) { - retval = __Pyx_async_gen_asend_close(yf, NULL); - } else - if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) { - retval = __Pyx_async_gen_athrow_close(yf, NULL); - } else - #endif - { - PyObject *meth; - gen->is_running = 1; - meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_close); - if (unlikely(!meth)) { - if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_WriteUnraisable(yf); - } - PyErr_Clear(); - } else { - retval = PyObject_CallFunction(meth, NULL); - Py_DECREF(meth); - if (!retval) - err = -1; - } - gen->is_running = 0; - } - Py_XDECREF(retval); - return err; -} -static PyObject *__Pyx_Generator_Next(PyObject *self) { - __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; - PyObject *yf = gen->yieldfrom; - if (unlikely(gen->is_running)) - return __Pyx_Coroutine_AlreadyRunningError(gen); - if (yf) { - PyObject *ret; - gen->is_running = 1; - #ifdef __Pyx_Generator_USED - if (__Pyx_Generator_CheckExact(yf)) { - ret = __Pyx_Generator_Next(yf); - } else - #endif - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) - if (PyGen_CheckExact(yf)) { - ret = _PyGen_Send((PyGenObject*)yf, NULL); - } else - #endif - #ifdef __Pyx_Coroutine_USED - if (__Pyx_Coroutine_Check(yf)) { - ret = __Pyx_Coroutine_Send(yf, Py_None); - } else - #endif - ret = Py_TYPE(yf)->tp_iternext(yf); - gen->is_running = 0; - if (likely(ret)) { - return ret; - } - return __Pyx_Coroutine_FinishDelegation(gen); - } - return __Pyx_Coroutine_SendEx(gen, Py_None, 0); -} -static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, CYTHON_UNUSED PyObject *arg) { - return __Pyx_Coroutine_Close(self); -} -static PyObject *__Pyx_Coroutine_Close(PyObject *self) { - __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; - PyObject *retval, *raised_exception; - PyObject *yf = gen->yieldfrom; - int err = 0; - if (unlikely(gen->is_running)) - return __Pyx_Coroutine_AlreadyRunningError(gen); - if (yf) { - Py_INCREF(yf); - err = __Pyx_Coroutine_CloseIter(gen, yf); - __Pyx_Coroutine_Undelegate(gen); - Py_DECREF(yf); - } - if (err == 0) - PyErr_SetNone(PyExc_GeneratorExit); - retval = __Pyx_Coroutine_SendEx(gen, NULL, 1); - if (unlikely(retval)) { - const char *msg; - Py_DECREF(retval); - if ((0)) { - #ifdef __Pyx_Coroutine_USED - } else if (__Pyx_Coroutine_Check(self)) { - msg = "coroutine ignored GeneratorExit"; - #endif - #ifdef __Pyx_AsyncGen_USED - } else if (__Pyx_AsyncGen_CheckExact(self)) { -#if PY_VERSION_HEX < 0x03060000 - msg = "async generator ignored GeneratorExit - might require Python 3.6+ finalisation (PEP 525)"; -#else - msg = "async generator ignored GeneratorExit"; -#endif - #endif - } else { - msg = "generator ignored GeneratorExit"; - } - PyErr_SetString(PyExc_RuntimeError, msg); - return NULL; - } - raised_exception = PyErr_Occurred(); - if (likely(!raised_exception || __Pyx_PyErr_GivenExceptionMatches2(raised_exception, PyExc_GeneratorExit, PyExc_StopIteration))) { - if (raised_exception) PyErr_Clear(); - Py_INCREF(Py_None); - return Py_None; - } - return NULL; -} -static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb, - PyObject *args, int close_on_genexit) { - __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; - PyObject *yf = gen->yieldfrom; - if (unlikely(gen->is_running)) - return __Pyx_Coroutine_AlreadyRunningError(gen); - if (yf) { - PyObject *ret; - Py_INCREF(yf); - if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) { - int err = __Pyx_Coroutine_CloseIter(gen, yf); - Py_DECREF(yf); - __Pyx_Coroutine_Undelegate(gen); - if (err < 0) - return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0)); - goto throw_here; - } - gen->is_running = 1; - if (0 - #ifdef __Pyx_Generator_USED - || __Pyx_Generator_CheckExact(yf) - #endif - #ifdef __Pyx_Coroutine_USED - || __Pyx_Coroutine_Check(yf) - #endif - ) { - ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit); - #ifdef __Pyx_Coroutine_USED - } else if (__Pyx_CoroutineAwait_CheckExact(yf)) { - ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit); - #endif - } else { - PyObject *meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_throw); - if (unlikely(!meth)) { - Py_DECREF(yf); - if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { - gen->is_running = 0; - return NULL; - } - PyErr_Clear(); - __Pyx_Coroutine_Undelegate(gen); - gen->is_running = 0; - goto throw_here; - } - if (likely(args)) { - ret = PyObject_CallObject(meth, args); - } else { - ret = PyObject_CallFunctionObjArgs(meth, typ, val, tb, NULL); - } - Py_DECREF(meth); - } - gen->is_running = 0; - Py_DECREF(yf); - if (!ret) { - ret = __Pyx_Coroutine_FinishDelegation(gen); - } - return __Pyx_Coroutine_MethodReturn(self, ret); - } -throw_here: - __Pyx_Raise(typ, val, tb, NULL); - return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0)); -} -static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) { - PyObject *typ; - PyObject *val = NULL; - PyObject *tb = NULL; - if (!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb)) - return NULL; - return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1); -} -static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) { - Py_VISIT(exc_state->exc_type); - Py_VISIT(exc_state->exc_value); - Py_VISIT(exc_state->exc_traceback); - return 0; -} -static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) { - Py_VISIT(gen->closure); - Py_VISIT(gen->classobj); - Py_VISIT(gen->yieldfrom); - return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg); -} -static int __Pyx_Coroutine_clear(PyObject *self) { - __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; - Py_CLEAR(gen->closure); - Py_CLEAR(gen->classobj); - Py_CLEAR(gen->yieldfrom); - __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state); -#ifdef __Pyx_AsyncGen_USED - if (__Pyx_AsyncGen_CheckExact(self)) { - Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer); - } -#endif - Py_CLEAR(gen->gi_code); - Py_CLEAR(gen->gi_name); - Py_CLEAR(gen->gi_qualname); - Py_CLEAR(gen->gi_modulename); - return 0; -} -static void __Pyx_Coroutine_dealloc(PyObject *self) { - __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; - PyObject_GC_UnTrack(gen); - if (gen->gi_weakreflist != NULL) - PyObject_ClearWeakRefs(self); - if (gen->resume_label >= 0) { - PyObject_GC_Track(self); -#if PY_VERSION_HEX >= 0x030400a1 && CYTHON_USE_TP_FINALIZE - if (PyObject_CallFinalizerFromDealloc(self)) -#else - Py_TYPE(gen)->tp_del(self); - if (self->ob_refcnt > 0) -#endif - { - return; - } - PyObject_GC_UnTrack(self); - } -#ifdef __Pyx_AsyncGen_USED - if (__Pyx_AsyncGen_CheckExact(self)) { - /* We have to handle this case for asynchronous generators - right here, because this code has to be between UNTRACK - and GC_Del. */ - Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer); - } -#endif - __Pyx_Coroutine_clear(self); - PyObject_GC_Del(gen); -} -static void __Pyx_Coroutine_del(PyObject *self) { - PyObject *error_type, *error_value, *error_traceback; - __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; - __Pyx_PyThreadState_declare - if (gen->resume_label < 0) { - return; - } -#if !CYTHON_USE_TP_FINALIZE - assert(self->ob_refcnt == 0); - self->ob_refcnt = 1; -#endif - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&error_type, &error_value, &error_traceback); -#ifdef __Pyx_AsyncGen_USED - if (__Pyx_AsyncGen_CheckExact(self)) { - __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self; - PyObject *finalizer = agen->ag_finalizer; - if (finalizer && !agen->ag_closed) { - PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self); - if (unlikely(!res)) { - PyErr_WriteUnraisable(self); - } else { - Py_DECREF(res); - } - __Pyx_ErrRestore(error_type, error_value, error_traceback); - return; - } - } -#endif - if (unlikely(gen->resume_label == 0 && !error_value)) { -#ifdef __Pyx_Coroutine_USED -#ifdef __Pyx_Generator_USED - if (!__Pyx_Generator_CheckExact(self)) -#endif - { - PyObject_GC_UnTrack(self); -#if PY_MAJOR_VERSION >= 3 || defined(PyErr_WarnFormat) - if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0)) - PyErr_WriteUnraisable(self); -#else - {PyObject *msg; - char *cmsg; - #if CYTHON_COMPILING_IN_PYPY - msg = NULL; - cmsg = (char*) "coroutine was never awaited"; - #else - char *cname; - PyObject *qualname; - qualname = gen->gi_qualname; - cname = PyString_AS_STRING(qualname); - msg = PyString_FromFormat("coroutine '%.50s' was never awaited", cname); - if (unlikely(!msg)) { - PyErr_Clear(); - cmsg = (char*) "coroutine was never awaited"; - } else { - cmsg = PyString_AS_STRING(msg); - } - #endif - if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, cmsg, 1) < 0)) - PyErr_WriteUnraisable(self); - Py_XDECREF(msg);} -#endif - PyObject_GC_Track(self); - } -#endif - } else { - PyObject *res = __Pyx_Coroutine_Close(self); - if (unlikely(!res)) { - if (PyErr_Occurred()) - PyErr_WriteUnraisable(self); - } else { - Py_DECREF(res); - } - } - __Pyx_ErrRestore(error_type, error_value, error_traceback); -#if !CYTHON_USE_TP_FINALIZE - assert(self->ob_refcnt > 0); - if (--self->ob_refcnt == 0) { - return; - } - { - Py_ssize_t refcnt = self->ob_refcnt; - _Py_NewReference(self); - self->ob_refcnt = refcnt; - } -#if CYTHON_COMPILING_IN_CPYTHON - assert(PyType_IS_GC(self->ob_type) && - _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED); - _Py_DEC_REFTOTAL; -#endif -#ifdef COUNT_ALLOCS - --Py_TYPE(self)->tp_frees; - --Py_TYPE(self)->tp_allocs; -#endif -#endif -} -static PyObject * -__Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context) -{ - PyObject *name = self->gi_name; - if (unlikely(!name)) name = Py_None; - Py_INCREF(name); - return name; -} -static int -__Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context) -{ - PyObject *tmp; -#if PY_MAJOR_VERSION >= 3 - if (unlikely(value == NULL || !PyUnicode_Check(value))) -#else - if (unlikely(value == NULL || !PyString_Check(value))) -#endif - { - PyErr_SetString(PyExc_TypeError, - "__name__ must be set to a string object"); - return -1; - } - tmp = self->gi_name; - Py_INCREF(value); - self->gi_name = value; - Py_XDECREF(tmp); - return 0; -} -static PyObject * -__Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context) -{ - PyObject *name = self->gi_qualname; - if (unlikely(!name)) name = Py_None; - Py_INCREF(name); - return name; -} -static int -__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context) -{ - PyObject *tmp; -#if PY_MAJOR_VERSION >= 3 - if (unlikely(value == NULL || !PyUnicode_Check(value))) -#else - if (unlikely(value == NULL || !PyString_Check(value))) -#endif - { - PyErr_SetString(PyExc_TypeError, - "__qualname__ must be set to a string object"); - return -1; - } - tmp = self->gi_qualname; - Py_INCREF(value); - self->gi_qualname = value; - Py_XDECREF(tmp); - return 0; -} -static __pyx_CoroutineObject *__Pyx__Coroutine_New( - PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, - PyObject *name, PyObject *qualname, PyObject *module_name) { - __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type); - if (unlikely(!gen)) - return NULL; - return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name); -} -static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit( - __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, - PyObject *name, PyObject *qualname, PyObject *module_name) { - gen->body = body; - gen->closure = closure; - Py_XINCREF(closure); - gen->is_running = 0; - gen->resume_label = 0; - gen->classobj = NULL; - gen->yieldfrom = NULL; - gen->gi_exc_state.exc_type = NULL; - gen->gi_exc_state.exc_value = NULL; - gen->gi_exc_state.exc_traceback = NULL; -#if CYTHON_USE_EXC_INFO_STACK - gen->gi_exc_state.previous_item = NULL; -#endif - gen->gi_weakreflist = NULL; - Py_XINCREF(qualname); - gen->gi_qualname = qualname; - Py_XINCREF(name); - gen->gi_name = name; - Py_XINCREF(module_name); - gen->gi_modulename = module_name; - Py_XINCREF(code); - gen->gi_code = code; - PyObject_GC_Track(gen); - return gen; -} - -/* PatchModuleWithCoroutine */ -static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) { -#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - int result; - PyObject *globals, *result_obj; - globals = PyDict_New(); if (unlikely(!globals)) goto ignore; - result = PyDict_SetItemString(globals, "_cython_coroutine_type", - #ifdef __Pyx_Coroutine_USED - (PyObject*)__pyx_CoroutineType); - #else - Py_None); - #endif - if (unlikely(result < 0)) goto ignore; - result = PyDict_SetItemString(globals, "_cython_generator_type", - #ifdef __Pyx_Generator_USED - (PyObject*)__pyx_GeneratorType); - #else - Py_None); - #endif - if (unlikely(result < 0)) goto ignore; - if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore; - if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore; - result_obj = PyRun_String(py_code, Py_file_input, globals, globals); - if (unlikely(!result_obj)) goto ignore; - Py_DECREF(result_obj); - Py_DECREF(globals); - return module; -ignore: - Py_XDECREF(globals); - PyErr_WriteUnraisable(module); - if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) { - Py_DECREF(module); - module = NULL; - } -#else - py_code++; -#endif - return module; -} - -/* PatchGeneratorABC */ -#ifndef CYTHON_REGISTER_ABCS -#define CYTHON_REGISTER_ABCS 1 -#endif -#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) -static PyObject* __Pyx_patch_abc_module(PyObject *module); -static PyObject* __Pyx_patch_abc_module(PyObject *module) { - module = __Pyx_Coroutine_patch_module( - module, "" -"if _cython_generator_type is not None:\n" -" try: Generator = _module.Generator\n" -" except AttributeError: pass\n" -" else: Generator.register(_cython_generator_type)\n" -"if _cython_coroutine_type is not None:\n" -" try: Coroutine = _module.Coroutine\n" -" except AttributeError: pass\n" -" else: Coroutine.register(_cython_coroutine_type)\n" - ); - return module; -} -#endif -static int __Pyx_patch_abc(void) { -#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - static int abc_patched = 0; - if (CYTHON_REGISTER_ABCS && !abc_patched) { - PyObject *module; - module = PyImport_ImportModule((PY_MAJOR_VERSION >= 3) ? "collections.abc" : "collections"); - if (!module) { - PyErr_WriteUnraisable(NULL); - if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, - ((PY_MAJOR_VERSION >= 3) ? - "Cython module failed to register with collections.abc module" : - "Cython module failed to register with collections module"), 1) < 0)) { - return -1; - } - } else { - module = __Pyx_patch_abc_module(module); - abc_patched = 1; - if (unlikely(!module)) - return -1; - Py_DECREF(module); - } - module = PyImport_ImportModule("backports_abc"); - if (module) { - module = __Pyx_patch_abc_module(module); - Py_XDECREF(module); - } - if (!module) { - PyErr_Clear(); - } - } -#else - if ((0)) __Pyx_Coroutine_patch_module(NULL, NULL); -#endif - return 0; -} - -/* Generator */ -static PyMethodDef __pyx_Generator_methods[] = { - {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O, - (char*) PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")}, - {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS, - (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")}, - {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS, - (char*) PyDoc_STR("close() -> raise GeneratorExit inside generator.")}, - {0, 0, 0, 0} -}; -static PyMemberDef __pyx_Generator_memberlist[] = { - {(char *) "gi_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL}, - {(char*) "gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY, - (char*) PyDoc_STR("object being iterated by 'yield from', or None")}, - {(char*) "gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL}, - {0, 0, 0, 0, 0} -}; -static PyGetSetDef __pyx_Generator_getsets[] = { - {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name, - (char*) PyDoc_STR("name of the generator"), 0}, - {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname, - (char*) PyDoc_STR("qualified name of the generator"), 0}, - {0, 0, 0, 0, 0} -}; -static PyTypeObject __pyx_GeneratorType_type = { - PyVarObject_HEAD_INIT(0, 0) - "generator", - sizeof(__pyx_CoroutineObject), - 0, - (destructor) __Pyx_Coroutine_dealloc, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, - 0, - (traverseproc) __Pyx_Coroutine_traverse, - 0, - 0, - offsetof(__pyx_CoroutineObject, gi_weakreflist), - 0, - (iternextfunc) __Pyx_Generator_Next, - __pyx_Generator_methods, - __pyx_Generator_memberlist, - __pyx_Generator_getsets, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, -#if CYTHON_USE_TP_FINALIZE - 0, -#else - __Pyx_Coroutine_del, -#endif - 0, -#if CYTHON_USE_TP_FINALIZE - __Pyx_Coroutine_del, -#elif PY_VERSION_HEX >= 0x030400a1 - 0, -#endif -}; -static int __pyx_Generator_init(void) { - __pyx_GeneratorType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; - __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter; - __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type); - if (unlikely(!__pyx_GeneratorType)) { - return -1; - } - return 0; -} - -/* CStringEquals */ -static CYTHON_INLINE int __Pyx_StrEq(const char *s1, const char *s2) { - while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; } - return *s1 == *s2; -} - -/* 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 PY_MAJOR_VERSION < 3 - 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); - } - #else - 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); - } - #endif - 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); -} -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -#if !CYTHON_PEP393_ENABLED -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); -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - { - 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; - } - } - } -#endif - *length = PyBytes_GET_SIZE(defenc); - return defenc_c; -} -#else -static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { - if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - if (likely(PyUnicode_IS_ASCII(o))) { - *length = PyUnicode_GET_LENGTH(o); - return PyUnicode_AsUTF8(o); - } else { - PyUnicode_AsASCIIString(o); - return NULL; - } -#else - return PyUnicode_AsUTF8AndSize(o, length); -#endif -} -#endif -#endif -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT - if ( -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - __Pyx_sys_getdefaultencoding_not_ascii && -#endif - PyUnicode_Check(o)) { - return __Pyx_PyUnicode_AsStringAndSize(o, length); - } else -#endif -#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) - if (PyByteArray_Check(o)) { - *length = PyByteArray_GET_SIZE(o); - return PyByteArray_AS_STRING(o); - } else -#endif - { - 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 PY_MAJOR_VERSION >= 3 - 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; - } -#endif - 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) { -#if CYTHON_USE_TYPE_SLOTS - PyNumberMethods *m; -#endif - const char *name = NULL; - PyObject *res = NULL; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x) || PyLong_Check(x))) -#else - if (likely(PyLong_Check(x))) -#endif - return __Pyx_NewRef(x); -#if CYTHON_USE_TYPE_SLOTS - m = Py_TYPE(x)->tp_as_number; - #if PY_MAJOR_VERSION < 3 - 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); - } - #else - if (likely(m && m->nb_int)) { - name = "int"; - res = m->nb_int(x); - } - #endif -#else - if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { - res = PyNumber_Int(x); - } -#endif - if (likely(res)) { -#if PY_MAJOR_VERSION < 3 - if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { -#else - if (unlikely(!PyLong_CheckExact(res))) { -#endif - 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 PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(b))) { - if (sizeof(Py_ssize_t) >= sizeof(long)) - return PyInt_AS_LONG(b); - else - return PyInt_AsSsize_t(b); - } -#endif - if (likely(PyLong_CheckExact(b))) { - #if CYTHON_USE_PYLONG_INTERNALS - 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; - } - } - #endif - 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); -} - - -#endif /* Py_PYTHON_H */ diff --git a/data analysis/analysis/analysis.cp37-win_amd64.pyd b/data analysis/analysis/analysis.cp37-win_amd64.pyd deleted file mode 100644 index 97e10770d83db2c4e7c7497cb80012c88242f27f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366592 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%0Afh z3%?_q?05(AsYLI87uYQO1|5X?f%zj_{UA8?7{i!4954VfYC8i3 zlKRaIxC8MfyK1^%VUAHgs1y|j8s0ivZu_-Mwbfn8aD$8C2w*5C2L4uyU|0v9aNeWBa1GhDF+8p? zGzf+fE{3h0HD5PkSc7(#oVuQ3UO<``s`3-1{Go37M^XMTmj4sWKWVz<$ExzBQvMTs zDjw&fd@q)t#dggfK|`!K{P)7=P9>>jV8WqNQ&>KP!dkVzxL8gEmQ#tPFR_@~nFLAr zC%p%$Sm3t+lZ zdtr8YO_l!;h7A7Q@+YEvrSOmP<-M=NqUY!+)c)ZCR;%A&N$o?V_TA~)Ux3qu43-PF zGhJ+-!BVS*!bb+1%P?$jX0SFvFzLijjSdOFY06PNo zJV}E~=+`;#_H=S3F;Jl`6tt`GsU%Sgv}1|Z0NUh#|KLjEXF7zq_BJ%#s@?9E?~n51 zS-ynjpTyo3TXO4F`G=(ZMQ-_hn1w%^<&*fS_~c;t61b7Z?Yy}qqvL5_}tozr36ifdU@t#eBp|Bh+SU$pMXYoogV7Y`?W-2UK?<2T= z`%i+UUa;Jo#*(kFY=_CWYIg$*_W$AP1Yns%EPWJ~)PDs_ul<5$xL}!-#_}>)R*6qHyo_Fz3 z5D-u8@xFL~cX4ir)&7=I$DdRkL-0b&plUB=$DgP)wVN~QSfc8v#EW}=^wyE!T^!4h zO>K8Z<)5j_$K%D_8K_K!sunN$vpScLBUI&ecySdC$$fDl?=ZiC7pu8G%6;)7@9=Y& zcv0=3(kggG;m1Ss@!~JECeCJJxG5Sj`5?Y*DU^rTcV!^FK@cuev6S`}?a{5Qg?Di~ ziLAYr0r!G}<76IiK9(Vfdqfb+?w5CZ@1KFi^#4s`6KU!wO{8b5whm^h%&D$W^R>{N zemWhR&|Rh!2n+QmzsGjl3j8pY9U`F{^hc#qe~nby#jW�?qdhD-Gu$AC3F9A4vN8 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 fy(4}P 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 PS{duD)Zr1@!~gLY6bh`4 diff --git a/data analysis/analysis/build/temp.win-amd64-3.7/Release/analysis.cp37-win_amd64.lib b/data analysis/analysis/build/temp.win-amd64-3.7/Release/analysis.cp37-win_amd64.lib deleted file mode 100644 index fe73eeeea4897fa314664ed38a91ef69e82efc31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2016 zcmcgtOHUI~6#hD`K_*5UWhW$+kf_nV+bJQ$42X#nN~xu+Z-80r;TN>>qK5e~^LEflQs3=#7x?dfCLPdh3!tCijtg+d))8LAu|yZ#tdn zA;vlJqeJw@2Rx*#GDV!v2ghGl_PQGIiG)+7NNysy8F3xEWv?XErv(zOX#9}|KXDVW z3+ZP_GZsmBLgy(zwwnlD(1T(b^Q_|egn(b-S&$wam!2o^7(tx5Pj}pMqt>h)wnDE8 zuR~cYw=KU9u}7rw#duJecv6sNLJ`>}oC>pCtJEo$GuP+qbOv{zr35=3DkUc1g>$4V zUhv&>rB8}|Xc2lo>Ar>SF`gvx?tmpVW*Qna-)~{-vmz~F7z0StJf!{fF3%y1MjAD& zAsRqhQhi{g{ZNYJjI?_}&@?z$qDzf!q_bu*8CQ*NTwr$Mw$j zI!Go=Rj(;!XTM)ck(~Yhd$y;^beJwQeFvVgQyQs$2L_>+{xm1tE#G=s2;BP1Ollv0 E0nXQ!UH||9 diff --git a/data analysis/analysis/build/temp.win-amd64-3.7/Release/analysis.obj b/data analysis/analysis/build/temp.win-amd64-3.7/Release/analysis.obj deleted file mode 100644 index a750cf1d82c29a2ac5cfbf67bdbae82bcc5fdf0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2145866 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

w$Hll0zx{_5dIgI%!{vp#D-*JS48+$qvVZn~1 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%0AiIK-ROtnuW#p6lj7LAwY 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%0DrJ04dSR= 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 z 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 SkAX3*rD^$dF$6r2hW`tn`3Y(O diff --git a/data analysis/analysis/compile.sh b/data analysis/analysis/compile.sh new file mode 100644 index 00000000..9444896c --- /dev/null +++ b/data analysis/analysis/compile.sh @@ -0,0 +1 @@ +python setup.py build_ext --inplace \ No newline at end of file