obliquetree 1.0.3__cp313-cp313-win_amd64.whl → 1.0.4__cp313-cp313-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of obliquetree might be problematic. Click here for more details.

obliquetree/src/tree.cpp CHANGED
@@ -1,4 +1,4 @@
1
- /* Generated by Cython 3.1.2 */
1
+ /* Generated by Cython 3.1.6 */
2
2
 
3
3
  /* BEGIN: Cython Metadata
4
4
  {
@@ -10,11 +10,11 @@
10
10
  ]
11
11
  ],
12
12
  "depends": [
13
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-nvye594b\\Lib\\site-packages\\numpy\\_core\\include\\numpy\\arrayobject.h",
14
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-nvye594b\\Lib\\site-packages\\numpy\\_core\\include\\numpy\\arrayscalars.h",
15
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-nvye594b\\Lib\\site-packages\\numpy\\_core\\include\\numpy\\ndarrayobject.h",
16
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-nvye594b\\Lib\\site-packages\\numpy\\_core\\include\\numpy\\ndarraytypes.h",
17
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-nvye594b\\Lib\\site-packages\\numpy\\_core\\include\\numpy\\ufuncobject.h"
13
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-4bbyc87a\\Lib\\site-packages\\numpy\\_core\\include\\numpy\\arrayobject.h",
14
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-4bbyc87a\\Lib\\site-packages\\numpy\\_core\\include\\numpy\\arrayscalars.h",
15
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-4bbyc87a\\Lib\\site-packages\\numpy\\_core\\include\\numpy\\ndarrayobject.h",
16
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-4bbyc87a\\Lib\\site-packages\\numpy\\_core\\include\\numpy\\ndarraytypes.h",
17
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-4bbyc87a\\Lib\\site-packages\\numpy\\_core\\include\\numpy\\ufuncobject.h"
18
18
  ],
19
19
  "extra_compile_args": [
20
20
  "/O2",
@@ -26,7 +26,7 @@
26
26
  "/std:c++17"
27
27
  ],
28
28
  "include_dirs": [
29
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-nvye594b\\Lib\\site-packages\\numpy\\_core\\include"
29
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\build-env-4bbyc87a\\Lib\\site-packages\\numpy\\_core\\include"
30
30
  ],
31
31
  "language": "c++",
32
32
  "name": "obliquetree.src.tree",
@@ -42,8 +42,16 @@ END: Cython Metadata */
42
42
  #define PY_SSIZE_T_CLEAN
43
43
  #endif /* PY_SSIZE_T_CLEAN */
44
44
  /* InitLimitedAPI */
45
- #if defined(Py_LIMITED_API) && !defined(CYTHON_LIMITED_API)
45
+ #if defined(Py_LIMITED_API)
46
+ #if !defined(CYTHON_LIMITED_API)
46
47
  #define CYTHON_LIMITED_API 1
48
+ #endif
49
+ #elif defined(CYTHON_LIMITED_API)
50
+ #ifdef _MSC_VER
51
+ #pragma message ("Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.")
52
+ #else
53
+ #warning Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.
54
+ #endif
47
55
  #endif
48
56
 
49
57
  #include "Python.h"
@@ -52,8 +60,8 @@ END: Cython Metadata */
52
60
  #elif PY_VERSION_HEX < 0x03080000
53
61
  #error Cython requires Python 3.8+.
54
62
  #else
55
- #define __PYX_ABI_VERSION "3_1_2"
56
- #define CYTHON_HEX_VERSION 0x030102F0
63
+ #define __PYX_ABI_VERSION "3_1_6"
64
+ #define CYTHON_HEX_VERSION 0x030106F0
57
65
  #define CYTHON_FUTURE_DIVISION 1
58
66
  /* CModulePreamble */
59
67
  #include <stddef.h>
@@ -416,6 +424,9 @@ END: Cython Metadata */
416
424
  enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
417
425
  #endif
418
426
  #endif
427
+ #ifndef CYTHON_LOCK_AND_GIL_DEADLOCK_AVOIDANCE_TIME
428
+ #define CYTHON_LOCK_AND_GIL_DEADLOCK_AVOIDANCE_TIME 100
429
+ #endif
419
430
  #ifndef __has_attribute
420
431
  #define __has_attribute(x) 0
421
432
  #endif
@@ -1333,6 +1344,7 @@ static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
1333
1344
  typedef sdigit __Pyx_compact_pylong;
1334
1345
  typedef digit __Pyx_compact_upylong;
1335
1346
  #endif
1347
+ static CYTHON_INLINE int __Pyx_PyLong_CompactAsLong(PyObject *x, long *return_value);
1336
1348
  #if PY_VERSION_HEX >= 0x030C00A5
1337
1349
  #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->long_value.ob_digit)
1338
1350
  #else
@@ -1409,7 +1421,7 @@ static const char *__pyx_filename;
1409
1421
  static const char* const __pyx_f[] = {
1410
1422
  "obliquetree/src/tree.pyx",
1411
1423
  "<stringsource>",
1412
- "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd",
1424
+ "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd",
1413
1425
  "obliquetree/src/base.pxd",
1414
1426
  "cpython/type.pxd",
1415
1427
  };
@@ -1714,7 +1726,7 @@ typedef int __pyx_t_11obliquetree_3src_5utils_int32_t;
1714
1726
  */
1715
1727
  typedef PY_LONG_LONG __pyx_t_11obliquetree_3src_5utils_int64_t;
1716
1728
 
1717
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":743
1729
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":743
1718
1730
  * # in Cython to enable them only on the right systems.
1719
1731
  *
1720
1732
  * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<<
@@ -1723,7 +1735,7 @@ typedef PY_LONG_LONG __pyx_t_11obliquetree_3src_5utils_int64_t;
1723
1735
  */
1724
1736
  typedef npy_int8 __pyx_t_5numpy_int8_t;
1725
1737
 
1726
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":744
1738
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":744
1727
1739
  *
1728
1740
  * ctypedef npy_int8 int8_t
1729
1741
  * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<<
@@ -1732,7 +1744,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t;
1732
1744
  */
1733
1745
  typedef npy_int16 __pyx_t_5numpy_int16_t;
1734
1746
 
1735
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":745
1747
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":745
1736
1748
  * ctypedef npy_int8 int8_t
1737
1749
  * ctypedef npy_int16 int16_t
1738
1750
  * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<<
@@ -1741,7 +1753,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t;
1741
1753
  */
1742
1754
  typedef npy_int32 __pyx_t_5numpy_int32_t;
1743
1755
 
1744
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":746
1756
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":746
1745
1757
  * ctypedef npy_int16 int16_t
1746
1758
  * ctypedef npy_int32 int32_t
1747
1759
  * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
@@ -1750,7 +1762,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t;
1750
1762
  */
1751
1763
  typedef npy_int64 __pyx_t_5numpy_int64_t;
1752
1764
 
1753
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":748
1765
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":748
1754
1766
  * ctypedef npy_int64 int64_t
1755
1767
  *
1756
1768
  * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<<
@@ -1759,7 +1771,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t;
1759
1771
  */
1760
1772
  typedef npy_uint8 __pyx_t_5numpy_uint8_t;
1761
1773
 
1762
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":749
1774
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":749
1763
1775
  *
1764
1776
  * ctypedef npy_uint8 uint8_t
1765
1777
  * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<<
@@ -1768,7 +1780,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t;
1768
1780
  */
1769
1781
  typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1770
1782
 
1771
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":750
1783
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":750
1772
1784
  * ctypedef npy_uint8 uint8_t
1773
1785
  * ctypedef npy_uint16 uint16_t
1774
1786
  * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<<
@@ -1777,7 +1789,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1777
1789
  */
1778
1790
  typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1779
1791
 
1780
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":751
1792
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":751
1781
1793
  * ctypedef npy_uint16 uint16_t
1782
1794
  * ctypedef npy_uint32 uint32_t
1783
1795
  * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<<
@@ -1786,7 +1798,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1786
1798
  */
1787
1799
  typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1788
1800
 
1789
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":753
1801
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":753
1790
1802
  * ctypedef npy_uint64 uint64_t
1791
1803
  *
1792
1804
  * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<<
@@ -1795,7 +1807,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1795
1807
  */
1796
1808
  typedef npy_float32 __pyx_t_5numpy_float32_t;
1797
1809
 
1798
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":754
1810
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":754
1799
1811
  *
1800
1812
  * ctypedef npy_float32 float32_t
1801
1813
  * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<<
@@ -1804,7 +1816,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t;
1804
1816
  */
1805
1817
  typedef npy_float64 __pyx_t_5numpy_float64_t;
1806
1818
 
1807
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":761
1819
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":761
1808
1820
  * ctypedef double complex complex128_t
1809
1821
  *
1810
1822
  * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<<
@@ -1813,7 +1825,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t;
1813
1825
  */
1814
1826
  typedef npy_longlong __pyx_t_5numpy_longlong_t;
1815
1827
 
1816
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":762
1828
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":762
1817
1829
  *
1818
1830
  * ctypedef npy_longlong longlong_t
1819
1831
  * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<<
@@ -1822,7 +1834,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t;
1822
1834
  */
1823
1835
  typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1824
1836
 
1825
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":764
1837
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":764
1826
1838
  * ctypedef npy_ulonglong ulonglong_t
1827
1839
  *
1828
1840
  * ctypedef npy_intp intp_t # <<<<<<<<<<<<<<
@@ -1831,7 +1843,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1831
1843
  */
1832
1844
  typedef npy_intp __pyx_t_5numpy_intp_t;
1833
1845
 
1834
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":765
1846
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":765
1835
1847
  *
1836
1848
  * ctypedef npy_intp intp_t
1837
1849
  * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<<
@@ -1840,7 +1852,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t;
1840
1852
  */
1841
1853
  typedef npy_uintp __pyx_t_5numpy_uintp_t;
1842
1854
 
1843
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":767
1855
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":767
1844
1856
  * ctypedef npy_uintp uintp_t
1845
1857
  *
1846
1858
  * ctypedef npy_double float_t # <<<<<<<<<<<<<<
@@ -1849,7 +1861,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t;
1849
1861
  */
1850
1862
  typedef npy_double __pyx_t_5numpy_float_t;
1851
1863
 
1852
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":768
1864
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":768
1853
1865
  *
1854
1866
  * ctypedef npy_double float_t
1855
1867
  * ctypedef npy_double double_t # <<<<<<<<<<<<<<
@@ -1858,7 +1870,7 @@ typedef npy_double __pyx_t_5numpy_float_t;
1858
1870
  */
1859
1871
  typedef npy_double __pyx_t_5numpy_double_t;
1860
1872
 
1861
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":769
1873
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":769
1862
1874
  * ctypedef npy_double float_t
1863
1875
  * ctypedef npy_double double_t
1864
1876
  * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<<
@@ -2867,22 +2879,22 @@ static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k);
2867
2879
  static int __Pyx_setup_reduce(PyObject* type_obj);
2868
2880
 
2869
2881
  /* TypeImport.proto */
2870
- #ifndef __PYX_HAVE_RT_ImportType_proto_3_1_2
2871
- #define __PYX_HAVE_RT_ImportType_proto_3_1_2
2882
+ #ifndef __PYX_HAVE_RT_ImportType_proto_3_1_6
2883
+ #define __PYX_HAVE_RT_ImportType_proto_3_1_6
2872
2884
  #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
2873
2885
  #include <stdalign.h>
2874
2886
  #endif
2875
2887
  #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
2876
- #define __PYX_GET_STRUCT_ALIGNMENT_3_1_2(s) alignof(s)
2888
+ #define __PYX_GET_STRUCT_ALIGNMENT_3_1_6(s) alignof(s)
2877
2889
  #else
2878
- #define __PYX_GET_STRUCT_ALIGNMENT_3_1_2(s) sizeof(void*)
2890
+ #define __PYX_GET_STRUCT_ALIGNMENT_3_1_6(s) sizeof(void*)
2879
2891
  #endif
2880
- enum __Pyx_ImportType_CheckSize_3_1_2 {
2881
- __Pyx_ImportType_CheckSize_Error_3_1_2 = 0,
2882
- __Pyx_ImportType_CheckSize_Warn_3_1_2 = 1,
2883
- __Pyx_ImportType_CheckSize_Ignore_3_1_2 = 2
2892
+ enum __Pyx_ImportType_CheckSize_3_1_6 {
2893
+ __Pyx_ImportType_CheckSize_Error_3_1_6 = 0,
2894
+ __Pyx_ImportType_CheckSize_Warn_3_1_6 = 1,
2895
+ __Pyx_ImportType_CheckSize_Ignore_3_1_6 = 2
2884
2896
  };
2885
- static PyTypeObject *__Pyx_ImportType_3_1_2(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_1_2 check_size);
2897
+ static PyTypeObject *__Pyx_ImportType_3_1_6(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_1_6 check_size);
2886
2898
  #endif
2887
2899
 
2888
2900
  /* CLineInTraceback.proto */
@@ -3172,7 +3184,7 @@ static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt
3172
3184
  static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig);
3173
3185
 
3174
3186
  /* FunctionImport.proto */
3175
- static int __Pyx_ImportFunction_3_1_2(PyObject *module, const char *funcname, void (**f)(void), const char *sig);
3187
+ static int __Pyx_ImportFunction_3_1_6(PyObject *module, const char *funcname, void (**f)(void), const char *sig);
3176
3188
 
3177
3189
  /* MultiPhaseInitModuleState.proto */
3178
3190
  #if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
@@ -3915,7 +3927,7 @@ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, P
3915
3927
  default: goto __pyx_L5_argtuple_error;
3916
3928
  }
3917
3929
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
3918
- if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(1, 129, __pyx_L3_error)
3930
+ if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < (0)) __PYX_ERR(1, 129, __pyx_L3_error)
3919
3931
  if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_n_u_c));
3920
3932
  for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
3921
3933
  if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, i); __PYX_ERR(1, 129, __pyx_L3_error) }
@@ -5529,7 +5541,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
5529
5541
  default: goto __pyx_L5_argtuple_error;
5530
5542
  }
5531
5543
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
5532
- if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
5544
+ if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
5533
5545
  for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
5534
5546
  if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
5535
5547
  }
@@ -5874,7 +5886,7 @@ static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize
5874
5886
  __pyx_t_4 = 0;
5875
5887
  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 273, __pyx_L1_error)
5876
5888
  __Pyx_GOTREF(__pyx_t_4);
5877
- if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_allocate_buffer, Py_False) < 0) __PYX_ERR(1, 273, __pyx_L1_error)
5889
+ if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_allocate_buffer, Py_False) < (0)) __PYX_ERR(1, 273, __pyx_L1_error)
5878
5890
  __pyx_t_3 = ((PyObject *)__pyx_tp_new_array(((PyTypeObject *)__pyx_mstate_global->__pyx_array_type), __pyx_t_1, __pyx_t_4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 273, __pyx_L1_error)
5879
5891
  __Pyx_GOTREF((PyObject *)__pyx_t_3);
5880
5892
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -5969,7 +5981,7 @@ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_ar
5969
5981
  default: goto __pyx_L5_argtuple_error;
5970
5982
  }
5971
5983
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
5972
- if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < 0) __PYX_ERR(1, 302, __pyx_L3_error)
5984
+ if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(1, 302, __pyx_L3_error)
5973
5985
  for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
5974
5986
  if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(1, 302, __pyx_L3_error) }
5975
5987
  }
@@ -6406,7 +6418,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
6406
6418
  default: goto __pyx_L5_argtuple_error;
6407
6419
  }
6408
6420
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
6409
- if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(1, 16, __pyx_L3_error)
6421
+ if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 16, __pyx_L3_error)
6410
6422
  for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
6411
6423
  if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 16, __pyx_L3_error) }
6412
6424
  }
@@ -6531,7 +6543,7 @@ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_ar
6531
6543
  default: goto __pyx_L5_argtuple_error;
6532
6544
  }
6533
6545
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
6534
- if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(1, 347, __pyx_L3_error)
6546
+ if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < (0)) __PYX_ERR(1, 347, __pyx_L3_error)
6535
6547
  for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
6536
6548
  if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, i); __PYX_ERR(1, 347, __pyx_L3_error) }
6537
6549
  }
@@ -10848,7 +10860,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
10848
10860
  default: goto __pyx_L5_argtuple_error;
10849
10861
  }
10850
10862
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
10851
- if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
10863
+ if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
10852
10864
  for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
10853
10865
  if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
10854
10866
  }
@@ -13735,7 +13747,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
13735
13747
  default: goto __pyx_L5_argtuple_error;
13736
13748
  }
13737
13749
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
13738
- if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
13750
+ if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
13739
13751
  for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
13740
13752
  if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
13741
13753
  }
@@ -16894,7 +16906,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
16894
16906
  default: goto __pyx_L5_argtuple_error;
16895
16907
  }
16896
16908
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
16897
- if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Enum", 0) < 0) __PYX_ERR(1, 1, __pyx_L3_error)
16909
+ if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Enum", 0) < (0)) __PYX_ERR(1, 1, __pyx_L3_error)
16898
16910
  for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
16899
16911
  if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, i); __PYX_ERR(1, 1, __pyx_L3_error) }
16900
16912
  }
@@ -17216,7 +17228,7 @@ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__
17216
17228
  return __pyx_r;
17217
17229
  }
17218
17230
 
17219
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":242
17231
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":242
17220
17232
  * cdef int type_num
17221
17233
  *
17222
17234
  * @property # <<<<<<<<<<<<<<
@@ -17227,7 +17239,7 @@ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__
17227
17239
  static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self) {
17228
17240
  npy_intp __pyx_r;
17229
17241
 
17230
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":244
17242
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":244
17231
17243
  * @property
17232
17244
  * cdef inline npy_intp itemsize(self) noexcept nogil:
17233
17245
  * return PyDataType_ELSIZE(self) # <<<<<<<<<<<<<<
@@ -17237,7 +17249,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_D
17237
17249
  __pyx_r = PyDataType_ELSIZE(__pyx_v_self);
17238
17250
  goto __pyx_L0;
17239
17251
 
17240
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":242
17252
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":242
17241
17253
  * cdef int type_num
17242
17254
  *
17243
17255
  * @property # <<<<<<<<<<<<<<
@@ -17250,7 +17262,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_D
17250
17262
  return __pyx_r;
17251
17263
  }
17252
17264
 
17253
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":246
17265
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":246
17254
17266
  * return PyDataType_ELSIZE(self)
17255
17267
  *
17256
17268
  * @property # <<<<<<<<<<<<<<
@@ -17261,7 +17273,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_D
17261
17273
  static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self) {
17262
17274
  npy_intp __pyx_r;
17263
17275
 
17264
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":248
17276
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":248
17265
17277
  * @property
17266
17278
  * cdef inline npy_intp alignment(self) noexcept nogil:
17267
17279
  * return PyDataType_ALIGNMENT(self) # <<<<<<<<<<<<<<
@@ -17271,7 +17283,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray
17271
17283
  __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self);
17272
17284
  goto __pyx_L0;
17273
17285
 
17274
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":246
17286
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":246
17275
17287
  * return PyDataType_ELSIZE(self)
17276
17288
  *
17277
17289
  * @property # <<<<<<<<<<<<<<
@@ -17284,7 +17296,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray
17284
17296
  return __pyx_r;
17285
17297
  }
17286
17298
 
17287
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":252
17299
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":252
17288
17300
  * # Use fields/names with care as they may be NULL. You must check
17289
17301
  * # for this using PyDataType_HASFIELDS.
17290
17302
  * @property # <<<<<<<<<<<<<<
@@ -17298,7 +17310,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Desc
17298
17310
  PyObject *__pyx_t_1;
17299
17311
  __Pyx_RefNannySetupContext("fields", 0);
17300
17312
 
17301
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":254
17313
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":254
17302
17314
  * @property
17303
17315
  * cdef inline object fields(self):
17304
17316
  * return <object>PyDataType_FIELDS(self) # <<<<<<<<<<<<<<
@@ -17311,7 +17323,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Desc
17311
17323
  __pyx_r = ((PyObject *)__pyx_t_1);
17312
17324
  goto __pyx_L0;
17313
17325
 
17314
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":252
17326
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":252
17315
17327
  * # Use fields/names with care as they may be NULL. You must check
17316
17328
  * # for this using PyDataType_HASFIELDS.
17317
17329
  * @property # <<<<<<<<<<<<<<
@@ -17326,7 +17338,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Desc
17326
17338
  return __pyx_r;
17327
17339
  }
17328
17340
 
17329
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":256
17341
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":256
17330
17342
  * return <object>PyDataType_FIELDS(self)
17331
17343
  *
17332
17344
  * @property # <<<<<<<<<<<<<<
@@ -17340,7 +17352,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr
17340
17352
  PyObject *__pyx_t_1;
17341
17353
  __Pyx_RefNannySetupContext("names", 0);
17342
17354
 
17343
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":258
17355
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":258
17344
17356
  * @property
17345
17357
  * cdef inline tuple names(self):
17346
17358
  * return <tuple>PyDataType_NAMES(self) # <<<<<<<<<<<<<<
@@ -17353,7 +17365,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr
17353
17365
  __pyx_r = ((PyObject*)__pyx_t_1);
17354
17366
  goto __pyx_L0;
17355
17367
 
17356
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":256
17368
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":256
17357
17369
  * return <object>PyDataType_FIELDS(self)
17358
17370
  *
17359
17371
  * @property # <<<<<<<<<<<<<<
@@ -17368,7 +17380,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr
17368
17380
  return __pyx_r;
17369
17381
  }
17370
17382
 
17371
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":263
17383
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":263
17372
17384
  * # valid (the pointer can be NULL). Most users should access
17373
17385
  * # this field via the inline helper method PyDataType_SHAPE.
17374
17386
  * @property # <<<<<<<<<<<<<<
@@ -17379,7 +17391,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr
17379
17391
  static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarray(PyArray_Descr *__pyx_v_self) {
17380
17392
  PyArray_ArrayDescr *__pyx_r;
17381
17393
 
17382
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":265
17394
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":265
17383
17395
  * @property
17384
17396
  * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
17385
17397
  * return PyDataType_SUBARRAY(self) # <<<<<<<<<<<<<<
@@ -17389,7 +17401,7 @@ static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarra
17389
17401
  __pyx_r = PyDataType_SUBARRAY(__pyx_v_self);
17390
17402
  goto __pyx_L0;
17391
17403
 
17392
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":263
17404
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":263
17393
17405
  * # valid (the pointer can be NULL). Most users should access
17394
17406
  * # this field via the inline helper method PyDataType_SHAPE.
17395
17407
  * @property # <<<<<<<<<<<<<<
@@ -17402,7 +17414,7 @@ static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarra
17402
17414
  return __pyx_r;
17403
17415
  }
17404
17416
 
17405
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":267
17417
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":267
17406
17418
  * return PyDataType_SUBARRAY(self)
17407
17419
  *
17408
17420
  * @property # <<<<<<<<<<<<<<
@@ -17413,7 +17425,7 @@ static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarra
17413
17425
  static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr *__pyx_v_self) {
17414
17426
  npy_uint64 __pyx_r;
17415
17427
 
17416
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":270
17428
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":270
17417
17429
  * cdef inline npy_uint64 flags(self) noexcept nogil:
17418
17430
  * """The data types flags."""
17419
17431
  * return PyDataType_FLAGS(self) # <<<<<<<<<<<<<<
@@ -17423,7 +17435,7 @@ static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr
17423
17435
  __pyx_r = PyDataType_FLAGS(__pyx_v_self);
17424
17436
  goto __pyx_L0;
17425
17437
 
17426
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":267
17438
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":267
17427
17439
  * return PyDataType_SUBARRAY(self)
17428
17440
  *
17429
17441
  * @property # <<<<<<<<<<<<<<
@@ -17436,7 +17448,7 @@ static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr
17436
17448
  return __pyx_r;
17437
17449
  }
17438
17450
 
17439
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":279
17451
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":279
17440
17452
  * ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
17441
17453
  *
17442
17454
  * @property # <<<<<<<<<<<<<<
@@ -17447,7 +17459,7 @@ static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr
17447
17459
  static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMultiIterObject *__pyx_v_self) {
17448
17460
  int __pyx_r;
17449
17461
 
17450
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":282
17462
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":282
17451
17463
  * cdef inline int numiter(self) noexcept nogil:
17452
17464
  * """The number of arrays that need to be broadcast to the same shape."""
17453
17465
  * return PyArray_MultiIter_NUMITER(self) # <<<<<<<<<<<<<<
@@ -17457,7 +17469,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMulti
17457
17469
  __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self);
17458
17470
  goto __pyx_L0;
17459
17471
 
17460
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":279
17472
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":279
17461
17473
  * ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
17462
17474
  *
17463
17475
  * @property # <<<<<<<<<<<<<<
@@ -17470,7 +17482,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMulti
17470
17482
  return __pyx_r;
17471
17483
  }
17472
17484
 
17473
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":284
17485
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":284
17474
17486
  * return PyArray_MultiIter_NUMITER(self)
17475
17487
  *
17476
17488
  * @property # <<<<<<<<<<<<<<
@@ -17481,7 +17493,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMulti
17481
17493
  static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiIterObject *__pyx_v_self) {
17482
17494
  npy_intp __pyx_r;
17483
17495
 
17484
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":287
17496
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":287
17485
17497
  * cdef inline npy_intp size(self) noexcept nogil:
17486
17498
  * """The total broadcasted size."""
17487
17499
  * return PyArray_MultiIter_SIZE(self) # <<<<<<<<<<<<<<
@@ -17491,7 +17503,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiI
17491
17503
  __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self);
17492
17504
  goto __pyx_L0;
17493
17505
 
17494
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":284
17506
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":284
17495
17507
  * return PyArray_MultiIter_NUMITER(self)
17496
17508
  *
17497
17509
  * @property # <<<<<<<<<<<<<<
@@ -17504,7 +17516,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiI
17504
17516
  return __pyx_r;
17505
17517
  }
17506
17518
 
17507
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":289
17519
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":289
17508
17520
  * return PyArray_MultiIter_SIZE(self)
17509
17521
  *
17510
17522
  * @property # <<<<<<<<<<<<<<
@@ -17515,7 +17527,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiI
17515
17527
  static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMultiIterObject *__pyx_v_self) {
17516
17528
  npy_intp __pyx_r;
17517
17529
 
17518
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":292
17530
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":292
17519
17531
  * cdef inline npy_intp index(self) noexcept nogil:
17520
17532
  * """The current (1-d) index into the broadcasted result."""
17521
17533
  * return PyArray_MultiIter_INDEX(self) # <<<<<<<<<<<<<<
@@ -17525,7 +17537,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMult
17525
17537
  __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self);
