diff --git a/.codecov.yml b/.codecov.yml
new file mode 100644
index 00000000000..466a0fb42b7
--- /dev/null
+++ b/.codecov.yml
@@ -0,0 +1,15 @@
+# https://docs.codecov.com/docs/pull-request-comments#disable-comment
+comment: false
+# https://docs.codecov.com/docs/commit-status
+coverage:
+ status:
+ project:
+ default:
+ target: auto
+ threshold: 0%
+ base: auto
+ patch:
+ default:
+ target: auto
+ threshold: 0%
+ base: auto
diff --git a/.devcontainer/portability-Dockerfile b/.devcontainer/portability-Dockerfile
index 532a1854258..777c6b178d5 100644
--- a/.devcontainer/portability-Dockerfile
+++ b/.devcontainer/portability-Dockerfile
@@ -5,4 +5,4 @@ ARG SYSTEM_FACTOR="ubuntu-jammy"
ARG PACKAGE_FACTOR="standard"
ARG DOCKER_TARGET="with-system-packages"
ARG DOCKER_TAG="dev"
-FROM ghcr.io/sagemath/sage/sage-docker-${SYSTEM_FACTOR}-${PACKAGE_FACTOR}-${DOCKER_TARGET}:${DOCKER_TAG}
+FROM ghcr.io/sagemath/sage/sage-${SYSTEM_FACTOR}-${PACKAGE_FACTOR}-${DOCKER_TARGET}:${DOCKER_TAG}
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 0ba5857b820..10367d46dbb 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,29 +1,29 @@
-
-### 📚 Description
+
+
+
+
+### :books: Description
-
+
-
+
+
-### 📝 Checklist
+### :memo: Checklist
-
-
-
+
-- [ ] I have made sure that the title is self-explanatory and the description concisely explains the PR.
-- [ ] I have linked an issue or discussion.
+- [ ] The title is concise, informative, and self-explanatory.
+- [ ] The description explains in detail what this PR is about.
+- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.
-### ⌛ Dependencies
-
-
+
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 814e410d29f..ab4a3cd5435 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -103,6 +103,6 @@ jobs:
- name: Upload coverage to codecov
if: always() && steps.build.outcome == 'success'
- uses: codecov/codecov-action@v2
+ uses: codecov/codecov-action@v3
with:
files: ./coverage.xml
diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml
index bc1f1c5a634..cc647914c97 100644
--- a/.github/workflows/ci-conda.yml
+++ b/.github/workflows/ci-conda.yml
@@ -23,7 +23,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
- python: [3.8, 3.9]
+ python: ['3.9', '3.10', '3.11']
conda-env: [environment, environment-optional]
steps:
@@ -41,11 +41,18 @@ jobs:
bash ~/miniconda.sh -b -p $HOME/miniconda
echo "CONDA=$HOME/miniconda" >> $GITHUB_ENV
+ # Workaround for https://github.com/actions/runner-images/issues/6910 / https://github.com/conda/conda/issues/12303
+ - name: Downgrade conda
+ if: matrix.os == 'ubuntu-latest'
+ run: |
+ conda config --set allow_conda_downgrades true
+ conda install conda=4.12.0 -y
+
- name: Create conda environment files
run: ./bootstrap-conda
- name: Cache conda packages
- uses: actions/cache@v2
+ uses: actions/cache@v3
with:
path: ~/conda_pkgs_dir
key:
diff --git a/.github/workflows/doc-build-pdf.yml b/.github/workflows/doc-build-pdf.yml
new file mode 100644
index 00000000000..1fed6b453ce
--- /dev/null
+++ b/.github/workflows/doc-build-pdf.yml
@@ -0,0 +1,51 @@
+name: Build documentation (PDF)
+
+on:
+ pull_request:
+ push:
+ workflow_dispatch:
+ # Allow to run manually
+
+concurrency:
+ # Cancel previous runs of this workflow for the same branch
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build-docs:
+ runs-on: ubuntu-latest
+ # Use "maximal" so that texlive is installed
+ # Use "fedora-31" for build diversity
+ container: ghcr.io/sagemath/sage/sage-docker-fedora-31-maximal-with-targets:dev
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Prepare
+ run: |
+ apt-get update && apt-get install -y zip
+ # Reuse built SAGE_LOCAL contained in the Docker image
+ ./bootstrap
+ ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-download-from-upstream-url
+
+ - name: Build
+ run: make build V=0 && make doc-pdf
+ env:
+ MAKE: make -j2
+ SAGE_NUM_THREADS: 2
+ TEXMFHOME: /sage/texmf
+
+ - name: Copy docs
+ run: |
+ # For some reason the deploy step below cannot find /sage/...
+ # So copy everything from there to local folder
+ mkdir -p ./docs
+ cp -r -L /sage/local/share/doc/sage/pdf/en/* ./docs
+ # Zip everything for increased performance
+ zip -r docs-pdf.zip docs
+
+ - name: Upload docs
+ uses: actions/upload-artifact@v3
+ with:
+ name: docs-pdf
+ path: docs-pdf.zip
diff --git a/.github/workflows/doc-publish.yml b/.github/workflows/doc-publish.yml
index c7be4a46d3b..ec79a52de79 100644
--- a/.github/workflows/doc-publish.yml
+++ b/.github/workflows/doc-publish.yml
@@ -28,7 +28,7 @@ jobs:
# Once https://github.com/actions/download-artifact/issues/172 and/or https://github.com/actions/download-artifact/issues/60 is implemented, we can use the official download-artifact action
# For now use the solution from https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#using-data-from-the-triggering-workflow
- name: Download docs
- uses: actions/github-script@v3.1.0
+ uses: actions/github-script@v6.4.0
with:
script: |
var artifacts = await github.actions.listWorkflowRunArtifacts({
diff --git a/.zenodo.json b/.zenodo.json
index ddfb955b844..56512cfc3c9 100644
--- a/.zenodo.json
+++ b/.zenodo.json
@@ -1,10 +1,10 @@
{
"description": "Mirror of the Sage https://sagemath.org/ source tree",
"license": "other-open",
- "title": "sagemath/sage: 10.0.beta5",
- "version": "10.0.beta5",
+ "title": "sagemath/sage: 10.0.beta6",
+ "version": "10.0.beta6",
"upload_type": "software",
- "publication_date": "2023-03-19",
+ "publication_date": "2023-03-26",
"creators": [
{
"affiliation": "SageMath.org",
@@ -15,7 +15,7 @@
"related_identifiers": [
{
"scheme": "url",
- "identifier": "https://github.com/sagemath/sage/tree/10.0.beta5",
+ "identifier": "https://github.com/sagemath/sage/tree/10.0.beta6",
"relation": "isSupplementTo"
},
{
diff --git a/README.md b/README.md
index 6b8dc835480..e5a7f2b0bd6 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,9 @@
-
+
+
+
# Sage: Open Source Mathematical Software
diff --git a/VERSION.txt b/VERSION.txt
index a9061fa0ecc..077fcf8fa6e 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1 +1 @@
-SageMath version 10.0.beta5, Release Date: 2023-03-19
+SageMath version 10.0.beta6, Release Date: 2023-03-26
diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini
index c82f9166515..9eac903027b 100644
--- a/build/pkgs/configure/checksums.ini
+++ b/build/pkgs/configure/checksums.ini
@@ -1,4 +1,4 @@
tarball=configure-VERSION.tar.gz
-sha1=0ea92e19072c843aa21527e051eff0a0f97eb9ad
-md5=44e659f4d263acad8194e16952762a82
-cksum=3343113057
+sha1=c9dfa61ff70a2dceec85ad01fc37ee42232402c0
+md5=7479fb53c1b9fd56aea37f83a34cdac3
+cksum=3525422540
diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt
index cd4ed844d8f..d6f6149ac91 100644
--- a/build/pkgs/configure/package-version.txt
+++ b/build/pkgs/configure/package-version.txt
@@ -1 +1 @@
-49c2cd323e638cdfb0444d72daad21b4ddbd1887
+4452928a1a41758883e2f0e3a445b015dfa0e593
diff --git a/build/pkgs/cvxpy/SPKG.rst b/build/pkgs/cvxpy/SPKG.rst
new file mode 100644
index 00000000000..55998a0d419
--- /dev/null
+++ b/build/pkgs/cvxpy/SPKG.rst
@@ -0,0 +1,18 @@
+cvxpy: A domain-specific language for modeling convex optimization problems in Python.
+======================================================================================
+
+Description
+-----------
+
+A domain-specific language for modeling convex optimization problems in Python.
+
+License
+-------
+
+Apache License, Version 2.0
+
+Upstream Contact
+----------------
+
+https://pypi.org/project/cvxpy/
+
diff --git a/build/pkgs/cvxpy/checksums.ini b/build/pkgs/cvxpy/checksums.ini
new file mode 100644
index 00000000000..128dcda1602
--- /dev/null
+++ b/build/pkgs/cvxpy/checksums.ini
@@ -0,0 +1,5 @@
+tarball=cvxpy-VERSION.tar.gz
+sha1=8c87f8f8c2177f917ec2fad7d2b510787ffdf72d
+md5=408b0a3140750299207f61de95b4ed6e
+cksum=3643150234
+upstream_url=https://pypi.io/packages/source/c/cvxpy/cvxpy-VERSION.tar.gz
diff --git a/build/pkgs/cvxpy/dependencies b/build/pkgs/cvxpy/dependencies
new file mode 100644
index 00000000000..540b44ff0f2
--- /dev/null
+++ b/build/pkgs/cvxpy/dependencies
@@ -0,0 +1,4 @@
+$(PYTHON) numpy scipy glpk cvxopt osqp_python ecos_python scs | $(PYTHON_TOOLCHAIN)
+
+----------
+All lines of this file are ignored except the first.
diff --git a/build/pkgs/cvxpy/distros/conda.txt b/build/pkgs/cvxpy/distros/conda.txt
new file mode 100644
index 00000000000..187142bb93e
--- /dev/null
+++ b/build/pkgs/cvxpy/distros/conda.txt
@@ -0,0 +1 @@
+cvxpy
diff --git a/build/pkgs/cvxpy/install-requires.txt b/build/pkgs/cvxpy/install-requires.txt
new file mode 100644
index 00000000000..187142bb93e
--- /dev/null
+++ b/build/pkgs/cvxpy/install-requires.txt
@@ -0,0 +1 @@
+cvxpy
diff --git a/build/pkgs/cvxpy/package-version.txt b/build/pkgs/cvxpy/package-version.txt
new file mode 100644
index 00000000000..f0bb29e7638
--- /dev/null
+++ b/build/pkgs/cvxpy/package-version.txt
@@ -0,0 +1 @@
+1.3.0
diff --git a/build/pkgs/cvxpy/spkg-install.in b/build/pkgs/cvxpy/spkg-install.in
new file mode 100644
index 00000000000..a143d1eff96
--- /dev/null
+++ b/build/pkgs/cvxpy/spkg-install.in
@@ -0,0 +1,3 @@
+cd src
+# --no-build-isolation to ignore the numpy version pin in pyproject.toml
+sdh_pip_install --no-build-isolation .
diff --git a/build/pkgs/cvxpy/type b/build/pkgs/cvxpy/type
new file mode 100644
index 00000000000..134d9bc32d5
--- /dev/null
+++ b/build/pkgs/cvxpy/type
@@ -0,0 +1 @@
+optional
diff --git a/build/pkgs/cylp/SPKG.rst b/build/pkgs/cylp/SPKG.rst
index 1bb0c61738d..10b8192e39c 100644
--- a/build/pkgs/cylp/SPKG.rst
+++ b/build/pkgs/cylp/SPKG.rst
@@ -9,7 +9,11 @@ A Python interface for CLP, CBC, and CGL
License
-------
-Eclipse Public License
+Eclipse Public License (EPL) version 2 (without a Secondary Licenses Notice).
+
+Note: This license is incompatible with the GPL according to
+https://www.gnu.org/licenses/license-list.html#EPL2;
+see also the discussion in :trac:`26511`.
Upstream Contact
----------------
diff --git a/build/pkgs/cylp/checksums.ini b/build/pkgs/cylp/checksums.ini
index 1b44a7d5faa..0a073c1569a 100644
--- a/build/pkgs/cylp/checksums.ini
+++ b/build/pkgs/cylp/checksums.ini
@@ -1,5 +1,5 @@
tarball=cylp-VERSION.tar.gz
-sha1=54965f2ae9b914df7817dffd53bc34925a6fadd4
-md5=a4f50e6b24a7fcd2e890a9e7e8825437
-cksum=4132703858
+sha1=1c2d20933abc48ed2fefc1ae45d8f9492fc2eef2
+md5=ac0308a916dac5dd84f831dbc0fba5c5
+cksum=1532166313
upstream_url=https://pypi.io/packages/source/c/cylp/cylp-VERSION.tar.gz
diff --git a/build/pkgs/cylp/package-version.txt b/build/pkgs/cylp/package-version.txt
index ad7e0bcae92..1d5e6c02bae 100644
--- a/build/pkgs/cylp/package-version.txt
+++ b/build/pkgs/cylp/package-version.txt
@@ -1 +1 @@
-0.91.4
+0.91.5
diff --git a/build/pkgs/cylp/patches/e619c4b94e279e96842da0d38ae657f06f1e9415.patch b/build/pkgs/cylp/patches/e619c4b94e279e96842da0d38ae657f06f1e9415.patch
deleted file mode 100644
index 295cae02b2c..00000000000
--- a/build/pkgs/cylp/patches/e619c4b94e279e96842da0d38ae657f06f1e9415.patch
+++ /dev/null
@@ -1,88285 +0,0 @@
-From e619c4b94e279e96842da0d38ae657f06f1e9415 Mon Sep 17 00:00:00 2001
-From: Ted Ralphs
-Date: Wed, 15 Dec 2021 18:01:49 -0500
-Subject: [PATCH] Re-generating with Cython 0.29.27 for Python 3.10
- compatibility. Fixes #132
-
----
- cylp/cy/CyCbcModel.cpp | 3071 ++++++--------------
- cylp/cy/CyCbcNode.cpp | 3671 +++++++-----------------
- cylp/cy/CyCgl.cpp | 3248 +++++++--------------
- cylp/cy/CyCglCutGeneratorBase.cpp | 3652 +++++++----------------
- cylp/cy/CyCglTreeInfo.cpp | 355 ++-
- cylp/cy/CyClpDualRowPivotBase.cpp | 3623 +++++++----------------
- cylp/cy/CyClpPrimalColumnPivotBase.cpp | 3652 +++++++----------------
- cylp/cy/CyClpSimplex.cpp | 2852 +++++-------------
- cylp/cy/CyCoinIndexedVector.cpp | 470 ++-
- cylp/cy/CyCoinModel.cpp | 3055 +++++---------------
- cylp/cy/CyCoinMpsIO.cpp | 2732 +++++-------------
- cylp/cy/CyCoinPackedMatrix.cpp | 3026 +++++--------------
- cylp/cy/CyCutGeneratorPythonBase.cpp | 2994 +++++--------------
- cylp/cy/CyDantzigPivot.cpp | 3217 ++++++---------------
- cylp/cy/CyDualPivotPythonBase.cpp | 3018 ++++++-------------
- cylp/cy/CyOsiCuts.cpp | 3040 ++++++--------------
- cylp/cy/CyOsiSolverInterface.cpp | 3037 +++++---------------
- cylp/cy/CyPEPivot.cpp | 3214 ++++++---------------
- cylp/cy/CyPivotPythonBase.cpp | 3174 ++++++--------------
- cylp/cy/CyTest.cpp | 3588 +++++++----------------
- cylp/cy/CyWolfePivot.cpp | 3292 +++++++--------------
- 21 files changed, 17581 insertions(+), 44400 deletions(-)
-
-diff --git a/cylp/cy/CyCbcModel.cpp b/cylp/cy/CyCbcModel.cpp
-index 14b5c2a..c62fd3b 100644
---- a/cylp/cy/CyCbcModel.cpp
-+++ b/cylp/cy/CyCbcModel.cpp
-@@ -1,14 +1,16 @@
--/* Generated by Cython 0.29.21 */
-+/* Generated by Cython 0.29.25 */
-
-+#ifndef PY_SSIZE_T_CLEAN
- #define PY_SSIZE_T_CLEAN
-+#endif /* PY_SSIZE_T_CLEAN */
- #include "Python.h"
- #ifndef Py_PYTHON_H
- #error Python headers needed to compile C extensions, please install development version of Python.
- #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
- #error Cython requires Python 2.6+ or Python 3.3+.
- #else
--#define CYTHON_ABI "0_29_21"
--#define CYTHON_HEX_VERSION 0x001D15F0
-+#define CYTHON_ABI "0_29_25"
-+#define CYTHON_HEX_VERSION 0x001D19F0
- #define CYTHON_FUTURE_DIVISION 0
- #include
- #ifndef offsetof
-@@ -155,7 +157,7 @@
- #ifndef CYTHON_USE_UNICODE_INTERNALS
- #define CYTHON_USE_UNICODE_INTERNALS 1
- #endif
-- #if PY_VERSION_HEX < 0x030300F0
-+ #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
- #undef CYTHON_USE_UNICODE_WRITER
- #define CYTHON_USE_UNICODE_WRITER 0
- #elif !defined(CYTHON_USE_UNICODE_WRITER)
-@@ -174,7 +176,7 @@
- #define CYTHON_FAST_THREAD_STATE 1
- #endif
- #ifndef CYTHON_FAST_PYCALL
-- #define CYTHON_FAST_PYCALL 1
-+ #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1)
- #endif
- #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
- #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
-@@ -193,7 +195,9 @@
- #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
- #endif
- #if CYTHON_USE_PYLONG_INTERNALS
-- #include "longintrepr.h"
-+ #if PY_MAJOR_VERSION < 3
-+ #include "longintrepr.h"
-+ #endif
- #undef SHIFT
- #undef BASE
- #undef MASK
-@@ -324,9 +328,68 @@ class __Pyx_FakeReference {
- #define __Pyx_DefaultClassType PyClass_Type
- #else
- #define __Pyx_BUILTIN_MODULE_NAME "builtins"
--#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
-- #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
-- PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
-+ #define __Pyx_DefaultClassType PyType_Type
-+#if PY_VERSION_HEX >= 0x030B00A1
-+ static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
-+ PyObject *code, PyObject *c, PyObject* n, PyObject *v,
-+ PyObject *fv, PyObject *cell, PyObject* fn,
-+ PyObject *name, int fline, PyObject *lnos) {
-+ PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
-+ PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
-+ const char *fn_cstr=NULL;
-+ const char *name_cstr=NULL;
-+ PyCodeObject* co=NULL;
-+ PyObject *type, *value, *traceback;
-+ PyErr_Fetch(&type, &value, &traceback);
-+ if (!(kwds=PyDict_New())) goto end;
-+ if (!(argcount=PyLong_FromLong(a))) goto end;
-+ if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
-+ if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
-+ if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
-+ if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
-+ if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
-+ if (!(nlocals=PyLong_FromLong(l))) goto end;
-+ if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
-+ if (!(stacksize=PyLong_FromLong(s))) goto end;
-+ if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
-+ if (!(flags=PyLong_FromLong(f))) goto end;
-+ if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
-+ if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
-+ if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
-+ if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
-+ if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
-+ if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
-+ if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
-+ if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
-+ if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
-+ if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
-+ if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
-+ if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
-+ if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
-+ if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
-+ Py_XDECREF((PyObject*)co);
-+ co = (PyCodeObject*)call_result;
-+ call_result = NULL;
-+ if (0) {
-+ cleanup_code_too:
-+ Py_XDECREF((PyObject*)co);
-+ co = NULL;
-+ }
-+ end:
-+ Py_XDECREF(kwds);
-+ Py_XDECREF(argcount);
-+ Py_XDECREF(posonlyargcount);
-+ Py_XDECREF(kwonlyargcount);
-+ Py_XDECREF(nlocals);
-+ Py_XDECREF(stacksize);
-+ Py_XDECREF(replace);
-+ Py_XDECREF(call_result);
-+ Py_XDECREF(empty);
-+ if (type) {
-+ PyErr_Restore(type, value, traceback);
-+ }
-+ return co;
-+ }
- #else
- #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
- PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
-@@ -440,8 +503,12 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
- #endif
- #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
- #define CYTHON_PEP393_ENABLED 1
-+ #if defined(PyUnicode_IS_READY)
- #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
- 0 : _PyUnicode_Ready((PyObject *)(op)))
-+ #else
-+ #define __Pyx_PyUnicode_READY(op) (0)
-+ #endif
- #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u)
- #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
- #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u)
-@@ -450,7 +517,11 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
- #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
- #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch)
- #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
-+ #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
-+ #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
-+ #else
- #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
-+ #endif
- #else
- #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
- #endif
-@@ -556,10 +627,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
- #if PY_VERSION_HEX < 0x030200A4
- typedef long Py_hash_t;
- #define __Pyx_PyInt_FromHash_t PyInt_FromLong
-- #define __Pyx_PyInt_AsHash_t PyInt_AsLong
-+ #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
- #else
- #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
-- #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t
-+ #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
- #endif
- #if PY_MAJOR_VERSION >= 3
- #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
-@@ -622,7 +693,13 @@ static CYTHON_INLINE float __PYX_NAN() {
- #include
- #include
- #include "numpy/arrayobject.h"
-+#include "numpy/ndarrayobject.h"
-+#include "numpy/ndarraytypes.h"
-+#include "numpy/arrayscalars.h"
- #include "numpy/ufuncobject.h"
-+
-+ /* NumPy API declarations from "numpy/__init__.pxd" */
-+
- #include "CglAllDifferent.hpp"
- #include "CglClique.hpp"
- #include "CglKnapsackCover.hpp"
-@@ -650,11 +727,11 @@ static CYTHON_INLINE float __PYX_NAN() {
- #include "IClpDualRowPivotBase.h"
- #include "CoinModel.hpp"
- #include "ICoinPackedMatrix.hpp"
-+#include
- #include "ios"
- #include "new"
- #include "stdexcept"
- #include "typeinfo"
--#include
- #include
- #include "IClpSimplex.hpp"
- #include "ClpSimplex.hpp"
-@@ -761,6 +838,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
- (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
- static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
- static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
-+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
- #if CYTHON_ASSUME_SAFE_MACROS
- #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
- #else
-@@ -916,7 +994,7 @@ static const char *__pyx_f[] = {
- "cylp/cy/CyCutGeneratorPythonBase.pxd",
- };
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":775
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":690
- * # in Cython to enable them only on the right systems.
- *
- * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<<
-@@ -925,7 +1003,7 @@ static const char *__pyx_f[] = {
- */
- typedef npy_int8 __pyx_t_5numpy_int8_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":776
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691
- *
- * ctypedef npy_int8 int8_t
- * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<<
-@@ -934,7 +1012,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t;
- */
- typedef npy_int16 __pyx_t_5numpy_int16_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":777
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":692
- * ctypedef npy_int8 int8_t
- * ctypedef npy_int16 int16_t
- * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<<
-@@ -943,7 +1021,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t;
- */
- typedef npy_int32 __pyx_t_5numpy_int32_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":778
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":693
- * ctypedef npy_int16 int16_t
- * ctypedef npy_int32 int32_t
- * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
-@@ -952,7 +1030,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t;
- */
- typedef npy_int64 __pyx_t_5numpy_int64_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":782
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697
- * #ctypedef npy_int128 int128_t
- *
- * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<<
-@@ -961,7 +1039,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t;
- */
- typedef npy_uint8 __pyx_t_5numpy_uint8_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":783
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698
- *
- * ctypedef npy_uint8 uint8_t
- * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<<
-@@ -970,7 +1048,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t;
- */
- typedef npy_uint16 __pyx_t_5numpy_uint16_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":784
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":699
- * ctypedef npy_uint8 uint8_t
- * ctypedef npy_uint16 uint16_t
- * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<<
-@@ -979,7 +1057,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t;
- */
- typedef npy_uint32 __pyx_t_5numpy_uint32_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":785
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":700
- * ctypedef npy_uint16 uint16_t
- * ctypedef npy_uint32 uint32_t
- * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<<
-@@ -988,7 +1066,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t;
- */
- typedef npy_uint64 __pyx_t_5numpy_uint64_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":789
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704
- * #ctypedef npy_uint128 uint128_t
- *
- * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<<
-@@ -997,7 +1075,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t;
- */
- typedef npy_float32 __pyx_t_5numpy_float32_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":790
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705
- *
- * ctypedef npy_float32 float32_t
- * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<<
-@@ -1006,7 +1084,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t;
- */
- typedef npy_float64 __pyx_t_5numpy_float64_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":799
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":714
- * # The int types are mapped a bit surprising --
- * # numpy.int corresponds to 'l' and numpy.long to 'q'
- * ctypedef npy_long int_t # <<<<<<<<<<<<<<
-@@ -1015,7 +1093,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t;
- */
- typedef npy_long __pyx_t_5numpy_int_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":800
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":715
- * # numpy.int corresponds to 'l' and numpy.long to 'q'
- * ctypedef npy_long int_t
- * ctypedef npy_longlong long_t # <<<<<<<<<<<<<<
-@@ -1024,7 +1102,7 @@ typedef npy_long __pyx_t_5numpy_int_t;
- */
- typedef npy_longlong __pyx_t_5numpy_long_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":801
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":716
- * ctypedef npy_long int_t
- * ctypedef npy_longlong long_t
- * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<<
-@@ -1033,7 +1111,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t;
- */
- typedef npy_longlong __pyx_t_5numpy_longlong_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":803
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718
- * ctypedef npy_longlong longlong_t
- *
- * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<<
-@@ -1042,7 +1120,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t;
- */
- typedef npy_ulong __pyx_t_5numpy_uint_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":804
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719
- *
- * ctypedef npy_ulong uint_t
- * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<<
-@@ -1051,7 +1129,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t;
- */
- typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":805
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":720
- * ctypedef npy_ulong uint_t
- * ctypedef npy_ulonglong ulong_t
- * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<<
-@@ -1060,7 +1138,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
- */
- typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":807
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722
- * ctypedef npy_ulonglong ulonglong_t
- *
- * ctypedef npy_intp intp_t # <<<<<<<<<<<<<<
-@@ -1069,7 +1147,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
- */
- typedef npy_intp __pyx_t_5numpy_intp_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":808
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723
- *
- * ctypedef npy_intp intp_t
- * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<<
-@@ -1078,7 +1156,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t;
- */
- typedef npy_uintp __pyx_t_5numpy_uintp_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":810
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725
- * ctypedef npy_uintp uintp_t
- *
- * ctypedef npy_double float_t # <<<<<<<<<<<<<<
-@@ -1087,7 +1165,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t;
- */
- typedef npy_double __pyx_t_5numpy_float_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":811
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726
- *
- * ctypedef npy_double float_t
- * ctypedef npy_double double_t # <<<<<<<<<<<<<<
-@@ -1096,7 +1174,7 @@ typedef npy_double __pyx_t_5numpy_float_t;
- */
- typedef npy_double __pyx_t_5numpy_double_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":812
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":727
- * ctypedef npy_double float_t
- * ctypedef npy_double double_t
- * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<<
-@@ -1162,7 +1240,7 @@ struct __pyx_obj_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase;
- struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase;
- struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":814
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729
- * ctypedef npy_longdouble longdouble_t
- *
- * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<<
-@@ -1171,7 +1249,7 @@ struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel;
- */
- typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":815
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730
- *
- * ctypedef npy_cfloat cfloat_t
- * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<<
-@@ -1180,7 +1258,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
- */
- typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":816
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":731
- * ctypedef npy_cfloat cfloat_t
- * ctypedef npy_cdouble cdouble_t
- * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<<
-@@ -1189,7 +1267,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
- */
- typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":818
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733
- * ctypedef npy_clongdouble clongdouble_t
- *
- * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<<
-@@ -1970,6 +2048,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args,
- #ifndef Py_MEMBER_SIZE
- #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
- #endif
-+#if CYTHON_FAST_PYCALL
- static size_t __pyx_pyframe_localsplus_offset = 0;
- #include "frameobject.h"
- #define __Pxy_PyFrame_Initialize_Offsets()\
-@@ -1977,6 +2056,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args,
- (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
- #define __Pyx_PyFrame_GetLocalsplus(frame)\
- (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
-+#endif // CYTHON_FAST_PYCALL
- #endif
-
- /* PyObjectCall.proto */
-@@ -2192,29 +2272,6 @@ static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
- #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
- #endif
-
--/* DictGetItem.proto */
--#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
--static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
--#define __Pyx_PyObject_Dict_GetItem(obj, name)\
-- (likely(PyDict_CheckExact(obj)) ?\
-- __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
--#else
--#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
--#define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name)
--#endif
--
--/* RaiseTooManyValuesToUnpack.proto */
--static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
--
--/* RaiseNeedMoreValuesToUnpack.proto */
--static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
--
--/* RaiseNoneIterError.proto */
--static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);
--
--/* ExtTypeTest.proto */
--static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);
--
- /* GetTopmostException.proto */
- #if CYTHON_USE_EXC_INFO_STACK
- static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
-@@ -2316,11 +2373,10 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
- static void __Pyx_AddTraceback(const char *funcname, int c_line,
- int py_line, const char *filename);
-
--/* CIntToPy.proto */
--static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
--
--/* CIntToPy.proto */
--static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
-+/* GCCDiagnostics.proto */
-+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
-+#define __Pyx_HAS_GCC_DIAGNOSTIC
-+#endif
-
- /* RealImag.proto */
- #if CYTHON_CCOMPLEX
-@@ -2420,12 +2476,15 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
- #endif
- #endif
-
--/* CIntToPy.proto */
--static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value);
--
- /* CIntFromPy.proto */
- static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
-
-+/* CIntToPy.proto */
-+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
-+
-+/* CIntToPy.proto */
-+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
-+
- /* CIntFromPy.proto */
- static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
-
-@@ -2542,8 +2601,17 @@ static PyTypeObject *__pyx_ptype_5numpy_dtype = 0;
- static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0;
- static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0;
- static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0;
-+static PyTypeObject *__pyx_ptype_5numpy_generic = 0;
-+static PyTypeObject *__pyx_ptype_5numpy_number = 0;
-+static PyTypeObject *__pyx_ptype_5numpy_integer = 0;
-+static PyTypeObject *__pyx_ptype_5numpy_signedinteger = 0;
-+static PyTypeObject *__pyx_ptype_5numpy_unsignedinteger = 0;
-+static PyTypeObject *__pyx_ptype_5numpy_inexact = 0;
-+static PyTypeObject *__pyx_ptype_5numpy_floating = 0;
-+static PyTypeObject *__pyx_ptype_5numpy_complexfloating = 0;
-+static PyTypeObject *__pyx_ptype_5numpy_flexible = 0;
-+static PyTypeObject *__pyx_ptype_5numpy_character = 0;
- static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
--static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/
-
- /* Module declarations from 'cylp.cy.CyCgl' */
- static PyTypeObject *__pyx_ptype_4cylp_2cy_5CyCgl_CyCglCutGenerator = 0;
-@@ -2624,8 +2692,6 @@ static PyObject *__pyx_builtin_zip;
- static PyObject *__pyx_builtin_AttributeError;
- static PyObject *__pyx_builtin_TypeError;
- static PyObject *__pyx_builtin_range;
--static PyObject *__pyx_builtin_ValueError;
--static PyObject *__pyx_builtin_RuntimeError;
- static const char __pyx_k_[] = "";
- static const char __pyx_k_zip[] = "zip";
- static const char __pyx_k_dims[] = "dims";
-@@ -2661,7 +2727,6 @@ static const char __pyx_k_itertools[] = "itertools";
- static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
- static const char __pyx_k_whatDepth[] = "whatDepth";
- static const char __pyx_k_CyCbcModel[] = "CyCbcModel";
--static const char __pyx_k_ValueError[] = "ValueError";
- static const char __pyx_k_atSolution[] = "atSolution";
- static const char __pyx_k_infeasible[] = "infeasible";
- static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
-@@ -2669,7 +2734,6 @@ static const char __pyx_k_ImportError[] = "ImportError";
- static const char __pyx_k_cylp_py_mip[] = "cylp.py.mip";
- static const char __pyx_k_newSolution[] = "newSolution";
- static const char __pyx_k_CyLPSolution[] = "CyLPSolution";
--static const char __pyx_k_RuntimeError[] = "RuntimeError";
- static const char __pyx_k_getVarByName[] = "getVarByName";
- static const char __pyx_k_howOftenInSub[] = "howOftenInSub";
- static const char __pyx_k_problemStatus[] = "problemStatus";
-@@ -2689,29 +2753,18 @@ static const char __pyx_k_relaxation_infeasible[] = "relaxation infeasible";
- static const char __pyx_k_stopped_on_user_event[] = "stopped on user event";
- static const char __pyx_k_pythonCutGeneratorObject[] = "pythonCutGeneratorObject";
- static const char __pyx_k_cylp_py_modeling_CyLPModel[] = "cylp.py.modeling.CyLPModel";
--static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous";
- static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import";
--static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)";
--static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd";
--static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported";
--static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous";
- static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
- static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import";
- static const char __pyx_k_setNodeCompare_argument_should_b[] = "setNodeCompare argument should be a NodeCompareBase object. Got %s";
- static const char __pyx_k_stopped_on_solutionslinear_relax[] = "stopped on solutionslinear relaxation unbounded";
--static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short.";
- static PyObject *__pyx_kp_s_;
- static PyObject *__pyx_n_s_AttributeError;
- static PyObject *__pyx_n_s_CyCbcModel;
- static PyObject *__pyx_n_s_CyLPSolution;
--static PyObject *__pyx_kp_u_Format_string_allocated_too_shor;
--static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2;
- static PyObject *__pyx_n_s_ImportError;
- static PyObject *__pyx_n_s_NodeCompareBase;
--static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor;
--static PyObject *__pyx_n_s_RuntimeError;
- static PyObject *__pyx_n_s_TypeError;
--static PyObject *__pyx_n_s_ValueError;
- static PyObject *__pyx_n_s_addCutGenerator;
- static PyObject *__pyx_n_s_append;
- static PyObject *__pyx_n_s_atSolution;
-@@ -2740,8 +2793,6 @@ static PyObject *__pyx_n_s_keys;
- static PyObject *__pyx_n_s_main;
- static PyObject *__pyx_n_s_name;
- static PyObject *__pyx_n_s_name_2;
--static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous;
--static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou;
- static PyObject *__pyx_n_s_newSolution;
- static PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
- static PyObject *__pyx_n_s_normal;
-@@ -2766,7 +2817,6 @@ static PyObject *__pyx_kp_s_stopped_on_solutionslinear_relax;
- static PyObject *__pyx_kp_s_stopped_on_time;
- static PyObject *__pyx_kp_s_stopped_on_user_event;
- static PyObject *__pyx_n_s_test;
--static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd;
- static PyObject *__pyx_n_s_unset;
- static PyObject *__pyx_kp_s_utf_8;
- static PyObject *__pyx_n_s_varIndex;
-@@ -2813,8 +2863,6 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16maximumSolutions
- static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16maximumSolutions_2__set__(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
- static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */
- static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
--static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
--static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */
- static PyObject *__pyx_tp_new_4cylp_2cy_10CyCbcModel_CyCbcModel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
- static PyObject *__pyx_int_1;
- static PyObject *__pyx_int_neg_1;
-@@ -2823,11 +2871,6 @@ static PyObject *__pyx_tuple__2;
- static PyObject *__pyx_tuple__3;
- static PyObject *__pyx_tuple__4;
- static PyObject *__pyx_tuple__5;
--static PyObject *__pyx_tuple__6;
--static PyObject *__pyx_tuple__7;
--static PyObject *__pyx_tuple__8;
--static PyObject *__pyx_tuple__9;
--static PyObject *__pyx_tuple__10;
- /* Late includes */
-
- /* "cylp/cy/CyCbcModel.pyx":14
-@@ -7397,1939 +7440,331 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22__setstate_cytho
- return __pyx_r;
- }
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":258
-- * # experimental exception made for __getbuffer__ and __releasebuffer__
-- * # -- the details of this may change.
-- * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<<
-- * # This implementation of getbuffer is geared towards Cython
-- * # requirements, and does not yet fulfill the PEP.
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735
-+ * ctypedef npy_cdouble complex_t
-+ *
-+ * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
-+ * return PyArray_MultiIterNew(1, a)
-+ *
- */
-
--/* Python wrapper */
--static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
--static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
-- int __pyx_r;
-- __Pyx_RefNannyDeclarations
-- __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
-- __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));
--
-- /* function exit code */
-- __Pyx_RefNannyFinishContext();
-- return __pyx_r;
--}
--
--static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
-- int __pyx_v_i;
-- int __pyx_v_ndim;
-- int __pyx_v_endian_detector;
-- int __pyx_v_little_endian;
-- int __pyx_v_t;
-- char *__pyx_v_f;
-- PyArray_Descr *__pyx_v_descr = 0;
-- int __pyx_v_offset;
-- int __pyx_r;
-+static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
-+ PyObject *__pyx_r = NULL;
- __Pyx_RefNannyDeclarations
-- int __pyx_t_1;
-- int __pyx_t_2;
-- PyObject *__pyx_t_3 = NULL;
-- int __pyx_t_4;
-- int __pyx_t_5;
-- int __pyx_t_6;
-- PyArray_Descr *__pyx_t_7;
-- PyObject *__pyx_t_8 = NULL;
-- char *__pyx_t_9;
-+ PyObject *__pyx_t_1 = NULL;
- int __pyx_lineno = 0;
- const char *__pyx_filename = NULL;
- int __pyx_clineno = 0;
-- if (__pyx_v_info == NULL) {
-- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete");
-- return -1;
-- }
-- __Pyx_RefNannySetupContext("__getbuffer__", 0);
-- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
-- __Pyx_GIVEREF(__pyx_v_info->obj);
-+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":265
-- *
-- * cdef int i, ndim
-- * cdef int endian_detector = 1 # <<<<<<<<<<<<<<
-- * cdef bint little_endian = ((&endian_detector)[0] != 0)
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736
- *
-- */
-- __pyx_v_endian_detector = 1;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":266
-- * cdef int i, ndim
-- * cdef int endian_detector = 1
-- * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<<
-+ * cdef inline object PyArray_MultiIterNew1(a):
-+ * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<<
- *
-- * ndim = PyArray_NDIM(self)
-+ * cdef inline object PyArray_MultiIterNew2(a, b):
- */
-- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);
-+ __Pyx_XDECREF(__pyx_r);
-+ __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 736, __pyx_L1_error)
-+ __Pyx_GOTREF(__pyx_t_1);
-+ __pyx_r = __pyx_t_1;
-+ __pyx_t_1 = 0;
-+ goto __pyx_L0;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":268
-- * cdef bint little_endian = ((&endian_detector)[0] != 0)
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735
-+ * ctypedef npy_cdouble complex_t
- *
-- * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<<
-+ * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
-+ * return PyArray_MultiIterNew(1, a)
- *
-- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
- */
-- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self);
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":270
-- * ndim = PyArray_NDIM(self)
-- *
-- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<<
-- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
-- * raise ValueError(u"ndarray is not C contiguous")
-- */
-- __pyx_t_2 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0);
-- if (__pyx_t_2) {
-- } else {
-- __pyx_t_1 = __pyx_t_2;
-- goto __pyx_L4_bool_binop_done;
-- }
-+ /* function exit code */
-+ __pyx_L1_error:;
-+ __Pyx_XDECREF(__pyx_t_1);
-+ __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
-+ __pyx_r = 0;
-+ __pyx_L0:;
-+ __Pyx_XGIVEREF(__pyx_r);
-+ __Pyx_RefNannyFinishContext();
-+ return __pyx_r;
-+}
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":271
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":738
-+ * return PyArray_MultiIterNew(1, a)
- *
-- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
-- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<<
-- * raise ValueError(u"ndarray is not C contiguous")
-+ * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
-+ * return PyArray_MultiIterNew(2, a, b)
- *
- */
-- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0);
-- __pyx_t_1 = __pyx_t_2;
-- __pyx_L4_bool_binop_done:;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":270
-- * ndim = PyArray_NDIM(self)
-- *
-- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<<
-- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
-- * raise ValueError(u"ndarray is not C contiguous")
-- */
-- if (unlikely(__pyx_t_1)) {
-+static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
-+ PyObject *__pyx_r = NULL;
-+ __Pyx_RefNannyDeclarations
-+ PyObject *__pyx_t_1 = NULL;
-+ int __pyx_lineno = 0;
-+ const char *__pyx_filename = NULL;
-+ int __pyx_clineno = 0;
-+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":272
-- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
-- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
-- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<<
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739
- *
-- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
-- */
-- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 272, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __Pyx_Raise(__pyx_t_3, 0, 0, 0);
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __PYX_ERR(2, 272, __pyx_L1_error)
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":270
-- * ndim = PyArray_NDIM(self)
-+ * cdef inline object PyArray_MultiIterNew2(a, b):
-+ * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<<
- *
-- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<<
-- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)):
-- * raise ValueError(u"ndarray is not C contiguous")
-+ * cdef inline object PyArray_MultiIterNew3(a, b, c):
- */
-- }
-+ __Pyx_XDECREF(__pyx_r);
-+ __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 739, __pyx_L1_error)
-+ __Pyx_GOTREF(__pyx_t_1);
-+ __pyx_r = __pyx_t_1;
-+ __pyx_t_1 = 0;
-+ goto __pyx_L0;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":274
-- * raise ValueError(u"ndarray is not C contiguous")
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":738
-+ * return PyArray_MultiIterNew(1, a)
-+ *
-+ * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
-+ * return PyArray_MultiIterNew(2, a, b)
- *
-- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<<
-- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
-- * raise ValueError(u"ndarray is not Fortran contiguous")
- */
-- __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0);
-- if (__pyx_t_2) {
-- } else {
-- __pyx_t_1 = __pyx_t_2;
-- goto __pyx_L7_bool_binop_done;
-- }
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":275
-+ /* function exit code */
-+ __pyx_L1_error:;
-+ __Pyx_XDECREF(__pyx_t_1);
-+ __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
-+ __pyx_r = 0;
-+ __pyx_L0:;
-+ __Pyx_XGIVEREF(__pyx_r);
-+ __Pyx_RefNannyFinishContext();
-+ return __pyx_r;
-+}
-+
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741
-+ * return PyArray_MultiIterNew(2, a, b)
- *
-- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
-- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<<
-- * raise ValueError(u"ndarray is not Fortran contiguous")
-+ * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
-+ * return PyArray_MultiIterNew(3, a, b, c)
- *
- */
-- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0);
-- __pyx_t_1 = __pyx_t_2;
-- __pyx_L7_bool_binop_done:;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":274
-- * raise ValueError(u"ndarray is not C contiguous")
-- *
-- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<<
-- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
-- * raise ValueError(u"ndarray is not Fortran contiguous")
-- */
-- if (unlikely(__pyx_t_1)) {
-+static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
-+ PyObject *__pyx_r = NULL;
-+ __Pyx_RefNannyDeclarations
-+ PyObject *__pyx_t_1 = NULL;
-+ int __pyx_lineno = 0;
-+ const char *__pyx_filename = NULL;
-+ int __pyx_clineno = 0;
-+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":276
-- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
-- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
-- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<<
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742
- *
-- * info.buf = PyArray_DATA(self)
-- */
-- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 276, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __Pyx_Raise(__pyx_t_3, 0, 0, 0);
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __PYX_ERR(2, 276, __pyx_L1_error)
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":274
-- * raise ValueError(u"ndarray is not C contiguous")
-+ * cdef inline object PyArray_MultiIterNew3(a, b, c):
-+ * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<<
- *
-- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<<
-- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)):
-- * raise ValueError(u"ndarray is not Fortran contiguous")
-+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
- */
-- }
-+ __Pyx_XDECREF(__pyx_r);
-+ __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 742, __pyx_L1_error)
-+ __Pyx_GOTREF(__pyx_t_1);
-+ __pyx_r = __pyx_t_1;
-+ __pyx_t_1 = 0;
-+ goto __pyx_L0;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":278
-- * raise ValueError(u"ndarray is not Fortran contiguous")
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741
-+ * return PyArray_MultiIterNew(2, a, b)
- *
-- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<<
-- * info.ndim = ndim
-- * if sizeof(npy_intp) != sizeof(Py_ssize_t):
-- */
-- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":279
-+ * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
-+ * return PyArray_MultiIterNew(3, a, b, c)
- *
-- * info.buf = PyArray_DATA(self)
-- * info.ndim = ndim # <<<<<<<<<<<<<<
-- * if sizeof(npy_intp) != sizeof(Py_ssize_t):
-- * # Allocate new buffer for strides and shape info.
-- */
-- __pyx_v_info->ndim = __pyx_v_ndim;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":280
-- * info.buf = PyArray_DATA(self)
-- * info.ndim = ndim
-- * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<<
-- * # Allocate new buffer for strides and shape info.
-- * # This is allocated as one block, strides first.
- */
-- __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0);
-- if (__pyx_t_1) {
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":283
-- * # Allocate new buffer for strides and shape info.
-- * # This is allocated as one block, strides first.
-- * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) # <<<<<<<<<<<<<<
-- * info.shape = info.strides + ndim
-- * for i in range(ndim):
-- */
-- __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim))));
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":284
-- * # This is allocated as one block, strides first.
-- * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim)
-- * info.shape = info.strides + ndim # <<<<<<<<<<<<<<
-- * for i in range(ndim):
-- * info.strides[i] = PyArray_STRIDES(self)[i]
-- */
-- __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":285
-- * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim)
-- * info.shape = info.strides + ndim
-- * for i in range(ndim): # <<<<<<<<<<<<<<
-- * info.strides[i] = PyArray_STRIDES(self)[i]
-- * info.shape[i] = PyArray_DIMS(self)[i]
-- */
-- __pyx_t_4 = __pyx_v_ndim;
-- __pyx_t_5 = __pyx_t_4;
-- for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
-- __pyx_v_i = __pyx_t_6;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":286
-- * info.shape = info.strides + ndim
-- * for i in range(ndim):
-- * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<<
-- * info.shape[i] = PyArray_DIMS(self)[i]
-- * else:
-- */
-- (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]);
-+ /* function exit code */
-+ __pyx_L1_error:;
-+ __Pyx_XDECREF(__pyx_t_1);
-+ __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
-+ __pyx_r = 0;
-+ __pyx_L0:;
-+ __Pyx_XGIVEREF(__pyx_r);
-+ __Pyx_RefNannyFinishContext();
-+ return __pyx_r;
-+}
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":287
-- * for i in range(ndim):
-- * info.strides[i] = PyArray_STRIDES(self)[i]
-- * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<<
-- * else:
-- * info.strides = PyArray_STRIDES(self)
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744
-+ * return PyArray_MultiIterNew(3, a, b, c)
-+ *
-+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
-+ * return PyArray_MultiIterNew(4, a, b, c, d)
-+ *
- */
-- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]);
-- }
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":280
-- * info.buf = PyArray_DATA(self)
-- * info.ndim = ndim
-- * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<<
-- * # Allocate new buffer for strides and shape info.
-- * # This is allocated as one block, strides first.
-- */
-- goto __pyx_L9;
-- }
-+static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
-+ PyObject *__pyx_r = NULL;
-+ __Pyx_RefNannyDeclarations
-+ PyObject *__pyx_t_1 = NULL;
-+ int __pyx_lineno = 0;
-+ const char *__pyx_filename = NULL;
-+ int __pyx_clineno = 0;
-+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":289
-- * info.shape[i] = PyArray_DIMS(self)[i]
-- * else:
-- * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<<
-- * info.shape = PyArray_DIMS(self)
-- * info.suboffsets = NULL
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":745
-+ *
-+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
-+ * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<<
-+ *
-+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
- */
-- /*else*/ {
-- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self));
-+ __Pyx_XDECREF(__pyx_r);
-+ __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 745, __pyx_L1_error)
-+ __Pyx_GOTREF(__pyx_t_1);
-+ __pyx_r = __pyx_t_1;
-+ __pyx_t_1 = 0;
-+ goto __pyx_L0;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":290
-- * else:
-- * info.strides = PyArray_STRIDES(self)
-- * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<<
-- * info.suboffsets = NULL
-- * info.itemsize = PyArray_ITEMSIZE(self)
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744
-+ * return PyArray_MultiIterNew(3, a, b, c)
-+ *
-+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
-+ * return PyArray_MultiIterNew(4, a, b, c, d)
-+ *
- */
-- __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self));
-- }
-- __pyx_L9:;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":291
-- * info.strides = PyArray_STRIDES(self)
-- * info.shape = PyArray_DIMS(self)
-- * info.suboffsets = NULL # <<<<<<<<<<<<<<
-- * info.itemsize = PyArray_ITEMSIZE(self)
-- * info.readonly = not PyArray_ISWRITEABLE(self)
-- */
-- __pyx_v_info->suboffsets = NULL;
-+ /* function exit code */
-+ __pyx_L1_error:;
-+ __Pyx_XDECREF(__pyx_t_1);
-+ __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
-+ __pyx_r = 0;
-+ __pyx_L0:;
-+ __Pyx_XGIVEREF(__pyx_r);
-+ __Pyx_RefNannyFinishContext();
-+ return __pyx_r;
-+}
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":292
-- * info.shape = PyArray_DIMS(self)
-- * info.suboffsets = NULL
-- * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<<
-- * info.readonly = not PyArray_ISWRITEABLE(self)
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747
-+ * return PyArray_MultiIterNew(4, a, b, c, d)
- *
-- */
-- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":293
-- * info.suboffsets = NULL
-- * info.itemsize = PyArray_ITEMSIZE(self)
-- * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<<
-+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
-+ * return PyArray_MultiIterNew(5, a, b, c, d, e)
- *
-- * cdef int t
- */
-- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0));
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":296
-- *
-- * cdef int t
-- * cdef char* f = NULL # <<<<<<<<<<<<<<
-- * cdef dtype descr = PyArray_DESCR(self)
-- * cdef int offset
-- */
-- __pyx_v_f = NULL;
-+static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {
-+ PyObject *__pyx_r = NULL;
-+ __Pyx_RefNannyDeclarations
-+ PyObject *__pyx_t_1 = NULL;
-+ int __pyx_lineno = 0;
-+ const char *__pyx_filename = NULL;
-+ int __pyx_clineno = 0;
-+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":297
-- * cdef int t
-- * cdef char* f = NULL
-- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<<
-- * cdef int offset
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":748
-+ *
-+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
-+ * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<<
- *
-+ * cdef inline tuple PyDataType_SHAPE(dtype d):
- */
-- __pyx_t_7 = PyArray_DESCR(__pyx_v_self);
-- __pyx_t_3 = ((PyObject *)__pyx_t_7);
-- __Pyx_INCREF(__pyx_t_3);
-- __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3);
-- __pyx_t_3 = 0;
-+ __Pyx_XDECREF(__pyx_r);
-+ __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 748, __pyx_L1_error)
-+ __Pyx_GOTREF(__pyx_t_1);
-+ __pyx_r = __pyx_t_1;
-+ __pyx_t_1 = 0;
-+ goto __pyx_L0;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":300
-- * cdef int offset
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747
-+ * return PyArray_MultiIterNew(4, a, b, c, d)
- *
-- * info.obj = self # <<<<<<<<<<<<<<
-- *
-- * if not PyDataType_HASFIELDS(descr):
-- */
-- __Pyx_INCREF(((PyObject *)__pyx_v_self));
-- __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-- __Pyx_GOTREF(__pyx_v_info->obj);
-- __Pyx_DECREF(__pyx_v_info->obj);
-- __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":302
-- * info.obj = self
-- *
-- * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<<
-- * t = descr.type_num
-- * if ((descr.byteorder == c'>' and little_endian) or
-- */
-- __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0);
-- if (__pyx_t_1) {
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":303
-- *
-- * if not PyDataType_HASFIELDS(descr):
-- * t = descr.type_num # <<<<<<<<<<<<<<
-- * if ((descr.byteorder == c'>' and little_endian) or
-- * (descr.byteorder == c'<' and not little_endian)):
-- */
-- __pyx_t_4 = __pyx_v_descr->type_num;
-- __pyx_v_t = __pyx_t_4;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":304
-- * if not PyDataType_HASFIELDS(descr):
-- * t = descr.type_num
-- * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<<
-- * (descr.byteorder == c'<' and not little_endian)):
-- * raise ValueError(u"Non-native byte order not supported")
-- */
-- __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0);
-- if (!__pyx_t_2) {
-- goto __pyx_L15_next_or;
-- } else {
-- }
-- __pyx_t_2 = (__pyx_v_little_endian != 0);
-- if (!__pyx_t_2) {
-- } else {
-- __pyx_t_1 = __pyx_t_2;
-- goto __pyx_L14_bool_binop_done;
-- }
-- __pyx_L15_next_or:;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":305
-- * t = descr.type_num
-- * if ((descr.byteorder == c'>' and little_endian) or
-- * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<<
-- * raise ValueError(u"Non-native byte order not supported")
-- * if t == NPY_BYTE: f = "b"
-- */
-- __pyx_t_2 = ((__pyx_v_descr->byteorder == '<') != 0);
-- if (__pyx_t_2) {
-- } else {
-- __pyx_t_1 = __pyx_t_2;
-- goto __pyx_L14_bool_binop_done;
-- }
-- __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0);
-- __pyx_t_1 = __pyx_t_2;
-- __pyx_L14_bool_binop_done:;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":304
-- * if not PyDataType_HASFIELDS(descr):
-- * t = descr.type_num
-- * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<<
-- * (descr.byteorder == c'<' and not little_endian)):
-- * raise ValueError(u"Non-native byte order not supported")
-- */
-- if (unlikely(__pyx_t_1)) {
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":306
-- * if ((descr.byteorder == c'>' and little_endian) or
-- * (descr.byteorder == c'<' and not little_endian)):
-- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<<
-- * if t == NPY_BYTE: f = "b"
-- * elif t == NPY_UBYTE: f = "B"
-- */
-- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 306, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __Pyx_Raise(__pyx_t_3, 0, 0, 0);
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __PYX_ERR(2, 306, __pyx_L1_error)
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":304
-- * if not PyDataType_HASFIELDS(descr):
-- * t = descr.type_num
-- * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<<
-- * (descr.byteorder == c'<' and not little_endian)):
-- * raise ValueError(u"Non-native byte order not supported")
-- */
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":307
-- * (descr.byteorder == c'<' and not little_endian)):
-- * raise ValueError(u"Non-native byte order not supported")
-- * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<<
-- * elif t == NPY_UBYTE: f = "B"
-- * elif t == NPY_SHORT: f = "h"
-- */
-- switch (__pyx_v_t) {
-- case NPY_BYTE:
-- __pyx_v_f = ((char *)"b");
-- break;
-- case NPY_UBYTE:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":308
-- * raise ValueError(u"Non-native byte order not supported")
-- * if t == NPY_BYTE: f = "b"
-- * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<<
-- * elif t == NPY_SHORT: f = "h"
-- * elif t == NPY_USHORT: f = "H"
-- */
-- __pyx_v_f = ((char *)"B");
-- break;
-- case NPY_SHORT:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":309
-- * if t == NPY_BYTE: f = "b"
-- * elif t == NPY_UBYTE: f = "B"
-- * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<<
-- * elif t == NPY_USHORT: f = "H"
-- * elif t == NPY_INT: f = "i"
-- */
-- __pyx_v_f = ((char *)"h");
-- break;
-- case NPY_USHORT:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":310
-- * elif t == NPY_UBYTE: f = "B"
-- * elif t == NPY_SHORT: f = "h"
-- * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<<
-- * elif t == NPY_INT: f = "i"
-- * elif t == NPY_UINT: f = "I"
-- */
-- __pyx_v_f = ((char *)"H");
-- break;
-- case NPY_INT:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":311
-- * elif t == NPY_SHORT: f = "h"
-- * elif t == NPY_USHORT: f = "H"
-- * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<<
-- * elif t == NPY_UINT: f = "I"
-- * elif t == NPY_LONG: f = "l"
-- */
-- __pyx_v_f = ((char *)"i");
-- break;
-- case NPY_UINT:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":312
-- * elif t == NPY_USHORT: f = "H"
-- * elif t == NPY_INT: f = "i"
-- * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<<
-- * elif t == NPY_LONG: f = "l"
-- * elif t == NPY_ULONG: f = "L"
-- */
-- __pyx_v_f = ((char *)"I");
-- break;
-- case NPY_LONG:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":313
-- * elif t == NPY_INT: f = "i"
-- * elif t == NPY_UINT: f = "I"
-- * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<<
-- * elif t == NPY_ULONG: f = "L"
-- * elif t == NPY_LONGLONG: f = "q"
-- */
-- __pyx_v_f = ((char *)"l");
-- break;
-- case NPY_ULONG:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":314
-- * elif t == NPY_UINT: f = "I"
-- * elif t == NPY_LONG: f = "l"
-- * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<<
-- * elif t == NPY_LONGLONG: f = "q"
-- * elif t == NPY_ULONGLONG: f = "Q"
-- */
-- __pyx_v_f = ((char *)"L");
-- break;
-- case NPY_LONGLONG:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":315
-- * elif t == NPY_LONG: f = "l"
-- * elif t == NPY_ULONG: f = "L"
-- * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<<
-- * elif t == NPY_ULONGLONG: f = "Q"
-- * elif t == NPY_FLOAT: f = "f"
-- */
-- __pyx_v_f = ((char *)"q");
-- break;
-- case NPY_ULONGLONG:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":316
-- * elif t == NPY_ULONG: f = "L"
-- * elif t == NPY_LONGLONG: f = "q"
-- * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<<
-- * elif t == NPY_FLOAT: f = "f"
-- * elif t == NPY_DOUBLE: f = "d"
-- */
-- __pyx_v_f = ((char *)"Q");
-- break;
-- case NPY_FLOAT:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":317
-- * elif t == NPY_LONGLONG: f = "q"
-- * elif t == NPY_ULONGLONG: f = "Q"
-- * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<<
-- * elif t == NPY_DOUBLE: f = "d"
-- * elif t == NPY_LONGDOUBLE: f = "g"
-- */
-- __pyx_v_f = ((char *)"f");
-- break;
-- case NPY_DOUBLE:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":318
-- * elif t == NPY_ULONGLONG: f = "Q"
-- * elif t == NPY_FLOAT: f = "f"
-- * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<<
-- * elif t == NPY_LONGDOUBLE: f = "g"
-- * elif t == NPY_CFLOAT: f = "Zf"
-- */
-- __pyx_v_f = ((char *)"d");
-- break;
-- case NPY_LONGDOUBLE:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":319
-- * elif t == NPY_FLOAT: f = "f"
-- * elif t == NPY_DOUBLE: f = "d"
-- * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<<
-- * elif t == NPY_CFLOAT: f = "Zf"
-- * elif t == NPY_CDOUBLE: f = "Zd"
-- */
-- __pyx_v_f = ((char *)"g");
-- break;
-- case NPY_CFLOAT:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":320
-- * elif t == NPY_DOUBLE: f = "d"
-- * elif t == NPY_LONGDOUBLE: f = "g"
-- * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<<
-- * elif t == NPY_CDOUBLE: f = "Zd"
-- * elif t == NPY_CLONGDOUBLE: f = "Zg"
-- */
-- __pyx_v_f = ((char *)"Zf");
-- break;
-- case NPY_CDOUBLE:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":321
-- * elif t == NPY_LONGDOUBLE: f = "g"
-- * elif t == NPY_CFLOAT: f = "Zf"
-- * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<<
-- * elif t == NPY_CLONGDOUBLE: f = "Zg"
-- * elif t == NPY_OBJECT: f = "O"
-- */
-- __pyx_v_f = ((char *)"Zd");
-- break;
-- case NPY_CLONGDOUBLE:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":322
-- * elif t == NPY_CFLOAT: f = "Zf"
-- * elif t == NPY_CDOUBLE: f = "Zd"
-- * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<<
-- * elif t == NPY_OBJECT: f = "O"
-- * else:
-- */
-- __pyx_v_f = ((char *)"Zg");
-- break;
-- case NPY_OBJECT:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":323
-- * elif t == NPY_CDOUBLE: f = "Zd"
-- * elif t == NPY_CLONGDOUBLE: f = "Zg"
-- * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<<
-- * else:
-- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
-- */
-- __pyx_v_f = ((char *)"O");
-- break;
-- default:
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":325
-- * elif t == NPY_OBJECT: f = "O"
-- * else:
-- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<<
-- * info.format = f
-- * return
-- */
-- __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 325, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 325, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_8);
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 325, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-- __Pyx_Raise(__pyx_t_3, 0, 0, 0);
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __PYX_ERR(2, 325, __pyx_L1_error)
-- break;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":326
-- * else:
-- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
-- * info.format = f # <<<<<<<<<<<<<<
-- * return
-- * else:
-- */
-- __pyx_v_info->format = __pyx_v_f;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":327
-- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
-- * info.format = f
-- * return # <<<<<<<<<<<<<<
-- * else:
-- * info.format = PyObject_Malloc(_buffer_format_string_len)
-- */
-- __pyx_r = 0;
-- goto __pyx_L0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":302
-- * info.obj = self
-- *
-- * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<<
-- * t = descr.type_num
-- * if ((descr.byteorder == c'>' and little_endian) or
-- */
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":329
-- * return
-- * else:
-- * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<<
-- * info.format[0] = c'^' # Native data types, manual alignment
-- * offset = 0
-- */
-- /*else*/ {
-- __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF));
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":330
-- * else:
-- * info.format = PyObject_Malloc(_buffer_format_string_len)
-- * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<<
-- * offset = 0
-- * f = _util_dtypestring(descr, info.format + 1,
-- */
-- (__pyx_v_info->format[0]) = '^';
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":331
-- * info.format = PyObject_Malloc(_buffer_format_string_len)
-- * info.format[0] = c'^' # Native data types, manual alignment
-- * offset = 0 # <<<<<<<<<<<<<<
-- * f = _util_dtypestring(descr, info.format + 1,
-- * info.format + _buffer_format_string_len,
-- */
-- __pyx_v_offset = 0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":332
-- * info.format[0] = c'^' # Native data types, manual alignment
-- * offset = 0
-- * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<<
-- * info.format + _buffer_format_string_len,
-- * &offset)
-- */
-- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 0xFF), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 332, __pyx_L1_error)
-- __pyx_v_f = __pyx_t_9;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":335
-- * info.format + _buffer_format_string_len,
-- * &offset)
-- * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<<
-- *
-- * def __releasebuffer__(ndarray self, Py_buffer* info):
-- */
-- (__pyx_v_f[0]) = '\x00';
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":258
-- * # experimental exception made for __getbuffer__ and __releasebuffer__
-- * # -- the details of this may change.
-- * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<<
-- * # This implementation of getbuffer is geared towards Cython
-- * # requirements, and does not yet fulfill the PEP.
-- */
--
-- /* function exit code */
-- __pyx_r = 0;
-- goto __pyx_L0;
-- __pyx_L1_error:;
-- __Pyx_XDECREF(__pyx_t_3);
-- __Pyx_XDECREF(__pyx_t_8);
-- __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
-- __pyx_r = -1;
-- if (__pyx_v_info->obj != NULL) {
-- __Pyx_GOTREF(__pyx_v_info->obj);
-- __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
-- }
-- goto __pyx_L2;
-- __pyx_L0:;
-- if (__pyx_v_info->obj == Py_None) {
-- __Pyx_GOTREF(__pyx_v_info->obj);
-- __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
-- }
-- __pyx_L2:;
-- __Pyx_XDECREF((PyObject *)__pyx_v_descr);
-- __Pyx_RefNannyFinishContext();
-- return __pyx_r;
--}
--
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":337
-- * f[0] = c'\0' # Terminate format string
-- *
-- * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<<
-- * if PyArray_HASFIELDS(self):
-- * PyObject_Free(info.format)
-- */
--
--/* Python wrapper */
--static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/
--static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
-- __Pyx_RefNannyDeclarations
-- __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0);
-- __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info));
--
-- /* function exit code */
-- __Pyx_RefNannyFinishContext();
--}
--
--static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
-- __Pyx_RefNannyDeclarations
-- int __pyx_t_1;
-- __Pyx_RefNannySetupContext("__releasebuffer__", 0);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":338
-- *
-- * def __releasebuffer__(ndarray self, Py_buffer* info):
-- * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<<
-- * PyObject_Free(info.format)
-- * if sizeof(npy_intp) != sizeof(Py_ssize_t):
-- */
-- __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0);
-- if (__pyx_t_1) {
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":339
-- * def __releasebuffer__(ndarray self, Py_buffer* info):
-- * if PyArray_HASFIELDS(self):
-- * PyObject_Free(info.format) # <<<<<<<<<<<<<<
-- * if sizeof(npy_intp) != sizeof(Py_ssize_t):
-- * PyObject_Free(info.strides)
-- */
-- PyObject_Free(__pyx_v_info->format);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":338
-- *
-- * def __releasebuffer__(ndarray self, Py_buffer* info):
-- * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<<
-- * PyObject_Free(info.format)
-- * if sizeof(npy_intp) != sizeof(Py_ssize_t):
-- */
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":340
-- * if PyArray_HASFIELDS(self):
-- * PyObject_Free(info.format)
-- * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<<
-- * PyObject_Free(info.strides)
-- * # info.shape was stored after info.strides in the same block
-- */
-- __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0);
-- if (__pyx_t_1) {
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":341
-- * PyObject_Free(info.format)
-- * if sizeof(npy_intp) != sizeof(Py_ssize_t):
-- * PyObject_Free(info.strides) # <<<<<<<<<<<<<<
-- * # info.shape was stored after info.strides in the same block
-- *
-- */
-- PyObject_Free(__pyx_v_info->strides);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":340
-- * if PyArray_HASFIELDS(self):
-- * PyObject_Free(info.format)
-- * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<<
-- * PyObject_Free(info.strides)
-- * # info.shape was stored after info.strides in the same block
-- */
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":337
-- * f[0] = c'\0' # Terminate format string
-- *
-- * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<<
-- * if PyArray_HASFIELDS(self):
-- * PyObject_Free(info.format)
-- */
--
-- /* function exit code */
-- __Pyx_RefNannyFinishContext();
--}
--
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":820
-- * ctypedef npy_cdouble complex_t
-- *
-- * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
-- * return PyArray_MultiIterNew(1, a)
-- *
-- */
--
--static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
-- PyObject *__pyx_r = NULL;
-- __Pyx_RefNannyDeclarations
-- PyObject *__pyx_t_1 = NULL;
-- int __pyx_lineno = 0;
-- const char *__pyx_filename = NULL;
-- int __pyx_clineno = 0;
-- __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":821
-- *
-- * cdef inline object PyArray_MultiIterNew1(a):
-- * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<<
-- *
-- * cdef inline object PyArray_MultiIterNew2(a, b):
-- */
-- __Pyx_XDECREF(__pyx_r);
-- __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 821, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_1);
-- __pyx_r = __pyx_t_1;
-- __pyx_t_1 = 0;
-- goto __pyx_L0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":820
-- * ctypedef npy_cdouble complex_t
-- *
-- * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
-- * return PyArray_MultiIterNew(1, a)
-- *
-- */
--
-- /* function exit code */
-- __pyx_L1_error:;
-- __Pyx_XDECREF(__pyx_t_1);
-- __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
-- __pyx_r = 0;
-- __pyx_L0:;
-- __Pyx_XGIVEREF(__pyx_r);
-- __Pyx_RefNannyFinishContext();
-- return __pyx_r;
--}
--
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":823
-- * return PyArray_MultiIterNew(1, a)
-- *
-- * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
-- * return PyArray_MultiIterNew(2, a, b)
-- *
-- */
--
--static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
-- PyObject *__pyx_r = NULL;
-- __Pyx_RefNannyDeclarations
-- PyObject *__pyx_t_1 = NULL;
-- int __pyx_lineno = 0;
-- const char *__pyx_filename = NULL;
-- int __pyx_clineno = 0;
-- __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":824
-- *
-- * cdef inline object PyArray_MultiIterNew2(a, b):
-- * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<<
-- *
-- * cdef inline object PyArray_MultiIterNew3(a, b, c):
-- */
-- __Pyx_XDECREF(__pyx_r);
-- __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 824, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_1);
-- __pyx_r = __pyx_t_1;
-- __pyx_t_1 = 0;
-- goto __pyx_L0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":823
-- * return PyArray_MultiIterNew(1, a)
-- *
-- * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
-- * return PyArray_MultiIterNew(2, a, b)
-- *
-- */
--
-- /* function exit code */
-- __pyx_L1_error:;
-- __Pyx_XDECREF(__pyx_t_1);
-- __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
-- __pyx_r = 0;
-- __pyx_L0:;
-- __Pyx_XGIVEREF(__pyx_r);
-- __Pyx_RefNannyFinishContext();
-- return __pyx_r;
--}
--
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":826
-- * return PyArray_MultiIterNew(2, a, b)
-- *
-- * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
-- * return PyArray_MultiIterNew(3, a, b, c)
-- *
-- */
--
--static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
-- PyObject *__pyx_r = NULL;
-- __Pyx_RefNannyDeclarations
-- PyObject *__pyx_t_1 = NULL;
-- int __pyx_lineno = 0;
-- const char *__pyx_filename = NULL;
-- int __pyx_clineno = 0;
-- __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":827
-- *
-- * cdef inline object PyArray_MultiIterNew3(a, b, c):
-- * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<<
-- *
-- * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
-- */
-- __Pyx_XDECREF(__pyx_r);
-- __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 827, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_1);
-- __pyx_r = __pyx_t_1;
-- __pyx_t_1 = 0;
-- goto __pyx_L0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":826
-- * return PyArray_MultiIterNew(2, a, b)
-- *
-- * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
-- * return PyArray_MultiIterNew(3, a, b, c)
-- *
-- */
--
-- /* function exit code */
-- __pyx_L1_error:;
-- __Pyx_XDECREF(__pyx_t_1);
-- __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
-- __pyx_r = 0;
-- __pyx_L0:;
-- __Pyx_XGIVEREF(__pyx_r);
-- __Pyx_RefNannyFinishContext();
-- return __pyx_r;
--}
--
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":829
-- * return PyArray_MultiIterNew(3, a, b, c)
-- *
-- * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
-- * return PyArray_MultiIterNew(4, a, b, c, d)
-- *
-- */
--
--static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
-- PyObject *__pyx_r = NULL;
-- __Pyx_RefNannyDeclarations
-- PyObject *__pyx_t_1 = NULL;
-- int __pyx_lineno = 0;
-- const char *__pyx_filename = NULL;
-- int __pyx_clineno = 0;
-- __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":830
-- *
-- * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
-- * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<<
-- *
-- * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
-- */
-- __Pyx_XDECREF(__pyx_r);
-- __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 830, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_1);
-- __pyx_r = __pyx_t_1;
-- __pyx_t_1 = 0;
-- goto __pyx_L0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":829
-- * return PyArray_MultiIterNew(3, a, b, c)
-- *
-- * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
-- * return PyArray_MultiIterNew(4, a, b, c, d)
-- *
-- */
--
-- /* function exit code */
-- __pyx_L1_error:;
-- __Pyx_XDECREF(__pyx_t_1);
-- __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
-- __pyx_r = 0;
-- __pyx_L0:;
-- __Pyx_XGIVEREF(__pyx_r);
-- __Pyx_RefNannyFinishContext();
-- return __pyx_r;
--}
--
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":832
-- * return PyArray_MultiIterNew(4, a, b, c, d)
-- *
-- * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
-- * return PyArray_MultiIterNew(5, a, b, c, d, e)
-- *
-- */
--
--static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {
-- PyObject *__pyx_r = NULL;
-- __Pyx_RefNannyDeclarations
-- PyObject *__pyx_t_1 = NULL;
-- int __pyx_lineno = 0;
-- const char *__pyx_filename = NULL;
-- int __pyx_clineno = 0;
-- __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":833
-- *
-- * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
-- * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<<
-- *
-- * cdef inline tuple PyDataType_SHAPE(dtype d):
-- */
-- __Pyx_XDECREF(__pyx_r);
-- __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 833, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_1);
-- __pyx_r = __pyx_t_1;
-- __pyx_t_1 = 0;
-- goto __pyx_L0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":832
-- * return PyArray_MultiIterNew(4, a, b, c, d)
-- *
-- * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
-- * return PyArray_MultiIterNew(5, a, b, c, d, e)
-+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
-+ * return PyArray_MultiIterNew(5, a, b, c, d, e)
- *
- */
-
- /* function exit code */
- __pyx_L1_error:;
- __Pyx_XDECREF(__pyx_t_1);
-- __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
-- __pyx_r = 0;
-- __pyx_L0:;
-- __Pyx_XGIVEREF(__pyx_r);
-- __Pyx_RefNannyFinishContext();
-- return __pyx_r;
--}
--
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":835
-- * return PyArray_MultiIterNew(5, a, b, c, d, e)
-- *
-- * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
-- * if PyDataType_HASSUBARRAY(d):
-- * return d.subarray.shape
-- */
--
--static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
-- PyObject *__pyx_r = NULL;
-- __Pyx_RefNannyDeclarations
-- int __pyx_t_1;
-- __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":836
-- *
-- * cdef inline tuple PyDataType_SHAPE(dtype d):
-- * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
-- * return d.subarray.shape
-- * else:
-- */
-- __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0);
-- if (__pyx_t_1) {
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":837
-- * cdef inline tuple PyDataType_SHAPE(dtype d):
-- * if PyDataType_HASSUBARRAY(d):
-- * return d.subarray.shape # <<<<<<<<<<<<<<
-- * else:
-- * return ()
-- */
-- __Pyx_XDECREF(__pyx_r);
-- __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape));
-- __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape);
-- goto __pyx_L0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":836
-- *
-- * cdef inline tuple PyDataType_SHAPE(dtype d):
-- * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
-- * return d.subarray.shape
-- * else:
-- */
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":839
-- * return d.subarray.shape
-- * else:
-- * return () # <<<<<<<<<<<<<<
-- *
-- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:
-- */
-- /*else*/ {
-- __Pyx_XDECREF(__pyx_r);
-- __Pyx_INCREF(__pyx_empty_tuple);
-- __pyx_r = __pyx_empty_tuple;
-- goto __pyx_L0;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":835
-- * return PyArray_MultiIterNew(5, a, b, c, d, e)
-- *
-- * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
-- * if PyDataType_HASSUBARRAY(d):
-- * return d.subarray.shape
-- */
--
-- /* function exit code */
-- __pyx_L0:;
-- __Pyx_XGIVEREF(__pyx_r);
-- __Pyx_RefNannyFinishContext();
-- return __pyx_r;
--}
--
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":841
-- * return ()
-- *
-- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<<
-- * # Recursive utility function used in __getbuffer__ to get format
-- * # string. The new location in the format string is returned.
-- */
--
--static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) {
-- PyArray_Descr *__pyx_v_child = 0;
-- int __pyx_v_endian_detector;
-- int __pyx_v_little_endian;
-- PyObject *__pyx_v_fields = 0;
-- PyObject *__pyx_v_childname = NULL;
-- PyObject *__pyx_v_new_offset = NULL;
-- PyObject *__pyx_v_t = NULL;
-- char *__pyx_r;
-- __Pyx_RefNannyDeclarations
-- PyObject *__pyx_t_1 = NULL;
-- Py_ssize_t __pyx_t_2;
-- PyObject *__pyx_t_3 = NULL;
-- PyObject *__pyx_t_4 = NULL;
-- int __pyx_t_5;
-- int __pyx_t_6;
-- int __pyx_t_7;
-- long __pyx_t_8;
-- char *__pyx_t_9;
-- int __pyx_lineno = 0;
-- const char *__pyx_filename = NULL;
-- int __pyx_clineno = 0;
-- __Pyx_RefNannySetupContext("_util_dtypestring", 0);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":846
-- *
-- * cdef dtype child
-- * cdef int endian_detector = 1 # <<<<<<<<<<<<<<
-- * cdef bint little_endian = ((&endian_detector)[0] != 0)
-- * cdef tuple fields
-- */
-- __pyx_v_endian_detector = 1;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":847
-- * cdef dtype child
-- * cdef int endian_detector = 1
-- * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<<
-- * cdef tuple fields
-- *
-- */
-- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":850
-- * cdef tuple fields
-- *
-- * for childname in descr.names: # <<<<<<<<<<<<<<
-- * fields = descr.fields[childname]
-- * child, new_offset = fields
-- */
-- if (unlikely(__pyx_v_descr->names == Py_None)) {
-- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-- __PYX_ERR(2, 850, __pyx_L1_error)
-- }
-- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
-- for (;;) {
-- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
-- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-- __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(2, 850, __pyx_L1_error)
-- #else
-- __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 850, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- #endif
-- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3);
-- __pyx_t_3 = 0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":851
-- *
-- * for childname in descr.names:
-- * fields = descr.fields[childname] # <<<<<<<<<<<<<<
-- * child, new_offset = fields
-- *
-- */
-- if (unlikely(__pyx_v_descr->fields == Py_None)) {
-- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-- __PYX_ERR(2, 851, __pyx_L1_error)
-- }
-- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 851, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 851, __pyx_L1_error)
-- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3));
-- __pyx_t_3 = 0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":852
-- * for childname in descr.names:
-- * fields = descr.fields[childname]
-- * child, new_offset = fields # <<<<<<<<<<<<<<
-- *
-- * if (end - f) - (new_offset - offset[0]) < 15:
-- */
-- if (likely(__pyx_v_fields != Py_None)) {
-- PyObject* sequence = __pyx_v_fields;
-- Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
-- if (unlikely(size != 2)) {
-- if (size > 2) __Pyx_RaiseTooManyValuesError(2);
-- else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-- __PYX_ERR(2, 852, __pyx_L1_error)
-- }
-- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-- __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
-- __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
-- __Pyx_INCREF(__pyx_t_3);
-- __Pyx_INCREF(__pyx_t_4);
-- #else
-- __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 852, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- #endif
-- } else {
-- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 852, __pyx_L1_error)
-- }
-- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 852, __pyx_L1_error)
-- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3));
-- __pyx_t_3 = 0;
-- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4);
-- __pyx_t_4 = 0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":854
-- * child, new_offset = fields
-- *
-- * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<<
-- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
-- *
-- */
-- __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 854, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 854, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 854, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0);
-- if (unlikely(__pyx_t_6)) {
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":855
-- *
-- * if (end - f) - (new_offset - offset[0]) < 15:
-- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<<
-- *
-- * if ((child.byteorder == c'>' and little_endian) or
-- */
-- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __Pyx_Raise(__pyx_t_3, 0, 0, 0);
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __PYX_ERR(2, 855, __pyx_L1_error)
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":854
-- * child, new_offset = fields
-- *
-- * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<<
-- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
-- *
-- */
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":857
-- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
-- *
-- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<<
-- * (child.byteorder == c'<' and not little_endian)):
-- * raise ValueError(u"Non-native byte order not supported")
-- */
-- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0);
-- if (!__pyx_t_7) {
-- goto __pyx_L8_next_or;
-- } else {
-- }
-- __pyx_t_7 = (__pyx_v_little_endian != 0);
-- if (!__pyx_t_7) {
-- } else {
-- __pyx_t_6 = __pyx_t_7;
-- goto __pyx_L7_bool_binop_done;
-- }
-- __pyx_L8_next_or:;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":858
-- *
-- * if ((child.byteorder == c'>' and little_endian) or
-- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<<
-- * raise ValueError(u"Non-native byte order not supported")
-- * # One could encode it in the format string and have Cython
-- */
-- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0);
-- if (__pyx_t_7) {
-- } else {
-- __pyx_t_6 = __pyx_t_7;
-- goto __pyx_L7_bool_binop_done;
-- }
-- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0);
-- __pyx_t_6 = __pyx_t_7;
-- __pyx_L7_bool_binop_done:;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":857
-- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
-- *
-- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<<
-- * (child.byteorder == c'<' and not little_endian)):
-- * raise ValueError(u"Non-native byte order not supported")
-- */
-- if (unlikely(__pyx_t_6)) {
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":859
-- * if ((child.byteorder == c'>' and little_endian) or
-- * (child.byteorder == c'<' and not little_endian)):
-- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<<
-- * # One could encode it in the format string and have Cython
-- * # complain instead, BUT: < and > in format strings also imply
-- */
-- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 859, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __Pyx_Raise(__pyx_t_3, 0, 0, 0);
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __PYX_ERR(2, 859, __pyx_L1_error)
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":857
-- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
-- *
-- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<<
-- * (child.byteorder == c'<' and not little_endian)):
-- * raise ValueError(u"Non-native byte order not supported")
-- */
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":869
-- *
-- * # Output padding bytes
-- * while offset[0] < new_offset: # <<<<<<<<<<<<<<
-- * f[0] = 120 # "x"; pad byte
-- * f += 1
-- */
-- while (1) {
-- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 869, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 869, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 869, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- if (!__pyx_t_6) break;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":870
-- * # Output padding bytes
-- * while offset[0] < new_offset:
-- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<<
-- * f += 1
-- * offset[0] += 1
-- */
-- (__pyx_v_f[0]) = 0x78;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":871
-- * while offset[0] < new_offset:
-- * f[0] = 120 # "x"; pad byte
-- * f += 1 # <<<<<<<<<<<<<<
-- * offset[0] += 1
-- *
-- */
-- __pyx_v_f = (__pyx_v_f + 1);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":872
-- * f[0] = 120 # "x"; pad byte
-- * f += 1
-- * offset[0] += 1 # <<<<<<<<<<<<<<
-- *
-- * offset[0] += child.itemsize
-- */
-- __pyx_t_8 = 0;
-- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1);
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":874
-- * offset[0] += 1
-- *
-- * offset[0] += child.itemsize # <<<<<<<<<<<<<<
-- *
-- * if not PyDataType_HASFIELDS(child):
-- */
-- __pyx_t_8 = 0;
-- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize);
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":876
-- * offset[0] += child.itemsize
-- *
-- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<<
-- * t = child.type_num
-- * if end - f < 5:
-- */
-- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0);
-- if (__pyx_t_6) {
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":877
-- *
-- * if not PyDataType_HASFIELDS(child):
-- * t = child.type_num # <<<<<<<<<<<<<<
-- * if end - f < 5:
-- * raise RuntimeError(u"Format string allocated too short.")
-- */
-- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 877, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4);
-- __pyx_t_4 = 0;
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":878
-- * if not PyDataType_HASFIELDS(child):
-- * t = child.type_num
-- * if end - f < 5: # <<<<<<<<<<<<<<
-- * raise RuntimeError(u"Format string allocated too short.")
-- *
-- */
-- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0);
-- if (unlikely(__pyx_t_6)) {
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":879
-- * t = child.type_num
-- * if end - f < 5:
-- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<<
-- *
-- * # Until ticket #99 is fixed, use integers to avoid warnings
-- */
-- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 879, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __Pyx_Raise(__pyx_t_4, 0, 0, 0);
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __PYX_ERR(2, 879, __pyx_L1_error)
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":878
-- * if not PyDataType_HASFIELDS(child):
-- * t = child.type_num
-- * if end - f < 5: # <<<<<<<<<<<<<<
-- * raise RuntimeError(u"Format string allocated too short.")
-- *
-- */
-- }
-+ __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
-+ __pyx_r = 0;
-+ __pyx_L0:;
-+ __Pyx_XGIVEREF(__pyx_r);
-+ __Pyx_RefNannyFinishContext();
-+ return __pyx_r;
-+}
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":882
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750
-+ * return PyArray_MultiIterNew(5, a, b, c, d, e)
- *
-- * # Until ticket #99 is fixed, use integers to avoid warnings
-- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<<
-- * elif t == NPY_UBYTE: f[0] = 66 #"B"
-- * elif t == NPY_SHORT: f[0] = 104 #"h"
-- */
-- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 882, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 882, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 882, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 98;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":883
-- * # Until ticket #99 is fixed, use integers to avoid warnings
-- * if t == NPY_BYTE: f[0] = 98 #"b"
-- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<<
-- * elif t == NPY_SHORT: f[0] = 104 #"h"
-- * elif t == NPY_USHORT: f[0] = 72 #"H"
-- */
-- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 66;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":884
-- * if t == NPY_BYTE: f[0] = 98 #"b"
-- * elif t == NPY_UBYTE: f[0] = 66 #"B"
-- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<<
-- * elif t == NPY_USHORT: f[0] = 72 #"H"
-- * elif t == NPY_INT: f[0] = 105 #"i"
-- */
-- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 0x68;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":885
-- * elif t == NPY_UBYTE: f[0] = 66 #"B"
-- * elif t == NPY_SHORT: f[0] = 104 #"h"
-- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<<
-- * elif t == NPY_INT: f[0] = 105 #"i"
-- * elif t == NPY_UINT: f[0] = 73 #"I"
-- */
-- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 72;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":886
-- * elif t == NPY_SHORT: f[0] = 104 #"h"
-- * elif t == NPY_USHORT: f[0] = 72 #"H"
-- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<<
-- * elif t == NPY_UINT: f[0] = 73 #"I"
-- * elif t == NPY_LONG: f[0] = 108 #"l"
-- */
-- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 0x69;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":887
-- * elif t == NPY_USHORT: f[0] = 72 #"H"
-- * elif t == NPY_INT: f[0] = 105 #"i"
-- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<<
-- * elif t == NPY_LONG: f[0] = 108 #"l"
-- * elif t == NPY_ULONG: f[0] = 76 #"L"
-- */
-- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 73;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":888
-- * elif t == NPY_INT: f[0] = 105 #"i"
-- * elif t == NPY_UINT: f[0] = 73 #"I"
-- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<<
-- * elif t == NPY_ULONG: f[0] = 76 #"L"
-- * elif t == NPY_LONGLONG: f[0] = 113 #"q"
-- */
-- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 0x6C;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":889
-- * elif t == NPY_UINT: f[0] = 73 #"I"
-- * elif t == NPY_LONG: f[0] = 108 #"l"
-- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<<
-- * elif t == NPY_LONGLONG: f[0] = 113 #"q"
-- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q"
-- */
-- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 76;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":890
-- * elif t == NPY_LONG: f[0] = 108 #"l"
-- * elif t == NPY_ULONG: f[0] = 76 #"L"
-- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<<
-- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q"
-- * elif t == NPY_FLOAT: f[0] = 102 #"f"
-- */
-- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 0x71;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":891
-- * elif t == NPY_ULONG: f[0] = 76 #"L"
-- * elif t == NPY_LONGLONG: f[0] = 113 #"q"
-- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<<
-- * elif t == NPY_FLOAT: f[0] = 102 #"f"
-- * elif t == NPY_DOUBLE: f[0] = 100 #"d"
-- */
-- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 81;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":892
-- * elif t == NPY_LONGLONG: f[0] = 113 #"q"
-- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q"
-- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<<
-- * elif t == NPY_DOUBLE: f[0] = 100 #"d"
-- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g"
-- */
-- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 0x66;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":893
-- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q"
-- * elif t == NPY_FLOAT: f[0] = 102 #"f"
-- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<<
-- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g"
-- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf
-- */
-- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 0x64;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":894
-- * elif t == NPY_FLOAT: f[0] = 102 #"f"
-- * elif t == NPY_DOUBLE: f[0] = 100 #"d"
-- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<<
-- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf
-- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd
-- */
-- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 0x67;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":895
-- * elif t == NPY_DOUBLE: f[0] = 100 #"d"
-- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g"
-- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<<
-- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd
-- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
-- */
-- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 90;
-- (__pyx_v_f[1]) = 0x66;
-- __pyx_v_f = (__pyx_v_f + 1);
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":896
-- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g"
-- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf
-- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<<
-- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
-- * elif t == NPY_OBJECT: f[0] = 79 #"O"
-- */
-- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 90;
-- (__pyx_v_f[1]) = 0x64;
-- __pyx_v_f = (__pyx_v_f + 1);
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":897
-- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf
-- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd
-- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<<
-- * elif t == NPY_OBJECT: f[0] = 79 #"O"
-- * else:
-- */
-- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- if (__pyx_t_6) {
-- (__pyx_v_f[0]) = 90;
-- (__pyx_v_f[1]) = 0x67;
-- __pyx_v_f = (__pyx_v_f + 1);
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":898
-- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd
-- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
-- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<<
-- * else:
-- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
-+ * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
-+ * if PyDataType_HASSUBARRAY(d):
-+ * return d.subarray.shape
- */
-- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error)
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- if (likely(__pyx_t_6)) {
-- (__pyx_v_f[0]) = 79;
-- goto __pyx_L15;
-- }
--
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":900
-- * elif t == NPY_OBJECT: f[0] = 79 #"O"
-- * else:
-- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<<
-- * f += 1
-- * else:
-- */
-- /*else*/ {
-- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 900, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_3);
-- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 900, __pyx_L1_error)
-- __Pyx_GOTREF(__pyx_t_4);
-- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-- __Pyx_Raise(__pyx_t_4, 0, 0, 0);
-- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-- __PYX_ERR(2, 900, __pyx_L1_error)
-- }
-- __pyx_L15:;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":901
-- * else:
-- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
-- * f += 1 # <<<<<<<<<<<<<<
-- * else:
-- * # Cython ignores struct boundary information ("T{...}"),
-- */
-- __pyx_v_f = (__pyx_v_f + 1);
-+static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
-+ PyObject *__pyx_r = NULL;
-+ __Pyx_RefNannyDeclarations
-+ int __pyx_t_1;
-+ __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":876
-- * offset[0] += child.itemsize
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751
- *
-- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<<
-- * t = child.type_num
-- * if end - f < 5:
-+ * cdef inline tuple PyDataType_SHAPE(dtype d):
-+ * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
-+ * return d.subarray.shape
-+ * else:
- */
-- goto __pyx_L13;
-- }
-+ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0);
-+ if (__pyx_t_1) {
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":905
-- * # Cython ignores struct boundary information ("T{...}"),
-- * # so don't output it
-- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<<
-- * return f
-- *
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":752
-+ * cdef inline tuple PyDataType_SHAPE(dtype d):
-+ * if PyDataType_HASSUBARRAY(d):
-+ * return d.subarray.shape # <<<<<<<<<<<<<<
-+ * else:
-+ * return ()
- */
-- /*else*/ {
-- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 905, __pyx_L1_error)
-- __pyx_v_f = __pyx_t_9;
-- }
-- __pyx_L13:;
-+ __Pyx_XDECREF(__pyx_r);
-+ __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape));
-+ __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape);
-+ goto __pyx_L0;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":850
-- * cdef tuple fields
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751
- *
-- * for childname in descr.names: # <<<<<<<<<<<<<<
-- * fields = descr.fields[childname]
-- * child, new_offset = fields
-+ * cdef inline tuple PyDataType_SHAPE(dtype d):
-+ * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
-+ * return d.subarray.shape
-+ * else:
- */
- }
-- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":906
-- * # so don't output it
-- * f = _util_dtypestring(child, f, end, offset)
-- * return f # <<<<<<<<<<<<<<
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754
-+ * return d.subarray.shape
-+ * else:
-+ * return () # <<<<<<<<<<<<<<
- *
- *
- */
-- __pyx_r = __pyx_v_f;
-- goto __pyx_L0;
-+ /*else*/ {
-+ __Pyx_XDECREF(__pyx_r);
-+ __Pyx_INCREF(__pyx_empty_tuple);
-+ __pyx_r = __pyx_empty_tuple;
-+ goto __pyx_L0;
-+ }
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":841
-- * return ()
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750
-+ * return PyArray_MultiIterNew(5, a, b, c, d, e)
- *
-- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<<
-- * # Recursive utility function used in __getbuffer__ to get format
-- * # string. The new location in the format string is returned.
-+ * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
-+ * if PyDataType_HASSUBARRAY(d):
-+ * return d.subarray.shape
- */
-
- /* function exit code */
-- __pyx_L1_error:;
-- __Pyx_XDECREF(__pyx_t_1);
-- __Pyx_XDECREF(__pyx_t_3);
-- __Pyx_XDECREF(__pyx_t_4);
-- __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename);
-- __pyx_r = NULL;
- __pyx_L0:;
-- __Pyx_XDECREF((PyObject *)__pyx_v_child);
-- __Pyx_XDECREF(__pyx_v_fields);
-- __Pyx_XDECREF(__pyx_v_childname);
-- __Pyx_XDECREF(__pyx_v_new_offset);
-- __Pyx_XDECREF(__pyx_v_t);
-+ __Pyx_XGIVEREF(__pyx_r);
- __Pyx_RefNannyFinishContext();
- return __pyx_r;
- }
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1021
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":929
- * int _import_umath() except -1
- *
- * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<<
-@@ -9341,7 +7776,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
- __Pyx_RefNannyDeclarations
- __Pyx_RefNannySetupContext("set_array_base", 0);
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1022
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":930
- *
- * cdef inline void set_array_base(ndarray arr, object base):
- * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<<
-@@ -9350,7 +7785,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
- */
- Py_INCREF(__pyx_v_base);
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1023
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":931
- * cdef inline void set_array_base(ndarray arr, object base):
- * Py_INCREF(base) # important to do this before stealing the reference below!
- * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<<
-@@ -9359,7 +7794,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
- */
- (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base));
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1021
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":929
- * int _import_umath() except -1
- *
- * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<<
-@@ -9371,7 +7806,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
- __Pyx_RefNannyFinishContext();
- }
-
--/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1025
-+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":933
- * PyArray_SetBaseObject(arr, base)
- *
- * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
-@@ -9386,7 +7821,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
- int __pyx_t_1;
- __Pyx_RefNannySetupContext("get_array_base", 0);
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1026
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":934
- *
- * cdef inline object get_array_base(ndarray arr):
- * base = PyArray_BASE(arr) # <<<<<<<<<<<<<<
-@@ -9395,7 +7830,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
- */
- __pyx_v_base = PyArray_BASE(__pyx_v_arr);
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1027
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":935
- * cdef inline object get_array_base(ndarray arr):
- * base = PyArray_BASE(arr)
- * if base is NULL: # <<<<<<<<<<<<<<
-@@ -9405,7 +7840,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
- __pyx_t_1 = ((__pyx_v_base == NULL) != 0);
- if (__pyx_t_1) {
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1028
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936
- * base = PyArray_BASE(arr)
- * if base is NULL:
- * return None # <<<<<<<<<<<<<<
-@@ -9416,7 +7851,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
- __pyx_r = Py_None; __Pyx_INCREF(Py_None);
- goto __pyx_L0;
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1027
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":935
- * cdef inline object get_array_base(ndarray arr):
- * base = PyArray_BASE(arr)
- * if base is NULL: # <<<<<<<<<<<<<<
-@@ -9425,7 +7860,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
- */
- }
-
-- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1029
-+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937
- * if base is NULL:
- * return None
- * return