17526
17538
  goto __pyx_L0;
17527
17539
 
17528
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":289
17540
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":289
17529
17541
  * return PyArray_MultiIter_SIZE(self)
17530
17542
  *
17531
17543
  * @property # <<<<<<<<<<<<<<
@@ -17538,7 +17550,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMult
17538
17550
  return __pyx_r;
17539
17551
  }
17540
17552
 
17541
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":294
17553
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":294
17542
17554
  * return PyArray_MultiIter_INDEX(self)
17543
17555
  *
17544
17556
  * @property # <<<<<<<<<<<<<<
@@ -17549,7 +17561,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMult
17549
17561
  static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject *__pyx_v_self) {
17550
17562
  int __pyx_r;
17551
17563
 
17552
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":297
17564
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":297
17553
17565
  * cdef inline int nd(self) noexcept nogil:
17554
17566
  * """The number of dimensions in the broadcasted result."""
17555
17567
  * return PyArray_MultiIter_NDIM(self) # <<<<<<<<<<<<<<
@@ -17559,7 +17571,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject
17559
17571
  __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self);
17560
17572
  goto __pyx_L0;
17561
17573
 
17562
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":294
17574
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":294
17563
17575
  * return PyArray_MultiIter_INDEX(self)
17564
17576
  *
17565
17577
  * @property # <<<<<<<<<<<<<<
@@ -17572,7 +17584,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject
17572
17584
  return __pyx_r;
17573
17585
  }
17574
17586
 
17575
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":299
17587
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":299
17576
17588
  * return PyArray_MultiIter_NDIM(self)
17577
17589
  *
17578
17590
  * @property # <<<<<<<<<<<<<<
@@ -17583,7 +17595,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject
17583
17595
  static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions(PyArrayMultiIterObject *__pyx_v_self) {
17584
17596
  npy_intp *__pyx_r;
17585
17597
 
17586
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":302
17598
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":302
17587
17599
  * cdef inline npy_intp* dimensions(self) noexcept nogil:
17588
17600
  * """The shape of the broadcasted result."""
17589
17601
  * return PyArray_MultiIter_DIMS(self) # <<<<<<<<<<<<<<
@@ -17593,7 +17605,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions
17593
17605
  __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self);
17594
17606
  goto __pyx_L0;
17595
17607
 
17596
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":299
17608
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":299
17597
17609
  * return PyArray_MultiIter_NDIM(self)
17598
17610
  *
17599
17611
  * @property # <<<<<<<<<<<<<<
@@ -17606,7 +17618,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions
17606
17618
  return __pyx_r;
17607
17619
  }
17608
17620
 
17609
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":304
17621
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":304
17610
17622
  * return PyArray_MultiIter_DIMS(self)
17611
17623
  *
17612
17624
  * @property # <<<<<<<<<<<<<<
@@ -17617,7 +17629,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions
17617
17629
  static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiIterObject *__pyx_v_self) {
17618
17630
  void **__pyx_r;
17619
17631
 
17620
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":308
17632
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":308
17621
17633
  * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
17622
17634
  * On return, the iterators are adjusted for broadcasting."""
17623
17635
  * return PyArray_MultiIter_ITERS(self) # <<<<<<<<<<<<<<
@@ -17627,7 +17639,7 @@ static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiI
17627
17639
  __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self);
17628
17640
  goto __pyx_L0;
17629
17641
 
17630
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":304
17642
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":304
17631
17643
  * return PyArray_MultiIter_DIMS(self)
17632
17644
  *
17633
17645
  * @property # <<<<<<<<<<<<<<
@@ -17640,7 +17652,7 @@ static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiI
17640
17652
  return __pyx_r;
17641
17653
  }
17642
17654
 
17643
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":322
17655
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":322
17644
17656
  * # Instead, we use properties that map to the corresponding C-API functions.
17645
17657
  *
17646
17658
  * @property # <<<<<<<<<<<<<<
@@ -17651,7 +17663,7 @@ static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiI
17651
17663
  static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self) {
17652
17664
  PyObject *__pyx_r;
17653
17665
 
17654
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":326
17666
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":326
17655
17667
  * """Returns a borrowed reference to the object owning the data/memory.
17656
17668
  * """
17657
17669
  * return PyArray_BASE(self) # <<<<<<<<<<<<<<
@@ -17661,7 +17673,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject
17661
17673
  __pyx_r = PyArray_BASE(__pyx_v_self);
17662
17674
  goto __pyx_L0;
17663
17675
 
17664
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":322
17676
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":322
17665
17677
  * # Instead, we use properties that map to the corresponding C-API functions.
17666
17678
  *
17667
17679
  * @property # <<<<<<<<<<<<<<
@@ -17674,7 +17686,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject
17674
17686
  return __pyx_r;
17675
17687
  }
17676
17688
 
17677
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":328
17689
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":328
17678
17690
  * return PyArray_BASE(self)
17679
17691
  *
17680
17692
  * @property # <<<<<<<<<<<<<<
@@ -17688,7 +17700,7 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray
17688
17700
  PyArray_Descr *__pyx_t_1;
17689
17701
  __Pyx_RefNannySetupContext("descr", 0);
17690
17702
 
17691
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":332
17703
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":332
17692
17704
  * """Returns an owned reference to the dtype of the array.
17693
17705
  * """
17694
17706
  * return <dtype>PyArray_DESCR(self) # <<<<<<<<<<<<<<
@@ -17701,7 +17713,7 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray
17701
17713
  __pyx_r = ((PyArray_Descr *)__pyx_t_1);
17702
17714
  goto __pyx_L0;
17703
17715
 
17704
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":328
17716
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":328
17705
17717
  * return PyArray_BASE(self)
17706
17718
  *
17707
17719
  * @property # <<<<<<<<<<<<<<
@@ -17716,7 +17728,7 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray
17716
17728
  return __pyx_r;
17717
17729
  }
17718
17730
 
17719
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":334
17731
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":334
17720
17732
  * return <dtype>PyArray_DESCR(self)
17721
17733
  *
17722
17734
  * @property # <<<<<<<<<<<<<<
@@ -17727,7 +17739,7 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray
17727
17739
  static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self) {
17728
17740
  int __pyx_r;
17729
17741
 
17730
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":338
17742
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":338
17731
17743
  * """Returns the number of dimensions in the array.
17732
17744
  * """
17733
17745
  * return PyArray_NDIM(self) # <<<<<<<<<<<<<<
@@ -17737,7 +17749,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx
17737
17749
  __pyx_r = PyArray_NDIM(__pyx_v_self);
17738
17750
  goto __pyx_L0;
17739
17751
 
17740
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":334
17752
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":334
17741
17753
  * return <dtype>PyArray_DESCR(self)
17742
17754
  *
17743
17755
  * @property # <<<<<<<<<<<<<<
@@ -17750,7 +17762,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx
17750
17762
  return __pyx_r;
17751
17763
  }
17752
17764
 
17753
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":340
17765
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":340
17754
17766
  * return PyArray_NDIM(self)
17755
17767
  *
17756
17768
  * @property # <<<<<<<<<<<<<<
@@ -17761,7 +17773,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx
17761
17773
  static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self) {
17762
17774
  npy_intp *__pyx_r;
17763
17775
 
17764
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":346
17776
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":346
17765
17777
  * Can return NULL for 0-dimensional arrays.
17766
17778
  * """
17767
17779
  * return PyArray_DIMS(self) # <<<<<<<<<<<<<<
@@ -17771,7 +17783,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObjec
17771
17783
  __pyx_r = PyArray_DIMS(__pyx_v_self);
17772
17784
  goto __pyx_L0;
17773
17785
 
17774
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":340
17786
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":340
17775
17787
  * return PyArray_NDIM(self)
17776
17788
  *
17777
17789
  * @property # <<<<<<<<<<<<<<
@@ -17784,7 +17796,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObjec
17784
17796
  return __pyx_r;
17785
17797
  }
17786
17798
 
17787
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":348
17799
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":348
17788
17800
  * return PyArray_DIMS(self)
17789
17801
  *
17790
17802
  * @property # <<<<<<<<<<<<<<
@@ -17795,7 +17807,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObjec
17795
17807
  static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self) {
17796
17808
  npy_intp *__pyx_r;
17797
17809
 
17798
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":353
17810
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":353
17799
17811
  * The number of elements matches the number of dimensions of the array (ndim).
17800
17812
  * """
17801
17813
  * return PyArray_STRIDES(self) # <<<<<<<<<<<<<<
@@ -17805,7 +17817,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayO
17805
17817
  __pyx_r = PyArray_STRIDES(__pyx_v_self);
17806
17818
  goto __pyx_L0;
17807
17819
 
17808
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":348
17820
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":348
17809
17821
  * return PyArray_DIMS(self)
17810
17822
  *
17811
17823
  * @property # <<<<<<<<<<<<<<
@@ -17818,7 +17830,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayO
17818
17830
  return __pyx_r;
17819
17831
  }
17820
17832
 
17821
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":355
17833
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":355
17822
17834
  * return PyArray_STRIDES(self)
17823
17835
  *
17824
17836
  * @property # <<<<<<<<<<<<<<
@@ -17829,7 +17841,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayO
17829
17841
  static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self) {
17830
17842
  npy_intp __pyx_r;
17831
17843
 
17832
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":359
17844
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":359
17833
17845
  * """Returns the total size (in number of elements) of the array.
17834
17846
  * """
17835
17847
  * return PyArray_SIZE(self) # <<<<<<<<<<<<<<
@@ -17839,7 +17851,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *
17839
17851
  __pyx_r = PyArray_SIZE(__pyx_v_self);
17840
17852
  goto __pyx_L0;
17841
17853
 
17842
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":355
17854
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":355
17843
17855
  * return PyArray_STRIDES(self)
17844
17856
  *
17845
17857
  * @property # <<<<<<<<<<<<<<
@@ -17852,7 +17864,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *
17852
17864
  return __pyx_r;
17853
17865
  }
17854
17866
 
17855
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":361
17867
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":361
17856
17868
  * return PyArray_SIZE(self)
17857
17869
  *
17858
17870
  * @property # <<<<<<<<<<<<<<
@@ -17863,7 +17875,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *
17863
17875
  static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self) {
17864
17876
  char *__pyx_r;
17865
17877
 
17866
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":368
17878
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":368
17867
17879
  * of `PyArray_DATA()` instead, which returns a 'void*'.
17868
17880
  * """
17869
17881
  * return PyArray_BYTES(self) # <<<<<<<<<<<<<<
@@ -17873,7 +17885,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__p
17873
17885
  __pyx_r = PyArray_BYTES(__pyx_v_self);
17874
17886
  goto __pyx_L0;
17875
17887
 
17876
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":361
17888
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":361
17877
17889
  * return PyArray_SIZE(self)
17878
17890
  *
17879
17891
  * @property # <<<<<<<<<<<<<<
@@ -17886,7 +17898,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__p
17886
17898
  return __pyx_r;
17887
17899
  }
17888
17900
 
17889
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":776
17901
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":776
17890
17902
  * ctypedef long double complex clongdouble_t
17891
17903
  *
17892
17904
  * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
@@ -17903,7 +17915,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__
17903
17915
  int __pyx_clineno = 0;
17904
17916
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
17905
17917
 
17906
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":777
17918
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":777
17907
17919
  *
17908
17920
  * cdef inline object PyArray_MultiIterNew1(a):
17909
17921
  * return PyArray_MultiIterNew(1, <void*>a) # <<<<<<<<<<<<<<
@@ -17917,7 +17929,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__
17917
17929
  __pyx_t_1 = 0;
17918
17930
  goto __pyx_L0;
17919
17931
 
17920
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":776
17932
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":776
17921
17933
  * ctypedef long double complex clongdouble_t
17922
17934
  *
17923
17935
  * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
@@ -17936,7 +17948,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__
17936
17948
  return __pyx_r;
17937
17949
  }
17938
17950
 
17939
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":779
17951
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":779
17940
17952
  * return PyArray_MultiIterNew(1, <void*>a)
17941
17953
  *
17942
17954
  * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
@@ -17953,7 +17965,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__
17953
17965
  int __pyx_clineno = 0;
17954
17966
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
17955
17967
 
17956
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":780
17968
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":780
17957
17969
  *
17958
17970
  * cdef inline object PyArray_MultiIterNew2(a, b):
17959
17971
  * return PyArray_MultiIterNew(2, <void*>a, <void*>b) # <<<<<<<<<<<<<<
@@ -17967,7 +17979,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__
17967
17979
  __pyx_t_1 = 0;
17968
17980
  goto __pyx_L0;
17969
17981
 
17970
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":779
17982
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":779
17971
17983
  * return PyArray_MultiIterNew(1, <void*>a)
17972
17984
  *
17973
17985
  * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
@@ -17986,7 +17998,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__
17986
17998
  return __pyx_r;
17987
17999
  }
17988
18000
 
17989
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":782
18001
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":782
17990
18002
  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
17991
18003
  *
17992
18004
  * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
@@ -18003,7 +18015,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__
18003
18015
  int __pyx_clineno = 0;
18004
18016
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
18005
18017
 
18006
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":783
18018
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":783
18007
18019
  *
18008
18020
  * cdef inline object PyArray_MultiIterNew3(a, b, c):
18009
18021
  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) # <<<<<<<<<<<<<<
@@ -18017,7 +18029,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__
18017
18029
  __pyx_t_1 = 0;
18018
18030
  goto __pyx_L0;
18019
18031
 
18020
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":782
18032
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":782
18021
18033
  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
18022
18034
  *
18023
18035
  * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
@@ -18036,7 +18048,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__
18036
18048
  return __pyx_r;
18037
18049
  }
18038
18050
 
18039
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":785
18051
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":785
18040
18052
  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
18041
18053
  *
18042
18054
  * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
@@ -18053,7 +18065,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__
18053
18065
  int __pyx_clineno = 0;
18054
18066
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
18055
18067
 
18056
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":786
18068
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":786
18057
18069
  *
18058
18070
  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
18059
18071
  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) # <<<<<<<<<<<<<<
@@ -18067,7 +18079,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__
18067
18079
  __pyx_t_1 = 0;
18068
18080
  goto __pyx_L0;
18069
18081
 
18070
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":785
18082
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":785
18071
18083
  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
18072
18084
  *
18073
18085
  * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
@@ -18086,7 +18098,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__
18086
18098
  return __pyx_r;
18087
18099
  }
18088
18100
 
18089
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":788
18101
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":788
18090
18102
  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
18091
18103
  *
18092
18104
  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
@@ -18103,7 +18115,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__
18103
18115
  int __pyx_clineno = 0;
18104
18116
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
18105
18117
 
18106
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":789
18118
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":789
18107
18119
  *
18108
18120
  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
18109
18121
  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) # <<<<<<<<<<<<<<
@@ -18117,7 +18129,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__
18117
18129
  __pyx_t_1 = 0;
18118
18130
  goto __pyx_L0;
18119
18131
 
18120
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":788
18132
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":788
18121
18133
  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
18122
18134
  *
18123
18135
  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
@@ -18136,7 +18148,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__
18136
18148
  return __pyx_r;
18137
18149
  }
18138
18150
 
18139
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":791
18151
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":791
18140
18152
  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
18141
18153
  *
18142
18154
  * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
@@ -18151,7 +18163,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
18151
18163
  PyObject *__pyx_t_2;
18152
18164
  __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);
18153
18165
 
18154
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":792
18166
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":792
18155
18167
  *
18156
18168
  * cdef inline tuple PyDataType_SHAPE(dtype d):
18157
18169
  * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
@@ -18161,7 +18173,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
18161
18173
  __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d);
18162
18174
  if (__pyx_t_1) {
18163
18175
 
18164
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":793
18176
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":793
18165
18177
  * cdef inline tuple PyDataType_SHAPE(dtype d):
18166
18178
  * if PyDataType_HASSUBARRAY(d):
18167
18179
  * return <tuple>d.subarray.shape # <<<<<<<<<<<<<<
@@ -18174,7 +18186,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
18174
18186
  __pyx_r = ((PyObject*)__pyx_t_2);
18175
18187
  goto __pyx_L0;
18176
18188
 
18177
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":792
18189
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":792
18178
18190
  *
18179
18191
  * cdef inline tuple PyDataType_SHAPE(dtype d):
18180
18192
  * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
@@ -18183,7 +18195,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
18183
18195
  */
18184
18196
  }
18185
18197
 
18186
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":795
18198
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":795
18187
18199
  * return <tuple>d.subarray.shape
18188
18200
  * else:
18189
18201
  * return () # <<<<<<<<<<<<<<
@@ -18197,7 +18209,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
18197
18209
  goto __pyx_L0;
18198
18210
  }
18199
18211
 
18200
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":791
18212
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":791
18201
18213
  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
18202
18214
  *
18203
18215
  * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
@@ -18212,7 +18224,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
18212
18224
  return __pyx_r;
18213
18225
  }
18214
18226
 
18215
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":994
18227
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":994
18216
18228
  * int _import_umath() except -1
18217
18229
  *
18218
18230
  * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<<
@@ -18226,7 +18238,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
18226
18238
  const char *__pyx_filename = NULL;
18227
18239
  int __pyx_clineno = 0;
18228
18240
 
18229
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":995
18241
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":995
18230
18242
  *
18231
18243
  * cdef inline void set_array_base(ndarray arr, object base) except *:
18232
18244
  * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<<
@@ -18235,7 +18247,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
18235
18247
  */
18236
18248
  Py_INCREF(__pyx_v_base);
18237
18249
 
18238
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":996
18250
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":996
18239
18251
  * cdef inline void set_array_base(ndarray arr, object base) except *:
18240
18252
  * Py_INCREF(base) # important to do this before stealing the reference below!
18241
18253
  * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<<
@@ -18244,7 +18256,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
18244
18256
  */
18245
18257
  __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 996, __pyx_L1_error)
18246
18258
 
18247
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":994
18259
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":994
18248
18260
  * int _import_umath() except -1
18249
18261
  *
18250
18262
  * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<<
@@ -18259,7 +18271,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
18259
18271
  __pyx_L0:;
18260
18272
  }
18261
18273
 
18262
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":998
18274
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":998
18263
18275
  * PyArray_SetBaseObject(arr, base)
18264
18276
  *
18265
18277
  * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
@@ -18274,7 +18286,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
18274
18286
  int __pyx_t_1;
18275
18287
  __Pyx_RefNannySetupContext("get_array_base", 0);
18276
18288
 
18277
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":999
18289
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":999
18278
18290
  *
18279
18291
  * cdef inline object get_array_base(ndarray arr):
18280
18292
  * base = PyArray_BASE(arr) # <<<<<<<<<<<<<<
@@ -18283,7 +18295,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
18283
18295
  */
18284
18296
  __pyx_v_base = PyArray_BASE(__pyx_v_arr);
18285
18297
 
18286
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1000
18298
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1000
18287
18299
  * cdef inline object get_array_base(ndarray arr):
18288
18300
  * base = PyArray_BASE(arr)
18289
18301
  * if base is NULL: # <<<<<<<<<<<<<<
@@ -18293,7 +18305,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
18293
18305
  __pyx_t_1 = (__pyx_v_base == NULL);
18294
18306
  if (__pyx_t_1) {
18295
18307
 
18296
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1001
18308
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1001
18297
18309
  * base = PyArray_BASE(arr)
18298
18310
  * if base is NULL:
18299
18311
  * return None # <<<<<<<<<<<<<<
@@ -18304,7 +18316,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
18304
18316
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18305
18317
  goto __pyx_L0;
18306
18318
 
18307
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1000
18319
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1000
18308
18320
  * cdef inline object get_array_base(ndarray arr):
18309
18321
  * base = PyArray_BASE(arr)
18310
18322
  * if base is NULL: # <<<<<<<<<<<<<<
@@ -18313,7 +18325,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
18313
18325
  */
18314
18326
  }
18315
18327
 
18316
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1002
18328
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1002
18317
18329
  * if base is NULL:
18318
18330
  * return None
18319
18331
  * return <object>base # <<<<<<<<<<<<<<
@@ -18325,7 +18337,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
18325
18337
  __pyx_r = ((PyObject *)__pyx_v_base);
18326
18338
  goto __pyx_L0;
18327
18339
 
18328
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":998
18340
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":998
18329
18341
  * PyArray_SetBaseObject(arr, base)
18330
18342
  *
18331
18343
  * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
@@ -18340,7 +18352,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
18340
18352
  return __pyx_r;
18341
18353
  }
18342
18354
 
18343
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1006
18355
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1006
18344
18356
  * # Versions of the import_* functions which are more suitable for
18345
18357
  * # Cython code.
18346
18358
  * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
@@ -18367,7 +18379,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
18367
18379
  int __pyx_clineno = 0;
18368
18380
  __Pyx_RefNannySetupContext("import_array", 0);
18369
18381
 
18370
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1007
18382
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1007
18371
18383
  * # Cython code.
18372
18384
  * cdef inline int import_array() except -1:
18373
18385
  * try: # <<<<<<<<<<<<<<
@@ -18383,7 +18395,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
18383
18395
  __Pyx_XGOTREF(__pyx_t_3);
18384
18396
  /*try:*/ {
18385
18397
 
18386
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1008
18398
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1008
18387
18399
  * cdef inline int import_array() except -1:
18388
18400
  * try:
18389
18401
  * __pyx_import_array() # <<<<<<<<<<<<<<
@@ -18392,7 +18404,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
18392
18404
  */
18393
18405
  __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1008, __pyx_L3_error)
18394
18406
 
18395
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1007
18407
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1007
18396
18408
  * # Cython code.
18397
18409
  * cdef inline int import_array() except -1:
18398
18410
  * try: # <<<<<<<<<<<<<<
@@ -18406,7 +18418,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
18406
18418
  goto __pyx_L8_try_end;
18407
18419
  __pyx_L3_error:;
18408
18420
 
18409
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1009
18421
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1009
18410
18422
  * try:
18411
18423
  * __pyx_import_array()
18412
18424
  * except Exception: # <<<<<<<<<<<<<<
@@ -18421,7 +18433,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
18421
18433
  __Pyx_XGOTREF(__pyx_t_6);
18422
18434
  __Pyx_XGOTREF(__pyx_t_7);
18423
18435
 
18424
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1010
18436
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1010
18425
18437
  * __pyx_import_array()
18426
18438
  * except Exception:
18427
18439
  * raise ImportError("numpy._core.multiarray failed to import") # <<<<<<<<<<<<<<
@@ -18446,7 +18458,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
18446
18458
  }
18447
18459
  goto __pyx_L5_except_error;
18448
18460
 
18449
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1007
18461
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1007
18450
18462
  * # Cython code.
18451
18463
  * cdef inline int import_array() except -1:
18452
18464
  * try: # <<<<<<<<<<<<<<
@@ -18462,7 +18474,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
18462
18474
  __pyx_L8_try_end:;
18463
18475
  }
18464
18476
 
18465
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1006
18477
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1006
18466
18478
  * # Versions of the import_* functions which are more suitable for
18467
18479
  * # Cython code.
18468
18480
  * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
@@ -18487,7 +18499,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
18487
18499
  return __pyx_r;
18488
18500
  }
18489
18501
 
18490
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1012
18502
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1012
18491
18503
  * raise ImportError("numpy._core.multiarray failed to import")
18492
18504
  *
18493
18505
  * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
@@ -18514,7 +18526,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
18514
18526
  int __pyx_clineno = 0;
18515
18527
  __Pyx_RefNannySetupContext("import_umath", 0);
18516
18528
 
18517
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1013
18529
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1013
18518
18530
  *
18519
18531
  * cdef inline int import_umath() except -1:
18520
18532
  * try: # <<<<<<<<<<<<<<
@@ -18530,7 +18542,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
18530
18542
  __Pyx_XGOTREF(__pyx_t_3);
18531
18543
  /*try:*/ {
18532
18544
 
18533
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1014
18545
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1014
18534
18546
  * cdef inline int import_umath() except -1:
18535
18547
  * try:
18536
18548
  * _import_umath() # <<<<<<<<<<<<<<
@@ -18539,7 +18551,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
18539
18551
  */
18540
18552
  __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1014, __pyx_L3_error)
18541
18553
 
18542
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1013
18554
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1013
18543
18555
  *
18544
18556
  * cdef inline int import_umath() except -1:
18545
18557
  * try: # <<<<<<<<<<<<<<
@@ -18553,7 +18565,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
18553
18565
  goto __pyx_L8_try_end;
18554
18566
  __pyx_L3_error:;
18555
18567
 
18556
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1015
18568
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1015
18557
18569
  * try:
18558
18570
  * _import_umath()
18559
18571
  * except Exception: # <<<<<<<<<<<<<<
@@ -18568,7 +18580,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
18568
18580
  __Pyx_XGOTREF(__pyx_t_6);
18569
18581
  __Pyx_XGOTREF(__pyx_t_7);
18570
18582
 
18571
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1016
18583
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1016
18572
18584
  * _import_umath()
18573
18585
  * except Exception:
18574
18586
  * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<<
@@ -18593,7 +18605,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
18593
18605
  }
18594
18606
  goto __pyx_L5_except_error;
18595
18607
 
18596
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1013
18608
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1013
18597
18609
  *
18598
18610
  * cdef inline int import_umath() except -1:
18599
18611
  * try: # <<<<<<<<<<<<<<
@@ -18609,7 +18621,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
18609
18621
  __pyx_L8_try_end:;
18610
18622
  }
18611
18623
 
18612
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1012
18624
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1012
18613
18625
  * raise ImportError("numpy._core.multiarray failed to import")
18614
18626
  *
18615
18627
  * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
@@ -18634,7 +18646,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
18634
18646
  return __pyx_r;
18635
18647
  }
18636
18648
 
18637
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1018
18649
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1018
18638
18650
  * raise ImportError("numpy._core.umath failed to import")
18639
18651
  *
18640
18652
  * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
@@ -18661,7 +18673,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
18661
18673
  int __pyx_clineno = 0;
18662
18674
  __Pyx_RefNannySetupContext("import_ufunc", 0);
18663
18675
 
18664
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1019
18676
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1019
18665
18677
  *
18666
18678
  * cdef inline int import_ufunc() except -1:
18667
18679
  * try: # <<<<<<<<<<<<<<
@@ -18677,7 +18689,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
18677
18689
  __Pyx_XGOTREF(__pyx_t_3);
18678
18690
  /*try:*/ {
18679
18691
 
18680
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1020
18692
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1020
18681
18693
  * cdef inline int import_ufunc() except -1:
18682
18694
  * try:
18683
18695
  * _import_umath() # <<<<<<<<<<<<<<
@@ -18686,7 +18698,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
18686
18698
  */
18687
18699
  __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1020, __pyx_L3_error)
18688
18700
 
18689
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1019
18701
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1019
18690
18702
  *
18691
18703
  * cdef inline int import_ufunc() except -1:
18692
18704
  * try: # <<<<<<<<<<<<<<
@@ -18700,7 +18712,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
18700
18712
  goto __pyx_L8_try_end;
18701
18713
  __pyx_L3_error:;
18702
18714
 
18703
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1021
18715
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1021
18704
18716
  * try:
18705
18717
  * _import_umath()
18706
18718
  * except Exception: # <<<<<<<<<<<<<<
@@ -18715,7 +18727,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
18715
18727
  __Pyx_XGOTREF(__pyx_t_6);
18716
18728
  __Pyx_XGOTREF(__pyx_t_7);
18717
18729
 
18718
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1022
18730
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1022
18719
18731
  * _import_umath()
18720
18732
  * except Exception:
18721
18733
  * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<<
@@ -18740,7 +18752,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
18740
18752
  }
18741
18753
  goto __pyx_L5_except_error;
18742
18754
 
18743
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1019
18755
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1019
18744
18756
  *
18745
18757
  * cdef inline int import_ufunc() except -1:
18746
18758
  * try: # <<<<<<<<<<<<<<
@@ -18756,7 +18768,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
18756
18768
  __pyx_L8_try_end:;
18757
18769
  }
18758
18770
 
18759
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1018
18771
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1018
18760
18772
  * raise ImportError("numpy._core.umath failed to import")
18761
18773
  *
18762
18774
  * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
@@ -18781,7 +18793,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
18781
18793
  return __pyx_r;
18782
18794
  }
18783
18795
 
18784
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1025
18796
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1025
18785
18797
  *
18786
18798
  *
18787
18799
  * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<<
@@ -18792,7 +18804,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
18792
18804
  static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
18793
18805
  int __pyx_r;
18794
18806
 
18795
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1037
18807
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1037
18796
18808
  * bool
18797
18809
  * """
18798
18810
  * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<<
@@ -18802,7 +18814,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_
18802
18814
  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
18803
18815
  goto __pyx_L0;
18804
18816
 
18805
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1025
18817
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1025
18806
18818
  *
18807
18819
  *
18808
18820
  * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<<
@@ -18815,7 +18827,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_
18815
18827
  return __pyx_r;
18816
18828
  }
18817
18829
 
18818
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1040
18830
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1040
18819
18831
  *
18820
18832
  *
18821
18833
  * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<<
@@ -18826,7 +18838,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_
18826
18838
  static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
18827
18839
  int __pyx_r;
18828
18840
 
18829
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1052
18841
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1052
18830
18842
  * bool
18831
18843
  * """
18832
18844
  * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<<
@@ -18836,7 +18848,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o
18836
18848
  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
18837
18849
  goto __pyx_L0;
18838
18850
 
18839
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1040
18851
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1040
18840
18852
  *
18841
18853
  *
18842
18854
  * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<<
@@ -18849,7 +18861,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o
18849
18861
  return __pyx_r;
18850
18862
  }
18851
18863
 
18852
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1055
18864
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1055
18853
18865
  *
18854
18866
  *
18855
18867
  * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
@@ -18860,7 +18872,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o
18860
18872
  static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
18861
18873
  npy_datetime __pyx_r;
18862
18874
 
18863
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1062
18875
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1062
18864
18876
  * also needed. That can be found using `get_datetime64_unit`.
18865
18877
  * """
18866
18878
  * return (<PyDatetimeScalarObject*>obj).obval # <<<<<<<<<<<<<<
@@ -18870,7 +18882,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *
18870
18882
  __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval;
18871
18883
  goto __pyx_L0;
18872
18884
 
18873
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1055
18885
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1055
18874
18886
  *
18875
18887
  *
18876
18888
  * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
@@ -18883,7 +18895,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *
18883
18895
  return __pyx_r;
18884
18896
  }
18885
18897
 
18886
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1065
18898
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1065
18887
18899
  *
18888
18900
  *
18889
18901
  * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
@@ -18894,7 +18906,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *
18894
18906
  static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
18895
18907
  npy_timedelta __pyx_r;
18896
18908
 
18897
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1069
18909
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1069
18898
18910
  * returns the int64 value underlying scalar numpy timedelta64 object
18899
18911
  * """
18900
18912
  * return (<PyTimedeltaScalarObject*>obj).obval # <<<<<<<<<<<<<<
@@ -18904,7 +18916,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject
18904
18916
  __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval;
18905
18917
  goto __pyx_L0;
18906
18918
 
18907
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1065
18919
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1065
18908
18920
  *
18909
18921
  *
18910
18922
  * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
@@ -18917,7 +18929,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject
18917
18929
  return __pyx_r;
18918
18930
  }
18919
18931
 
18920
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1072
18932
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1072
18921
18933
  *
18922
18934
  *
18923
18935
  * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<<
@@ -18928,7 +18940,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject
18928
18940
  static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
18929
18941
  NPY_DATETIMEUNIT __pyx_r;
18930
18942
 
18931
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1076
18943
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1076
18932
18944
  * returns the unit part of the dtype for a numpy datetime64 object.
18933
18945
  * """
18934
18946
  * return <NPY_DATETIMEUNIT>(<PyDatetimeScalarObject*>obj).obmeta.base # <<<<<<<<<<<<<<
@@ -18938,7 +18950,7 @@ static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObjec
18938
18950
  __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base);
18939
18951
  goto __pyx_L0;
18940
18952
 
18941
- /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-nvye594b/Lib/site-packages/numpy/__init__.cython-30.pxd":1072
18953
+ /* "C:/Users/runneradmin/AppData/Local/Temp/build-env-4bbyc87a/Lib/site-packages/numpy/__init__.cython-30.pxd":1072
18942
18954
  *
18943
18955
  *
18944
18956
  * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<<
@@ -19195,7 +19207,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19195
19207
  * node.categories_go_left = NULL
19196
19208
  * node.n_samples = n_samples # <<<<<<<<<<<<<<
19197
19209
  * node.n_classes = n_classes
19198
- *
19210
+ * node.value_multiclass = NULL
19199
19211
  */
19200
19212
  __pyx_v_node->n_samples = __pyx_v_n_samples;
19201
19213
 
@@ -19203,13 +19215,22 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19203
19215
  * node.categories_go_left = NULL
19204
19216
  * node.n_samples = n_samples
19205
19217
  * node.n_classes = n_classes # <<<<<<<<<<<<<<
19218
+ * node.value_multiclass = NULL
19206
19219
  *
19207
- * if n_classes > 2:
19208
19220
  */
19209
19221
  __pyx_v_node->n_classes = __pyx_v_n_classes;
19210
19222
 
19211
- /* "obliquetree/src/tree.pyx":68
19223
+ /* "obliquetree/src/tree.pyx":67
19224
+ * node.n_samples = n_samples
19212
19225
  * node.n_classes = n_classes
19226
+ * node.value_multiclass = NULL # <<<<<<<<<<<<<<
19227
+ *
19228
+ * if n_classes > 2:
19229
+ */
19230
+ __pyx_v_node->value_multiclass = NULL;
19231
+
19232
+ /* "obliquetree/src/tree.pyx":69
19233
+ * node.value_multiclass = NULL
19213
19234
  *
19214
19235
  * if n_classes > 2: # <<<<<<<<<<<<<<
19215
19236
  * calculate_node_value_multiclass(sample_weight, y, sample_indices, n_samples, n_classes, &node.value_multiclass)
@@ -19218,7 +19239,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19218
19239
  __pyx_t_1 = (__pyx_v_n_classes > 2);
19219
19240
  if (__pyx_t_1) {
19220
19241
 
19221
- /* "obliquetree/src/tree.pyx":69
19242
+ /* "obliquetree/src/tree.pyx":70
19222
19243
  *
19223
19244
  * if n_classes > 2:
19224
19245
  * calculate_node_value_multiclass(sample_weight, y, sample_indices, n_samples, n_classes, &node.value_multiclass) # <<<<<<<<<<<<<<
@@ -19227,8 +19248,8 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19227
19248
  */
19228
19249
  __pyx_f_11obliquetree_3src_6metric_calculate_node_value_multiclass(__pyx_v_sample_weight, __pyx_v_y, __pyx_v_sample_indices, __pyx_v_n_samples, __pyx_v_n_classes, (&__pyx_v_node->value_multiclass));
19229
19250
 
19230
- /* "obliquetree/src/tree.pyx":68
19231
- * node.n_classes = n_classes
19251
+ /* "obliquetree/src/tree.pyx":69
19252
+ * node.value_multiclass = NULL
19232
19253
  *
19233
19254
  * if n_classes > 2: # <<<<<<<<<<<<<<
19234
19255
  * calculate_node_value_multiclass(sample_weight, y, sample_indices, n_samples, n_classes, &node.value_multiclass)
@@ -19237,7 +19258,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19237
19258
  goto __pyx_L7;
19238
19259
  }
19239
19260
 
19240
- /* "obliquetree/src/tree.pyx":71
19261
+ /* "obliquetree/src/tree.pyx":72
19241
19262
  * calculate_node_value_multiclass(sample_weight, y, sample_indices, n_samples, n_classes, &node.value_multiclass)
19242
19263
  * else:
19243
19264
  * node.value = calculate_node_value(sample_weight, y, sample_indices, n_samples) # <<<<<<<<<<<<<<
@@ -19249,7 +19270,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19249
19270
  }
19250
19271
  __pyx_L7:;
19251
19272
 
19252
- /* "obliquetree/src/tree.pyx":74
19273
+ /* "obliquetree/src/tree.pyx":75
19253
19274
  *
19254
19275
  * # If 1 sample => leaf
19255
19276
  * if n_samples == 1: # <<<<<<<<<<<<<<
@@ -19259,7 +19280,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19259
19280
  __pyx_t_1 = (__pyx_v_n_samples == 1);
19260
19281
  if (__pyx_t_1) {
19261
19282
 
19262
- /* "obliquetree/src/tree.pyx":75
19283
+ /* "obliquetree/src/tree.pyx":76
19263
19284
  * # If 1 sample => leaf
19264
19285
  * if n_samples == 1:
19265
19286
  * return node # <<<<<<<<<<<<<<
@@ -19269,7 +19290,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19269
19290
  __pyx_r = __pyx_v_node;
19270
19291
  goto __pyx_L0;
19271
19292
 
19272
- /* "obliquetree/src/tree.pyx":74
19293
+ /* "obliquetree/src/tree.pyx":75
19273
19294
  *
19274
19295
  * # If 1 sample => leaf
19275
19296
  * if n_samples == 1: # <<<<<<<<<<<<<<
@@ -19278,7 +19299,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19278
19299
  */
19279
19300
  }
19280
19301
 
19281
- /* "obliquetree/src/tree.pyx":77
19302
+ /* "obliquetree/src/tree.pyx":78
19282
19303
  * return node
19283
19304
  *
19284
19305
  * if task == 0: # <<<<<<<<<<<<<<
@@ -19288,7 +19309,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19288
19309
  __pyx_t_1 = (__pyx_v_task == 0);
19289
19310
  if (__pyx_t_1) {
19290
19311
 
19291
- /* "obliquetree/src/tree.pyx":78
19312
+ /* "obliquetree/src/tree.pyx":79
19292
19313
  *
19293
19314
  * if task == 0:
19294
19315
  * node.impurity = calculate_node_gini(sample_indices, sample_weight, y, n_samples, n_classes) # <<<<<<<<<<<<<<
@@ -19300,7 +19321,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19300
19321
  __pyx_t_2 = __pyx_f_11obliquetree_3src_6metric_calculate_node_gini(__pyx_v_sample_indices, __pyx_v_sample_weight, __pyx_v_y, __pyx_v_n_samples, &__pyx_t_3);
19301
19322
  __pyx_v_node->impurity = __pyx_t_2;
19302
19323
 
19303
- /* "obliquetree/src/tree.pyx":77
19324
+ /* "obliquetree/src/tree.pyx":78
19304
19325
  * return node
19305
19326
  *
19306
19327
  * if task == 0: # <<<<<<<<<<<<<<
@@ -19310,7 +19331,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19310
19331
  goto __pyx_L9;
19311
19332
  }
19312
19333
 
19313
- /* "obliquetree/src/tree.pyx":80
19334
+ /* "obliquetree/src/tree.pyx":81
19314
19335
  * node.impurity = calculate_node_gini(sample_indices, sample_weight, y, n_samples, n_classes)
19315
19336
  * else:
19316
19337
  * node.impurity = calculate_node_mse(sample_indices, sample_weight, y, n_samples) # <<<<<<<<<<<<<<
@@ -19322,7 +19343,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19322
19343
  }
19323
19344
  __pyx_L9:;
19324
19345
 
19325
- /* "obliquetree/src/tree.pyx":85
19346
+ /* "obliquetree/src/tree.pyx":86
19326
19347
  * # Check stopping criteria
19327
19348
  * if (
19328
19349
  * node.impurity == 0.0 or # <<<<<<<<<<<<<<
@@ -19336,7 +19357,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19336
19357
  goto __pyx_L11_bool_binop_done;
19337
19358
  }
19338
19359
 
19339
- /* "obliquetree/src/tree.pyx":86
19360
+ /* "obliquetree/src/tree.pyx":87
19340
19361
  * if (
19341
19362
  * node.impurity == 0.0 or
19342
19363
  * depth >= max_depth or # <<<<<<<<<<<<<<
@@ -19350,7 +19371,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19350
19371
  goto __pyx_L11_bool_binop_done;
19351
19372
  }
19352
19373
 
19353
- /* "obliquetree/src/tree.pyx":87
19374
+ /* "obliquetree/src/tree.pyx":88
19354
19375
  * node.impurity == 0.0 or
19355
19376
  * depth >= max_depth or
19356
19377
  * n_samples < 2 * min_samples_leaf or # <<<<<<<<<<<<<<
@@ -19364,7 +19385,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19364
19385
  goto __pyx_L11_bool_binop_done;
19365
19386
  }
19366
19387
 
19367
- /* "obliquetree/src/tree.pyx":88
19388
+ /* "obliquetree/src/tree.pyx":89
19368
19389
  * depth >= max_depth or
19369
19390
  * n_samples < 2 * min_samples_leaf or
19370
19391
  * n_samples < min_samples_split # <<<<<<<<<<<<<<
@@ -19375,7 +19396,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19375
19396
  __pyx_t_1 = __pyx_t_4;
19376
19397
  __pyx_L11_bool_binop_done:;
19377
19398
 
19378
- /* "obliquetree/src/tree.pyx":84
19399
+ /* "obliquetree/src/tree.pyx":85
19379
19400
  *
19380
19401
  * # Check stopping criteria
19381
19402
  * if ( # <<<<<<<<<<<<<<
@@ -19384,7 +19405,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19384
19405
  */
19385
19406
  if (__pyx_t_1) {
19386
19407
 
19387
- /* "obliquetree/src/tree.pyx":90
19408
+ /* "obliquetree/src/tree.pyx":91
19388
19409
  * n_samples < min_samples_split
19389
19410
  * ):
19390
19411
  * return node # <<<<<<<<<<<<<<
@@ -19394,7 +19415,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19394
19415
  __pyx_r = __pyx_v_node;
19395
19416
  goto __pyx_L0;
19396
19417
 
19397
- /* "obliquetree/src/tree.pyx":84
19418
+ /* "obliquetree/src/tree.pyx":85
19398
19419
  *
19399
19420
  * # Check stopping criteria
19400
19421
  * if ( # <<<<<<<<<<<<<<
@@ -19403,7 +19424,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19403
19424
  */
19404
19425
  }
19405
19426
 
19406
- /* "obliquetree/src/tree.pyx":93
19427
+ /* "obliquetree/src/tree.pyx":94
19407
19428
  *
19408
19429
  * # We'll store the sorted indices for whichever feature gave the best split
19409
19430
  * cdef int* best_sorted_indices = <int*>malloc(n_samples * sizeof(int)) # <<<<<<<<<<<<<<
@@ -19412,7 +19433,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19412
19433
  */
19413
19434
  __pyx_v_best_sorted_indices = ((int *)malloc((__pyx_v_n_samples * (sizeof(int)))));
19414
19435
 
19415
- /* "obliquetree/src/tree.pyx":94
19436
+ /* "obliquetree/src/tree.pyx":95
19416
19437
  * # We'll store the sorted indices for whichever feature gave the best split
19417
19438
  * cdef int* best_sorted_indices = <int*>malloc(n_samples * sizeof(int))
19418
19439
  * cdef int* best_nan_indices = <int*>malloc(n_samples * sizeof(int)) # <<<<<<<<<<<<<<
@@ -19421,7 +19442,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19421
19442
  */
19422
19443
  __pyx_v_best_nan_indices = ((int *)malloc((__pyx_v_n_samples * (sizeof(int)))));
19423
19444
 
19424
- /* "obliquetree/src/tree.pyx":95
19445
+ /* "obliquetree/src/tree.pyx":96
19425
19446
  * cdef int* best_sorted_indices = <int*>malloc(n_samples * sizeof(int))
19426
19447
  * cdef int* best_nan_indices = <int*>malloc(n_samples * sizeof(int))
19427
19448
  * cdef int* best_categorical_indices = <int*>malloc(n_samples * sizeof(int)) # <<<<<<<<<<<<<<
@@ -19430,7 +19451,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19430
19451
  */
19431
19452
  __pyx_v_best_categorical_indices = ((int *)malloc((__pyx_v_n_samples * (sizeof(int)))));
19432
19453
 
19433
- /* "obliquetree/src/tree.pyx":97
19454
+ /* "obliquetree/src/tree.pyx":98
19434
19455
  * cdef int* best_categorical_indices = <int*>malloc(n_samples * sizeof(int))
19435
19456
  *
19436
19457
  * if best_sorted_indices == NULL: # <<<<<<<<<<<<<<
@@ -19440,7 +19461,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19440
19461
  __pyx_t_1 = (__pyx_v_best_sorted_indices == NULL);
19441
19462
  if (unlikely(__pyx_t_1)) {
19442
19463
 
19443
- /* "obliquetree/src/tree.pyx":98
19464
+ /* "obliquetree/src/tree.pyx":99
19444
19465
  *
19445
19466
  * if best_sorted_indices == NULL:
19446
19467
  * with gil: # <<<<<<<<<<<<<<
@@ -19451,17 +19472,17 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19451
19472
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
19452
19473
  /*try:*/ {
19453
19474
 
19454
- /* "obliquetree/src/tree.pyx":99
19475
+ /* "obliquetree/src/tree.pyx":100
19455
19476
  * if best_sorted_indices == NULL:
19456
19477
  * with gil:
19457
19478
  * raise MemoryError() # <<<<<<<<<<<<<<
19458
19479
  *
19459
19480
  * cdef double min_impurity = INFINITY
19460
19481
  */
19461
- PyErr_NoMemory(); __PYX_ERR(0, 99, __pyx_L17_error)
19482
+ PyErr_NoMemory(); __PYX_ERR(0, 100, __pyx_L17_error)
19462
19483
  }
19463
19484
 
19464
- /* "obliquetree/src/tree.pyx":98
19485
+ /* "obliquetree/src/tree.pyx":99
19465
19486
  *
19466
19487
  * if best_sorted_indices == NULL:
19467
19488
  * with gil: # <<<<<<<<<<<<<<
@@ -19476,7 +19497,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19476
19497
  }
19477
19498
  }
19478
19499
 
19479
- /* "obliquetree/src/tree.pyx":97
19500
+ /* "obliquetree/src/tree.pyx":98
19480
19501
  * cdef int* best_categorical_indices = <int*>malloc(n_samples * sizeof(int))
19481
19502
  *
19482
19503
  * if best_sorted_indices == NULL: # <<<<<<<<<<<<<<
@@ -19485,7 +19506,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19485
19506
  */
19486
19507
  }
19487
19508
 
19488
- /* "obliquetree/src/tree.pyx":101
19509
+ /* "obliquetree/src/tree.pyx":102
19489
19510
  * raise MemoryError()
19490
19511
  *
19491
19512
  * cdef double min_impurity = INFINITY # <<<<<<<<<<<<<<
@@ -19494,7 +19515,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19494
19515
  */
19495
19516
  __pyx_v_min_impurity = INFINITY;
19496
19517
 
19497
- /* "obliquetree/src/tree.pyx":102
19518
+ /* "obliquetree/src/tree.pyx":103
19498
19519
  *
19499
19520
  * cdef double min_impurity = INFINITY
19500
19521
  * cdef int best_feature = -1 # <<<<<<<<<<<<<<
@@ -19503,7 +19524,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19503
19524
  */
19504
19525
  __pyx_v_best_feature = -1;
19505
19526
 
19506
- /* "obliquetree/src/tree.pyx":103
19527
+ /* "obliquetree/src/tree.pyx":104
19507
19528
  * cdef double min_impurity = INFINITY
19508
19529
  * cdef int best_feature = -1
19509
19530
  * cdef double best_threshold = 0.0 # <<<<<<<<<<<<<<
@@ -19512,7 +19533,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19512
19533
  */
19513
19534
  __pyx_v_best_threshold = 0.0;
19514
19535
 
19515
- /* "obliquetree/src/tree.pyx":104
19536
+ /* "obliquetree/src/tree.pyx":105
19516
19537
  * cdef int best_feature = -1
19517
19538
  * cdef double best_threshold = 0.0
19518
19539
  * cdef int best_left_count = 0 # <<<<<<<<<<<<<<
@@ -19521,7 +19542,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19521
19542
  */
19522
19543
  __pyx_v_best_left_count = 0;
19523
19544
 
19524
- /* "obliquetree/src/tree.pyx":105
19545
+ /* "obliquetree/src/tree.pyx":106
19525
19546
  * cdef double best_threshold = 0.0
19526
19547
  * cdef int best_left_count = 0
19527
19548
  * cdef bint best_missing_go_left = True # <<<<<<<<<<<<<<
@@ -19530,7 +19551,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19530
19551
  */
19531
19552
  __pyx_v_best_missing_go_left = 1;
19532
19553
 
19533
- /* "obliquetree/src/tree.pyx":106
19554
+ /* "obliquetree/src/tree.pyx":107
19534
19555
  * cdef int best_left_count = 0
19535
19556
  * cdef bint best_missing_go_left = True
19536
19557
  * cdef int best_n_categorical = 0 # <<<<<<<<<<<<<<
@@ -19539,7 +19560,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19539
19560
  */
19540
19561
  __pyx_v_best_n_categorical = 0;
19541
19562
 
19542
- /* "obliquetree/src/tree.pyx":107
19563
+ /* "obliquetree/src/tree.pyx":108
19543
19564
  * cdef bint best_missing_go_left = True
19544
19565
  * cdef int best_n_categorical = 0
19545
19566
  * cdef double impurity_c = 0.0, threshold_c = 0.0 # <<<<<<<<<<<<<<
@@ -19549,7 +19570,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19549
19570
  __pyx_v_impurity_c = 0.0;
19550
19571
  __pyx_v_threshold_c = 0.0;
19551
19572
 
19552
- /* "obliquetree/src/tree.pyx":108
19573
+ /* "obliquetree/src/tree.pyx":109
19553
19574
  * cdef int best_n_categorical = 0
19554
19575
  * cdef double impurity_c = 0.0, threshold_c = 0.0
19555
19576
  * cdef int left_count_c, f_idx, n_features = X.shape[1] # <<<<<<<<<<<<<<
@@ -19558,7 +19579,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19558
19579
  */
19559
19580
  __pyx_v_n_features = (__pyx_v_X.shape[1]);
19560
19581
 
19561
- /* "obliquetree/src/tree.pyx":112
19582
+ /* "obliquetree/src/tree.pyx":113
19562
19583
  * cdef int* pair
19563
19584
  * cdef int n_nans, n_non_nans, best_n_nans
19564
19585
  * cdef bint missing_go_left = True # <<<<<<<<<<<<<<
@@ -19567,7 +19588,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19567
19588
  */
19568
19589
  __pyx_v_missing_go_left = 1;
19569
19590
 
19570
- /* "obliquetree/src/tree.pyx":116
19591
+ /* "obliquetree/src/tree.pyx":117
19571
19592
  * cdef int i, unique, idx
19572
19593
  *
19573
19594
  * if use_oblique: # <<<<<<<<<<<<<<
@@ -19577,7 +19598,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19577
19598
  __pyx_t_1 = (__pyx_v_use_oblique != 0);
19578
19599
  if (__pyx_t_1) {
19579
19600
 
19580
- /* "obliquetree/src/tree.pyx":117
19601
+ /* "obliquetree/src/tree.pyx":118
19581
19602
  *
19582
19603
  * if use_oblique:
19583
19604
  * node.feature_idx = best_feature = -2 # <<<<<<<<<<<<<<
@@ -19587,7 +19608,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19587
19608
  __pyx_v_node->feature_idx = -2;
19588
19609
  __pyx_v_best_feature = -2;
19589
19610
 
19590
- /* "obliquetree/src/tree.pyx":118
19611
+ /* "obliquetree/src/tree.pyx":119
19591
19612
  * if use_oblique:
19592
19613
  * node.feature_idx = best_feature = -2
19593
19614
  * best_n_nans = 0 # <<<<<<<<<<<<<<
@@ -19596,7 +19617,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19596
19617
  */
19597
19618
  __pyx_v_best_n_nans = 0;
19598
19619
 
19599
- /* "obliquetree/src/tree.pyx":120
19620
+ /* "obliquetree/src/tree.pyx":121
19600
19621
  * best_n_nans = 0
19601
19622
  *
19602
19623
  * with gil: # <<<<<<<<<<<<<<
@@ -19607,49 +19628,49 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19607
19628
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
19608
19629
  /*try:*/ {
19609
19630
 
19610
- /* "obliquetree/src/tree.pyx":125
19631
+ /* "obliquetree/src/tree.pyx":126
19611
19632
  * n_classes,
19612
19633
  * False,
19613
19634
  * X.base, # <<<<<<<<<<<<<<
19614
19635
  * y.base,
19615
19636
  * sample_weight.base,
19616
19637
  */
19617
- __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_X, 2, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 125, __pyx_L21_error)
19638
+ __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_X, 2, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 126, __pyx_L21_error)
19618
19639
  __Pyx_GOTREF(__pyx_t_5);
19619
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 125, __pyx_L21_error)
19640
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 126, __pyx_L21_error)
19620
19641
  __Pyx_GOTREF(__pyx_t_6);
19621
19642
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
19622
- if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 125, __pyx_L21_error)
19643
+ if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 126, __pyx_L21_error)
19623
19644
 
19624
- /* "obliquetree/src/tree.pyx":126
19645
+ /* "obliquetree/src/tree.pyx":127
19625
19646
  * False,
19626
19647
  * X.base,
19627
19648
  * y.base, # <<<<<<<<<<<<<<
19628
19649
  * sample_weight.base,
19629
19650
  * sample_indices,
19630
19651
  */
19631
- __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_y, 1, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 126, __pyx_L21_error)
19652
+ __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_y, 1, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 127, __pyx_L21_error)
19632
19653
  __Pyx_GOTREF(__pyx_t_5);
19633
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 126, __pyx_L21_error)
19654
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 127, __pyx_L21_error)
19634
19655
  __Pyx_GOTREF(__pyx_t_7);
19635
19656
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
19636
- if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 126, __pyx_L21_error)
19657
+ if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 127, __pyx_L21_error)
19637
19658
 
19638
- /* "obliquetree/src/tree.pyx":127
19659
+ /* "obliquetree/src/tree.pyx":128
19639
19660
  * X.base,
19640
19661
  * y.base,
19641
19662
  * sample_weight.base, # <<<<<<<<<<<<<<
19642
19663
  * sample_indices,
19643
19664
  * sort_buffer,
19644
19665
  */
19645
- __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_sample_weight, 1, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 127, __pyx_L21_error)
19666
+ __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_sample_weight, 1, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 128, __pyx_L21_error)
19646
19667
  __Pyx_GOTREF(__pyx_t_5);
19647
- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 127, __pyx_L21_error)
19668
+ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 128, __pyx_L21_error)
19648
19669
  __Pyx_GOTREF(__pyx_t_8);
19649
19670
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
19650
- if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 127, __pyx_L21_error)
19671
+ if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 128, __pyx_L21_error)
19651
19672
 
19652
- /* "obliquetree/src/tree.pyx":121
19673
+ /* "obliquetree/src/tree.pyx":122
19653
19674
  *
19654
19675
  * with gil:
19655
19676
  * best_x, pair = analyze( # <<<<<<<<<<<<<<
@@ -19666,7 +19687,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19666
19687
  __pyx_v_pair = __pyx_t_11;
19667
19688
  }
19668
19689
 
19669
- /* "obliquetree/src/tree.pyx":120
19690
+ /* "obliquetree/src/tree.pyx":121
19670
19691
  * best_n_nans = 0
19671
19692
  *
19672
19693
  * with gil: # <<<<<<<<<<<<<<
@@ -19686,7 +19707,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19686
19707
  }
19687
19708
  }
19688
19709
 
19689
- /* "obliquetree/src/tree.pyx":143
19710
+ /* "obliquetree/src/tree.pyx":144
19690
19711
  * n_classes,
19691
19712
  * sort_buffer,
19692
19713
  * &sample_weight[0], # <<<<<<<<<<<<<<
@@ -19695,7 +19716,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19695
19716
  */
19696
19717
  __pyx_t_12 = 0;
19697
19718
 
19698
- /* "obliquetree/src/tree.pyx":144
19719
+ /* "obliquetree/src/tree.pyx":145
19699
19720
  * sort_buffer,
19700
19721
  * &sample_weight[0],
19701
19722
  * &y[0], # <<<<<<<<<<<<<<
@@ -19704,7 +19725,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19704
19725
  */
19705
19726
  __pyx_t_13 = 0;
19706
19727
 
19707
- /* "obliquetree/src/tree.pyx":139
19728
+ /* "obliquetree/src/tree.pyx":140
19708
19729
  * )
19709
19730
  *
19710
19731
  * min_impurity = calculate_impurity( # <<<<<<<<<<<<<<
@@ -19713,7 +19734,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19713
19734
  */
19714
19735
  __pyx_v_min_impurity = __pyx_f_11obliquetree_3src_6metric_calculate_impurity(0, __pyx_v_n_classes, __pyx_v_sort_buffer, (&(*((double const *) ( /* dim=0 */ ((char *) (((double const *) __pyx_v_sample_weight.data) + __pyx_t_12)) )))), (&(*((double const *) ( /* dim=0 */ ((char *) (((double const *) __pyx_v_y.data) + __pyx_t_13)) )))), __pyx_v_nan_indices, __pyx_v_categorical_stats, __pyx_v_n_samples, 0, __pyx_v_min_samples_leaf, (&__pyx_v_best_threshold), (&__pyx_v_best_left_count), (&__pyx_v_best_missing_go_left), __pyx_v_task);
19715
19736
 
19716
- /* "obliquetree/src/tree.pyx":156
19737
+ /* "obliquetree/src/tree.pyx":157
19717
19738
  *
19718
19739
  *
19719
19740
  * for i in range(n_samples): # <<<<<<<<<<<<<<
@@ -19725,7 +19746,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19725
19746
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
19726
19747
  __pyx_v_i = __pyx_t_16;
19727
19748
 
19728
- /* "obliquetree/src/tree.pyx":157
19749
+ /* "obliquetree/src/tree.pyx":158
19729
19750
  *
19730
19751
  * for i in range(n_samples):
19731
19752
  * best_sorted_indices[i] = sort_buffer[i].index # <<<<<<<<<<<<<<
@@ -19736,7 +19757,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19736
19757
  (__pyx_v_best_sorted_indices[__pyx_v_i]) = __pyx_t_17;
19737
19758
  }
19738
19759
 
19739
- /* "obliquetree/src/tree.pyx":159
19760
+ /* "obliquetree/src/tree.pyx":160
19740
19761
  * best_sorted_indices[i] = sort_buffer[i].index
19741
19762
  *
19742
19763
  * with gil: # <<<<<<<<<<<<<<
@@ -19747,49 +19768,49 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19747
19768
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
19748
19769
  /*try:*/ {
19749
19770
 
19750
- /* "obliquetree/src/tree.pyx":164
19771
+ /* "obliquetree/src/tree.pyx":165
19751
19772
  * n_classes,
19752
19773
  * True,
19753
19774
  * X.base, # <<<<<<<<<<<<<<
19754
19775
  * y.base,
19755
19776
  * sample_weight.base,
19756
19777
  */
19757
- __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_X, 2, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 164, __pyx_L26_error)
19778
+ __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_X, 2, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 165, __pyx_L26_error)
19758
19779
  __Pyx_GOTREF(__pyx_t_8);
19759
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 164, __pyx_L26_error)
19780
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 165, __pyx_L26_error)
19760
19781
  __Pyx_GOTREF(__pyx_t_7);
19761
19782
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
19762
- if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 164, __pyx_L26_error)
19783
+ if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 165, __pyx_L26_error)
19763
19784
 
19764
- /* "obliquetree/src/tree.pyx":165
19785
+ /* "obliquetree/src/tree.pyx":166
19765
19786
  * True,
19766
19787
  * X.base,
19767
19788
  * y.base, # <<<<<<<<<<<<<<
19768
19789
  * sample_weight.base,
19769
19790
  * sample_indices,
19770
19791
  */
19771
- __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_y, 1, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 165, __pyx_L26_error)
19792
+ __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_y, 1, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 166, __pyx_L26_error)
19772
19793
  __Pyx_GOTREF(__pyx_t_8);
19773
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 165, __pyx_L26_error)
19794
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 166, __pyx_L26_error)
19774
19795
  __Pyx_GOTREF(__pyx_t_6);
19775
19796
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
19776
- if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 165, __pyx_L26_error)
19797
+ if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 166, __pyx_L26_error)
19777
19798
 
19778
- /* "obliquetree/src/tree.pyx":166
19799
+ /* "obliquetree/src/tree.pyx":167
19779
19800
  * X.base,
19780
19801
  * y.base,
19781
19802
  * sample_weight.base, # <<<<<<<<<<<<<<
19782
19803
  * sample_indices,
19783
19804
  * sort_buffer,
19784
19805
  */
19785
- __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_sample_weight, 1, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 166, __pyx_L26_error)
19806
+ __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_sample_weight, 1, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 167, __pyx_L26_error)
19786
19807
  __Pyx_GOTREF(__pyx_t_8);
19787
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 166, __pyx_L26_error)
19808
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_base); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 167, __pyx_L26_error)
19788
19809
  __Pyx_GOTREF(__pyx_t_5);
19789
19810
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
19790
- if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 166, __pyx_L26_error)
19811
+ if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 167, __pyx_L26_error)
19791
19812
 
19792
- /* "obliquetree/src/tree.pyx":160
19813
+ /* "obliquetree/src/tree.pyx":161
19793
19814
  *
19794
19815
  * with gil:
19795
19816
  * best_x_linear, pair_linear = analyze( # <<<<<<<<<<<<<<
@@ -19806,7 +19827,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19806
19827
  __pyx_v_pair_linear = __pyx_t_11;
19807
19828
  }
19808
19829
 
19809
- /* "obliquetree/src/tree.pyx":159
19830
+ /* "obliquetree/src/tree.pyx":160
19810
19831
  * best_sorted_indices[i] = sort_buffer[i].index
19811
19832
  *
19812
19833
  * with gil: # <<<<<<<<<<<<<<
@@ -19826,7 +19847,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19826
19847
  }
19827
19848
  }
19828
19849
 
19829
- /* "obliquetree/src/tree.pyx":182
19850
+ /* "obliquetree/src/tree.pyx":183
19830
19851
  * n_classes,
19831
19852
  * sort_buffer,
19832
19853
  * &sample_weight[0], # <<<<<<<<<<<<<<
@@ -19835,7 +19856,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19835
19856
  */
19836
19857
  __pyx_t_13 = 0;
19837
19858
 
19838
- /* "obliquetree/src/tree.pyx":183
19859
+ /* "obliquetree/src/tree.pyx":184
19839
19860
  * sort_buffer,
19840
19861
  * &sample_weight[0],
19841
19862
  * &y[0], # <<<<<<<<<<<<<<
@@ -19844,7 +19865,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19844
19865
  */
19845
19866
  __pyx_t_12 = 0;
19846
19867
 
19847
- /* "obliquetree/src/tree.pyx":178
19868
+ /* "obliquetree/src/tree.pyx":179
19848
19869
  * )
19849
19870
  *
19850
19871
  * impurity_c = calculate_impurity( # <<<<<<<<<<<<<<
@@ -19853,7 +19874,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19853
19874
  */
19854
19875
  __pyx_v_impurity_c = __pyx_f_11obliquetree_3src_6metric_calculate_impurity(0, __pyx_v_n_classes, __pyx_v_sort_buffer, (&(*((double const *) ( /* dim=0 */ ((char *) (((double const *) __pyx_v_sample_weight.data) + __pyx_t_13)) )))), (&(*((double const *) ( /* dim=0 */ ((char *) (((double const *) __pyx_v_y.data) + __pyx_t_12)) )))), __pyx_v_nan_indices, __pyx_v_categorical_stats, __pyx_v_n_samples, 0, __pyx_v_min_samples_leaf, (&__pyx_v_threshold_c), (&__pyx_v_left_count_c), (&__pyx_v_best_missing_go_left), __pyx_v_task);
19855
19876
 
19856
- /* "obliquetree/src/tree.pyx":195
19877
+ /* "obliquetree/src/tree.pyx":196
19857
19878
  *
19858
19879
  * # Eer linear split daha iyiyse
19859
19880
  * if impurity_c < min_impurity: # <<<<<<<<<<<<<<
@@ -19863,7 +19884,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19863
19884
  __pyx_t_1 = (__pyx_v_impurity_c < __pyx_v_min_impurity);
19864
19885
  if (__pyx_t_1) {
19865
19886
 
19866
- /* "obliquetree/src/tree.pyx":197
19887
+ /* "obliquetree/src/tree.pyx":198
19867
19888
  * if impurity_c < min_impurity:
19868
19889
  * # nceki non-linear sonular temizle
19869
19890
  * if node.x != NULL: # <<<<<<<<<<<<<<
@@ -19873,7 +19894,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19873
19894
  __pyx_t_1 = (__pyx_v_node->x != NULL);
19874
19895
  if (__pyx_t_1) {
19875
19896
 
19876
- /* "obliquetree/src/tree.pyx":198
19897
+ /* "obliquetree/src/tree.pyx":199
19877
19898
  * # nceki non-linear sonular temizle
19878
19899
  * if node.x != NULL:
19879
19900
  * free(node.x) # <<<<<<<<<<<<<<
@@ -19882,7 +19903,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19882
19903
  */
19883
19904
  free(__pyx_v_node->x);
19884
19905
 
19885
- /* "obliquetree/src/tree.pyx":197
19906
+ /* "obliquetree/src/tree.pyx":198
19886
19907
  * if impurity_c < min_impurity:
19887
19908
  * # nceki non-linear sonular temizle
19888
19909
  * if node.x != NULL: # <<<<<<<<<<<<<<
@@ -19891,7 +19912,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19891
19912
  */
19892
19913
  }
19893
19914
 
19894
- /* "obliquetree/src/tree.pyx":199
19915
+ /* "obliquetree/src/tree.pyx":200
19895
19916
  * if node.x != NULL:
19896
19917
  * free(node.x)
19897
19918
  * if node.pair != NULL: # <<<<<<<<<<<<<<
@@ -19901,7 +19922,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19901
19922
  __pyx_t_1 = (__pyx_v_node->pair != NULL);
19902
19923
  if (__pyx_t_1) {
19903
19924
 
19904
- /* "obliquetree/src/tree.pyx":200
19925
+ /* "obliquetree/src/tree.pyx":201
19905
19926
  * free(node.x)
19906
19927
  * if node.pair != NULL:
19907
19928
  * free(node.pair) # <<<<<<<<<<<<<<
@@ -19910,7 +19931,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19910
19931
  */
19911
19932
  free(__pyx_v_node->pair);
19912
19933
 
19913
- /* "obliquetree/src/tree.pyx":199
19934
+ /* "obliquetree/src/tree.pyx":200
19914
19935
  * if node.x != NULL:
19915
19936
  * free(node.x)
19916
19937
  * if node.pair != NULL: # <<<<<<<<<<<<<<
@@ -19919,7 +19940,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19919
19940
  */
19920
19941
  }
19921
19942
 
19922
- /* "obliquetree/src/tree.pyx":202
19943
+ /* "obliquetree/src/tree.pyx":203
19923
19944
  * free(node.pair)
19924
19945
  *
19925
19946
  * node.x = best_x_linear # <<<<<<<<<<<<<<
@@ -19928,7 +19949,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19928
19949
  */
19929
19950
  __pyx_v_node->x = __pyx_v_best_x_linear;
19930
19951
 
19931
- /* "obliquetree/src/tree.pyx":203
19952
+ /* "obliquetree/src/tree.pyx":204
19932
19953
  *
19933
19954
  * node.x = best_x_linear
19934
19955
  * node.pair = pair_linear # <<<<<<<<<<<<<<
@@ -19937,7 +19958,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19937
19958
  */
19938
19959
  __pyx_v_node->pair = __pyx_v_pair_linear;
19939
19960
 
19940
- /* "obliquetree/src/tree.pyx":206
19961
+ /* "obliquetree/src/tree.pyx":207
19941
19962
  *
19942
19963
  * # nceki malloc edilmi bellei temizle
19943
19964
  * free(best_x) # <<<<<<<<<<<<<<
@@ -19946,7 +19967,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19946
19967
  */
19947
19968
  free(__pyx_v_best_x);
19948
19969
 
19949
- /* "obliquetree/src/tree.pyx":207
19970
+ /* "obliquetree/src/tree.pyx":208
19950
19971
  * # nceki malloc edilmi bellei temizle
19951
19972
  * free(best_x)
19952
19973
  * free(pair) # <<<<<<<<<<<<<<
@@ -19955,7 +19976,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19955
19976
  */
19956
19977
  free(__pyx_v_pair);
19957
19978
 
19958
- /* "obliquetree/src/tree.pyx":209
19979
+ /* "obliquetree/src/tree.pyx":210
19959
19980
  * free(pair)
19960
19981
  *
19961
19982
  * min_impurity = impurity_c # <<<<<<<<<<<<<<
@@ -19964,7 +19985,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19964
19985
  */
19965
19986
  __pyx_v_min_impurity = __pyx_v_impurity_c;
19966
19987
 
19967
- /* "obliquetree/src/tree.pyx":210
19988
+ /* "obliquetree/src/tree.pyx":211
19968
19989
  *
19969
19990
  * min_impurity = impurity_c
19970
19991
  * best_threshold = threshold_c # <<<<<<<<<<<<<<
@@ -19973,7 +19994,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19973
19994
  */
19974
19995
  __pyx_v_best_threshold = __pyx_v_threshold_c;
19975
19996
 
19976
- /* "obliquetree/src/tree.pyx":211
19997
+ /* "obliquetree/src/tree.pyx":212
19977
19998
  * min_impurity = impurity_c
19978
19999
  * best_threshold = threshold_c
19979
20000
  * best_left_count = left_count_c # <<<<<<<<<<<<<<
@@ -19982,7 +20003,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19982
20003
  */
19983
20004
  __pyx_v_best_left_count = __pyx_v_left_count_c;
19984
20005
 
19985
- /* "obliquetree/src/tree.pyx":213
20006
+ /* "obliquetree/src/tree.pyx":214
19986
20007
  * best_left_count = left_count_c
19987
20008
  *
19988
20009
  * for i in range(n_samples): # <<<<<<<<<<<<<<
@@ -19994,7 +20015,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
19994
20015
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
19995
20016
  __pyx_v_i = __pyx_t_16;
19996
20017
 
19997
- /* "obliquetree/src/tree.pyx":214
20018
+ /* "obliquetree/src/tree.pyx":215
19998
20019
  *
19999
20020
  * for i in range(n_samples):
20000
20021
  * best_sorted_indices[i] = sort_buffer[i].index # <<<<<<<<<<<<<<
@@ -20005,7 +20026,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20005
20026
  (__pyx_v_best_sorted_indices[__pyx_v_i]) = __pyx_t_17;
20006
20027
  }
20007
20028
 
20008
- /* "obliquetree/src/tree.pyx":195
20029
+ /* "obliquetree/src/tree.pyx":196
20009
20030
  *
20010
20031
  * # Eer linear split daha iyiyse
20011
20032
  * if impurity_c < min_impurity: # <<<<<<<<<<<<<<
@@ -20015,7 +20036,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20015
20036
  goto __pyx_L28;
20016
20037
  }
20017
20038
 
20018
- /* "obliquetree/src/tree.pyx":218
20039
+ /* "obliquetree/src/tree.pyx":219
20019
20040
  * else:
20020
20041
  * # Linear split daha ktyse, linear split sonularn temizle
20021
20042
  * if best_x_linear != NULL: # <<<<<<<<<<<<<<
@@ -20026,7 +20047,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20026
20047
  __pyx_t_1 = (__pyx_v_best_x_linear != NULL);
20027
20048
  if (__pyx_t_1) {
20028
20049
 
20029
- /* "obliquetree/src/tree.pyx":219
20050
+ /* "obliquetree/src/tree.pyx":220
20030
20051
  * # Linear split daha ktyse, linear split sonularn temizle
20031
20052
  * if best_x_linear != NULL:
20032
20053
  * free(best_x_linear) # <<<<<<<<<<<<<<
@@ -20035,7 +20056,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20035
20056
  */
20036
20057
  free(__pyx_v_best_x_linear);
20037
20058
 
20038
- /* "obliquetree/src/tree.pyx":218
20059
+ /* "obliquetree/src/tree.pyx":219
20039
20060
  * else:
20040
20061
  * # Linear split daha ktyse, linear split sonularn temizle
20041
20062
  * if best_x_linear != NULL: # <<<<<<<<<<<<<<
@@ -20044,7 +20065,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20044
20065
  */
20045
20066
  }
20046
20067
 
20047
- /* "obliquetree/src/tree.pyx":220
20068
+ /* "obliquetree/src/tree.pyx":221
20048
20069
  * if best_x_linear != NULL:
20049
20070
  * free(best_x_linear)
20050
20071
  * if pair_linear != NULL: # <<<<<<<<<<<<<<
@@ -20054,7 +20075,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20054
20075
  __pyx_t_1 = (__pyx_v_pair_linear != NULL);
20055
20076
  if (__pyx_t_1) {
20056
20077
 
20057
- /* "obliquetree/src/tree.pyx":221
20078
+ /* "obliquetree/src/tree.pyx":222
20058
20079
  * free(best_x_linear)
20059
20080
  * if pair_linear != NULL:
20060
20081
  * free(pair_linear) # <<<<<<<<<<<<<<
@@ -20063,7 +20084,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20063
20084
  */
20064
20085
  free(__pyx_v_pair_linear);
20065
20086
 
20066
- /* "obliquetree/src/tree.pyx":220
20087
+ /* "obliquetree/src/tree.pyx":221
20067
20088
  * if best_x_linear != NULL:
20068
20089
  * free(best_x_linear)
20069
20090
  * if pair_linear != NULL: # <<<<<<<<<<<<<<
@@ -20072,7 +20093,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20072
20093
  */
20073
20094
  }
20074
20095
 
20075
- /* "obliquetree/src/tree.pyx":223
20096
+ /* "obliquetree/src/tree.pyx":224
20076
20097
  * free(pair_linear)
20077
20098
  *
20078
20099
  * node.x = best_x # <<<<<<<<<<<<<<
@@ -20081,7 +20102,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20081
20102
  */
20082
20103
  __pyx_v_node->x = __pyx_v_best_x;
20083
20104
 
20084
- /* "obliquetree/src/tree.pyx":224
20105
+ /* "obliquetree/src/tree.pyx":225
20085
20106
  *
20086
20107
  * node.x = best_x
20087
20108
  * node.pair = pair # <<<<<<<<<<<<<<
@@ -20092,7 +20113,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20092
20113
  }
20093
20114
  __pyx_L28:;
20094
20115
 
20095
- /* "obliquetree/src/tree.pyx":116
20116
+ /* "obliquetree/src/tree.pyx":117
20096
20117
  * cdef int i, unique, idx
20097
20118
  *
20098
20119
  * if use_oblique: # <<<<<<<<<<<<<<
@@ -20101,7 +20122,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20101
20122
  */
20102
20123
  }
20103
20124
 
20104
- /* "obliquetree/src/tree.pyx":227
20125
+ /* "obliquetree/src/tree.pyx":228
20105
20126
  *
20106
20127
  *
20107
20128
  * for f_idx in range(n_features): # <<<<<<<<<<<<<<
@@ -20113,7 +20134,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20113
20134
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
20114
20135
  __pyx_v_f_idx = __pyx_t_16;
20115
20136
 
20116
- /* "obliquetree/src/tree.pyx":228
20137
+ /* "obliquetree/src/tree.pyx":229
20117
20138
  *
20118
20139
  * for f_idx in range(n_features):
20119
20140
  * n_nans = 0 # <<<<<<<<<<<<<<
@@ -20122,7 +20143,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20122
20143
  */
20123
20144
  __pyx_v_n_nans = 0;
20124
20145
 
20125
- /* "obliquetree/src/tree.pyx":229
20146
+ /* "obliquetree/src/tree.pyx":230
20126
20147
  * for f_idx in range(n_features):
20127
20148
  * n_nans = 0
20128
20149
  * n_non_nans = 0 # <<<<<<<<<<<<<<
@@ -20131,7 +20152,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20131
20152
  */
20132
20153
  __pyx_v_n_non_nans = 0;
20133
20154
 
20134
- /* "obliquetree/src/tree.pyx":231
20155
+ /* "obliquetree/src/tree.pyx":232
20135
20156
  * n_non_nans = 0
20136
20157
  *
20137
20158
  * for i in range(n_samples): # <<<<<<<<<<<<<<
@@ -20143,7 +20164,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20143
20164
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
20144
20165
  __pyx_v_i = __pyx_t_19;
20145
20166
 
20146
- /* "obliquetree/src/tree.pyx":232
20167
+ /* "obliquetree/src/tree.pyx":233
20147
20168
  *
20148
20169
  * for i in range(n_samples):
20149
20170
  * idx = sample_indices[i] # <<<<<<<<<<<<<<
@@ -20152,7 +20173,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20152
20173
  */
20153
20174
  __pyx_v_idx = (__pyx_v_sample_indices[__pyx_v_i]);
20154
20175
 
20155
- /* "obliquetree/src/tree.pyx":233
20176
+ /* "obliquetree/src/tree.pyx":234
20156
20177
  * for i in range(n_samples):
20157
20178
  * idx = sample_indices[i]
20158
20179
  * x_val = X[idx, f_idx] # <<<<<<<<<<<<<<
@@ -20163,7 +20184,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20163
20184
  __pyx_t_13 = __pyx_v_f_idx;
20164
20185
  __pyx_v_x_val = (*((double const *) ( /* dim=1 */ (( /* dim=0 */ ((char *) (((double const *) __pyx_v_X.data) + __pyx_t_12)) ) + __pyx_t_13 * __pyx_v_X.strides[1]) )));
20165
20186
 
20166
- /* "obliquetree/src/tree.pyx":235
20187
+ /* "obliquetree/src/tree.pyx":236
20167
20188
  * x_val = X[idx, f_idx]
20168
20189
  *
20169
20190
  * if x_val != x_val: # <<<<<<<<<<<<<<
@@ -20173,7 +20194,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20173
20194
  __pyx_t_1 = (__pyx_v_x_val != __pyx_v_x_val);
20174
20195
  if (__pyx_t_1) {
20175
20196
 
20176
- /* "obliquetree/src/tree.pyx":236
20197
+ /* "obliquetree/src/tree.pyx":237
20177
20198
  *
20178
20199
  * if x_val != x_val:
20179
20200
  * nan_indices[n_nans] = idx # <<<<<<<<<<<<<<
@@ -20182,7 +20203,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20182
20203
  */
20183
20204
  (__pyx_v_nan_indices[__pyx_v_n_nans]) = __pyx_v_idx;
20184
20205
 
20185
- /* "obliquetree/src/tree.pyx":237
20206
+ /* "obliquetree/src/tree.pyx":238
20186
20207
  * if x_val != x_val:
20187
20208
  * nan_indices[n_nans] = idx
20188
20209
  * n_nans += 1 # <<<<<<<<<<<<<<
@@ -20191,7 +20212,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20191
20212
  */
20192
20213
  __pyx_v_n_nans = (__pyx_v_n_nans + 1);
20193
20214
 
20194
- /* "obliquetree/src/tree.pyx":235
20215
+ /* "obliquetree/src/tree.pyx":236
20195
20216
  * x_val = X[idx, f_idx]
20196
20217
  *
20197
20218
  * if x_val != x_val: # <<<<<<<<<<<<<<
@@ -20201,7 +20222,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20201
20222
  goto __pyx_L39;
20202
20223
  }
20203
20224
 
20204
- /* "obliquetree/src/tree.pyx":240
20225
+ /* "obliquetree/src/tree.pyx":241
20205
20226
  *
20206
20227
  * else:
20207
20228
  * sort_buffer[n_non_nans].value = x_val # <<<<<<<<<<<<<<
@@ -20211,7 +20232,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20211
20232
  /*else*/ {
20212
20233
  (__pyx_v_sort_buffer[__pyx_v_n_non_nans]).value = __pyx_v_x_val;
20213
20234
 
20214
- /* "obliquetree/src/tree.pyx":241
20235
+ /* "obliquetree/src/tree.pyx":242
20215
20236
  * else:
20216
20237
  * sort_buffer[n_non_nans].value = x_val
20217
20238
  * sort_buffer[n_non_nans].index = idx # <<<<<<<<<<<<<<
@@ -20220,7 +20241,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20220
20241
  */
20221
20242
  (__pyx_v_sort_buffer[__pyx_v_n_non_nans]).index = __pyx_v_idx;
20222
20243
 
20223
- /* "obliquetree/src/tree.pyx":242
20244
+ /* "obliquetree/src/tree.pyx":243
20224
20245
  * sort_buffer[n_non_nans].value = x_val
20225
20246
  * sort_buffer[n_non_nans].index = idx
20226
20247
  * n_non_nans += 1 # <<<<<<<<<<<<<<
@@ -20232,7 +20253,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20232
20253
  __pyx_L39:;
20233
20254
  }
20234
20255
 
20235
- /* "obliquetree/src/tree.pyx":244
20256
+ /* "obliquetree/src/tree.pyx":245
20236
20257
  * n_non_nans += 1
20237
20258
  *
20238
20259
  * if n_non_nans < 2 * min_samples_leaf: # <<<<<<<<<<<<<<
@@ -20242,7 +20263,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20242
20263
  __pyx_t_1 = (__pyx_v_n_non_nans < (2 * __pyx_v_min_samples_leaf));
20243
20264
  if (__pyx_t_1) {
20244
20265
 
20245
- /* "obliquetree/src/tree.pyx":245
20266
+ /* "obliquetree/src/tree.pyx":246
20246
20267
  *
20247
20268
  * if n_non_nans < 2 * min_samples_leaf:
20248
20269
  * continue # <<<<<<<<<<<<<<
@@ -20251,7 +20272,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20251
20272
  */
20252
20273
  goto __pyx_L35_continue;
20253
20274
 
20254
- /* "obliquetree/src/tree.pyx":244
20275
+ /* "obliquetree/src/tree.pyx":245
20255
20276
  * n_non_nans += 1
20256
20277
  *
20257
20278
  * if n_non_nans < 2 * min_samples_leaf: # <<<<<<<<<<<<<<
@@ -20260,7 +20281,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20260
20281
  */
20261
20282
  }
20262
20283
 
20263
- /* "obliquetree/src/tree.pyx":247
20284
+ /* "obliquetree/src/tree.pyx":248
20264
20285
  * continue
20265
20286
  *
20266
20287
  * if is_integer[f_idx]: # <<<<<<<<<<<<<<
@@ -20270,7 +20291,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20270
20291
  __pyx_t_1 = ((__pyx_v_is_integer[__pyx_v_f_idx]) != 0);
20271
20292
  if (__pyx_t_1) {
20272
20293
 
20273
- /* "obliquetree/src/tree.pyx":248
20294
+ /* "obliquetree/src/tree.pyx":249
20274
20295
  *
20275
20296
  * if is_integer[f_idx]:
20276
20297
  * sort_pointer_array_count(sort_buffer, count_unique_array, count_sort_buffer, n_non_nans, max_unique_range, min_values[f_idx]) # <<<<<<<<<<<<<<
@@ -20279,7 +20300,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20279
20300
  */
20280
20301
  __pyx_f_11obliquetree_3src_5utils_sort_pointer_array_count(__pyx_v_sort_buffer, __pyx_v_count_unique_array, __pyx_v_count_sort_buffer, __pyx_v_n_non_nans, __pyx_v_max_unique_range, (__pyx_v_min_values[__pyx_v_f_idx]));
20281
20302
 
20282
- /* "obliquetree/src/tree.pyx":247
20303
+ /* "obliquetree/src/tree.pyx":248
20283
20304
  * continue
20284
20305
  *
20285
20306
  * if is_integer[f_idx]: # <<<<<<<<<<<<<<
@@ -20289,7 +20310,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20289
20310
  goto __pyx_L41;
20290
20311
  }
20291
20312
 
20292
- /* "obliquetree/src/tree.pyx":250
20313
+ /* "obliquetree/src/tree.pyx":251
20293
20314
  * sort_pointer_array_count(sort_buffer, count_unique_array, count_sort_buffer, n_non_nans, max_unique_range, min_values[f_idx])
20294
20315
  * else:
20295
20316
  * sort_pointer_array(sort_buffer, n_non_nans) # <<<<<<<<<<<<<<
@@ -20301,7 +20322,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20301
20322
  }
20302
20323
  __pyx_L41:;
20303
20324
 
20304
- /* "obliquetree/src/tree.pyx":257
20325
+ /* "obliquetree/src/tree.pyx":258
20305
20326
  * n_classes,
20306
20327
  * sort_buffer,
20307
20328
  * &sample_weight[0], # <<<<<<<<<<<<<<
@@ -20310,7 +20331,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20310
20331
  */
20311
20332
  __pyx_t_13 = 0;
20312
20333
 
20313
- /* "obliquetree/src/tree.pyx":258
20334
+ /* "obliquetree/src/tree.pyx":259
20314
20335
  * sort_buffer,
20315
20336
  * &sample_weight[0],
20316
20337
  * &y[0], # <<<<<<<<<<<<<<
@@ -20319,7 +20340,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20319
20340
  */
20320
20341
  __pyx_t_12 = 0;
20321
20342
 
20322
- /* "obliquetree/src/tree.pyx":253
20343
+ /* "obliquetree/src/tree.pyx":254
20323
20344
  *
20324
20345
  *
20325
20346
  * impurity_c = calculate_impurity( # <<<<<<<<<<<<<<
@@ -20328,7 +20349,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20328
20349
  */
20329
20350
  __pyx_v_impurity_c = __pyx_f_11obliquetree_3src_6metric_calculate_impurity((__pyx_v_is_categorical[__pyx_v_f_idx]), __pyx_v_n_classes, __pyx_v_sort_buffer, (&(*((double const *) ( /* dim=0 */ ((char *) (((double const *) __pyx_v_sample_weight.data) + __pyx_t_13)) )))), (&(*((double const *) ( /* dim=0 */ ((char *) (((double const *) __pyx_v_y.data) + __pyx_t_12)) )))), __pyx_v_nan_indices, __pyx_v_categorical_stats, __pyx_v_n_samples, __pyx_v_n_nans, __pyx_v_min_samples_leaf, (&__pyx_v_threshold_c), (&__pyx_v_left_count_c), (&__pyx_v_missing_go_left), __pyx_v_task);
20330
20351
 
20331
- /* "obliquetree/src/tree.pyx":269
20352
+ /* "obliquetree/src/tree.pyx":270
20332
20353
  * task)
20333
20354
  *
20334
20355
  * if impurity_c < min_impurity: # <<<<<<<<<<<<<<
@@ -20338,7 +20359,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20338
20359
  __pyx_t_1 = (__pyx_v_impurity_c < __pyx_v_min_impurity);
20339
20360
  if (__pyx_t_1) {
20340
20361
 
20341
- /* "obliquetree/src/tree.pyx":270
20362
+ /* "obliquetree/src/tree.pyx":271
20342
20363
  *
20343
20364
  * if impurity_c < min_impurity:
20344
20365
  * min_impurity = impurity_c # <<<<<<<<<<<<<<
@@ -20347,7 +20368,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20347
20368
  */
20348
20369
  __pyx_v_min_impurity = __pyx_v_impurity_c;
20349
20370
 
20350
- /* "obliquetree/src/tree.pyx":271
20371
+ /* "obliquetree/src/tree.pyx":272
20351
20372
  * if impurity_c < min_impurity:
20352
20373
  * min_impurity = impurity_c
20353
20374
  * best_feature = f_idx # <<<<<<<<<<<<<<
@@ -20356,7 +20377,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20356
20377
  */
20357
20378
  __pyx_v_best_feature = __pyx_v_f_idx;
20358
20379
 
20359
- /* "obliquetree/src/tree.pyx":272
20380
+ /* "obliquetree/src/tree.pyx":273
20360
20381
  * min_impurity = impurity_c
20361
20382
  * best_feature = f_idx
20362
20383
  * best_threshold = threshold_c # <<<<<<<<<<<<<<
@@ -20365,7 +20386,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20365
20386
  */
20366
20387
  __pyx_v_best_threshold = __pyx_v_threshold_c;
20367
20388
 
20368
- /* "obliquetree/src/tree.pyx":273
20389
+ /* "obliquetree/src/tree.pyx":274
20369
20390
  * best_feature = f_idx
20370
20391
  * best_threshold = threshold_c
20371
20392
  * best_left_count = left_count_c # <<<<<<<<<<<<<<
@@ -20374,7 +20395,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20374
20395
  */
20375
20396
  __pyx_v_best_left_count = __pyx_v_left_count_c;
20376
20397
 
20377
- /* "obliquetree/src/tree.pyx":274
20398
+ /* "obliquetree/src/tree.pyx":275
20378
20399
  * best_threshold = threshold_c
20379
20400
  * best_left_count = left_count_c
20380
20401
  * best_missing_go_left = missing_go_left # <<<<<<<<<<<<<<
@@ -20383,7 +20404,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20383
20404
  */
20384
20405
  __pyx_v_best_missing_go_left = __pyx_v_missing_go_left;
20385
20406
 
20386
- /* "obliquetree/src/tree.pyx":275
20407
+ /* "obliquetree/src/tree.pyx":276
20387
20408
  * best_left_count = left_count_c
20388
20409
  * best_missing_go_left = missing_go_left
20389
20410
  * best_n_nans = n_nans # <<<<<<<<<<<<<<
@@ -20392,7 +20413,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20392
20413
  */
20393
20414
  __pyx_v_best_n_nans = __pyx_v_n_nans;
20394
20415
 
20395
- /* "obliquetree/src/tree.pyx":277
20416
+ /* "obliquetree/src/tree.pyx":278
20396
20417
  * best_n_nans = n_nans
20397
20418
  *
20398
20419
  * if is_categorical[f_idx]: # <<<<<<<<<<<<<<
@@ -20402,7 +20423,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20402
20423
  __pyx_t_1 = ((__pyx_v_is_categorical[__pyx_v_f_idx]) != 0);
20403
20424
  if (__pyx_t_1) {
20404
20425
 
20405
- /* "obliquetree/src/tree.pyx":278
20426
+ /* "obliquetree/src/tree.pyx":279
20406
20427
  *
20407
20428
  * if is_categorical[f_idx]:
20408
20429
  * best_n_categorical = <int>threshold_c # <<<<<<<<<<<<<<
@@ -20411,7 +20432,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20411
20432
  */
20412
20433
  __pyx_v_best_n_categorical = ((int)__pyx_v_threshold_c);
20413
20434
 
20414
- /* "obliquetree/src/tree.pyx":280
20435
+ /* "obliquetree/src/tree.pyx":281
20415
20436
  * best_n_categorical = <int>threshold_c
20416
20437
  *
20417
20438
  * for i in range(<int>threshold_c): # <<<<<<<<<<<<<<
@@ -20423,7 +20444,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20423
20444
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
20424
20445
  __pyx_v_i = __pyx_t_19;
20425
20446
 
20426
- /* "obliquetree/src/tree.pyx":281
20447
+ /* "obliquetree/src/tree.pyx":282
20427
20448
  *
20428
20449
  * for i in range(<int>threshold_c):
20429
20450
  * best_categorical_indices[i] = <int>categorical_stats[i].value # <<<<<<<<<<<<<<
@@ -20433,7 +20454,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20433
20454
  (__pyx_v_best_categorical_indices[__pyx_v_i]) = ((int)(__pyx_v_categorical_stats[__pyx_v_i]).value);
20434
20455
  }
20435
20456
 
20436
- /* "obliquetree/src/tree.pyx":277
20457
+ /* "obliquetree/src/tree.pyx":278
20437
20458
  * best_n_nans = n_nans
20438
20459
  *
20439
20460
  * if is_categorical[f_idx]: # <<<<<<<<<<<<<<
@@ -20443,7 +20464,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20443
20464
  goto __pyx_L43;
20444
20465
  }
20445
20466
 
20446
- /* "obliquetree/src/tree.pyx":284
20467
+ /* "obliquetree/src/tree.pyx":285
20447
20468
  *
20448
20469
  * else:
20449
20470
  * best_n_categorical = 0 # <<<<<<<<<<<<<<
@@ -20455,7 +20476,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20455
20476
  }
20456
20477
  __pyx_L43:;
20457
20478
 
20458
- /* "obliquetree/src/tree.pyx":286
20479
+ /* "obliquetree/src/tree.pyx":287
20459
20480
  * best_n_categorical = 0
20460
20481
  *
20461
20482
  * for i in range(n_non_nans): # <<<<<<<<<<<<<<
@@ -20467,7 +20488,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20467
20488
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
20468
20489
  __pyx_v_i = __pyx_t_19;
20469
20490
 
20470
- /* "obliquetree/src/tree.pyx":287
20491
+ /* "obliquetree/src/tree.pyx":288
20471
20492
  *
20472
20493
  * for i in range(n_non_nans):
20473
20494
  * best_sorted_indices[i] = sort_buffer[i].index # <<<<<<<<<<<<<<
@@ -20478,7 +20499,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20478
20499
  (__pyx_v_best_sorted_indices[__pyx_v_i]) = __pyx_t_20;
20479
20500
  }
20480
20501
 
20481
- /* "obliquetree/src/tree.pyx":289
20502
+ /* "obliquetree/src/tree.pyx":290
20482
20503
  * best_sorted_indices[i] = sort_buffer[i].index
20483
20504
  *
20484
20505
  * memcpy(best_nan_indices, nan_indices, n_nans * sizeof(int)) # <<<<<<<<<<<<<<
@@ -20487,7 +20508,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20487
20508
  */
20488
20509
  (void)(memcpy(__pyx_v_best_nan_indices, __pyx_v_nan_indices, (__pyx_v_n_nans * (sizeof(int)))));
20489
20510
 
20490
- /* "obliquetree/src/tree.pyx":269
20511
+ /* "obliquetree/src/tree.pyx":270
20491
20512
  * task)
20492
20513
  *
20493
20514
  * if impurity_c < min_impurity: # <<<<<<<<<<<<<<
@@ -20498,7 +20519,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20498
20519
  __pyx_L35_continue:;
20499
20520
  }
20500
20521
 
20501
- /* "obliquetree/src/tree.pyx":291
20522
+ /* "obliquetree/src/tree.pyx":292
20502
20523
  * memcpy(best_nan_indices, nan_indices, n_nans * sizeof(int))
20503
20524
  *
20504
20525
  * cdef double improvement = node.impurity - min_impurity # <<<<<<<<<<<<<<
@@ -20507,7 +20528,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20507
20528
  */
20508
20529
  __pyx_v_improvement = (__pyx_v_node->impurity - __pyx_v_min_impurity);
20509
20530
 
20510
- /* "obliquetree/src/tree.pyx":292
20531
+ /* "obliquetree/src/tree.pyx":293
20511
20532
  *
20512
20533
  * cdef double improvement = node.impurity - min_impurity
20513
20534
  * cdef int right_count = n_samples - best_left_count # <<<<<<<<<<<<<<
@@ -20516,7 +20537,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20516
20537
  */
20517
20538
  __pyx_v_right_count = (__pyx_v_n_samples - __pyx_v_best_left_count);
20518
20539
 
20519
- /* "obliquetree/src/tree.pyx":294
20540
+ /* "obliquetree/src/tree.pyx":295
20520
20541
  * cdef int right_count = n_samples - best_left_count
20521
20542
  *
20522
20543
  * if ((best_feature == -1 or improvement <= 0.0) or # <<<<<<<<<<<<<<
@@ -20536,7 +20557,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20536
20557
  goto __pyx_L49_bool_binop_done;
20537
20558
  }
20538
20559
 
20539
- /* "obliquetree/src/tree.pyx":295
20560
+ /* "obliquetree/src/tree.pyx":296
20540
20561
  *
20541
20562
  * if ((best_feature == -1 or improvement <= 0.0) or
20542
20563
  * (improvement < min_impurity_decrease) or # <<<<<<<<<<<<<<
@@ -20550,7 +20571,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20550
20571
  goto __pyx_L49_bool_binop_done;
20551
20572
  }
20552
20573
 
20553
- /* "obliquetree/src/tree.pyx":296
20574
+ /* "obliquetree/src/tree.pyx":297
20554
20575
  * if ((best_feature == -1 or improvement <= 0.0) or
20555
20576
  * (improvement < min_impurity_decrease) or
20556
20577
  * (best_left_count == 0 or right_count == 0)): # <<<<<<<<<<<<<<
@@ -20567,7 +20588,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20567
20588
  __pyx_t_1 = __pyx_t_4;
20568
20589
  __pyx_L49_bool_binop_done:;
20569
20590
 
20570
- /* "obliquetree/src/tree.pyx":294
20591
+ /* "obliquetree/src/tree.pyx":295
20571
20592
  * cdef int right_count = n_samples - best_left_count
20572
20593
  *
20573
20594
  * if ((best_feature == -1 or improvement <= 0.0) or # <<<<<<<<<<<<<<
@@ -20576,7 +20597,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20576
20597
  */
20577
20598
  if (__pyx_t_1) {
20578
20599
 
20579
- /* "obliquetree/src/tree.pyx":298
20600
+ /* "obliquetree/src/tree.pyx":299
20580
20601
  * (best_left_count == 0 or right_count == 0)):
20581
20602
  *
20582
20603
  * free(best_sorted_indices) # <<<<<<<<<<<<<<
@@ -20585,7 +20606,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20585
20606
  */
20586
20607
  free(__pyx_v_best_sorted_indices);
20587
20608
 
20588
- /* "obliquetree/src/tree.pyx":299
20609
+ /* "obliquetree/src/tree.pyx":300
20589
20610
  *
20590
20611
  * free(best_sorted_indices)
20591
20612
  * free(best_nan_indices) # <<<<<<<<<<<<<<
@@ -20594,7 +20615,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20594
20615
  */
20595
20616
  free(__pyx_v_best_nan_indices);
20596
20617
 
20597
- /* "obliquetree/src/tree.pyx":300
20618
+ /* "obliquetree/src/tree.pyx":301
20598
20619
  * free(best_sorted_indices)
20599
20620
  * free(best_nan_indices)
20600
20621
  * free(best_categorical_indices) # <<<<<<<<<<<<<<
@@ -20603,7 +20624,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20603
20624
  */
20604
20625
  free(__pyx_v_best_categorical_indices);
20605
20626
 
20606
- /* "obliquetree/src/tree.pyx":301
20627
+ /* "obliquetree/src/tree.pyx":302
20607
20628
  * free(best_nan_indices)
20608
20629
  * free(best_categorical_indices)
20609
20630
  * return node # <<<<<<<<<<<<<<
@@ -20613,7 +20634,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20613
20634
  __pyx_r = __pyx_v_node;
20614
20635
  goto __pyx_L0;
20615
20636
 
20616
- /* "obliquetree/src/tree.pyx":294
20637
+ /* "obliquetree/src/tree.pyx":295
20617
20638
  * cdef int right_count = n_samples - best_left_count
20618
20639
  *
20619
20640
  * if ((best_feature == -1 or improvement <= 0.0) or # <<<<<<<<<<<<<<
@@ -20622,7 +20643,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20622
20643
  */
20623
20644
  }
20624
20645
 
20625
- /* "obliquetree/src/tree.pyx":303
20646
+ /* "obliquetree/src/tree.pyx":304
20626
20647
  * return node
20627
20648
  *
20628
20649
  * cdef int* left_indices = <int*>malloc(best_left_count * sizeof(int)) # <<<<<<<<<<<<<<
@@ -20631,7 +20652,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20631
20652
  */
20632
20653
  __pyx_v_left_indices = ((int *)malloc((__pyx_v_best_left_count * (sizeof(int)))));
20633
20654
 
20634
- /* "obliquetree/src/tree.pyx":304
20655
+ /* "obliquetree/src/tree.pyx":305
20635
20656
  *
20636
20657
  * cdef int* left_indices = <int*>malloc(best_left_count * sizeof(int))
20637
20658
  * cdef int* right_indices = <int*>malloc(right_count * sizeof(int)) # <<<<<<<<<<<<<<
@@ -20640,7 +20661,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20640
20661
  */
20641
20662
  __pyx_v_right_indices = ((int *)malloc((__pyx_v_right_count * (sizeof(int)))));
20642
20663
 
20643
- /* "obliquetree/src/tree.pyx":306
20664
+ /* "obliquetree/src/tree.pyx":307
20644
20665
  * cdef int* right_indices = <int*>malloc(right_count * sizeof(int))
20645
20666
  *
20646
20667
  * if left_indices == NULL or right_indices == NULL: # <<<<<<<<<<<<<<
@@ -20658,7 +20679,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20658
20679
  __pyx_L55_bool_binop_done:;
20659
20680
  if (__pyx_t_1) {
20660
20681
 
20661
- /* "obliquetree/src/tree.pyx":307
20682
+ /* "obliquetree/src/tree.pyx":308
20662
20683
  *
20663
20684
  * if left_indices == NULL or right_indices == NULL:
20664
20685
  * if left_indices != NULL: # <<<<<<<<<<<<<<
@@ -20668,7 +20689,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20668
20689
  __pyx_t_1 = (__pyx_v_left_indices != NULL);
20669
20690
  if (__pyx_t_1) {
20670
20691
 
20671
- /* "obliquetree/src/tree.pyx":308
20692
+ /* "obliquetree/src/tree.pyx":309
20672
20693
  * if left_indices == NULL or right_indices == NULL:
20673
20694
  * if left_indices != NULL:
20674
20695
  * free(left_indices) # <<<<<<<<<<<<<<
@@ -20677,7 +20698,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20677
20698
  */
20678
20699
  free(__pyx_v_left_indices);
20679
20700
 
20680
- /* "obliquetree/src/tree.pyx":307
20701
+ /* "obliquetree/src/tree.pyx":308
20681
20702
  *
20682
20703
  * if left_indices == NULL or right_indices == NULL:
20683
20704
  * if left_indices != NULL: # <<<<<<<<<<<<<<
@@ -20686,7 +20707,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20686
20707
  */
20687
20708
  }
20688
20709
 
20689
- /* "obliquetree/src/tree.pyx":309
20710
+ /* "obliquetree/src/tree.pyx":310
20690
20711
  * if left_indices != NULL:
20691
20712
  * free(left_indices)
20692
20713
  * if right_indices != NULL: # <<<<<<<<<<<<<<
@@ -20696,7 +20717,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20696
20717
  __pyx_t_1 = (__pyx_v_right_indices != NULL);
20697
20718
  if (__pyx_t_1) {
20698
20719
 
20699
- /* "obliquetree/src/tree.pyx":310
20720
+ /* "obliquetree/src/tree.pyx":311
20700
20721
  * free(left_indices)
20701
20722
  * if right_indices != NULL:
20702
20723
  * free(right_indices) # <<<<<<<<<<<<<<
@@ -20705,7 +20726,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20705
20726
  */
20706
20727
  free(__pyx_v_right_indices);
20707
20728
 
20708
- /* "obliquetree/src/tree.pyx":309
20729
+ /* "obliquetree/src/tree.pyx":310
20709
20730
  * if left_indices != NULL:
20710
20731
  * free(left_indices)
20711
20732
  * if right_indices != NULL: # <<<<<<<<<<<<<<
@@ -20714,7 +20735,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20714
20735
  */
20715
20736
  }
20716
20737
 
20717
- /* "obliquetree/src/tree.pyx":311
20738
+ /* "obliquetree/src/tree.pyx":312
20718
20739
  * if right_indices != NULL:
20719
20740
  * free(right_indices)
20720
20741
  * free(best_sorted_indices) # <<<<<<<<<<<<<<
@@ -20723,7 +20744,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20723
20744
  */
20724
20745
  free(__pyx_v_best_sorted_indices);
20725
20746
 
20726
- /* "obliquetree/src/tree.pyx":312
20747
+ /* "obliquetree/src/tree.pyx":313
20727
20748
  * free(right_indices)
20728
20749
  * free(best_sorted_indices)
20729
20750
  * free(best_nan_indices) # <<<<<<<<<<<<<<
@@ -20732,7 +20753,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20732
20753
  */
20733
20754
  free(__pyx_v_best_nan_indices);
20734
20755
 
20735
- /* "obliquetree/src/tree.pyx":313
20756
+ /* "obliquetree/src/tree.pyx":314
20736
20757
  * free(best_sorted_indices)
20737
20758
  * free(best_nan_indices)
20738
20759
  * free(best_categorical_indices) # <<<<<<<<<<<<<<
@@ -20741,7 +20762,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20741
20762
  */
20742
20763
  free(__pyx_v_best_categorical_indices);
20743
20764
 
20744
- /* "obliquetree/src/tree.pyx":314
20765
+ /* "obliquetree/src/tree.pyx":315
20745
20766
  * free(best_nan_indices)
20746
20767
  * free(best_categorical_indices)
20747
20768
  * with gil: # <<<<<<<<<<<<<<
@@ -20752,17 +20773,17 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20752
20773
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
20753
20774
  /*try:*/ {
20754
20775
 
20755
- /* "obliquetree/src/tree.pyx":315
20776
+ /* "obliquetree/src/tree.pyx":316
20756
20777
  * free(best_categorical_indices)
20757
20778
  * with gil:
20758
20779
  * raise MemoryError() # <<<<<<<<<<<<<<
20759
20780
  *
20760
20781
  * # Mark node as split
20761
20782
  */
20762
- PyErr_NoMemory(); __PYX_ERR(0, 315, __pyx_L60_error)
20783
+ PyErr_NoMemory(); __PYX_ERR(0, 316, __pyx_L60_error)
20763
20784
  }
20764
20785
 
20765
- /* "obliquetree/src/tree.pyx":314
20786
+ /* "obliquetree/src/tree.pyx":315
20766
20787
  * free(best_nan_indices)
20767
20788
  * free(best_categorical_indices)
20768
20789
  * with gil: # <<<<<<<<<<<<<<
@@ -20777,7 +20798,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20777
20798
  }
20778
20799
  }
20779
20800
 
20780
- /* "obliquetree/src/tree.pyx":306
20801
+ /* "obliquetree/src/tree.pyx":307
20781
20802
  * cdef int* right_indices = <int*>malloc(right_count * sizeof(int))
20782
20803
  *
20783
20804
  * if left_indices == NULL or right_indices == NULL: # <<<<<<<<<<<<<<
@@ -20786,7 +20807,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20786
20807
  */
20787
20808
  }
20788
20809
 
20789
- /* "obliquetree/src/tree.pyx":318
20810
+ /* "obliquetree/src/tree.pyx":319
20790
20811
  *
20791
20812
  * # Mark node as split
20792
20813
  * node.is_leaf = False # <<<<<<<<<<<<<<
@@ -20795,7 +20816,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20795
20816
  */
20796
20817
  __pyx_v_node->is_leaf = 0;
20797
20818
 
20798
- /* "obliquetree/src/tree.pyx":319
20819
+ /* "obliquetree/src/tree.pyx":320
20799
20820
  * # Mark node as split
20800
20821
  * node.is_leaf = False
20801
20822
  * node.feature_idx = best_feature # <<<<<<<<<<<<<<
@@ -20804,7 +20825,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20804
20825
  */
20805
20826
  __pyx_v_node->feature_idx = __pyx_v_best_feature;
20806
20827
 
20807
- /* "obliquetree/src/tree.pyx":320
20828
+ /* "obliquetree/src/tree.pyx":321
20808
20829
  * node.is_leaf = False
20809
20830
  * node.feature_idx = best_feature
20810
20831
  * node.threshold = best_threshold # <<<<<<<<<<<<<<
@@ -20813,7 +20834,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20813
20834
  */
20814
20835
  __pyx_v_node->threshold = __pyx_v_best_threshold;
20815
20836
 
20816
- /* "obliquetree/src/tree.pyx":321
20837
+ /* "obliquetree/src/tree.pyx":322
20817
20838
  * node.feature_idx = best_feature
20818
20839
  * node.threshold = best_threshold
20819
20840
  * node.missing_go_left = best_missing_go_left # <<<<<<<<<<<<<<
@@ -20822,7 +20843,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20822
20843
  */
20823
20844
  __pyx_v_node->missing_go_left = __pyx_v_best_missing_go_left;
20824
20845
 
20825
- /* "obliquetree/src/tree.pyx":322
20846
+ /* "obliquetree/src/tree.pyx":323
20826
20847
  * node.threshold = best_threshold
20827
20848
  * node.missing_go_left = best_missing_go_left
20828
20849
  * node.n_category = best_n_categorical # <<<<<<<<<<<<<<
@@ -20831,7 +20852,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20831
20852
  */
20832
20853
  __pyx_v_node->n_category = __pyx_v_best_n_categorical;
20833
20854
 
20834
- /* "obliquetree/src/tree.pyx":324
20855
+ /* "obliquetree/src/tree.pyx":325
20835
20856
  * node.n_category = best_n_categorical
20836
20857
  *
20837
20858
  * if node.n_category != 0: # <<<<<<<<<<<<<<
@@ -20841,7 +20862,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20841
20862
  __pyx_t_1 = (__pyx_v_node->n_category != 0);
20842
20863
  if (__pyx_t_1) {
20843
20864
 
20844
- /* "obliquetree/src/tree.pyx":325
20865
+ /* "obliquetree/src/tree.pyx":326
20845
20866
  *
20846
20867
  * if node.n_category != 0:
20847
20868
  * node.categories_go_left = <int*>malloc(node.n_category * sizeof(int)) # <<<<<<<<<<<<<<
@@ -20850,7 +20871,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20850
20871
  */
20851
20872
  __pyx_v_node->categories_go_left = ((int *)malloc((__pyx_v_node->n_category * (sizeof(int)))));
20852
20873
 
20853
- /* "obliquetree/src/tree.pyx":327
20874
+ /* "obliquetree/src/tree.pyx":328
20854
20875
  * node.categories_go_left = <int*>malloc(node.n_category * sizeof(int))
20855
20876
  *
20856
20877
  * for i in range(node.n_category): # <<<<<<<<<<<<<<
@@ -20862,7 +20883,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20862
20883
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
20863
20884
  __pyx_v_i = __pyx_t_16;
20864
20885
 
20865
- /* "obliquetree/src/tree.pyx":328
20886
+ /* "obliquetree/src/tree.pyx":329
20866
20887
  *
20867
20888
  * for i in range(node.n_category):
20868
20889
  * node.categories_go_left[i] = best_categorical_indices[i] # <<<<<<<<<<<<<<
@@ -20872,7 +20893,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20872
20893
  (__pyx_v_node->categories_go_left[__pyx_v_i]) = (__pyx_v_best_categorical_indices[__pyx_v_i]);
20873
20894
  }
20874
20895
 
20875
- /* "obliquetree/src/tree.pyx":324
20896
+ /* "obliquetree/src/tree.pyx":325
20876
20897
  * node.n_category = best_n_categorical
20877
20898
  *
20878
20899
  * if node.n_category != 0: # <<<<<<<<<<<<<<
@@ -20881,7 +20902,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20881
20902
  */
20882
20903
  }
20883
20904
 
20884
- /* "obliquetree/src/tree.pyx":331
20905
+ /* "obliquetree/src/tree.pyx":332
20885
20906
  *
20886
20907
  *
20887
20908
  * populate_indices( # <<<<<<<<<<<<<<
@@ -20890,7 +20911,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20890
20911
  */
20891
20912
  __pyx_f_11obliquetree_3src_5utils_populate_indices(__pyx_v_best_missing_go_left, __pyx_v_n_samples, __pyx_v_best_left_count, __pyx_v_right_count, __pyx_v_best_n_nans, __pyx_v_left_indices, __pyx_v_right_indices, __pyx_v_best_sorted_indices, __pyx_v_best_nan_indices);
20892
20913
 
20893
- /* "obliquetree/src/tree.pyx":342
20914
+ /* "obliquetree/src/tree.pyx":343
20894
20915
  * best_nan_indices)
20895
20916
  *
20896
20917
  * free(best_sorted_indices) # <<<<<<<<<<<<<<
@@ -20899,7 +20920,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20899
20920
  */
20900
20921
  free(__pyx_v_best_sorted_indices);
20901
20922
 
20902
- /* "obliquetree/src/tree.pyx":343
20923
+ /* "obliquetree/src/tree.pyx":344
20903
20924
  *
20904
20925
  * free(best_sorted_indices)
20905
20926
  * free(best_nan_indices) # <<<<<<<<<<<<<<
@@ -20908,7 +20929,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20908
20929
  */
20909
20930
  free(__pyx_v_best_nan_indices);
20910
20931
 
20911
- /* "obliquetree/src/tree.pyx":344
20932
+ /* "obliquetree/src/tree.pyx":345
20912
20933
  * free(best_sorted_indices)
20913
20934
  * free(best_nan_indices)
20914
20935
  * free(best_categorical_indices) # <<<<<<<<<<<<<<
@@ -20917,7 +20938,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20917
20938
  */
20918
20939
  free(__pyx_v_best_categorical_indices);
20919
20940
 
20920
- /* "obliquetree/src/tree.pyx":347
20941
+ /* "obliquetree/src/tree.pyx":348
20921
20942
  *
20922
20943
  * # Recurse left
20923
20944
  * node.left = build_tree_recursive( # <<<<<<<<<<<<<<
@@ -20926,7 +20947,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20926
20947
  */
20927
20948
  __pyx_v_node->left = __pyx_f_11obliquetree_3src_4tree_build_tree_recursive(__pyx_v_task, __pyx_v_n_classes, __pyx_v_X, __pyx_v_y, (__pyx_v_depth + 1), __pyx_v_max_depth, __pyx_v_min_samples_leaf, __pyx_v_min_samples_split, __pyx_v_min_impurity_decrease, __pyx_v_sort_buffer, __pyx_v_left_indices, __pyx_v_nan_indices, __pyx_v_best_left_count, __pyx_v_n_pair, __pyx_v_gamma, __pyx_v_max_iter, __pyx_v_relative_change, __pyx_v_rng, __pyx_v_use_oblique, __pyx_v_is_categorical, __pyx_v_categorical_stats, __pyx_v_sample_weight, __pyx_v_min_values, __pyx_v_max_unique_range, __pyx_v_count_unique_array, __pyx_v_count_sort_buffer, __pyx_v_is_integer);
20928
20949
 
20929
- /* "obliquetree/src/tree.pyx":377
20950
+ /* "obliquetree/src/tree.pyx":378
20930
20951
  *
20931
20952
  * # Recurse right
20932
20953
  * node.right = build_tree_recursive( # <<<<<<<<<<<<<<
@@ -20935,7 +20956,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20935
20956
  */
20936
20957
  __pyx_v_node->right = __pyx_f_11obliquetree_3src_4tree_build_tree_recursive(__pyx_v_task, __pyx_v_n_classes, __pyx_v_X, __pyx_v_y, (__pyx_v_depth + 1), __pyx_v_max_depth, __pyx_v_min_samples_leaf, __pyx_v_min_samples_split, __pyx_v_min_impurity_decrease, __pyx_v_sort_buffer, __pyx_v_right_indices, __pyx_v_nan_indices, __pyx_v_right_count, __pyx_v_n_pair, __pyx_v_gamma, __pyx_v_max_iter, __pyx_v_relative_change, __pyx_v_rng, __pyx_v_use_oblique, __pyx_v_is_categorical, __pyx_v_categorical_stats, __pyx_v_sample_weight, __pyx_v_min_values, __pyx_v_max_unique_range, __pyx_v_count_unique_array, __pyx_v_count_sort_buffer, __pyx_v_is_integer);
20937
20958
 
20938
- /* "obliquetree/src/tree.pyx":406
20959
+ /* "obliquetree/src/tree.pyx":407
20939
20960
  * )
20940
20961
  *
20941
20962
  * free(left_indices) # <<<<<<<<<<<<<<
@@ -20944,7 +20965,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20944
20965
  */
20945
20966
  free(__pyx_v_left_indices);
20946
20967
 
20947
- /* "obliquetree/src/tree.pyx":407
20968
+ /* "obliquetree/src/tree.pyx":408
20948
20969
  *
20949
20970
  * free(left_indices)
20950
20971
  * free(right_indices) # <<<<<<<<<<<<<<
@@ -20953,7 +20974,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20953
20974
  */
20954
20975
  free(__pyx_v_right_indices);
20955
20976
 
20956
- /* "obliquetree/src/tree.pyx":409
20977
+ /* "obliquetree/src/tree.pyx":410
20957
20978
  * free(right_indices)
20958
20979
  *
20959
20980
  * return node # <<<<<<<<<<<<<<
@@ -20986,7 +21007,7 @@ static struct __pyx_t_11obliquetree_3src_4tree_TreeNode *__pyx_f_11obliquetree_3
20986
21007
  return __pyx_r;
20987
21008
  }
20988
21009
 
20989
- /* "obliquetree/src/tree.pyx":411
21010
+ /* "obliquetree/src/tree.pyx":412
20990
21011
  * return node
20991
21012
  *
20992
21013
  * cdef void predict( # <<<<<<<<<<<<<<
@@ -21017,7 +21038,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21017
21038
  int __pyx_t_9;
21018
21039
  int __pyx_t_10;
21019
21040
 
21020
- /* "obliquetree/src/tree.pyx":424
21041
+ /* "obliquetree/src/tree.pyx":425
21021
21042
  * cdef int i, j, idx
21022
21043
  *
21023
21044
  * if node.is_leaf: # <<<<<<<<<<<<<<
@@ -21027,7 +21048,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21027
21048
  __pyx_t_1 = (__pyx_v_node->is_leaf != 0);
21028
21049
  if (__pyx_t_1) {
21029
21050
 
21030
- /* "obliquetree/src/tree.pyx":425
21051
+ /* "obliquetree/src/tree.pyx":426
21031
21052
  *
21032
21053
  * if node.is_leaf:
21033
21054
  * if n_classes <= 2: # <<<<<<<<<<<<<<
@@ -21037,7 +21058,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21037
21058
  __pyx_t_1 = (__pyx_v_n_classes <= 2);
21038
21059
  if (__pyx_t_1) {
21039
21060
 
21040
- /* "obliquetree/src/tree.pyx":427
21061
+ /* "obliquetree/src/tree.pyx":428
21041
21062
  * if n_classes <= 2:
21042
21063
  *
21043
21064
  * for i in range(n_samples): # <<<<<<<<<<<<<<
@@ -21049,7 +21070,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21049
21070
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
21050
21071
  __pyx_v_i = __pyx_t_4;
21051
21072
 
21052
- /* "obliquetree/src/tree.pyx":428
21073
+ /* "obliquetree/src/tree.pyx":429
21053
21074
  *
21054
21075
  * for i in range(n_samples):
21055
21076
  * out[indices[i], 0] = node.value # <<<<<<<<<<<<<<
@@ -21062,7 +21083,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21062
21083
  *((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_out.data + __pyx_t_6 * __pyx_v_out.strides[0]) )) + __pyx_t_7)) )) = __pyx_t_5;
21063
21084
  }
21064
21085
 
21065
- /* "obliquetree/src/tree.pyx":425
21086
+ /* "obliquetree/src/tree.pyx":426
21066
21087
  *
21067
21088
  * if node.is_leaf:
21068
21089
  * if n_classes <= 2: # <<<<<<<<<<<<<<
@@ -21072,7 +21093,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21072
21093
  goto __pyx_L4;
21073
21094
  }
21074
21095
 
21075
- /* "obliquetree/src/tree.pyx":431
21096
+ /* "obliquetree/src/tree.pyx":432
21076
21097
  *
21077
21098
  * else:
21078
21099
  * for i in range(n_samples): # <<<<<<<<<<<<<<
@@ -21085,7 +21106,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21085
21106
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
21086
21107
  __pyx_v_i = __pyx_t_4;
21087
21108
 
21088
- /* "obliquetree/src/tree.pyx":432
21109
+ /* "obliquetree/src/tree.pyx":433
21089
21110
  * else:
21090
21111
  * for i in range(n_samples):
21091
21112
  * idx = indices[i] # <<<<<<<<<<<<<<
@@ -21094,7 +21115,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21094
21115
  */
21095
21116
  __pyx_v_idx = (__pyx_v_indices[__pyx_v_i]);
21096
21117
 
21097
- /* "obliquetree/src/tree.pyx":433
21118
+ /* "obliquetree/src/tree.pyx":434
21098
21119
  * for i in range(n_samples):
21099
21120
  * idx = indices[i]
21100
21121
  * for j in range(n_classes): # <<<<<<<<<<<<<<
@@ -21106,7 +21127,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21106
21127
  for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
21107
21128
  __pyx_v_j = __pyx_t_10;
21108
21129
 
21109
- /* "obliquetree/src/tree.pyx":434
21130
+ /* "obliquetree/src/tree.pyx":435
21110
21131
  * idx = indices[i]
21111
21132
  * for j in range(n_classes):
21112
21133
  * out[idx, j] = node.value_multiclass[j] # <<<<<<<<<<<<<<
@@ -21121,7 +21142,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21121
21142
  }
21122
21143
  __pyx_L4:;
21123
21144
 
21124
- /* "obliquetree/src/tree.pyx":436
21145
+ /* "obliquetree/src/tree.pyx":437
21125
21146
  * out[idx, j] = node.value_multiclass[j]
21126
21147
  *
21127
21148
  * return # <<<<<<<<<<<<<<
@@ -21130,7 +21151,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21130
21151
  */
21131
21152
  goto __pyx_L0;
21132
21153
 
21133
- /* "obliquetree/src/tree.pyx":424
21154
+ /* "obliquetree/src/tree.pyx":425
21134
21155
  * cdef int i, j, idx
21135
21156
  *
21136
21157
  * if node.is_leaf: # <<<<<<<<<<<<<<
@@ -21139,7 +21160,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21139
21160
  */
21140
21161
  }
21141
21162
 
21142
- /* "obliquetree/src/tree.pyx":439
21163
+ /* "obliquetree/src/tree.pyx":440
21143
21164
  *
21144
21165
  *
21145
21166
  * cdef int left_count = 0 # <<<<<<<<<<<<<<
@@ -21148,7 +21169,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21148
21169
  */
21149
21170
  __pyx_v_left_count = 0;
21150
21171
 
21151
- /* "obliquetree/src/tree.pyx":440
21172
+ /* "obliquetree/src/tree.pyx":441
21152
21173
  *
21153
21174
  * cdef int left_count = 0
21154
21175
  * cdef int right_count = 0 # <<<<<<<<<<<<<<
@@ -21157,7 +21178,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21157
21178
  */
21158
21179
  __pyx_v_right_count = 0;
21159
21180
 
21160
- /* "obliquetree/src/tree.pyx":446
21181
+ /* "obliquetree/src/tree.pyx":447
21161
21182
  * cdef bint goes_left
21162
21183
  *
21163
21184
  * cdef int* left_indices = <int*>malloc(n_samples * sizeof(int)) # <<<<<<<<<<<<<<
@@ -21166,7 +21187,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21166
21187
  */
21167
21188
  __pyx_v_left_indices = ((int *)malloc((__pyx_v_n_samples * (sizeof(int)))));
21168
21189
 
21169
- /* "obliquetree/src/tree.pyx":447
21190
+ /* "obliquetree/src/tree.pyx":448
21170
21191
  *
21171
21192
  * cdef int* left_indices = <int*>malloc(n_samples * sizeof(int))
21172
21193
  * cdef int* right_indices = <int*>malloc(n_samples * sizeof(int)) # <<<<<<<<<<<<<<
@@ -21175,7 +21196,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21175
21196
  */
21176
21197
  __pyx_v_right_indices = ((int *)malloc((__pyx_v_n_samples * (sizeof(int)))));
21177
21198
 
21178
- /* "obliquetree/src/tree.pyx":449
21199
+ /* "obliquetree/src/tree.pyx":450
21179
21200
  * cdef int* right_indices = <int*>malloc(n_samples * sizeof(int))
21180
21201
  *
21181
21202
  * for i in range(n_samples): # <<<<<<<<<<<<<<
@@ -21187,7 +21208,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21187
21208
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
21188
21209
  __pyx_v_i = __pyx_t_4;
21189
21210
 
21190
- /* "obliquetree/src/tree.pyx":450
21211
+ /* "obliquetree/src/tree.pyx":451
21191
21212
  *
21192
21213
  * for i in range(n_samples):
21193
21214
  * ind = indices[i] # <<<<<<<<<<<<<<
@@ -21196,7 +21217,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21196
21217
  */
21197
21218
  __pyx_v_ind = (__pyx_v_indices[__pyx_v_i]);
21198
21219
 
21199
- /* "obliquetree/src/tree.pyx":452
21220
+ /* "obliquetree/src/tree.pyx":453
21200
21221
  * ind = indices[i]
21201
21222
  *
21202
21223
  * if node.feature_idx == -2: # Oblique split # <<<<<<<<<<<<<<
@@ -21206,7 +21227,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21206
21227
  __pyx_t_1 = (__pyx_v_node->feature_idx == -2L);
21207
21228
  if (__pyx_t_1) {
21208
21229
 
21209
- /* "obliquetree/src/tree.pyx":453
21230
+ /* "obliquetree/src/tree.pyx":454
21210
21231
  *
21211
21232
  * if node.feature_idx == -2: # Oblique split
21212
21233
  * calc = 0.0 # <<<<<<<<<<<<<<
@@ -21215,7 +21236,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21215
21236
  */
21216
21237
  __pyx_v_calc = 0.0;
21217
21238
 
21218
- /* "obliquetree/src/tree.pyx":454
21239
+ /* "obliquetree/src/tree.pyx":455
21219
21240
  * if node.feature_idx == -2: # Oblique split
21220
21241
  * calc = 0.0
21221
21242
  * for j in range(node.n_pair): # <<<<<<<<<<<<<<
@@ -21227,7 +21248,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21227
21248
  for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
21228
21249
  __pyx_v_j = __pyx_t_10;
21229
21250
 
21230
- /* "obliquetree/src/tree.pyx":455
21251
+ /* "obliquetree/src/tree.pyx":456
21231
21252
  * calc = 0.0
21232
21253
  * for j in range(node.n_pair):
21233
21254
  * x_val = X[ind, node.pair[j]] # <<<<<<<<<<<<<<
@@ -21238,7 +21259,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21238
21259
  __pyx_t_7 = (__pyx_v_node->pair[__pyx_v_j]);
21239
21260
  __pyx_v_x_val = (*((double const *) ( /* dim=1 */ (( /* dim=0 */ ((char *) (((double const *) __pyx_v_X.data) + __pyx_t_6)) ) + __pyx_t_7 * __pyx_v_X.strides[1]) )));
21240
21261
 
21241
- /* "obliquetree/src/tree.pyx":456
21262
+ /* "obliquetree/src/tree.pyx":457
21242
21263
  * for j in range(node.n_pair):
21243
21264
  * x_val = X[ind, node.pair[j]]
21244
21265
  * calc += x_val * node.x[j] # <<<<<<<<<<<<<<
@@ -21248,7 +21269,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21248
21269
  __pyx_v_calc = (__pyx_v_calc + (__pyx_v_x_val * (__pyx_v_node->x[__pyx_v_j])));
21249
21270
  }
21250
21271
 
21251
- /* "obliquetree/src/tree.pyx":458
21272
+ /* "obliquetree/src/tree.pyx":459
21252
21273
  * calc += x_val * node.x[j]
21253
21274
  *
21254
21275
  * goes_left = calc <= node.threshold # <<<<<<<<<<<<<<
@@ -21257,7 +21278,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21257
21278
  */
21258
21279
  __pyx_v_goes_left = (__pyx_v_calc <= __pyx_v_node->threshold);
21259
21280
 
21260
- /* "obliquetree/src/tree.pyx":452
21281
+ /* "obliquetree/src/tree.pyx":453
21261
21282
  * ind = indices[i]
21262
21283
  *
21263
21284
  * if node.feature_idx == -2: # Oblique split # <<<<<<<<<<<<<<
@@ -21267,7 +21288,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21267
21288
  goto __pyx_L13;
21268
21289
  }
21269
21290
 
21270
- /* "obliquetree/src/tree.pyx":460
21291
+ /* "obliquetree/src/tree.pyx":461
21271
21292
  * goes_left = calc <= node.threshold
21272
21293
  *
21273
21294
  * elif node.n_category > 0: # Kategorik split # <<<<<<<<<<<<<<
@@ -21277,7 +21298,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21277
21298
  __pyx_t_1 = (__pyx_v_node->n_category > 0);
21278
21299
  if (__pyx_t_1) {
21279
21300
 
21280
- /* "obliquetree/src/tree.pyx":461
21301
+ /* "obliquetree/src/tree.pyx":462
21281
21302
  *
21282
21303
  * elif node.n_category > 0: # Kategorik split
21283
21304
  * x_val = X[ind, node.feature_idx] # <<<<<<<<<<<<<<
@@ -21288,7 +21309,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21288
21309
  __pyx_t_6 = __pyx_v_node->feature_idx;
21289
21310
  __pyx_v_x_val = (*((double const *) ( /* dim=1 */ (( /* dim=0 */ ((char *) (((double const *) __pyx_v_X.data) + __pyx_t_7)) ) + __pyx_t_6 * __pyx_v_X.strides[1]) )));
21290
21311
 
21291
- /* "obliquetree/src/tree.pyx":462
21312
+ /* "obliquetree/src/tree.pyx":463
21292
21313
  * elif node.n_category > 0: # Kategorik split
21293
21314
  * x_val = X[ind, node.feature_idx]
21294
21315
  * goes_left = False # <<<<<<<<<<<<<<
@@ -21297,7 +21318,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21297
21318
  */
21298
21319
  __pyx_v_goes_left = 0;
21299
21320
 
21300
- /* "obliquetree/src/tree.pyx":464
21321
+ /* "obliquetree/src/tree.pyx":465
21301
21322
  * goes_left = False
21302
21323
  *
21303
21324
  * for j in range(node.n_category): # <<<<<<<<<<<<<<
@@ -21309,7 +21330,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21309
21330
  for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
21310
21331
  __pyx_v_j = __pyx_t_10;
21311
21332
 
21312
- /* "obliquetree/src/tree.pyx":465
21333
+ /* "obliquetree/src/tree.pyx":466
21313
21334
  *
21314
21335
  * for j in range(node.n_category):
21315
21336
  * if x_val == node.categories_go_left[j]: # <<<<<<<<<<<<<<
@@ -21319,7 +21340,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21319
21340
  __pyx_t_1 = (__pyx_v_x_val == (__pyx_v_node->categories_go_left[__pyx_v_j]));
21320
21341
  if (__pyx_t_1) {
21321
21342
 
21322
- /* "obliquetree/src/tree.pyx":466
21343
+ /* "obliquetree/src/tree.pyx":467
21323
21344
  * for j in range(node.n_category):
21324
21345
  * if x_val == node.categories_go_left[j]:
21325
21346
  * goes_left = True # <<<<<<<<<<<<<<
@@ -21328,7 +21349,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21328
21349
  */
21329
21350
  __pyx_v_goes_left = 1;
21330
21351
 
21331
- /* "obliquetree/src/tree.pyx":467
21352
+ /* "obliquetree/src/tree.pyx":468
21332
21353
  * if x_val == node.categories_go_left[j]:
21333
21354
  * goes_left = True
21334
21355
  * break # <<<<<<<<<<<<<<
@@ -21337,7 +21358,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21337
21358
  */
21338
21359
  goto __pyx_L17_break;
21339
21360
 
21340
- /* "obliquetree/src/tree.pyx":465
21361
+ /* "obliquetree/src/tree.pyx":466
21341
21362
  *
21342
21363
  * for j in range(node.n_category):
21343
21364
  * if x_val == node.categories_go_left[j]: # <<<<<<<<<<<<<<
@@ -21348,7 +21369,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21348
21369
  }
21349
21370
  __pyx_L17_break:;
21350
21371
 
21351
- /* "obliquetree/src/tree.pyx":460
21372
+ /* "obliquetree/src/tree.pyx":461
21352
21373
  * goes_left = calc <= node.threshold
21353
21374
  *
21354
21375
  * elif node.n_category > 0: # Kategorik split # <<<<<<<<<<<<<<
@@ -21358,7 +21379,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21358
21379
  goto __pyx_L13;
21359
21380
  }
21360
21381
 
21361
- /* "obliquetree/src/tree.pyx":470
21382
+ /* "obliquetree/src/tree.pyx":471
21362
21383
  *
21363
21384
  * else: # Normal numerik split
21364
21385
  * x_val = X[ind, node.feature_idx] # <<<<<<<<<<<<<<
@@ -21370,7 +21391,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21370
21391
  __pyx_t_7 = __pyx_v_node->feature_idx;
21371
21392
  __pyx_v_x_val = (*((double const *) ( /* dim=1 */ (( /* dim=0 */ ((char *) (((double const *) __pyx_v_X.data) + __pyx_t_6)) ) + __pyx_t_7 * __pyx_v_X.strides[1]) )));
21372
21393
 
21373
- /* "obliquetree/src/tree.pyx":471
21394
+ /* "obliquetree/src/tree.pyx":472
21374
21395
  * else: # Normal numerik split
21375
21396
  * x_val = X[ind, node.feature_idx]
21376
21397
  * if x_val != x_val: # <<<<<<<<<<<<<<
@@ -21380,7 +21401,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21380
21401
  __pyx_t_1 = (__pyx_v_x_val != __pyx_v_x_val);
21381
21402
  if (__pyx_t_1) {
21382
21403
 
21383
- /* "obliquetree/src/tree.pyx":472
21404
+ /* "obliquetree/src/tree.pyx":473
21384
21405
  * x_val = X[ind, node.feature_idx]
21385
21406
  * if x_val != x_val:
21386
21407
  * goes_left = node.missing_go_left # <<<<<<<<<<<<<<
@@ -21390,7 +21411,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21390
21411
  __pyx_t_8 = __pyx_v_node->missing_go_left;
21391
21412
  __pyx_v_goes_left = __pyx_t_8;
21392
21413
 
21393
- /* "obliquetree/src/tree.pyx":471
21414
+ /* "obliquetree/src/tree.pyx":472
21394
21415
  * else: # Normal numerik split
21395
21416
  * x_val = X[ind, node.feature_idx]
21396
21417
  * if x_val != x_val: # <<<<<<<<<<<<<<
@@ -21400,7 +21421,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21400
21421
  goto __pyx_L19;
21401
21422
  }
21402
21423
 
21403
- /* "obliquetree/src/tree.pyx":474
21424
+ /* "obliquetree/src/tree.pyx":475
21404
21425
  * goes_left = node.missing_go_left
21405
21426
  * else:
21406
21427
  * goes_left = x_val <= node.threshold # <<<<<<<<<<<<<<
@@ -21414,7 +21435,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21414
21435
  }
21415
21436
  __pyx_L13:;
21416
21437
 
21417
- /* "obliquetree/src/tree.pyx":476
21438
+ /* "obliquetree/src/tree.pyx":477
21418
21439
  * goes_left = x_val <= node.threshold
21419
21440
  *
21420
21441
  * if goes_left: # <<<<<<<<<<<<<<
@@ -21423,7 +21444,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21423
21444
  */
21424
21445
  if (__pyx_v_goes_left) {
21425
21446
 
21426
- /* "obliquetree/src/tree.pyx":477
21447
+ /* "obliquetree/src/tree.pyx":478
21427
21448
  *
21428
21449
  * if goes_left:
21429
21450
  * left_indices[left_count] = ind # <<<<<<<<<<<<<<
@@ -21432,7 +21453,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21432
21453
  */
21433
21454
  (__pyx_v_left_indices[__pyx_v_left_count]) = __pyx_v_ind;
21434
21455
 
21435
- /* "obliquetree/src/tree.pyx":478
21456
+ /* "obliquetree/src/tree.pyx":479
21436
21457
  * if goes_left:
21437
21458
  * left_indices[left_count] = ind
21438
21459
  * left_count += 1 # <<<<<<<<<<<<<<
@@ -21441,7 +21462,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21441
21462
  */
21442
21463
  __pyx_v_left_count = (__pyx_v_left_count + 1);
21443
21464
 
21444
- /* "obliquetree/src/tree.pyx":476
21465
+ /* "obliquetree/src/tree.pyx":477
21445
21466
  * goes_left = x_val <= node.threshold
21446
21467
  *
21447
21468
  * if goes_left: # <<<<<<<<<<<<<<
@@ -21451,7 +21472,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21451
21472
  goto __pyx_L20;
21452
21473
  }
21453
21474
 
21454
- /* "obliquetree/src/tree.pyx":480
21475
+ /* "obliquetree/src/tree.pyx":481
21455
21476
  * left_count += 1
21456
21477
  * else:
21457
21478
  * right_indices[right_count] = ind # <<<<<<<<<<<<<<
@@ -21461,7 +21482,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21461
21482
  /*else*/ {
21462
21483
  (__pyx_v_right_indices[__pyx_v_right_count]) = __pyx_v_ind;
21463
21484
 
21464
- /* "obliquetree/src/tree.pyx":481
21485
+ /* "obliquetree/src/tree.pyx":482
21465
21486
  * else:
21466
21487
  * right_indices[right_count] = ind
21467
21488
  * right_count += 1 # <<<<<<<<<<<<<<
@@ -21473,7 +21494,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21473
21494
  __pyx_L20:;
21474
21495
  }
21475
21496
 
21476
- /* "obliquetree/src/tree.pyx":483
21497
+ /* "obliquetree/src/tree.pyx":484
21477
21498
  * right_count += 1
21478
21499
  *
21479
21500
  * if left_count > 0: # <<<<<<<<<<<<<<
@@ -21483,7 +21504,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21483
21504
  __pyx_t_1 = (__pyx_v_left_count > 0);
21484
21505
  if (__pyx_t_1) {
21485
21506
 
21486
- /* "obliquetree/src/tree.pyx":484
21507
+ /* "obliquetree/src/tree.pyx":485
21487
21508
  *
21488
21509
  * if left_count > 0:
21489
21510
  * predict(node.left, X, out, left_indices, left_count ,n_classes) # <<<<<<<<<<<<<<
@@ -21492,7 +21513,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21492
21513
  */
21493
21514
  __pyx_f_11obliquetree_3src_4tree_predict(__pyx_v_node->left, __pyx_v_X, __pyx_v_out, __pyx_v_left_indices, __pyx_v_left_count, __pyx_v_n_classes);
21494
21515
 
21495
- /* "obliquetree/src/tree.pyx":483
21516
+ /* "obliquetree/src/tree.pyx":484
21496
21517
  * right_count += 1
21497
21518
  *
21498
21519
  * if left_count > 0: # <<<<<<<<<<<<<<
@@ -21501,7 +21522,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21501
21522
  */
21502
21523
  }
21503
21524
 
21504
- /* "obliquetree/src/tree.pyx":485
21525
+ /* "obliquetree/src/tree.pyx":486
21505
21526
  * if left_count > 0:
21506
21527
  * predict(node.left, X, out, left_indices, left_count ,n_classes)
21507
21528
  * if right_count > 0: # <<<<<<<<<<<<<<
@@ -21511,7 +21532,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21511
21532
  __pyx_t_1 = (__pyx_v_right_count > 0);
21512
21533
  if (__pyx_t_1) {
21513
21534
 
21514
- /* "obliquetree/src/tree.pyx":486
21535
+ /* "obliquetree/src/tree.pyx":487
21515
21536
  * predict(node.left, X, out, left_indices, left_count ,n_classes)
21516
21537
  * if right_count > 0:
21517
21538
  * predict(node.right, X, out, right_indices, right_count, n_classes) # <<<<<<<<<<<<<<
@@ -21520,7 +21541,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21520
21541
  */
21521
21542
  __pyx_f_11obliquetree_3src_4tree_predict(__pyx_v_node->right, __pyx_v_X, __pyx_v_out, __pyx_v_right_indices, __pyx_v_right_count, __pyx_v_n_classes);
21522
21543
 
21523
- /* "obliquetree/src/tree.pyx":485
21544
+ /* "obliquetree/src/tree.pyx":486
21524
21545
  * if left_count > 0:
21525
21546
  * predict(node.left, X, out, left_indices, left_count ,n_classes)
21526
21547
  * if right_count > 0: # <<<<<<<<<<<<<<
@@ -21529,7 +21550,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21529
21550
  */
21530
21551
  }
21531
21552
 
21532
- /* "obliquetree/src/tree.pyx":488
21553
+ /* "obliquetree/src/tree.pyx":489
21533
21554
  * predict(node.right, X, out, right_indices, right_count, n_classes)
21534
21555
  *
21535
21556
  * free(left_indices) # <<<<<<<<<<<<<<
@@ -21538,7 +21559,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21538
21559
  */
21539
21560
  free(__pyx_v_left_indices);
21540
21561
 
21541
- /* "obliquetree/src/tree.pyx":489
21562
+ /* "obliquetree/src/tree.pyx":490
21542
21563
  *
21543
21564
  * free(left_indices)
21544
21565
  * free(right_indices) # <<<<<<<<<<<<<<
@@ -21546,7 +21567,7 @@ static void __pyx_f_11obliquetree_3src_4tree_predict(struct __pyx_t_11obliquetre
21546
21567
  */
21547
21568
  free(__pyx_v_right_indices);
21548
21569
 
21549
- /* "obliquetree/src/tree.pyx":411
21570
+ /* "obliquetree/src/tree.pyx":412
21550
21571
  * return node
21551
21572
  *
21552
21573
  * cdef void predict( # <<<<<<<<<<<<<<
@@ -22535,35 +22556,35 @@ static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) {
22535
22556
  #else
22536
22557
  #warning "The buffer protocol is not supported in the Limited C-API < 3.11."
22537
22558
  #endif
22538
- if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_array_spec, __pyx_mstate->__pyx_array_type) < 0) __PYX_ERR(1, 110, __pyx_L1_error)
22559
+ if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_array_spec, __pyx_mstate->__pyx_array_type) < (0)) __PYX_ERR(1, 110, __pyx_L1_error)
22539
22560
  #else
22540
22561
  __pyx_mstate->__pyx_array_type = &__pyx_type___pyx_array;
22541
22562
  #endif
22542
22563
  #if !CYTHON_COMPILING_IN_LIMITED_API
22543
22564
  #endif
22544
22565
  #if !CYTHON_USE_TYPE_SPECS
22545
- if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_array_type) < 0) __PYX_ERR(1, 110, __pyx_L1_error)
22566
+ if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_array_type) < (0)) __PYX_ERR(1, 110, __pyx_L1_error)
22546
22567
  #endif
22547
- if (__Pyx_SetVtable(__pyx_mstate->__pyx_array_type, __pyx_vtabptr_array) < 0) __PYX_ERR(1, 110, __pyx_L1_error)
22548
- if (__Pyx_MergeVtables(__pyx_mstate->__pyx_array_type) < 0) __PYX_ERR(1, 110, __pyx_L1_error)
22549
- if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_array_type) < 0) __PYX_ERR(1, 110, __pyx_L1_error)
22568
+ if (__Pyx_SetVtable(__pyx_mstate->__pyx_array_type, __pyx_vtabptr_array) < (0)) __PYX_ERR(1, 110, __pyx_L1_error)
22569
+ if (__Pyx_MergeVtables(__pyx_mstate->__pyx_array_type) < (0)) __PYX_ERR(1, 110, __pyx_L1_error)
22570
+ if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_array_type) < (0)) __PYX_ERR(1, 110, __pyx_L1_error)
22550
22571
  #if CYTHON_USE_TYPE_SPECS
22551
22572
  __pyx_mstate->__pyx_MemviewEnum_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_MemviewEnum_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_MemviewEnum_type)) __PYX_ERR(1, 299, __pyx_L1_error)
22552
- if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_MemviewEnum_spec, __pyx_mstate->__pyx_MemviewEnum_type) < 0) __PYX_ERR(1, 299, __pyx_L1_error)
22573
+ if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_MemviewEnum_spec, __pyx_mstate->__pyx_MemviewEnum_type) < (0)) __PYX_ERR(1, 299, __pyx_L1_error)
22553
22574
  #else
22554
22575
  __pyx_mstate->__pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum;
22555
22576
  #endif
22556
22577
  #if !CYTHON_COMPILING_IN_LIMITED_API
22557
22578
  #endif
22558
22579
  #if !CYTHON_USE_TYPE_SPECS
22559
- if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_MemviewEnum_type) < 0) __PYX_ERR(1, 299, __pyx_L1_error)
22580
+ if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_MemviewEnum_type) < (0)) __PYX_ERR(1, 299, __pyx_L1_error)
22560
22581
  #endif
22561
22582
  #if !CYTHON_COMPILING_IN_LIMITED_API
22562
22583
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_MemviewEnum_type->tp_dictoffset && __pyx_mstate->__pyx_MemviewEnum_type->tp_getattro == PyObject_GenericGetAttr)) {
22563
22584
  __pyx_mstate->__pyx_MemviewEnum_type->tp_getattro = PyObject_GenericGetAttr;
22564
22585
  }
22565
22586
  #endif
22566
- if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_MemviewEnum_type) < 0) __PYX_ERR(1, 299, __pyx_L1_error)
22587
+ if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_MemviewEnum_type) < (0)) __PYX_ERR(1, 299, __pyx_L1_error)
22567
22588
  __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview;
22568
22589
  __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer;
22569
22590
  __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice;
@@ -22587,23 +22608,23 @@ static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) {
22587
22608
  #else
22588
22609
  #warning "The buffer protocol is not supported in the Limited C-API < 3.11."
22589
22610
  #endif
22590
- if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_memoryview_spec, __pyx_mstate->__pyx_memoryview_type) < 0) __PYX_ERR(1, 334, __pyx_L1_error)
22611
+ if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_memoryview_spec, __pyx_mstate->__pyx_memoryview_type) < (0)) __PYX_ERR(1, 334, __pyx_L1_error)
22591
22612
  #else
22592
22613
  __pyx_mstate->__pyx_memoryview_type = &__pyx_type___pyx_memoryview;
22593
22614
  #endif
22594
22615
  #if !CYTHON_COMPILING_IN_LIMITED_API
22595
22616
  #endif
22596
22617
  #if !CYTHON_USE_TYPE_SPECS
22597
- if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_memoryview_type) < 0) __PYX_ERR(1, 334, __pyx_L1_error)
22618
+ if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_memoryview_type) < (0)) __PYX_ERR(1, 334, __pyx_L1_error)
22598
22619
  #endif
22599
22620
  #if !CYTHON_COMPILING_IN_LIMITED_API
22600
22621
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_memoryview_type->tp_dictoffset && __pyx_mstate->__pyx_memoryview_type->tp_getattro == PyObject_GenericGetAttr)) {
22601
22622
  __pyx_mstate->__pyx_memoryview_type->tp_getattro = PyObject_GenericGetAttr;
22602
22623
  }
22603
22624
  #endif
22604
- if (__Pyx_SetVtable(__pyx_mstate->__pyx_memoryview_type, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(1, 334, __pyx_L1_error)
22605
- if (__Pyx_MergeVtables(__pyx_mstate->__pyx_memoryview_type) < 0) __PYX_ERR(1, 334, __pyx_L1_error)
22606
- if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_memoryview_type) < 0) __PYX_ERR(1, 334, __pyx_L1_error)
22625
+ if (__Pyx_SetVtable(__pyx_mstate->__pyx_memoryview_type, __pyx_vtabptr_memoryview) < (0)) __PYX_ERR(1, 334, __pyx_L1_error)
22626
+ if (__Pyx_MergeVtables(__pyx_mstate->__pyx_memoryview_type) < (0)) __PYX_ERR(1, 334, __pyx_L1_error)
22627
+ if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_memoryview_type) < (0)) __PYX_ERR(1, 334, __pyx_L1_error)
22607
22628
  __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice;
22608
22629
  __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview;
22609
22630
  __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object;
@@ -22615,7 +22636,7 @@ static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) {
22615
22636
  __pyx_mstate->__pyx_memoryviewslice_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_memoryviewslice_spec, __pyx_t_1);
22616
22637
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
22617
22638
  if (unlikely(!__pyx_mstate->__pyx_memoryviewslice_type)) __PYX_ERR(1, 950, __pyx_L1_error)
22618
- if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_memoryviewslice_spec, __pyx_mstate->__pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 950, __pyx_L1_error)
22639
+ if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_memoryviewslice_spec, __pyx_mstate->__pyx_memoryviewslice_type) < (0)) __PYX_ERR(1, 950, __pyx_L1_error)
22619
22640
  #else
22620
22641
  __pyx_mstate->__pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice;
22621
22642
  #endif
@@ -22623,16 +22644,16 @@ static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) {
22623
22644
  __pyx_mstate_global->__pyx_memoryviewslice_type->tp_base = __pyx_mstate_global->__pyx_memoryview_type;
22624
22645
  #endif
22625
22646
  #if !CYTHON_USE_TYPE_SPECS
22626
- if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 950, __pyx_L1_error)
22647
+ if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_memoryviewslice_type) < (0)) __PYX_ERR(1, 950, __pyx_L1_error)
22627
22648
  #endif
22628
22649
  #if !CYTHON_COMPILING_IN_LIMITED_API
22629
22650
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_memoryviewslice_type->tp_dictoffset && __pyx_mstate->__pyx_memoryviewslice_type->tp_getattro == PyObject_GenericGetAttr)) {
22630
22651
  __pyx_mstate->__pyx_memoryviewslice_type->tp_getattro = PyObject_GenericGetAttr;
22631
22652
  }
22632
22653
  #endif
22633
- if (__Pyx_SetVtable(__pyx_mstate->__pyx_memoryviewslice_type, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(1, 950, __pyx_L1_error)
22634
- if (__Pyx_MergeVtables(__pyx_mstate->__pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 950, __pyx_L1_error)
22635
- if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 950, __pyx_L1_error)
22654
+ if (__Pyx_SetVtable(__pyx_mstate->__pyx_memoryviewslice_type, __pyx_vtabptr__memoryviewslice) < (0)) __PYX_ERR(1, 950, __pyx_L1_error)
22655
+ if (__Pyx_MergeVtables(__pyx_mstate->__pyx_memoryviewslice_type) < (0)) __PYX_ERR(1, 950, __pyx_L1_error)
22656
+ if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_memoryviewslice_type) < (0)) __PYX_ERR(1, 950, __pyx_L1_error)
22636
22657
  __Pyx_RefNannyFinishContext();
22637
22658
  return 0;
22638
22659
  __pyx_L1_error:;
@@ -22652,166 +22673,166 @@ static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) {
22652
22673
  /*--- Type import code ---*/
22653
22674
  __pyx_t_1 = PyImport_ImportModule("obliquetree.src.base"); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4, __pyx_L1_error)
22654
22675
  __Pyx_GOTREF(__pyx_t_1);
22655
- __pyx_mstate->__pyx_ptype_11obliquetree_3src_4base_TreeClassifier = __Pyx_ImportType_3_1_2(__pyx_t_1, "obliquetree.src.base", "TreeClassifier",
22676
+ __pyx_mstate->__pyx_ptype_11obliquetree_3src_4base_TreeClassifier = __Pyx_ImportType_3_1_6(__pyx_t_1, "obliquetree.src.base", "TreeClassifier",
22656
22677
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22657
- sizeof(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier),
22678
+ sizeof(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier),
22658
22679
  #elif CYTHON_COMPILING_IN_LIMITED_API
22659
- sizeof(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier),
22680
+ sizeof(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier),
22660
22681
  #else
22661
- sizeof(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier),
22682
+ sizeof(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(struct __pyx_obj_11obliquetree_3src_4base_TreeClassifier),
22662
22683
  #endif
22663
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_11obliquetree_3src_4base_TreeClassifier) __PYX_ERR(3, 4, __pyx_L1_error)
22684
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_11obliquetree_3src_4base_TreeClassifier) __PYX_ERR(3, 4, __pyx_L1_error)
22664
22685
  __pyx_vtabptr_11obliquetree_3src_4base_TreeClassifier = (struct __pyx_vtabstruct_11obliquetree_3src_4base_TreeClassifier*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_11obliquetree_3src_4base_TreeClassifier); if (unlikely(!__pyx_vtabptr_11obliquetree_3src_4base_TreeClassifier)) __PYX_ERR(3, 4, __pyx_L1_error)
22665
22686
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22666
22687
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 9, __pyx_L1_error)
22667
22688
  __Pyx_GOTREF(__pyx_t_1);
22668
- __pyx_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_1_2(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
22689
+ __pyx_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_1_6(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
22669
22690
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22670
- sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyTypeObject),
22691
+ sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyTypeObject),
22671
22692
  #elif CYTHON_COMPILING_IN_LIMITED_API
22672
22693
  0, 0,
22673
22694
  #else
22674
- sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyHeapTypeObject),
22695
+ sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyHeapTypeObject),
22675
22696
  #endif
22676
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_7cpython_4type_type) __PYX_ERR(4, 9, __pyx_L1_error)
22697
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_7cpython_4type_type) __PYX_ERR(4, 9, __pyx_L1_error)
22677
22698
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22678
22699
  __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 228, __pyx_L1_error)
22679
22700
  __Pyx_GOTREF(__pyx_t_1);
22680
- __pyx_mstate->__pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "dtype",
22701
+ __pyx_mstate->__pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "dtype",
22681
22702
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22682
- sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArray_Descr),
22703
+ sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArray_Descr),
22683
22704
  #elif CYTHON_COMPILING_IN_LIMITED_API
22684
- sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArray_Descr),
22705
+ sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArray_Descr),
22685
22706
  #else
22686
- sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArray_Descr),
22707
+ sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArray_Descr),
22687
22708
  #endif
22688
- __Pyx_ImportType_CheckSize_Ignore_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 228, __pyx_L1_error)
22689
- __pyx_mstate->__pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "flatiter",
22709
+ __Pyx_ImportType_CheckSize_Ignore_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 228, __pyx_L1_error)
22710
+ __pyx_mstate->__pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "flatiter",
22690
22711
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22691
- sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArrayIterObject),
22712
+ sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArrayIterObject),
22692
22713
  #elif CYTHON_COMPILING_IN_LIMITED_API
22693
- sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArrayIterObject),
22714
+ sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArrayIterObject),
22694
22715
  #else
22695
- sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArrayIterObject),
22716
+ sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArrayIterObject),
22696
22717
  #endif
22697
- __Pyx_ImportType_CheckSize_Ignore_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 273, __pyx_L1_error)
22698
- __pyx_mstate->__pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "broadcast",
22718
+ __Pyx_ImportType_CheckSize_Ignore_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 273, __pyx_L1_error)
22719
+ __pyx_mstate->__pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "broadcast",
22699
22720
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22700
- sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArrayMultiIterObject),
22721
+ sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArrayMultiIterObject),
22701
22722
  #elif CYTHON_COMPILING_IN_LIMITED_API
22702
- sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArrayMultiIterObject),
22723
+ sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArrayMultiIterObject),
22703
22724
  #else
22704
- sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArrayMultiIterObject),
22725
+ sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArrayMultiIterObject),
22705
22726
  #endif
22706
- __Pyx_ImportType_CheckSize_Ignore_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 277, __pyx_L1_error)
22707
- __pyx_mstate->__pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "ndarray",
22727
+ __Pyx_ImportType_CheckSize_Ignore_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 277, __pyx_L1_error)
22728
+ __pyx_mstate->__pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "ndarray",
22708
22729
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22709
- sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArrayObject),
22730
+ sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArrayObject),
22710
22731
  #elif CYTHON_COMPILING_IN_LIMITED_API
22711
- sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArrayObject),
22732
+ sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArrayObject),
22712
22733
  #else
22713
- sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyArrayObject),
22734
+ sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyArrayObject),
22714
22735
  #endif
22715
- __Pyx_ImportType_CheckSize_Ignore_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 316, __pyx_L1_error)
22716
- __pyx_mstate->__pyx_ptype_5numpy_generic = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "generic",
22736
+ __Pyx_ImportType_CheckSize_Ignore_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 316, __pyx_L1_error)
22737
+ __pyx_mstate->__pyx_ptype_5numpy_generic = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "generic",
22717
22738
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22718
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22739
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22719
22740
  #elif CYTHON_COMPILING_IN_LIMITED_API
22720
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22741
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22721
22742
  #else
22722
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22743
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22723
22744
  #endif
22724
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(2, 825, __pyx_L1_error)
22725
- __pyx_mstate->__pyx_ptype_5numpy_number = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "number",
22745
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(2, 825, __pyx_L1_error)
22746
+ __pyx_mstate->__pyx_ptype_5numpy_number = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "number",
22726
22747
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22727
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22748
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22728
22749
  #elif CYTHON_COMPILING_IN_LIMITED_API
22729
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22750
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22730
22751
  #else
22731
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22752
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22732
22753
  #endif
22733
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(2, 827, __pyx_L1_error)
22734
- __pyx_mstate->__pyx_ptype_5numpy_integer = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "integer",
22754
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(2, 827, __pyx_L1_error)
22755
+ __pyx_mstate->__pyx_ptype_5numpy_integer = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "integer",
22735
22756
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22736
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22757
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22737
22758
  #elif CYTHON_COMPILING_IN_LIMITED_API
22738
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22759
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22739
22760
  #else
22740
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22761
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22741
22762
  #endif
22742
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(2, 829, __pyx_L1_error)
22743
- __pyx_mstate->__pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "signedinteger",
22763
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(2, 829, __pyx_L1_error)
22764
+ __pyx_mstate->__pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "signedinteger",
22744
22765
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22745
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22766
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22746
22767
  #elif CYTHON_COMPILING_IN_LIMITED_API
22747
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22768
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22748
22769
  #else
22749
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22770
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22750
22771
  #endif
22751
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 831, __pyx_L1_error)
22752
- __pyx_mstate->__pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "unsignedinteger",
22772
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 831, __pyx_L1_error)
22773
+ __pyx_mstate->__pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "unsignedinteger",
22753
22774
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22754
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22775
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22755
22776
  #elif CYTHON_COMPILING_IN_LIMITED_API
22756
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22777
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22757
22778
  #else
22758
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22779
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22759
22780
  #endif
22760
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 833, __pyx_L1_error)
22761
- __pyx_mstate->__pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "inexact",
22781
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 833, __pyx_L1_error)
22782
+ __pyx_mstate->__pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "inexact",
22762
22783
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22763
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22784
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22764
22785
  #elif CYTHON_COMPILING_IN_LIMITED_API
22765
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22786
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22766
22787
  #else
22767
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22788
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22768
22789
  #endif
22769
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 835, __pyx_L1_error)
22770
- __pyx_mstate->__pyx_ptype_5numpy_floating = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "floating",
22790
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 835, __pyx_L1_error)
22791
+ __pyx_mstate->__pyx_ptype_5numpy_floating = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "floating",
22771
22792
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22772
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22793
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22773
22794
  #elif CYTHON_COMPILING_IN_LIMITED_API
22774
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22795
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22775
22796
  #else
22776
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22797
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22777
22798
  #endif
22778
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(2, 837, __pyx_L1_error)
22779
- __pyx_mstate->__pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "complexfloating",
22799
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(2, 837, __pyx_L1_error)
22800
+ __pyx_mstate->__pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "complexfloating",
22780
22801
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22781
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22802
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22782
22803
  #elif CYTHON_COMPILING_IN_LIMITED_API
22783
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22804
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22784
22805
  #else
22785
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22806
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22786
22807
  #endif
22787
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 839, __pyx_L1_error)
22788
- __pyx_mstate->__pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "flexible",
22808
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 839, __pyx_L1_error)
22809
+ __pyx_mstate->__pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "flexible",
22789
22810
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22790
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22811
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22791
22812
  #elif CYTHON_COMPILING_IN_LIMITED_API
22792
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22813
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22793
22814
  #else
22794
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22815
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22795
22816
  #endif
22796
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 841, __pyx_L1_error)
22797
- __pyx_mstate->__pyx_ptype_5numpy_character = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "character",
22817
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 841, __pyx_L1_error)
22818
+ __pyx_mstate->__pyx_ptype_5numpy_character = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "character",
22798
22819
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22799
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22820
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22800
22821
  #elif CYTHON_COMPILING_IN_LIMITED_API
22801
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22822
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22802
22823
  #else
22803
- sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyObject),
22824
+ sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyObject),
22804
22825
  #endif
22805
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(2, 843, __pyx_L1_error)
22806
- __pyx_mstate->__pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_1_2(__pyx_t_1, "numpy", "ufunc",
22826
+ __Pyx_ImportType_CheckSize_Warn_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(2, 843, __pyx_L1_error)
22827
+ __pyx_mstate->__pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_1_6(__pyx_t_1, "numpy", "ufunc",
22807
22828
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
22808
- sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyUFuncObject),
22829
+ sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyUFuncObject),
22809
22830
  #elif CYTHON_COMPILING_IN_LIMITED_API
22810
- sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyUFuncObject),
22831
+ sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyUFuncObject),
22811
22832
  #else
22812
- sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(PyUFuncObject),
22833
+ sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_6(PyUFuncObject),
22813
22834
  #endif
22814
- __Pyx_ImportType_CheckSize_Ignore_3_1_2); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 907, __pyx_L1_error)
22835
+ __Pyx_ImportType_CheckSize_Ignore_3_1_6); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 907, __pyx_L1_error)
22815
22836
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22816
22837
  __Pyx_RefNannyFinishContext();
22817
22838
  return 0;
@@ -22841,21 +22862,21 @@ static int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate) {
22841
22862
  /*--- Function import code ---*/
22842
22863
  __pyx_t_1 = PyImport_ImportModule("obliquetree.src.utils"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error)
22843
22864
  __Pyx_GOTREF(__pyx_t_1);
22844
- if (__Pyx_ImportFunction_3_1_2(__pyx_t_1, "sort_pointer_array", (void (**)(void))&__pyx_f_11obliquetree_3src_5utils_sort_pointer_array, "void (struct __pyx_t_11obliquetree_3src_5utils_SortItem *, int const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22845
- if (__Pyx_ImportFunction_3_1_2(__pyx_t_1, "populate_indices", (void (**)(void))&__pyx_f_11obliquetree_3src_5utils_populate_indices, "void (int const , int const , int const , int const , int const , int *, int *, int const *, int const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22846
- if (__Pyx_ImportFunction_3_1_2(__pyx_t_1, "sort_pointer_array_count", (void (**)(void))&__pyx_f_11obliquetree_3src_5utils_sort_pointer_array_count, "void (struct __pyx_t_11obliquetree_3src_5utils_SortItem *, int *, struct __pyx_t_11obliquetree_3src_5utils_SortItem *, int const , int const , int const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22865
+ if (__Pyx_ImportFunction_3_1_6(__pyx_t_1, "sort_pointer_array", (void (**)(void))&__pyx_f_11obliquetree_3src_5utils_sort_pointer_array, "void (struct __pyx_t_11obliquetree_3src_5utils_SortItem *, int const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22866
+ if (__Pyx_ImportFunction_3_1_6(__pyx_t_1, "populate_indices", (void (**)(void))&__pyx_f_11obliquetree_3src_5utils_populate_indices, "void (int const , int const , int const , int const , int const , int *, int *, int const *, int const *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22867
+ if (__Pyx_ImportFunction_3_1_6(__pyx_t_1, "sort_pointer_array_count", (void (**)(void))&__pyx_f_11obliquetree_3src_5utils_sort_pointer_array_count, "void (struct __pyx_t_11obliquetree_3src_5utils_SortItem *, int *, struct __pyx_t_11obliquetree_3src_5utils_SortItem *, int const , int const , int const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22847
22868
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22848
22869
  __pyx_t_1 = PyImport_ImportModule("obliquetree.src.oblique"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error)
22849
22870
  __Pyx_GOTREF(__pyx_t_1);
22850
- if (__Pyx_ImportFunction_3_1_2(__pyx_t_1, "analyze", (void (**)(void))&__pyx_f_11obliquetree_3src_7oblique_analyze, "__pyx_ctuple_double__ptr__and_int__ptr (int const , int const , int const , PyArrayObject *, PyArrayObject *, PyArrayObject *, int const *, struct __pyx_t_11obliquetree_3src_5utils_SortItem *, int const , int const , int const *, PyObject *, double const , int const , double const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22871
+ if (__Pyx_ImportFunction_3_1_6(__pyx_t_1, "analyze", (void (**)(void))&__pyx_f_11obliquetree_3src_7oblique_analyze, "__pyx_ctuple_double__ptr__and_int__ptr (int const , int const , int const , PyArrayObject *, PyArrayObject *, PyArrayObject *, int const *, struct __pyx_t_11obliquetree_3src_5utils_SortItem *, int const , int const , int const *, PyObject *, double const , int const , double const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22851
22872
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22852
22873
  __pyx_t_1 = PyImport_ImportModule("obliquetree.src.metric"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error)
22853
22874
  __Pyx_GOTREF(__pyx_t_1);
22854
- if (__Pyx_ImportFunction_3_1_2(__pyx_t_1, "calculate_impurity", (void (**)(void))&__pyx_f_11obliquetree_3src_6metric_calculate_impurity, "double (int const , int const , struct __pyx_t_11obliquetree_3src_5utils_SortItem *, double const *, double const *, int *, struct __pyx_t_11obliquetree_3src_4tree_CategoryStat *, int const , int const , int const , double *, int *, int *, int const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22855
- if (__Pyx_ImportFunction_3_1_2(__pyx_t_1, "calculate_node_value", (void (**)(void))&__pyx_f_11obliquetree_3src_6metric_calculate_node_value, "double (__Pyx_memviewslice, __Pyx_memviewslice, int const *, int const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22856
- if (__Pyx_ImportFunction_3_1_2(__pyx_t_1, "calculate_node_gini", (void (**)(void))&__pyx_f_11obliquetree_3src_6metric_calculate_node_gini, "double (int const *, __Pyx_memviewslice, __Pyx_memviewslice, int const , struct __pyx_opt_args_11obliquetree_3src_6metric_calculate_node_gini *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22857
- if (__Pyx_ImportFunction_3_1_2(__pyx_t_1, "calculate_node_mse", (void (**)(void))&__pyx_f_11obliquetree_3src_6metric_calculate_node_mse, "double (int const *, __Pyx_memviewslice, __Pyx_memviewslice, int const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22858
- if (__Pyx_ImportFunction_3_1_2(__pyx_t_1, "calculate_node_value_multiclass", (void (**)(void))&__pyx_f_11obliquetree_3src_6metric_calculate_node_value_multiclass, "void (__Pyx_memviewslice, __Pyx_memviewslice, int const *, int const , int const , double **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22875
+ if (__Pyx_ImportFunction_3_1_6(__pyx_t_1, "calculate_impurity", (void (**)(void))&__pyx_f_11obliquetree_3src_6metric_calculate_impurity, "double (int const , int const , struct __pyx_t_11obliquetree_3src_5utils_SortItem *, double const *, double const *, int *, struct __pyx_t_11obliquetree_3src_4tree_CategoryStat *, int const , int const , int const , double *, int *, int *, int const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22876
+ if (__Pyx_ImportFunction_3_1_6(__pyx_t_1, "calculate_node_value", (void (**)(void))&__pyx_f_11obliquetree_3src_6metric_calculate_node_value, "double (__Pyx_memviewslice, __Pyx_memviewslice, int const *, int const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22877
+ if (__Pyx_ImportFunction_3_1_6(__pyx_t_1, "calculate_node_gini", (void (**)(void))&__pyx_f_11obliquetree_3src_6metric_calculate_node_gini, "double (int const *, __Pyx_memviewslice, __Pyx_memviewslice, int const , struct __pyx_opt_args_11obliquetree_3src_6metric_calculate_node_gini *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22878
+ if (__Pyx_ImportFunction_3_1_6(__pyx_t_1, "calculate_node_mse", (void (**)(void))&__pyx_f_11obliquetree_3src_6metric_calculate_node_mse, "double (int const *, __Pyx_memviewslice, __Pyx_memviewslice, int const )") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22879
+ if (__Pyx_ImportFunction_3_1_6(__pyx_t_1, "calculate_node_value_multiclass", (void (**)(void))&__pyx_f_11obliquetree_3src_6metric_calculate_node_value_multiclass, "void (__Pyx_memviewslice, __Pyx_memviewslice, int const *, int const , int const , double **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22859
22880
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22860
22881
  __Pyx_RefNannyFinishContext();
22861
22882
  return 0;
@@ -23100,7 +23121,7 @@ if (!__Pyx_RefNanny) {
23100
23121
  #endif
23101
23122
 
23102
23123
  __Pyx_RefNannySetupContext("PyInit_tree", 0);
23103
- if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23124
+ if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23104
23125
  #ifdef __Pxy_PyFrame_Initialize_Offsets
23105
23126
  __Pxy_PyFrame_Initialize_Offsets();
23106
23127
  #endif
@@ -23108,30 +23129,30 @@ __Pyx_RefNannySetupContext("PyInit_tree", 0);
23108
23129
  __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
23109
23130
  __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
23110
23131
  /*--- Initialize various global constants etc. ---*/
23111
- if (__Pyx_InitConstants(__pyx_mstate) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23132
+ if (__Pyx_InitConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23112
23133
  stringtab_initialized = 1;
23113
- if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23134
+ if (__Pyx_InitGlobals() < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23114
23135
  #if 0 || defined(__Pyx_CyFunction_USED) || defined(__Pyx_FusedFunction_USED) || defined(__Pyx_Coroutine_USED) || defined(__Pyx_Generator_USED) || defined(__Pyx_AsyncGen_USED)
23115
- if (__pyx_CommonTypesMetaclass_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23136
+ if (__pyx_CommonTypesMetaclass_init(__pyx_m) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23116
23137
  #endif
23117
23138
  #ifdef __Pyx_CyFunction_USED
23118
- if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23139
+ if (__pyx_CyFunction_init(__pyx_m) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23119
23140
  #endif
23120
23141
  #ifdef __Pyx_FusedFunction_USED
23121
- if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23142
+ if (__pyx_FusedFunction_init(__pyx_m) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23122
23143
  #endif
23123
23144
  #ifdef __Pyx_Coroutine_USED
23124
- if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23145
+ if (__pyx_Coroutine_init(__pyx_m) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23125
23146
  #endif
23126
23147
  #ifdef __Pyx_Generator_USED
23127
- if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23148
+ if (__pyx_Generator_init(__pyx_m) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23128
23149
  #endif
23129
23150
  #ifdef __Pyx_AsyncGen_USED
23130
- if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23151
+ if (__pyx_AsyncGen_init(__pyx_m) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23131
23152
  #endif
23132
23153
  /*--- Library function declarations ---*/
23133
23154
  if (__pyx_module_is_main_obliquetree__src__tree) {
23134
- if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name_2, __pyx_mstate_global->__pyx_n_u_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23155
+ if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name_2, __pyx_mstate_global->__pyx_n_u_main) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23135
23156
  }
23136
23157
  {
23137
23158
  PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
@@ -23140,10 +23161,10 @@ __Pyx_RefNannySetupContext("PyInit_tree", 0);
23140
23161
  }
23141
23162
  }
23142
23163
  /*--- Builtin init code ---*/
23143
- if (__Pyx_InitCachedBuiltins(__pyx_mstate) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23164
+ if (__Pyx_InitCachedBuiltins(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23144
23165
  /*--- Constants init code ---*/
23145
- if (__Pyx_InitCachedConstants(__pyx_mstate) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23146
- if (__Pyx_CreateCodeObjects(__pyx_mstate) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23166
+ if (__Pyx_InitCachedConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23167
+ if (__Pyx_CreateCodeObjects(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23147
23168
  /*--- Global type/function init code ---*/
23148
23169
  (void)__Pyx_modinit_global_init_code(__pyx_mstate);
23149
23170
  (void)__Pyx_modinit_variable_export_code(__pyx_mstate);
@@ -23294,7 +23315,7 @@ __Pyx_RefNannySetupContext("PyInit_tree", 0);
23294
23315
  */
23295
23316
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_mstate_global->__pyx_n_u_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 240, __pyx_L10_error)
23296
23317
  __Pyx_GOTREF(__pyx_t_5);
23297
- if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_array_type, __pyx_mstate_global->__pyx_n_u_count, __pyx_t_5) < 0) __PYX_ERR(1, 240, __pyx_L10_error)
23318
+ if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_array_type, __pyx_mstate_global->__pyx_n_u_count, __pyx_t_5) < (0)) __PYX_ERR(1, 240, __pyx_L10_error)
23298
23319
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23299
23320
 
23300
23321
  /* "View.MemoryView":241
@@ -23306,7 +23327,7 @@ __Pyx_RefNannySetupContext("PyInit_tree", 0);
23306
23327
  */
23307
23328
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 241, __pyx_L10_error)
23308
23329
  __Pyx_GOTREF(__pyx_t_5);
23309
- if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_array_type, __pyx_mstate_global->__pyx_n_u_index, __pyx_t_5) < 0) __PYX_ERR(1, 241, __pyx_L10_error)
23330
+ if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_array_type, __pyx_mstate_global->__pyx_n_u_index, __pyx_t_5) < (0)) __PYX_ERR(1, 241, __pyx_L10_error)
23310
23331
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23311
23332
 
23312
23333
  /* "View.MemoryView":239
@@ -23516,7 +23537,7 @@ __Pyx_RefNannySetupContext("PyInit_tree", 0);
23516
23537
  */
23517
23538
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_mstate_global->__pyx_n_u_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 983, __pyx_L18_error)
23518
23539
  __Pyx_GOTREF(__pyx_t_5);
23519
- if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_memoryviewslice_type, __pyx_mstate_global->__pyx_n_u_count, __pyx_t_5) < 0) __PYX_ERR(1, 983, __pyx_L18_error)
23540
+ if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_memoryviewslice_type, __pyx_mstate_global->__pyx_n_u_count, __pyx_t_5) < (0)) __PYX_ERR(1, 983, __pyx_L18_error)
23520
23541
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23521
23542
 
23522
23543
  /* "View.MemoryView":984
@@ -23528,7 +23549,7 @@ __Pyx_RefNannySetupContext("PyInit_tree", 0);
23528
23549
  */
23529
23550
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 984, __pyx_L18_error)
23530
23551
  __Pyx_GOTREF(__pyx_t_5);
23531
- if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_memoryviewslice_type, __pyx_mstate_global->__pyx_n_u_index, __pyx_t_5) < 0) __PYX_ERR(1, 984, __pyx_L18_error)
23552
+ if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_memoryviewslice_type, __pyx_mstate_global->__pyx_n_u_index, __pyx_t_5) < (0)) __PYX_ERR(1, 984, __pyx_L18_error)
23532
23553
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23533
23554
 
23534
23555
  /* "View.MemoryView":982
@@ -23683,7 +23704,7 @@ __Pyx_RefNannySetupContext("PyInit_tree", 0);
23683
23704
  */
23684
23705
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_mstate_global->__pyx_n_u_View_MemoryView); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1, __pyx_L1_error)
23685
23706
  __Pyx_GOTREF(__pyx_t_5);
23686
- if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Enum, __pyx_t_5) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
23707
+ if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Enum, __pyx_t_5) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
23687
23708
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23688
23709
 
23689
23710
  /* "obliquetree/src/tree.pyx":1
@@ -23693,7 +23714,7 @@ __Pyx_RefNannySetupContext("PyInit_tree", 0);
23693
23714
  */
23694
23715
  __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error)
23695
23716
  __Pyx_GOTREF(__pyx_t_5);
23696
- if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
23717
+ if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_5) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
23697
23718
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23698
23719
 
23699
23720
  /*--- Wrapped vars code ---*/
@@ -23884,7 +23905,7 @@ static int __Pyx_InitStrings(__Pyx_StringTabEntry const *t, PyObject **target, c
23884
23905
  static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) {
23885
23906
  CYTHON_UNUSED_VAR(__pyx_mstate);
23886
23907
  __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 50, __pyx_L1_error)
23887
- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_range); if (!__pyx_builtin_range) __PYX_ERR(0, 156, __pyx_L1_error)
23908
+ __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_range); if (!__pyx_builtin_range) __PYX_ERR(0, 157, __pyx_L1_error)
23888
23909
  __pyx_builtin___import__ = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_import); if (!__pyx_builtin___import__) __PYX_ERR(1, 101, __pyx_L1_error)
23889
23910
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 139, __pyx_L1_error)
23890
23911
  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 157, __pyx_L1_error)
@@ -24183,7 +24204,7 @@ __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
24183
24204
  res = PyTuple_New(n);
24184
24205
  if (unlikely(res == NULL)) return NULL;
24185
24206
  for (i = 0; i < n; i++) {
24186
- if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < 0)) {
24207
+ if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < (0))) {
24187
24208
  Py_DECREF(res);
24188
24209
  return NULL;
24189
24210
  }
@@ -26921,6 +26942,7 @@ static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject
26921
26942
  changed = 1;
26922
26943
  }
26923
26944
  #endif // CYTHON_METH_FASTCALL
26945
+ #if !CYTHON_COMPILING_IN_PYPY
26924
26946
  else if (strcmp(memb->name, "__module__") == 0) {
26925
26947
  PyObject *descr;
26926
26948
  assert(memb->type == T_OBJECT);
@@ -26935,11 +26957,13 @@ static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject
26935
26957
  }
26936
26958
  changed = 1;
26937
26959
  }
26960
+ #endif // !CYTHON_COMPILING_IN_PYPY
26938
26961
  }
26939
26962
  memb++;
26940
26963
  }
26941
26964
  }
26942
26965
  #endif // !CYTHON_COMPILING_IN_LIMITED_API
26966
+ #if !CYTHON_COMPILING_IN_PYPY
26943
26967
  slot = spec->slots;
26944
26968
  while (slot && slot->slot && slot->slot != Py_tp_getset)
26945
26969
  slot++;
@@ -26971,6 +26995,7 @@ static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject
26971
26995
  ++getset;
26972
26996
  }
26973
26997
  }
26998
+ #endif // !CYTHON_COMPILING_IN_PYPY
26974
26999
  if (changed)
26975
27000
  PyType_Modified(type);
26976
27001
  #endif // PY_VERSION_HEX > 0x030900B1
@@ -27075,6 +27100,13 @@ try_unpack:
27075
27100
 
27076
27101
  /* PyObjectCallMethod0 */
27077
27102
  static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
27103
+ #if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))
27104
+ PyObject *args[1] = {obj};
27105
+ (void) __Pyx_PyObject_GetMethod;
27106
+ (void) __Pyx_PyObject_CallOneArg;
27107
+ (void) __Pyx_PyObject_CallNoArg;
27108
+ return PyObject_VectorcallMethod(method_name, args, 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
27109
+ #else
27078
27110
  PyObject *method = NULL, *result = NULL;
27079
27111
  int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
27080
27112
  if (likely(is_method)) {
@@ -27087,6 +27119,7 @@ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name
27087
27119
  Py_DECREF(method);
27088
27120
  bad:
27089
27121
  return result;
27122
+ #endif
27090
27123
  }
27091
27124
 
27092
27125
  /* ValidateBasesTuple */
@@ -27516,15 +27549,15 @@ __PYX_GOOD:
27516
27549
  }
27517
27550
 
27518
27551
  /* TypeImport */
27519
- #ifndef __PYX_HAVE_RT_ImportType_3_1_2
27520
- #define __PYX_HAVE_RT_ImportType_3_1_2
27521
- static PyTypeObject *__Pyx_ImportType_3_1_2(PyObject *module, const char *module_name, const char *class_name,
27522
- size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_1_2 check_size)
27552
+ #ifndef __PYX_HAVE_RT_ImportType_3_1_6
27553
+ #define __PYX_HAVE_RT_ImportType_3_1_6
27554
+ static PyTypeObject *__Pyx_ImportType_3_1_6(PyObject *module, const char *module_name, const char *class_name,
27555
+ size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_1_6 check_size)
27523
27556
  {
27524
27557
  PyObject *result = 0;
27525
27558
  Py_ssize_t basicsize;
27526
27559
  Py_ssize_t itemsize;
27527
- #if CYTHON_COMPILING_IN_LIMITED_API
27560
+ #if defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API)
27528
27561
  PyObject *py_basicsize;
27529
27562
  PyObject *py_itemsize;
27530
27563
  #endif
@@ -27537,7 +27570,7 @@ static PyTypeObject *__Pyx_ImportType_3_1_2(PyObject *module, const char *module
27537
27570
  module_name, class_name);
27538
27571
  goto bad;
27539
27572
  }
27540
- #if !CYTHON_COMPILING_IN_LIMITED_API
27573
+ #if !( defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API) )
27541
27574
  basicsize = ((PyTypeObject *)result)->tp_basicsize;
27542
27575
  itemsize = ((PyTypeObject *)result)->tp_itemsize;
27543
27576
  #else
@@ -27575,7 +27608,7 @@ static PyTypeObject *__Pyx_ImportType_3_1_2(PyObject *module, const char *module
27575
27608
  module_name, class_name, size, basicsize+itemsize);
27576
27609
  goto bad;
27577
27610
  }
27578
- if (check_size == __Pyx_ImportType_CheckSize_Error_3_1_2 &&
27611
+ if (check_size == __Pyx_ImportType_CheckSize_Error_3_1_6 &&
27579
27612
  ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
27580
27613
  PyErr_Format(PyExc_ValueError,
27581
27614
  "%.200s.%.200s size changed, may indicate binary incompatibility. "
@@ -27583,7 +27616,7 @@ static PyTypeObject *__Pyx_ImportType_3_1_2(PyObject *module, const char *module
27583
27616
  module_name, class_name, size, basicsize, basicsize+itemsize);
27584
27617
  goto bad;
27585
27618
  }
27586
- else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_1_2 && (size_t)basicsize > size) {
27619
+ else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_1_6 && (size_t)basicsize > size) {
27587
27620
  if (PyErr_WarnFormat(NULL, 0,
27588
27621
  "%.200s.%.200s size changed, may indicate binary incompatibility. "
27589
27622
  "Expected %zd from C header, got %zd from PyObject",
@@ -29717,9 +29750,9 @@ bad:
29717
29750
  }
29718
29751
 
29719
29752
  /* FunctionImport */
29720
- #ifndef __PYX_HAVE_RT_ImportFunction_3_1_2
29721
- #define __PYX_HAVE_RT_ImportFunction_3_1_2
29722
- static int __Pyx_ImportFunction_3_1_2(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
29753
+ #ifndef __PYX_HAVE_RT_ImportFunction_3_1_6
29754
+ #define __PYX_HAVE_RT_ImportFunction_3_1_6
29755
+ static int __Pyx_ImportFunction_3_1_6(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
29723
29756
  PyObject *d = 0;
29724
29757
  PyObject *cobj = 0;
29725
29758
  union {
@@ -30011,6 +30044,17 @@ static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
30011
30044
  static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t ival) {
30012
30045
  return PyLong_FromSize_t(ival);
30013
30046
  }
30047
+ #if CYTHON_USE_PYLONG_INTERNALS
30048
+ static CYTHON_INLINE int __Pyx_PyLong_CompactAsLong(PyObject *x, long *return_value) {
30049
+ if (unlikely(!__Pyx_PyLong_IsCompact(x)))
30050
+ return 0;
30051
+ Py_ssize_t value = __Pyx_PyLong_CompactValue(x);
30052
+ if ((sizeof(long) < sizeof(Py_ssize_t)) && unlikely(value != (long) value))
30053
+ return 0;
30054
+ *return_value = (long) value;
30055
+ return 1;
30056
+ }
30057
+ #endif
30014
30058
 
30015
30059
 
30016
30060
  /* MultiPhaseInitModuleState */